fix(deps): update dependency material-icons to ^0.7.0

GitOrigin-RevId: a5bcfd6a69fff3a38a7dff4f8e163cdc6143fc8f
diff --git a/node_modules/jquery/src/.eslintrc.json b/node_modules/jquery/src/.eslintrc.json
deleted file mode 100644
index 3d0ca18..0000000
--- a/node_modules/jquery/src/.eslintrc.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
-	"root": true,
-
-	"extends": "../.eslintrc-browser.json",
-
-	"overrides": [
-		{
-			"files": "wrapper.js",
-			"globals": {
-				"jQuery": false
-			}
-		}
-	]
-}
diff --git a/node_modules/jquery/src/ajax.js b/node_modules/jquery/src/ajax.js
index 4cbefab..d1bebd5 100644
--- a/node_modules/jquery/src/ajax.js
+++ b/node_modules/jquery/src/ajax.js
@@ -8,7 +8,7 @@
 	"./ajax/var/rquery",
 
 	"./core/init",
-	"./ajax/parseXML",
+	"./core/parseXML",
 	"./event/trigger",
 	"./deferred",
 	"./serialize" // jQuery.param
@@ -610,7 +610,8 @@
 			// Add or update anti-cache param if needed
 			if ( s.cache === false ) {
 				cacheURL = cacheURL.replace( rantiCache, "$1" );
-				uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached;
+				uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) +
+					uncached;
 			}
 
 			// Put hash and anti-cache on the URL that will be requested (gh-1732)
@@ -743,6 +744,11 @@
 				response = ajaxHandleResponses( s, jqXHR, responses );
 			}
 
+			// Use a noop converter for missing script
+			if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) {
+				s.converters[ "text script" ] = function() {};
+			}
+
 			// Convert no matter what (that way responseXXX fields are always set)
 			response = ajaxConvert( s, response, jqXHR, isSuccess );
 
@@ -833,7 +839,7 @@
 	}
 } );
 
-jQuery.each( [ "get", "post" ], function( i, method ) {
+jQuery.each( [ "get", "post" ], function( _i, method ) {
 	jQuery[ method ] = function( url, data, callback, type ) {
 
 		// Shift arguments if data argument was omitted
@@ -854,5 +860,14 @@
 	};
 } );
 
+jQuery.ajaxPrefilter( function( s ) {
+	var i;
+	for ( i in s.headers ) {
+		if ( i.toLowerCase() === "content-type" ) {
+			s.contentType = s.headers[ i ] || "";
+		}
+	}
+} );
+
 return jQuery;
 } );
diff --git a/node_modules/jquery/src/ajax/jsonp.js b/node_modules/jquery/src/ajax/jsonp.js
index 28ae036..10186de 100644
--- a/node_modules/jquery/src/ajax/jsonp.js
+++ b/node_modules/jquery/src/ajax/jsonp.js
@@ -15,7 +15,7 @@
 jQuery.ajaxSetup( {
 	jsonp: "callback",
 	jsonpCallback: function() {
-		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
+		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce.guid++ ) );
 		this[ callback ] = true;
 		return callback;
 	}
diff --git a/node_modules/jquery/src/ajax/var/nonce.js b/node_modules/jquery/src/ajax/var/nonce.js
index 33d0cff..c0e4472 100644
--- a/node_modules/jquery/src/ajax/var/nonce.js
+++ b/node_modules/jquery/src/ajax/var/nonce.js
@@ -1,5 +1,5 @@
 define( function() {
 	"use strict";
 
-	return Date.now();
+	return { guid: Date.now() };
 } );
diff --git a/node_modules/jquery/src/attributes/attr.js b/node_modules/jquery/src/attributes/attr.js
index 6b5cbd2..4c43eb1 100644
--- a/node_modules/jquery/src/attributes/attr.js
+++ b/node_modules/jquery/src/attributes/attr.js
@@ -117,7 +117,7 @@
 	}
 };
 
-jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
+jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) {
 	var getter = attrHandle[ name ] || jQuery.find.attr;
 
 	attrHandle[ name ] = function( elem, name, isXML ) {
diff --git a/node_modules/jquery/src/core.js b/node_modules/jquery/src/core.js
index aeafc70..c1c13f4 100644
--- a/node_modules/jquery/src/core.js
+++ b/node_modules/jquery/src/core.js
@@ -4,10 +4,9 @@
 
 define( [
 	"./var/arr",
-	"./var/document",
 	"./var/getProto",
 	"./var/slice",
-	"./var/concat",
+	"./var/flat",
 	"./var/push",
 	"./var/indexOf",
 	"./var/class2type",
@@ -20,14 +19,14 @@
 	"./var/isWindow",
 	"./core/DOMEval",
 	"./core/toType"
-], function( arr, document, getProto, slice, concat, push, indexOf,
+], function( arr, getProto, slice, flat, push, indexOf,
 	class2type, toString, hasOwn, fnToString, ObjectFunctionString,
 	support, isFunction, isWindow, DOMEval, toType ) {
 
 "use strict";
 
 var
-	version = "3.4.1",
+	version = "3.5.0",
 
 	// Define a local copy of jQuery
 	jQuery = function( selector, context ) {
@@ -35,11 +34,7 @@
 		// The jQuery object is actually just the init constructor 'enhanced'
 		// Need init if jQuery is called (just allow error to be thrown if not included)
 		return new jQuery.fn.init( selector, context );
-	},
-
-	// Support: Android <=4.0 only
-	// Make sure we trim BOM and NBSP
-	rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
+	};
 
 jQuery.fn = jQuery.prototype = {
 
@@ -105,6 +100,18 @@
 		return this.eq( -1 );
 	},
 
+	even: function() {
+		return this.pushStack( jQuery.grep( this, function( _elem, i ) {
+			return ( i + 1 ) % 2;
+		} ) );
+	},
+
+	odd: function() {
+		return this.pushStack( jQuery.grep( this, function( _elem, i ) {
+			return i % 2;
+		} ) );
+	},
+
 	eq: function( i ) {
 		var len = this.length,
 			j = +i + ( i < 0 ? len : 0 );
@@ -238,9 +245,10 @@
 		return true;
 	},
 
-	// Evaluates a script in a global context
-	globalEval: function( code, options ) {
-		DOMEval( code, { nonce: options && options.nonce } );
+	// Evaluates a script in a provided context; falls back to the global one
+	// if not specified.
+	globalEval: function( code, options, doc ) {
+		DOMEval( code, { nonce: options && options.nonce }, doc );
 	},
 
 	each: function( obj, callback ) {
@@ -264,13 +272,6 @@
 		return obj;
 	},
 
-	// Support: Android <=4.0 only
-	trim: function( text ) {
-		return text == null ?
-			"" :
-			( text + "" ).replace( rtrim, "" );
-	},
-
 	// results is for internal usage only
 	makeArray: function( arr, results ) {
 		var ret = results || [];
@@ -357,7 +358,7 @@
 		}
 
 		// Flatten any nested arrays
-		return concat.apply( [], ret );
+		return flat( ret );
 	},
 
 	// A global GUID counter for objects
@@ -374,7 +375,7 @@
 
 // Populate the class2type map
 jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
-function( i, name ) {
+function( _i, name ) {
 	class2type[ "[object " + name + "]" ] = name.toLowerCase();
 } );
 
diff --git a/node_modules/jquery/src/core/access.js b/node_modules/jquery/src/core/access.js
index 842c4a4..54bcc74 100644
--- a/node_modules/jquery/src/core/access.js
+++ b/node_modules/jquery/src/core/access.js
@@ -38,7 +38,7 @@
 			// ...except when executing function values
 			} else {
 				bulk = fn;
-				fn = function( elem, key, value ) {
+				fn = function( elem, _key, value ) {
 					return bulk.call( jQuery( elem ), value );
 				};
 			}
diff --git a/node_modules/jquery/src/core/camelCase.js b/node_modules/jquery/src/core/camelCase.js
index 799fb37..b271044 100644
--- a/node_modules/jquery/src/core/camelCase.js
+++ b/node_modules/jquery/src/core/camelCase.js
@@ -7,7 +7,7 @@
 	rdashAlpha = /-([a-z])/g;
 
 // Used by camelCase as callback to replace()
-function fcamelCase( all, letter ) {
+function fcamelCase( _all, letter ) {
 	return letter.toUpperCase();
 }
 
diff --git a/node_modules/jquery/src/ajax/parseXML.js b/node_modules/jquery/src/core/parseXML.js
similarity index 100%
rename from node_modules/jquery/src/ajax/parseXML.js
rename to node_modules/jquery/src/core/parseXML.js
diff --git a/node_modules/jquery/src/css.js b/node_modules/jquery/src/css.js
index ac4c66e..a7a7061 100644
--- a/node_modules/jquery/src/css.js
+++ b/node_modules/jquery/src/css.js
@@ -2,6 +2,7 @@
 	"./core",
 	"./core/access",
 	"./core/camelCase",
+	"./core/nodeName",
 	"./var/rcssNum",
 	"./css/var/rnumnonpx",
 	"./css/var/cssExpand",
@@ -16,7 +17,7 @@
 	"./core/init",
 	"./core/ready",
 	"./selector" // contains
-], function( jQuery, access, camelCase, rcssNum, rnumnonpx, cssExpand,
+], function( jQuery, access, camelCase, nodeName, rcssNum, rnumnonpx, cssExpand,
 	getStyles, swap, curCSS, adjustCSS, addGetHookIf, support, finalPropName ) {
 
 "use strict";
@@ -34,7 +35,7 @@
 		fontWeight: "400"
 	};
 
-function setPositiveNumber( elem, value, subtract ) {
+function setPositiveNumber( _elem, value, subtract ) {
 
 	// Any relative (+/-) values have already been
 	// normalized at this point
@@ -139,17 +140,26 @@
 	}
 
 
-	// Fall back to offsetWidth/offsetHeight when value is "auto"
-	// This happens for inline elements with no explicit setting (gh-3571)
-	// Support: Android <=4.1 - 4.3 only
-	// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
-	// Support: IE 9-11 only
-	// Also use offsetWidth/offsetHeight for when box sizing is unreliable
-	// We use getClientRects() to check for hidden/disconnected.
-	// In those cases, the computed value can be trusted to be border-box
+	// Support: IE 9 - 11 only
+	// Use offsetWidth/offsetHeight for when box sizing is unreliable.
+	// In those cases, the computed value can be trusted to be border-box.
 	if ( ( !support.boxSizingReliable() && isBorderBox ||
+
+		// Support: IE 10 - 11+, Edge 15 - 18+
+		// IE/Edge misreport `getComputedStyle` of table rows with width/height
+		// set in CSS while `offset*` properties report correct values.
+		// Interestingly, in some cases IE 9 doesn't suffer from this issue.
+		!support.reliableTrDimensions() && nodeName( elem, "tr" ) ||
+
+		// Fall back to offsetWidth/offsetHeight when value is "auto"
+		// This happens for inline elements with no explicit setting (gh-3571)
 		val === "auto" ||
+
+		// Support: Android <=4.1 - 4.3 only
+		// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
 		!parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) &&
+
+		// Make sure the element is visible & connected
 		elem.getClientRects().length ) {
 
 		isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
@@ -344,7 +354,7 @@
 	}
 } );
 
-jQuery.each( [ "height", "width" ], function( i, dimension ) {
+jQuery.each( [ "height", "width" ], function( _i, dimension ) {
 	jQuery.cssHooks[ dimension ] = {
 		get: function( elem, computed, extra ) {
 			if ( computed ) {
diff --git a/node_modules/jquery/src/css/support.js b/node_modules/jquery/src/css/support.js
index 9c4da57..fb2a1b2 100644
--- a/node_modules/jquery/src/css/support.js
+++ b/node_modules/jquery/src/css/support.js
@@ -60,7 +60,7 @@
 	}
 
 	var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,
-		reliableMarginLeftVal,
+		reliableTrDimensionsVal, reliableMarginLeftVal,
 		container = document.createElement( "div" ),
 		div = document.createElement( "div" );
 
@@ -95,6 +95,35 @@
 		scrollboxSize: function() {
 			computeStyleTests();
 			return scrollboxSizeVal;
+		},
+
+		// Support: IE 9 - 11+, Edge 15 - 18+
+		// IE/Edge misreport `getComputedStyle` of table rows with width/height
+		// set in CSS while `offset*` properties report correct values.
+		// Behavior in IE 9 is more subtle than in newer versions & it passes
+		// some versions of this test; make sure not to make it pass there!
+		reliableTrDimensions: function() {
+			var table, tr, trChild, trStyle;
+			if ( reliableTrDimensionsVal == null ) {
+				table = document.createElement( "table" );
+				tr = document.createElement( "tr" );
+				trChild = document.createElement( "div" );
+
+				table.style.cssText = "position:absolute;left:-11111px";
+				tr.style.height = "1px";
+				trChild.style.height = "9px";
+
+				documentElement
+					.appendChild( table )
+					.appendChild( tr )
+					.appendChild( trChild );
+
+				trStyle = window.getComputedStyle( tr );
+				reliableTrDimensionsVal = parseInt( trStyle.height ) > 3;
+
+				documentElement.removeChild( table );
+			}
+			return reliableTrDimensionsVal;
 		}
 	} );
 } )();
diff --git a/node_modules/jquery/src/css/var/swap.js b/node_modules/jquery/src/css/var/swap.js
index 1a9556b..69388e5 100644
--- a/node_modules/jquery/src/css/var/swap.js
+++ b/node_modules/jquery/src/css/var/swap.js
@@ -3,7 +3,7 @@
 "use strict";
 
 // A method for quickly swapping in/out CSS properties to get correct calculations.
-return function( elem, options, callback, args ) {
+return function( elem, options, callback ) {
 	var ret, name,
 		old = {};
 
@@ -13,7 +13,7 @@
 		elem.style[ name ] = options[ name ];
 	}
 
-	ret = callback.apply( elem, args || [] );
+	ret = callback.call( elem );
 
 	// Revert the old values
 	for ( name in options ) {
diff --git a/node_modules/jquery/src/data/Data.js b/node_modules/jquery/src/data/Data.js
index 31ff431..ce6d8fa 100644
--- a/node_modules/jquery/src/data/Data.js
+++ b/node_modules/jquery/src/data/Data.js
@@ -22,7 +22,7 @@
 
 		// If not, create one
 		if ( !value ) {
-			value = {};
+			value = Object.create( null );
 
 			// We can accept data for non-element nodes in modern browsers,
 			// but we should not, see #8335.
diff --git a/node_modules/jquery/src/deferred.js b/node_modules/jquery/src/deferred.js
index 0425d36..c05a37a 100644
--- a/node_modules/jquery/src/deferred.js
+++ b/node_modules/jquery/src/deferred.js
@@ -79,7 +79,7 @@
 					var fns = arguments;
 
 					return jQuery.Deferred( function( newDefer ) {
-						jQuery.each( tuples, function( i, tuple ) {
+						jQuery.each( tuples, function( _i, tuple ) {
 
 							// Map tuples (progress, done, fail) to arguments (done, fail, progress)
 							var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
diff --git a/node_modules/jquery/src/deprecated.js b/node_modules/jquery/src/deprecated.js
index c11b0d3..cc13c3c 100644
--- a/node_modules/jquery/src/deprecated.js
+++ b/node_modules/jquery/src/deprecated.js
@@ -7,31 +7,15 @@
 	"./var/isWindow",
 	"./var/slice",
 
-	"./event/alias"
+	"./deprecated/ajax-event-alias",
+	"./deprecated/event"
 ], function( jQuery, nodeName, camelCase, toType, isFunction, isWindow, slice ) {
 
 "use strict";
 
-jQuery.fn.extend( {
-
-	bind: function( types, data, fn ) {
-		return this.on( types, null, data, fn );
-	},
-	unbind: function( types, fn ) {
-		return this.off( types, null, fn );
-	},
-
-	delegate: function( selector, types, data, fn ) {
-		return this.on( types, selector, data, fn );
-	},
-	undelegate: function( selector, types, fn ) {
-
-		// ( namespace ) or ( selector, types [, fn] )
-		return arguments.length === 1 ?
-			this.off( selector, "**" ) :
-			this.off( types, selector || "**", fn );
-	}
-} );
+// Support: Android <=4.0 only
+// Make sure we trim BOM and NBSP
+var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
 
 // Bind a function to a context, optionally partially applying any
 // arguments.
@@ -95,4 +79,9 @@
 		!isNaN( obj - parseFloat( obj ) );
 };
 
+jQuery.trim = function( text ) {
+	return text == null ?
+		"" :
+		( text + "" ).replace( rtrim, "" );
+};
 } );
diff --git a/node_modules/jquery/src/event/ajax.js b/node_modules/jquery/src/deprecated/ajax-event-alias.js
similarity index 74%
rename from node_modules/jquery/src/event/ajax.js
rename to node_modules/jquery/src/deprecated/ajax-event-alias.js
index 500b36c..b96c0aa 100644
--- a/node_modules/jquery/src/event/ajax.js
+++ b/node_modules/jquery/src/deprecated/ajax-event-alias.js
@@ -1,11 +1,11 @@
 define( [
 	"../core",
+	"../ajax",
 	"../event"
 ], function( jQuery ) {
 
 "use strict";
 
-// Attach a bunch of functions for handling common AJAX events
 jQuery.each( [
 	"ajaxStart",
 	"ajaxStop",
@@ -13,7 +13,7 @@
 	"ajaxError",
 	"ajaxSuccess",
 	"ajaxSend"
-], function( i, type ) {
+], function( _i, type ) {
 	jQuery.fn[ type ] = function( fn ) {
 		return this.on( type, fn );
 	};
diff --git a/node_modules/jquery/src/deprecated/event.js b/node_modules/jquery/src/deprecated/event.js
new file mode 100644
index 0000000..d2d26bc
--- /dev/null
+++ b/node_modules/jquery/src/deprecated/event.js
@@ -0,0 +1,48 @@
+define( [
+	"../core",
+
+	"../event",
+	"../event/trigger"
+], function( jQuery ) {
+
+"use strict";
+
+jQuery.fn.extend( {
+
+	bind: function( types, data, fn ) {
+		return this.on( types, null, data, fn );
+	},
+	unbind: function( types, fn ) {
+		return this.off( types, null, fn );
+	},
+
+	delegate: function( selector, types, data, fn ) {
+		return this.on( types, selector, data, fn );
+	},
+	undelegate: function( selector, types, fn ) {
+
+		// ( namespace ) or ( selector, types [, fn] )
+		return arguments.length === 1 ?
+			this.off( selector, "**" ) :
+			this.off( types, selector || "**", fn );
+	},
+
+	hover: function( fnOver, fnOut ) {
+		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+	}
+} );
+
+jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
+	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+	"change select submit keydown keypress keyup contextmenu" ).split( " " ),
+	function( _i, name ) {
+
+		// Handle event binding
+		jQuery.fn[ name ] = function( data, fn ) {
+			return arguments.length > 0 ?
+				this.on( name, null, data, fn ) :
+				this.trigger( name );
+		};
+	} );
+
+} );
diff --git a/node_modules/jquery/src/effects.js b/node_modules/jquery/src/effects.js
index a778de1..76b7cc7 100644
--- a/node_modules/jquery/src/effects.js
+++ b/node_modules/jquery/src/effects.js
@@ -7,7 +7,6 @@
 	"./var/rnothtmlwhite",
 	"./css/var/cssExpand",
 	"./css/var/isHiddenWithinTree",
-	"./css/var/swap",
 	"./css/adjustCSS",
 	"./data/var/dataPriv",
 	"./css/showHide",
@@ -20,7 +19,7 @@
 	"./css",
 	"./effects/Tween"
 ], function( jQuery, camelCase, document, isFunction, rcssNum, rnothtmlwhite, cssExpand,
-	isHiddenWithinTree, swap, adjustCSS, dataPriv, showHide ) {
+	isHiddenWithinTree, adjustCSS, dataPriv, showHide ) {
 
 "use strict";
 
@@ -542,7 +541,7 @@
 			clearQueue = type;
 			type = undefined;
 		}
-		if ( clearQueue && type !== false ) {
+		if ( clearQueue ) {
 			this.queue( type || "fx", [] );
 		}
 
@@ -625,7 +624,7 @@
 	}
 } );
 
-jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) {
+jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) {
 	var cssFn = jQuery.fn[ name ];
 	jQuery.fn[ name ] = function( speed, easing, callback ) {
 		return speed == null || typeof speed === "boolean" ?
diff --git a/node_modules/jquery/src/event.js b/node_modules/jquery/src/event.js
index 3ff11ad..6510d6a 100644
--- a/node_modules/jquery/src/event.js
+++ b/node_modules/jquery/src/event.js
@@ -6,13 +6,14 @@
 	"./var/rnothtmlwhite",
 	"./var/rcheckableType",
 	"./var/slice",
+	"./data/var/acceptData",
 	"./data/var/dataPriv",
 	"./core/nodeName",
 
 	"./core/init",
 	"./selector"
 ], function( jQuery, document, documentElement, isFunction, rnothtmlwhite,
-	rcheckableType, slice, dataPriv, nodeName ) {
+	rcheckableType, slice, acceptData, dataPriv, nodeName ) {
 
 "use strict";
 
@@ -124,8 +125,8 @@
 			special, handlers, type, namespaces, origType,
 			elemData = dataPriv.get( elem );
 
-		// Don't attach events to noData or text/comment nodes (but allow plain objects)
-		if ( !elemData ) {
+		// Only attach events to objects that accept data
+		if ( !acceptData( elem ) ) {
 			return;
 		}
 
@@ -149,7 +150,7 @@
 
 		// Init the element's event structure and main handler, if this is the first
 		if ( !( events = elemData.events ) ) {
-			events = elemData.events = {};
+			events = elemData.events = Object.create( null );
 		}
 		if ( !( eventHandle = elemData.handle ) ) {
 			eventHandle = elemData.handle = function( e ) {
@@ -307,12 +308,15 @@
 
 	dispatch: function( nativeEvent ) {
 
-		// Make a writable jQuery.Event from the native event object
-		var event = jQuery.event.fix( nativeEvent );
-
 		var i, j, ret, matched, handleObj, handlerQueue,
 			args = new Array( arguments.length ),
-			handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
+
+			// Make a writable jQuery.Event from the native event object
+			event = jQuery.event.fix( nativeEvent ),
+
+			handlers = (
+					dataPriv.get( this, "events" ) || Object.create( null )
+				)[ event.type ] || [],
 			special = jQuery.event.special[ event.type ] || {};
 
 		// Use the fix-ed jQuery.Event rather than the (read-only) native event
diff --git a/node_modules/jquery/src/event/alias.js b/node_modules/jquery/src/event/alias.js
deleted file mode 100644
index 863c94a..0000000
--- a/node_modules/jquery/src/event/alias.js
+++ /dev/null
@@ -1,29 +0,0 @@
-define( [
-	"../core",
-
-	"../event",
-	"./trigger"
-], function( jQuery ) {
-
-"use strict";
-
-jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
-	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
-	"change select submit keydown keypress keyup contextmenu" ).split( " " ),
-	function( i, name ) {
-
-	// Handle event binding
-	jQuery.fn[ name ] = function( data, fn ) {
-		return arguments.length > 0 ?
-			this.on( name, null, data, fn ) :
-			this.trigger( name );
-	};
-} );
-
-jQuery.fn.extend( {
-	hover: function( fnOver, fnOut ) {
-		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
-	}
-} );
-
-} );
diff --git a/node_modules/jquery/src/event/focusin.js b/node_modules/jquery/src/event/focusin.js
index 7faef29..3da86c7 100644
--- a/node_modules/jquery/src/event/focusin.js
+++ b/node_modules/jquery/src/event/focusin.js
@@ -27,7 +27,10 @@
 
 		jQuery.event.special[ fix ] = {
 			setup: function() {
-				var doc = this.ownerDocument || this,
+
+				// Handle: regular nodes (via `this.ownerDocument`), window
+				// (via `this.document`) & document (via `this`).
+				var doc = this.ownerDocument || this.document || this,
 					attaches = dataPriv.access( doc, fix );
 
 				if ( !attaches ) {
@@ -36,7 +39,7 @@
 				dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
 			},
 			teardown: function() {
-				var doc = this.ownerDocument || this,
+				var doc = this.ownerDocument || this.document || this,
 					attaches = dataPriv.access( doc, fix ) - 1;
 
 				if ( !attaches ) {
diff --git a/node_modules/jquery/src/event/trigger.js b/node_modules/jquery/src/event/trigger.js
index cf40b4f..c3769e1 100644
--- a/node_modules/jquery/src/event/trigger.js
+++ b/node_modules/jquery/src/event/trigger.js
@@ -103,7 +103,9 @@
 				special.bindType || type;
 
 			// jQuery handler
-			handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
+			handle = (
+					dataPriv.get( cur, "events" ) || Object.create( null )
+				)[ event.type ] &&
 				dataPriv.get( cur, "handle" );
 			if ( handle ) {
 				handle.apply( cur, data );
diff --git a/node_modules/jquery/src/exports/global.js b/node_modules/jquery/src/exports/global.js
index 460b56e..2cc9577 100644
--- a/node_modules/jquery/src/exports/global.js
+++ b/node_modules/jquery/src/exports/global.js
@@ -1,6 +1,6 @@
 define( [
 	"../core"
-], function( jQuery, noGlobal ) {
+], function( jQuery ) {
 
 "use strict";
 
@@ -27,7 +27,7 @@
 // Expose jQuery and $ identifiers, even in AMD
 // (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
 // and CommonJS for browser emulators (#13566)
-if ( !noGlobal ) {
+if ( typeof noGlobal === "undefined" ) {
 	window.jQuery = window.$ = jQuery;
 }
 
diff --git a/node_modules/jquery/src/jquery.js b/node_modules/jquery/src/jquery.js
index 0e026a6..0c144c1 100644
--- a/node_modules/jquery/src/jquery.js
+++ b/node_modules/jquery/src/jquery.js
@@ -23,7 +23,8 @@
 	"./ajax/script",
 	"./ajax/jsonp",
 	"./ajax/load",
-	"./event/ajax",
+	"./core/parseXML",
+	"./core/parseHTML",
 	"./effects",
 	"./effects/animatedSelector",
 	"./offset",
diff --git a/node_modules/jquery/src/manipulation.js b/node_modules/jquery/src/manipulation.js
index ab19d8b..dec21ea 100644
--- a/node_modules/jquery/src/manipulation.js
+++ b/node_modules/jquery/src/manipulation.js
@@ -1,7 +1,7 @@
 define( [
 	"./core",
 	"./core/isAttached",
-	"./var/concat",
+	"./var/flat",
 	"./var/isFunction",
 	"./var/push",
 	"./var/rcheckableType",
@@ -24,7 +24,7 @@
 	"./traversing",
 	"./selector",
 	"./event"
-], function( jQuery, isAttached, concat, isFunction, push, rcheckableType,
+], function( jQuery, isAttached, flat, isFunction, push, rcheckableType,
 	access, rtagName, rscriptType,
 	wrapMap, getAll, setGlobalEval, buildFragment, support,
 	dataPriv, dataUser, acceptData, DOMEval, nodeName ) {
@@ -33,13 +33,6 @@
 
 var
 
-	/* eslint-disable max-len */
-
-	// See https://github.com/eslint/eslint/issues/3229
-	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
-
-	/* eslint-enable */
-
 	// Support: IE <=10 - 11, Edge 12 - 13 only
 	// In IE/Edge using regex groups here causes severe slowdowns.
 	// See https://connect.microsoft.com/IE/feedback/details/1736512/
@@ -76,7 +69,7 @@
 }
 
 function cloneCopyEvent( src, dest ) {
-	var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
+	var i, l, type, pdataOld, udataOld, udataCur, events;
 
 	if ( dest.nodeType !== 1 ) {
 		return;
@@ -84,13 +77,11 @@
 
 	// 1. Copy private data: events, handlers, etc.
 	if ( dataPriv.hasData( src ) ) {
-		pdataOld = dataPriv.access( src );
-		pdataCur = dataPriv.set( dest, pdataOld );
+		pdataOld = dataPriv.get( src );
 		events = pdataOld.events;
 
 		if ( events ) {
-			delete pdataCur.handle;
-			pdataCur.events = {};
+			dataPriv.remove( dest, "handle events" );
 
 			for ( type in events ) {
 				for ( i = 0, l = events[ type ].length; i < l; i++ ) {
@@ -126,7 +117,7 @@
 function domManip( collection, args, callback, ignored ) {
 
 	// Flatten any nested arrays
-	args = concat.apply( [], args );
+	args = flat( args );
 
 	var fragment, first, scripts, hasScripts, node, doc,
 		i = 0,
@@ -201,7 +192,7 @@
 							if ( jQuery._evalUrl && !node.noModule ) {
 								jQuery._evalUrl( node.src, {
 									nonce: node.nonce || node.getAttribute( "nonce" )
-								} );
+								}, doc );
 							}
 						} else {
 							DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc );
@@ -238,7 +229,7 @@
 
 jQuery.extend( {
 	htmlPrefilter: function( html ) {
-		return html.replace( rxhtmlTag, "<$1></$2>" );
+		return html;
 	},
 
 	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
diff --git a/node_modules/jquery/src/manipulation/_evalUrl.js b/node_modules/jquery/src/manipulation/_evalUrl.js
index 9a4d2ac..6163b68 100644
--- a/node_modules/jquery/src/manipulation/_evalUrl.js
+++ b/node_modules/jquery/src/manipulation/_evalUrl.js
@@ -4,7 +4,7 @@
 
 "use strict";
 
-jQuery._evalUrl = function( url, options ) {
+jQuery._evalUrl = function( url, options, doc ) {
 	return jQuery.ajax( {
 		url: url,
 
@@ -22,7 +22,7 @@
 			"text script": function() {}
 		},
 		dataFilter: function( response ) {
-			jQuery.globalEval( response, options );
+			jQuery.globalEval( response, options, doc );
 		}
 	} );
 };
diff --git a/node_modules/jquery/src/manipulation/support.js b/node_modules/jquery/src/manipulation/support.js
index 4a5d9af..62d6bb3 100644
--- a/node_modules/jquery/src/manipulation/support.js
+++ b/node_modules/jquery/src/manipulation/support.js
@@ -28,6 +28,12 @@
 	// Make sure textarea (and checkbox) defaultValue is properly cloned
 	div.innerHTML = "<textarea>x</textarea>";
 	support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
+
+	// Support: IE <=9 only
+	// IE <=9 replaces <option> tags with their contents when inserted outside of
+	// the select element.
+	div.innerHTML = "<option></option>";
+	support.option = !!div.lastChild;
 } )();
 
 return support;
diff --git a/node_modules/jquery/src/manipulation/wrapMap.js b/node_modules/jquery/src/manipulation/wrapMap.js
index 1f446f7..da48bf9 100644
--- a/node_modules/jquery/src/manipulation/wrapMap.js
+++ b/node_modules/jquery/src/manipulation/wrapMap.js
@@ -1,13 +1,12 @@
-define( function() {
+define( [
+	"./support"
+], function( support ) {
 
 "use strict";
 
 // We have to close these tags to support XHTML (#13200)
 var wrapMap = {
 
-	// Support: IE <=9 only
-	option: [ 1, "<select multiple='multiple'>", "</select>" ],
-
 	// XHTML parsers do not magically insert elements in the
 	// same way that tag soup parsers do. So we cannot shorten
 	// this by omitting <tbody> or other required elements.
@@ -19,11 +18,13 @@
 	_default: [ 0, "", "" ]
 };
 
-// Support: IE <=9 only
-wrapMap.optgroup = wrapMap.option;
-
 wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
 wrapMap.th = wrapMap.td;
 
+// Support: IE <=9 only
+if ( !support.option ) {
+	wrapMap.optgroup = wrapMap.option = [ 1, "<select multiple='multiple'>", "</select>" ];
+}
+
 return wrapMap;
 } );
diff --git a/node_modules/jquery/src/offset.js b/node_modules/jquery/src/offset.js
index 83b1c3a..62166bc 100644
--- a/node_modules/jquery/src/offset.js
+++ b/node_modules/jquery/src/offset.js
@@ -1,7 +1,6 @@
 define( [
 	"./core",
 	"./core/access",
-	"./var/document",
 	"./var/documentElement",
 	"./var/isFunction",
 	"./css/var/rnumnonpx",
@@ -12,8 +11,8 @@
 	"./core/init",
 	"./css",
 	"./selector" // contains
-], function( jQuery, access, document, documentElement, isFunction, rnumnonpx,
-             curCSS, addGetHookIf, support, isWindow ) {
+], function( jQuery, access, documentElement, isFunction, rnumnonpx,
+	curCSS, addGetHookIf, support, isWindow ) {
 
 "use strict";
 
@@ -64,6 +63,12 @@
 			options.using.call( elem, props );
 
 		} else {
+			if ( typeof props.top === "number" ) {
+				props.top += "px";
+			}
+			if ( typeof props.left === "number" ) {
+				props.left += "px";
+			}
 			curElem.css( props );
 		}
 	}
@@ -214,7 +219,7 @@
 // Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
 // getComputedStyle returns percent when specified for top/left/bottom/right;
 // rather than make the css module depend on the offset module, just check for it here
-jQuery.each( [ "top", "left" ], function( i, prop ) {
+jQuery.each( [ "top", "left" ], function( _i, prop ) {
 	jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
 		function( elem, computed ) {
 			if ( computed ) {
diff --git a/node_modules/jquery/src/selector-native.js b/node_modules/jquery/src/selector-native.js
index da837a0..05cd8ea 100644
--- a/node_modules/jquery/src/selector-native.js
+++ b/node_modules/jquery/src/selector-native.js
@@ -34,6 +34,7 @@
  */
 
 var hasDuplicate, sortInput,
+	rhtmlSuffix = /HTML$/i,
 	sortStable = jQuery.expando.split( "" ).sort( sortOrder ).join( "" ) === jQuery.expando,
 	matches = documentElement.matches ||
 		documentElement.webkitMatchesSelector ||
@@ -200,11 +201,14 @@
 		return a === bup || !!( bup && bup.nodeType === 1 && adown.contains( bup ) );
 	},
 	isXMLDoc: function( elem ) {
+		var namespace = elem.namespaceURI,
+			documentElement = ( elem.ownerDocument || elem ).documentElement;
 
-		// documentElement is verified for cases where it doesn't yet exist
-		// (such as loading iframes in IE - #4833)
-		var documentElement = elem && ( elem.ownerDocument || elem ).documentElement;
-		return documentElement ? documentElement.nodeName !== "HTML" : false;
+		// Assume HTML when documentElement doesn't yet exist, such as inside
+		// document fragments.
+		return !rhtmlSuffix.test( namespace ||
+			documentElement && documentElement.nodeName ||
+			"HTML" );
 	},
 	expr: {
 		attrHandle: {},
diff --git a/node_modules/jquery/src/serialize.js b/node_modules/jquery/src/serialize.js
index d8a9a36..cd4e99f 100644
--- a/node_modules/jquery/src/serialize.js
+++ b/node_modules/jquery/src/serialize.js
@@ -114,7 +114,7 @@
 				rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
 				( this.checked || !rcheckableType.test( type ) );
 		} )
-		.map( function( i, elem ) {
+		.map( function( _i, elem ) {
 			var val = jQuery( this ).val();
 
 			if ( val == null ) {
diff --git a/node_modules/jquery/src/traversing.js b/node_modules/jquery/src/traversing.js
index 426d5b6..de37718 100644
--- a/node_modules/jquery/src/traversing.js
+++ b/node_modules/jquery/src/traversing.js
@@ -1,5 +1,6 @@
 define( [
 	"./core",
+	"./var/getProto",
 	"./var/indexOf",
 	"./traversing/var/dir",
 	"./traversing/var/siblings",
@@ -9,7 +10,7 @@
 	"./core/init",
 	"./traversing/findFilter",
 	"./selector"
-], function( jQuery, indexOf, dir, siblings, rneedsContext, nodeName ) {
+], function( jQuery, getProto, indexOf, dir, siblings, rneedsContext, nodeName ) {
 
 "use strict";
 
@@ -117,7 +118,7 @@
 	parents: function( elem ) {
 		return dir( elem, "parentNode" );
 	},
-	parentsUntil: function( elem, i, until ) {
+	parentsUntil: function( elem, _i, until ) {
 		return dir( elem, "parentNode", until );
 	},
 	next: function( elem ) {
@@ -132,10 +133,10 @@
 	prevAll: function( elem ) {
 		return dir( elem, "previousSibling" );
 	},
-	nextUntil: function( elem, i, until ) {
+	nextUntil: function( elem, _i, until ) {
 		return dir( elem, "nextSibling", until );
 	},
-	prevUntil: function( elem, i, until ) {
+	prevUntil: function( elem, _i, until ) {
 		return dir( elem, "previousSibling", until );
 	},
 	siblings: function( elem ) {
@@ -145,7 +146,13 @@
 		return siblings( elem.firstChild );
 	},
 	contents: function( elem ) {
-		if ( typeof elem.contentDocument !== "undefined" ) {
+		if ( elem.contentDocument != null &&
+
+			// Support: IE 11+
+			// <object> elements with no `data` attribute has an object
+			// `contentDocument` with a `null` prototype.
+			getProto( elem.contentDocument ) ) {
+
 			return elem.contentDocument;
 		}
 
diff --git a/node_modules/jquery/src/var/concat.js b/node_modules/jquery/src/var/concat.js
deleted file mode 100644
index e47c19d..0000000
--- a/node_modules/jquery/src/var/concat.js
+++ /dev/null
@@ -1,7 +0,0 @@
-define( [
-	"./arr"
-], function( arr ) {
-	"use strict";
-
-	return arr.concat;
-} );
diff --git a/node_modules/jquery/src/var/flat.js b/node_modules/jquery/src/var/flat.js
new file mode 100644
index 0000000..86f91a6
--- /dev/null
+++ b/node_modules/jquery/src/var/flat.js
@@ -0,0 +1,16 @@
+define( [
+	"./arr"
+], function( arr ) {
+
+"use strict";
+
+// Support: IE 9 - 11+, Edge 18+, Android Browser 4.0 - 4.3 only, iOS 7 - 11 only, Safari 11 only,
+// Firefox <= 61 only
+// Provide fallback for browsers without Array#flat.
+return arr.flat ? function( array ) {
+	return arr.flat.call( array );
+} : function( array ) {
+	return arr.concat.apply( [], array );
+};
+
+} );