{"version":3,"file":"index.js","mappings":"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","sources":["webpack:///webpack/runtime/create fake namespace object","webpack:///webpack/runtime/load script","webpack:///../node_modules/@aamasri/web-components/src/js/sha1.js","webpack:///./src/js/auth.js","webpack:///./src/js/global-error-handler.js","webpack:///./src/js/lazy-loader.js","webpack:///./src/js/syntaxHighlighter.js","webpack:///../node_modules/jquery/dist/jquery.js","webpack:///../node_modules/uncaught/lib/index.js","webpack:///../node_modules/@aamasri/dom-utils/dom-utils.mjs","webpack:///../node_modules/@aamasri/web-components/src/js/dom-utils.js","webpack:///../node_modules/@aamasri/web-components/src/js/image.js","webpack:///../node_modules/@aamasri/web-components/src/js/string-prototypes.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/ensure chunk","webpack:///webpack/runtime/get javascript chunk filename","webpack:///webpack/runtime/get mini-css chunk filename","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///webpack/runtime/publicPath","webpack:///webpack/runtime/css loading","webpack:///webpack/runtime/jsonp chunk loading","webpack:///../node_modules/@popperjs/core/lib/enums.js","webpack:///../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack:///../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack:///../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack:///../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack:///../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack:///../node_modules/@popperjs/core/lib/utils/math.js","webpack:///../node_modules/@popperjs/core/lib/utils/userAgent.js","webpack:///../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack:///../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack:///../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack:///../node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack:///../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack:///../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack:///../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack:///../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack:///../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack:///../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack:///../node_modules/@popperjs/core/lib/utils/within.js","webpack:///../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack:///../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack:///../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack:///../node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack:///../node_modules/@popperjs/core/lib/utils/getVariation.js","webpack:///../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack:///../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack:///../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack:///../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack:///../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack:///../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack:///../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack:///../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack:///../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack:///../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack:///../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack:///../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack:///../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack:///../node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack:///../node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack:///../node_modules/@popperjs/core/lib/modifiers/flip.js","webpack:///../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack:///../node_modules/@popperjs/core/lib/modifiers/hide.js","webpack:///../node_modules/@popperjs/core/lib/modifiers/offset.js","webpack:///../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack:///../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack:///../node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack:///../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack:///../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack:///../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack:///../node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack:///../node_modules/@popperjs/core/lib/createPopper.js","webpack:///../node_modules/@popperjs/core/lib/utils/debounce.js","webpack:///../node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack:///../node_modules/@popperjs/core/lib/popper.js","webpack:///../node_modules/@popperjs/core/lib/popper-lite.js","webpack:///../node_modules/bootstrap/dist/js/bootstrap.esm.js","webpack:///./src/js/tracking.js","webpack:///./index.js"],"sourcesContent":["var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\n// data-webpack is not used as build has no uniqueName\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n/* SHA-1 implementation in JavaScript (c) Chris Veness 2002-2009 */\n/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n\nexport default function sha1(msg) {\n let i;\n// constants [§4.2.1]\n const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n\n\n // PREPROCESSING\n\n msg += String.fromCharCode(0x80); // add trailing '1' bit (+ 0's padding) to string [§5.1.1]\n\n // convert string msg into 512-bit/16-integer blocks arrays of ints [§5.2.1]\n const l = msg.length / 4 + 2; // length (in 32-bit integers) of msg + ‘1’ + appended length\n const N = Math.ceil(l / 16); // number of 16-integer-blocks required to hold 'l' ints\n const M = new Array(N);\n for (i = 0; i>> 32, but since JS converts\n // bitwise-op args to 32 bits, we need to simulate this by arithmetic operators\n M[N-1][14] = ((msg.length-1)*8) / Math.pow(2, 32); M[N-1][14] = Math.floor(M[N-1][14]);\n M[N-1][15] = ((msg.length-1)*8) & 0xffffffff;\n\n // set initial hash value [§5.3.1]\n let H0 = 0x67452301;\n let H1 = 0xefcdab89;\n let H2 = 0x98badcfe;\n let H3 = 0x10325476;\n let H4 = 0xc3d2e1f0;\n\n // HASH COMPUTATION [§6.1.2]\n\n const W = new Array(80);\n let a, b, c, d, e;\n for (i = 0; i>>(32-n));\n}\n\n//\n// extend Number class with a tailored hex-string method\n// (note toString(16) is implementation-dependant, and\n// in IE returns signed numbers when used on full words)\n//\nNumber.prototype.toHexStr = function() {\n let s = \"\", v;\n for (let i=7; i>=0; i--) {\n \tv = (this>>>(i*4)) & 0xf; s += v.toString(16);\n }\n return s;\n};\n/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\n","/**\n * @fileOverview Authorization: login, logout etc\n * @author Ananda Masri\n */\n\n\nimport moduleDefault from '@aamasri/web-components/src/js/sha1';\nexport function sha1(msg) {\n\treturn moduleDefault(msg);\n}\n\n\n\n// detect any caching issues and force a browser reload to fix incorrect logged-in status\nexport function syncLoginState() {\n\tif (/\\/login\\/email\\//.test(window.location.href))\n\t\treturn;\t\t// this page is going to redirect in a few seconds - don't reload here to avoid an endless loop\n\n\tconst debug = false;\n\n\tif (debug) console.debug(`forceLoginState start...`);\n\n\tif (typeof localStorage !== 'object')\n\t\treturn;\n\n\tif (typeof visitorId !== 'undefined') {\n\t\ttry {\t// just because this is a persistently buggy bit of code\n\t\t\tif (debug) console.debug(` visitorId: ${visitorId}, localStorage.visitorId: ${localStorage.visitorId || 'undefined'}`);\n\n\t\t\t// logged-in user status hasn't been saved yet\n\t\t\tif (!localStorage['visitorId']) {\n\t\t\t\tlocalStorage.setItem('visitorId', visitorId || 0);\n\t\t\t\tif (debug) console.debug(` set localStorage.visitorId = ${visitorId}`);\n\t\t\t}\n\t\t\t// reload if visitorId mismatch (can happen when navigating cached pages following login/logout)\n\t\t\telse if ((visitorId || 0).toString() !== (localStorage.getItem('visitorId') || '0') && typeof localStorage.forcingReload === 'undefined') {\n\t\t\t\tif (debug) console.debug(`Logged in user mismatch: visitorId(${visitorId || 0}) !== localStorage.visitorId(${localStorage.visitorId || 0})`);\n\t\t\t\tlocalStorage.setItem('visitorId', visitorId || 0);\n\t\t\t\tlocalStorage.setItem('forcingReload', 'true');\n\t\t\t\treloadPage();\n\t\t\t} else if (localStorage.forcingReload) {\n\t\t\t\tlocalStorage.removeItem('forcingReload');\n\t\t\t\tif (debug) console.debug(` has successfully reloaded`);\n\t\t\t}\n\n\t\t\tif (debug) console.debug(`...forceLoginState end`);\n\t\t} catch (error) {\n\t\t\tconsole.error(error);\n\t\t}\n\t}\n}\n\n\n\n\nexport function logout() {\n\timport(/* webpackChunkName: \"busy\" */ '@aamasri/busy')\n\t\t.then(busy => {\n\t\t\tbusy.start('Logging Out', 10, true);\n\t\t\tjQuery.post('/login/ajaxLogout').done(() => {\n\t\t\t\tbusy.stop('Logging Out');\n\n\t\t\t\timport(/* webpackChunkName: \"dialog\" */ '@aamasri/dialog').then(dialog => {\n\t\t\t\t\tdialog.closeAll();\n\t\t\t\t\tlocalStorage.setItem('visitorId', ''); // to prevent a browser reload loop\n\t\t\t\t\tlocalStorage.setItem('forcingReload', 'true');\n\t\t\t\t\twindow.location.reload();\n\t\t\t\t});\n\t\t\t});\n\t\t})\n\t\t.catch(error => { throw `loading busy failed with: ${error.message}`; });\n}\n\n\n\nexport function loginPrompt() {\n\timport(/* webpackChunkName: \"busy\" */ '@aamasri/busy')\n\t\t.then(busy => {\n\t\t\tif (busy.queue.length)\n\t\t\t\twindow.setTimeout(loginPrompt, 1000);\t// try again in a moment\n\t\t\telse {\n\t\t\t\tjQuery('div.growlBox').remove();\t// close any open growl messages\n\t\t\t\timport(/* webpackChunkName: \"dialog\" */ '@aamasri/dialog').then(dialog => {\n\t\t\t\t\tdialog.closeAll();\t\t\t\t\t// close any open popup dialogs\n\t\t\t\t\tpopupLoginDialog();\t\t\t\t\t// display login popup\n\t\t\t\t});\n\t\t\t}\n\t\t})\n\t\t.catch(error => { throw `loading busy failed with: ${error.message}`; });\n}\n\n\n\n// if visitor is logged out but requires authentication to access the page, automatically popup a login dialog box.\nexport function checkAccess() {\n\tif (!jQuery('.disableLoginPopup').length && (jQuery('[onclick*=\"popupLoginDialog\"]').length > 1 || jQuery('.forceLoginPopup').length))\n\t\twindow.setTimeout(popupLoginDialog, 5000);\n}\n\n\n\n// open the login form in a dialog box\nexport function popupLoginDialog() {\n\t// login needs cookies. Skip if login box already open.\n\tif (!document.querySelector('#loginForm')) {\n\t\timport(/* webpackChunkName: \"dialog\" */ '@aamasri/dialog').then(dialog => {\n\t\t\tif (navigator.cookieEnabled)\n\t\t\t\tdialog.open({\n\t\t\t\t\ttitle: 'Login',\n\t\t\t\t\tsource: '/login?_=' + Math.round(Math.random() * 10000),\n\t\t\t\t\tpersistent: true,\n\t\t\t\t\tmodal: true\n\t\t\t\t}).then();\n\t\t\telse\n\t\t\t\tdialog.open({ title: 'Login', source: 'Login requires cookies to be enabled! Please check your browser settings and any browser security plugins.', modal: true }).then();\n\t\t});\n\t}\n}\n\n\n\n\nexport function adminPasswordReset(userId, fullName, email) {\n\tif (typeof userId === 'undefined' || !parseInt(userId))\n\t\talert('System error: the user was not specified');\n\n\tdialog.open({\n\t\ttitle: 'Send a Login Link',\n\t\tsource: `

Please confirm you want to send a login link to:

${fullName} <${email || 'missing email address'}>

\n\t\t
\n\t\t\t\n\t\t\t\n\t\t
`,\n\t\tmodal: true\n\t}).then();\n}\n\n\n\n\n","// global js error handler\n\nconst debug = false;\nconst uncaught = require('uncaught');\nlet errorCount = 0;\n\n\nuncaught.start();\nuncaught.addListener(error => {\n if (!error)\n return;\n\n if (navigator.userAgent && (navigator.userAgent.includes('MiuiBrowser') || navigator.userAgent.includes('Jooblebot')))\n return; // buggy browsers/robots\n\n errorCount++;\n console.log(`Uncaught error or promise rejection #${errorCount}:`, error);\n\n if (errorCount > 2) {\n console.warn(`max uncaught error count (${errorCount}) reached - aborting error reporting`);\n return;\n }\n\n if (typeof base_url === 'undefined')\n base_url = '/';\n\n const $docHTML = jQuery('html')\n .remove('script')\n .html()\n .replace(/(src|href)=\"\\//gi, `$1=\"${base_url}`); // relative -> absolute links\n\n const coreJSError = (typeof error === 'object' && typeof error['stack'] === 'string') ? error.stack.replace(/\\r\\n|\\r|\\n/g, '
 ') : ''; // newline to
= error.stack.replace(/\\r\\n|\\r|\\n/g, '
 '); // newline to
\n let devErrorMessage = `

An uncaught javascript error was detected (error.stack):

\n
${coreJSError}
\n
\n

error.message:

\n
${error.message}
\n

on page: ${window.location.href},\n
browser: ${navigator.userAgent || 'unknown'}

`;\n\n // send the error to the server (in development environment, the server will reject it resulting in a local popup)\n if (window.environment === 'development')\n dialog.open({ title: 'Uncaught Error', source: devErrorMessage, persistent: true }).then(); // local error display\n else {\n jQuery.post('/messaging/sendJsErrorReport', { errorMessage: devErrorMessage, screenshot: $docHTML })\n .done(function () {\n if (debug) console.debug('An uncaught js error was successfully sent to the server');\n }).fail(function () {\n console.error(`An uncaught js error failed to reach the developer!`);\n });\n }\n\n});","/**\n * @fileOverview automatically lazily loads modules like dialog, growl, draggable, sortable on first invocation.\n * @author Ananda Masri\n */\n\nconst debug = false;\n\n\n\n// busy module - create dummy method stubs that trigger lazy loading\nwindow.busy = {};\nfor (let method of ['start', 'stop', 'reset', 'status']) {\n window.busy[method] = async function (...args) {\n import(/* webpackChunkName: \"busy\" */ '@aamasri/busy')\n .then(module => {\n window.busy = module;\n if (debug) console.debug('loaded busy', typeof module);\n return window.busy[method](...args); // actual function invocation with original arguments\n })\n .catch(error => { throwLoadingError('busy', error); });\n }\n}\n\n\n// auth module - create dummy method stubs that trigger lazy loading\nwindow.auth = {};\nfor (let method of [ 'logout', 'loginPrompt', 'checkAccess', 'popupLoginDialog', 'sha1', 'adminPasswordReset' ]) {\n window.auth[method] = function (...args) {\n import(/* webpackChunkName: \"auth\" */ '../js/auth').then((module) => {\n window.auth = module;\n if (debug) console.debug('loaded auth', typeof module);\n return window.auth[method](...args); // actual function invocation with original arguments\n }).catch(error => { throwLoadingError('auth', error); });\n }\n}\n\n\n\n// dialog package - create dummy method stubs to trigger lazy loading\nwindow.dialog = {};\n\n// this is slightly problematic for synchronous functions because the stub is async (to lazy-load the package).\n// Once the package is loaded, however, async stubs could change to a synchronous function.\n// calling a synchronous function asynchronously throws an error and vice versa\nfor (let method of ['open', 'close', 'closeAll', 'closeLast']) {\n window.dialog[method] = async function (...args) {\n window.dialog = await import(/* webpackChunkName: \"dialog\" */ '@aamasri/dialog').catch(error => {\n //window.dialog = await import(/* webpackChunkName: \"dialog-debug\" */ '../components/dialog-debug/dialog.js').catch(error => {\n throwLoadingError('dialog', error);\n }); // note that this will overwrite the async fn stub\n\n if (debug) console.debug('loaded dialog', typeof module);\n return window.dialog[method](...args); // actual function invocation with original arguments\n }\n}\n\n\n\n\n// popup package - create dummy method stubs to trigger lazy loading\nwindow.popup = {};\nfor (let method of ['open', 'close', 'closeAll', 'closeLast']) {\n window.popup[method] = async function (...args) {\n window.popup = await import(/* webpackChunkName: \"popup\" */ '@aamasri/popup').catch(error => {\n throwLoadingError('popup', error);\n });\n\n // note that this will overwrite the async fn stub\n if (debug) console.debug('loaded popup', typeof module);\n return window.popup[method](...args); // actual function invocation with original arguments\n }\n}\n\n\n\n// filemanager module - create dummy method stubs that trigger lazy loading\nwindow.filemanager = {};\nfor (let method of ['launchFileFinder', 'insertFile', 'insertImage', 'initAjaxUpload', 'showFileContextMenu', 'openFile', 'removeFile', 'removeFileCleanup']) {\n window.filemanager[method] = async function (...args) {\n try {\n const module = await import(/* webpackChunkName: \"filemanager\" */ '../js/filemanager');\n window.filemanager = module;\n if (debug) console.debug('loaded filemanager', typeof module);\n return window.filemanager[method](...args); // actual function invocation with original arguments\n } catch (error) {\n throwLoadingError('filemanager', error);\n }\n }\n}\n\n\n\n// growl package - create dummy method stubs that trigger lazy loading\nwindow.growl = async function (...args) {\n try {\n const module = await import(/* webpackChunkName: \"growl\" */ '../../../node_modules/growl-js');\n if (debug) console.debug('loaded growl', typeof module.default);\n window.growl = module.default;\n return window.growl(...args); // actual function invocation with original arguments\n } catch (error) {\n throwLoadingError('filemanager', error);\n }\n}\n\n\n\n\n// apply prism to any code on page\nwindow.highlightSyntax = function () {\n import(/* webpackChunkName: \"syntaxHighlighter\" */ '../js/syntaxHighlighter').then(module => {\n if (debug) console.debug('loaded syntaxHighlighter', typeof module.highlightSyntax);\n module.highlightSyntax(); // actual function invocation with original arguments\n })\n .catch(error => { throwLoadingError('syntaxHighlighter', error); });\n}\n\n\n\n\n/** allows scripts to load packages at point of use\n * e.g., window.load('jquery-ui-slider').then(..\n *\n * @param {string|object} packageNames - the package name(s) to load\n * @returns {Promise}\n */\nexport const load = (packageNames) => {\n if (typeof packageNames === 'string')\n packageNames = packageNames.split(/[\\s,]+/);\n\n const promiseList = [];\n for (const packageName of packageNames) {\n if (debug) console.debug(`loading ${packageName}`);\n\n switch (packageName) {\n case 'jquery-ui-slider':\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-widget\" */ 'jquery-ui/ui/widget'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-keycode\" */ 'jquery-ui/ui/keycode'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-widgets-mouse\" */ 'jquery-ui/ui/widgets/mouse'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-widgets-slider\" */ 'jquery-ui/ui/widgets/slider'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-themes-base-core\" */ 'jquery-ui/themes/base/core.css'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-themes-base-slider\" */ 'jquery-ui/themes/base/slider.css'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-themes-base-theme\" */ 'jquery-ui/themes/base/theme.css'));\n break;\n\n case 'jquery-ui-draggable':\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-widget\" */ 'jquery-ui/ui/widget'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-data\" */ 'jquery-ui/ui/data'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-scroll-parent\" */ 'jquery-ui/ui/scroll-parent'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-widgets-draggable\" */ 'jquery-ui/ui/widgets/draggable'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-widgets-mouse\" */ 'jquery-ui/ui/widgets/mouse'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-themes-base-core\" */ 'jquery-ui/themes/base/core.css'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-themes-base-draggable\" */ 'jquery-ui/themes/base/draggable.css'));\n break;\n\n case 'jquery-ui-droppable':\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-widget\" */ 'jquery-ui/ui/widget'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-data\" */ 'jquery-ui/ui/data'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-scroll-parent\" */ 'jquery-ui/ui/scroll-parent'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-widgets-sortable\" */ 'jquery-ui/ui/widgets/draggable'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-widgets-sortable\" */ 'jquery-ui/ui/widgets/droppable'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-widgets-mouse\" */ 'jquery-ui/ui/widgets/mouse'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-themes-base-core\" */ 'jquery-ui/themes/base/core.css'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-themes-base-sortable\" */ 'jquery-ui/themes/base/draggable.css'));\n break;\n\n case 'jquery-ui-sortable':\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-widget\" */ 'jquery-ui/ui/widget'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-data\" */ 'jquery-ui/ui/data'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-disable-selection\" */ 'jquery-ui/ui/disable-selection'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-scroll-parent\" */ 'jquery-ui/ui/scroll-parent'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-widgets-sortable\" */ 'jquery-ui/ui/widgets/sortable'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-widgets-mouse\" */ 'jquery-ui/ui/widgets/mouse'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-themes-base-core\" */ 'jquery-ui/themes/base/core.css'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-themes-base-sortable\" */ 'jquery-ui/themes/base/sortable.css'));\n break;\n\n case 'jquery-ui-effects':\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-effect\" */ 'jquery-ui/ui/effect')); // core effects/easing\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-effect-transfer\" */ 'jquery-ui/ui/effects/effect-transfer'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-effect-puff\" */ 'jquery-ui/ui/effects/effect-puff'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-effect-scale\" */ 'jquery-ui/ui/effects/effect-scale')); // for puff effect\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-effect-size\" */ 'jquery-ui/ui/effects/effect-size')); // for puff effect\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-effect-highlight\" */ 'jquery-ui/ui/effects/effect-highlight'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-effect-pulsate\" */ 'jquery-ui/ui/effects/effect-pulsate'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-effect-bounce\" */ 'jquery-ui/ui/effects/effect-bounce'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-effect-pulsate\" */ 'jquery-ui/ui/effects/effect-clip'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-effect-pulsate\" */ 'jquery-ui/ui/effects/effect-pulsate'));\n break;\n\n case 'jquery-ui-autocomplete':\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-widget\" */ 'jquery-ui/ui/widget'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-position\" */ 'jquery-ui/ui/position'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-keycode\" */ 'jquery-ui/ui/keycode'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-unique-id\" */ 'jquery-ui/ui/unique-id'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-widgets-autocomplete\" */ 'jquery-ui/ui/widgets/autocomplete'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-widgets-menu\" */ 'jquery-ui/ui/widgets/menu'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-themes-base-core\" */ 'jquery-ui/themes/base/core.css'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-themes-base-autocomplete\" */ 'jquery-ui/themes/base/autocomplete.css'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-themes-base-menu.css\" */ 'jquery-ui/themes/base/menu.css'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-themes-base-theme\" */ 'jquery-ui/themes/base/theme.css'));\n break;\n\n case 'jquery-ui-datepicker':\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-keycode\" */ 'jquery-ui/ui/keycode'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-widgets-datepicker\" */ 'jquery-ui/ui/widgets/datepicker'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-themes-base-core\" */ 'jquery-ui/themes/base/core.css'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-themes-base-datepicker\" */ 'jquery-ui/themes/base/datepicker.css'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-themes-base-theme\" */ 'jquery-ui/themes/base/theme.css'));\n break;\n\n case 'jquery-ui-progressbar':\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-widget\" */ 'jquery-ui/ui/widget'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-widgets-progressbar\" */ 'jquery-ui/ui/widgets/progressbar'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-themes-base-core\" */ 'jquery-ui/themes/base/core.css'));\n promiseList.push(import(/* webpackChunkName: \"jquery-ui-themes-base-progressbar\" */ 'jquery-ui/themes/base/progressbar.css'));\n break;\n\n case 'js-cookie':\n return import(/* webpackChunkName: \"js-cookie\" */ 'js-cookie').then(module => module.default)\n .catch(error => { throwLoadingError('js-cookie', error); })\n\n case 'filemanager':\n return import(/* webpackChunkName: \"filemanager\" */ './filemanager')\n .catch(error => { throwLoadingError('filemanager', error); });\n\n case 'image':\n return import(/* webpackChunkName: \"image\" */ '@aamasri/web-components/src/js/image')\n .catch(error => { throwLoadingError('image', error); });\n\n case 'html-editor':\n return import(/* webpackChunkName: \"html-editor\" */ '../components/ckeditor5/index')\n .catch(error => { throwLoadingError('html-editor', error); });\n\n case 'file-utils':\n return import(/* webpackChunkName: \"file-utils\" */ '@aamasri/web-components/src/js/file-utils')\n .catch(error => { throwLoadingError('file-utils', error); });\n\n case 'validation':\n return import('@aamasri/web-components/src/js/validation')\n .catch(error => { throwLoadingError('validation', error); });\n\n case 'dom-utils':\n return import(/* webpackChunkName: \"dom-utils\" */ '@aamasri/web-components/src/js/dom-utils')\n .catch(error => { throwLoadingError('dom-utils', error); });\n\n case 'string-prototypes':\n return import(/* webpackChunkName: \"string-prototypes\" */ '@aamasri/web-components/src/js/string-prototypes')\n .catch(error => { throwLoadingError('string-prototypes', error); });\n\n case 'date-utils':\n return import(/* webpackChunkName: \"date-utils\" */ '@aamasri/web-components/src/js/date-utils')\n .catch(error => { throwLoadingError('date-utils', error); });\n\n case 'levenshtein':\n return import(/* webpackChunkName: \"levenshtein\" */ './levenshtein')\n .catch(error => { throwLoadingError('levenshtein', error); });\n\n case 'notifications':\n return import(/* webpackChunkName: \"notifications\" */ './notifications')\n .catch(error => { throwLoadingError('notifications', error); });\n\n case 'dialog':\n return import(/* webpackChunkName: \"dialog\" */ '@aamasri/dialog')\n .catch(error => { throwLoadingError('dialog', error); });\n\n case 'popup':\n return import(/* webpackChunkName: \"popup\" */ '@aamasri/popup')\n .catch(error => { throwLoadingError('popup', error); });\n\n case 'modern-browser-support':\n return import(/* webpackChunkName: \"browser-support\" */ './browser-support')\n .catch(error => { throwLoadingError('browser-support', error); });\n\n case 'slideshow':\n return import(/* webpackChunkName: \"slideshow\" */ '../components/slideshow/slideshow')\n .catch(error => { throwLoadingError('slideshow', error); });\n\n case 'image-resizer':\n return import(/* webpackChunkName: \"image-resizer\" */ '../components/image-resizer')\n .catch(error => { throwLoadingError('image resizer', error); });\n\n case 'json-api':\n return import(/* webpackChunkName: \"json-api\" */ '@aamasri/web-components/src/js/json-api')\n .catch(error => { throwLoadingError('json-api', error); });\n\n default:\n throw `loading package \"${packageName}\" isn't supported by fn window.load(package) - yet!`;\n }\n }\n\n // merge all promises into a single promise (they can load in any order)\n return Promise.all(promiseList)\n .catch(error => { throwLoadingError(packageNames, error) });\n};\n\n\n\n\nfunction throwLoadingError(packageName, error) {\n if (document.visibilityState === 'visible')\n throw `loading ${packageName} failed with: ${error.message}`;\n else\n console.error(`page unloading - ${packageName} failed to load`); // this never happens - we always get an \"Uncaught (in promise)\" error\n}\n\n\n\nwindow.load = load;","const debug = false;\n\n\n// lazy loading code syntax highlighter (load prism-js only if there are uninitialized code tags)\nexport const highlightSyntax = () => {\n const unHighlightedCodeBlocks = document.querySelectorAll('pre:not([class]) code[class*=\"language-\"]');\n // are there any uninitialized code tags (i.e.
 with no class containing )\n    if (unHighlightedCodeBlocks.length) {\n        // prism needs < converted to < for it to display HTML tags\n        unHighlightedCodeBlocks.forEach(codeBlock => {\n            codeBlock.innerHTML = codeBlock.innerHTML.replaceAll('<', '<');\n        });\n\n        if (debug) console.debug('detected code blocks that are not syntax highlighted');\n\n        if (typeof window.Prism !== 'undefined') {\n            if (debug) console.debug('highlighting syntax (Prism.js has been loaded previously)');\n            window.Prism.highlightAll();\n        } else {\n            if (debug) console.debug('loading the syntax highlighter...');\n\n            const prismPromises = [];\n            prismPromises.push(import(/* webpackChunkName: \"prismjs\" */ 'prismjs/prism.js'));\n            /* Prism CSS gets overwritten by ckeditor's code-block module and should be included statically in the root css bundle\n            prismPromises.push(import(/* webpackChunkName: \"prism-okaidia-theme\" 'prismjs/themes/prism-okaidia.css')); */\n            prismPromises.push(import(/* webpackChunkName: \"prism-autoloader\" */ 'prismjs/plugins/autoloader/prism-autoloader'));\n            Promise.all(prismPromises).then(() => {\n                if (debug) console.debug(`syntax highlighter loaded successfully (${typeof window.Prism})`);\n            }).catch(error => {\n                throw `loading prism failed with: ${error.message}`;\n            });\n        }\n    } else\n        if (debug) console.debug('no uninitialized code tag blocks detected');\n}","/*!\n * jQuery JavaScript Library v3.7.1\n * https://jquery.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2023-08-28T13:37Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket trac-14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML  elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar version = \"3.7.1\",\n\n\trhtmlSuffix = /HTML$/i,\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\n\t// Retrieve the text value of an array of DOM nodes\n\ttext: function( elem ) {\n\t\tvar node,\n\t\t\tret = \"\",\n\t\t\ti = 0,\n\t\t\tnodeType = elem.nodeType;\n\n\t\tif ( !nodeType ) {\n\n\t\t\t// If no nodeType, this is expected to be an array\n\t\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t\t// Do not traverse comment nodes\n\t\t\t\tret += jQuery.text( node );\n\t\t\t}\n\t\t}\n\t\tif ( nodeType === 1 || nodeType === 11 ) {\n\t\t\treturn elem.textContent;\n\t\t}\n\t\tif ( nodeType === 9 ) {\n\t\t\treturn elem.documentElement.textContent;\n\t\t}\n\t\tif ( nodeType === 3 || nodeType === 4 ) {\n\t\t\treturn elem.nodeValue;\n\t\t}\n\n\t\t// Do not include comment or processing instruction nodes\n\n\t\treturn ret;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\tisXMLDoc: function( elem ) {\n\t\tvar namespace = elem && elem.namespaceURI,\n\t\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t\t// Assume HTML when documentElement doesn't yet exist, such as inside\n\t\t// document fragments.\n\t\treturn !rhtmlSuffix.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar pop = arr.pop;\n\n\nvar sort = arr.sort;\n\n\nvar splice = arr.splice;\n\n\nvar whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n\n\nvar rtrimCSS = new RegExp(\n\t\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\",\n\t\"g\"\n);\n\n\n\n\n// Note: an element does not contain itself\njQuery.contains = function( a, b ) {\n\tvar bup = b && b.parentNode;\n\n\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE doesn't have `contains` on SVG.\n\t\ta.contains ?\n\t\t\ta.contains( bup ) :\n\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t) );\n};\n\n\n\n\n// CSS string/identifier serialization\n// https://drafts.csswg.org/cssom/#common-serializing-idioms\nvar rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\n\nfunction fcssescape( ch, asCodePoint ) {\n\tif ( asCodePoint ) {\n\n\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\tif ( ch === \"\\0\" ) {\n\t\t\treturn \"\\uFFFD\";\n\t\t}\n\n\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t}\n\n\t// Other potentially-special ASCII characters get backslash-escaped\n\treturn \"\\\\\" + ch;\n}\n\njQuery.escapeSelector = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\n\n\n\nvar preferredDoc = document,\n\tpushNative = push;\n\n( function() {\n\nvar i,\n\tExpr,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\tpush = pushNative,\n\n\t// Local document vars\n\tdocument,\n\tdocumentElement,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\tmatches,\n\n\t// Instance-specific data\n\texpando = jQuery.expando,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|\" +\n\t\t\"loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trleadingCombinator = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" +\n\t\twhitespace + \"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\tID: new RegExp( \"^#(\" + identifier + \")\" ),\n\t\tCLASS: new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\tTAG: new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\tATTR: new RegExp( \"^\" + attributes ),\n\t\tPSEUDO: new RegExp( \"^\" + pseudos ),\n\t\tCHILD: new RegExp(\n\t\t\t\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\tbool: new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\tneedsContext: new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// https://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\tif ( nonHex ) {\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\treturn nonHex;\n\t\t}\n\n\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t// Support: IE <=11+\n\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t// surrogate pair\n\t\treturn high < 0 ?\n\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes; see `setDocument`.\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE/Edge.\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && nodeName( elem, \"fieldset\" );\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android <=4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = {\n\t\tapply: function( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t},\n\t\tcall: function( target ) {\n\t\t\tpushNative.apply( target, slice.call( arguments, 1 ) );\n\t\t}\n\t};\n}\n\nfunction find( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE 9 only\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE 9 only\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tfind.contains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && context.getElementsByClassName ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( !nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when\n\t\t\t\t\t// strict-comparing two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( newContext != context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = jQuery.escapeSelector( nid );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrimCSS, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties\n\t\t// (see https://github.com/jquery/sizzle/issues/157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by jQuery selector module\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\treturn nodeName( elem, \"input\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\treturn ( nodeName( elem, \"input\" ) || nodeName( elem, \"button\" ) ) &&\n\t\t\telem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11+\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a jQuery selector context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [node] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nfunction setDocument( node ) {\n\tvar subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocumentElement = document.documentElement;\n\tdocumentIsHTML = !jQuery.isXMLDoc( document );\n\n\t// Support: iOS 7 only, IE 9 - 11+\n\t// Older browsers didn't support unprefixed `matches`.\n\tmatches = documentElement.matches ||\n\t\tdocumentElement.webkitMatchesSelector ||\n\t\tdocumentElement.msMatchesSelector;\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors\n\t// (see trac-13936).\n\t// Limit the fix to IE & Edge Legacy; despite Edge 15+ implementing `matches`,\n\t// all IE 9+ and Edge Legacy versions implement `msMatchesSelector` as well.\n\tif ( documentElement.msMatchesSelector &&\n\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tpreferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t\tsubWindow.addEventListener( \"unload\", unloadHandler );\n\t}\n\n\t// Support: IE <10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocumentElement.appendChild( el ).id = jQuery.expando;\n\t\treturn !document.getElementsByName ||\n\t\t\t!document.getElementsByName( jQuery.expando ).length;\n\t} );\n\n\t// Support: IE 9 only\n\t// Check to see if it's possible to do matchesSelector\n\t// on a disconnected node.\n\tsupport.disconnectedMatch = assert( function( el ) {\n\t\treturn matches.call( el, \"*\" );\n\t} );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// IE/Edge don't support the :scope pseudo-class.\n\tsupport.scope = assert( function() {\n\t\treturn document.querySelectorAll( \":scope\" );\n\t} );\n\n\t// Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only\n\t// Make sure the `:has()` argument is parsed unforgivingly.\n\t// We include `*` in the test to detect buggy implementations that are\n\t// _selectively_ forgiving (specifically when the list includes at least\n\t// one valid selector).\n\t// Note that we treat complete lack of support for `:has()` as if it were\n\t// spec-compliant support, which is fine because use of `:has()` in such\n\t// environments will fail in the qSA path and fall back to jQuery traversal\n\t// anyway.\n\tsupport.cssHas = assert( function() {\n\t\ttry {\n\t\t\tdocument.querySelector( \":has(*,:jqfake)\" );\n\t\t\treturn false;\n\t\t} catch ( e ) {\n\t\t\treturn true;\n\t\t}\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter.ID = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find.ID = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter.ID =  function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find.ID = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find.TAG = function( tag, context ) {\n\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t// DocumentFragment nodes don't have gEBTN\n\t\t} else {\n\t\t\treturn context.querySelectorAll( tag );\n\t\t}\n\t};\n\n\t// Class\n\tExpr.find.CLASS = function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\trbuggyQSA = [];\n\n\t// Build QSA regex\n\t// Regex strategy adopted from Diego Perini\n\tassert( function( el ) {\n\n\t\tvar input;\n\n\t\tdocumentElement.appendChild( el ).innerHTML =\n\t\t\t\"\" +\n\t\t\t\"\";\n\n\t\t// Support: iOS <=7 - 8 only\n\t\t// Boolean attributes and \"value\" are not treated correctly in some XML documents\n\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t}\n\n\t\t// Support: iOS <=7 - 8 only\n\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\trbuggyQSA.push( \"~=\" );\n\t\t}\n\n\t\t// Support: iOS 8 only\n\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t}\n\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\trbuggyQSA.push( \":checked\" );\n\t\t}\n\n\t\t// Support: Windows 8 Native Apps\n\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tdocumentElement.appendChild( el ).disabled = true;\n\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t}\n\n\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t// Adding a temporary attribute to the document before the selection works\n\t\t// around the issue.\n\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"name\", \"\" );\n\t\tel.appendChild( input );\n\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t}\n\t} );\n\n\tif ( !support.cssHas ) {\n\n\t\t// Support: Chrome 105 - 110+, Safari 15.4 - 16.3+\n\t\t// Our regular `try-catch` mechanism fails to detect natively-unsupported\n\t\t// pseudo-classes inside `:has()` (such as `:has(:contains(\"Foo\"))`)\n\t\t// in browsers that parse the `:has()` argument as a forgiving selector list.\n\t\t// https://drafts.csswg.org/selectors/#relational now requires the argument\n\t\t// to be parsed unforgivingly, but browsers have not yet fully adjusted.\n\t\trbuggyQSA.push( \":has\" );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = function( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a === document || a.ownerDocument == preferredDoc &&\n\t\t\t\tfind.contains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b === document || b.ownerDocument == preferredDoc &&\n\t\t\t\tfind.contains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t};\n\n\treturn document;\n}\n\nfind.matches = function( expr, elements ) {\n\treturn find( expr, null, null, elements );\n};\n\nfind.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn find( expr, document, null, [ elem ] ).length > 0;\n};\n\nfind.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn jQuery.contains( context, elem );\n};\n\n\nfind.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (see trac-13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\tif ( val !== undefined ) {\n\t\treturn val;\n\t}\n\n\treturn elem.getAttribute( name );\n};\n\nfind.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\njQuery.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\t//\n\t// Support: Android <=4.0+\n\t// Testing for detecting duplicates is unpredictable so instead assume we can't\n\t// depend on duplicate detection in all browsers without a stable sort.\n\thasDuplicate = !support.sortStable;\n\tsortInput = !support.sortStable && slice.call( results, 0 );\n\tsort.call( results, sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tsplice.call( results, duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\njQuery.fn.uniqueSort = function() {\n\treturn this.pushStack( jQuery.uniqueSort( slice.apply( this ) ) );\n};\n\nExpr = jQuery.expr = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\tATTR: function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] || match[ 5 ] || \"\" )\n\t\t\t\t.replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\tCHILD: function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tfind.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" )\n\t\t\t\t);\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tfind.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\tPSEUDO: function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr.CHILD.test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\tTAG: function( nodeNameSelector ) {\n\t\t\tvar expectedNodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn nodeName( elem, expectedNodeName );\n\t\t\t\t};\n\t\t},\n\n\t\tCLASS: function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace + \")\" + className +\n\t\t\t\t\t\"(\" + whitespace + \"|$)\" ) ) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\tATTR: function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = find.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\tif ( operator === \"=\" ) {\n\t\t\t\t\treturn result === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"!=\" ) {\n\t\t\t\t\treturn result !== check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"^=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) === 0;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"*=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"$=\" ) {\n\t\t\t\t\treturn check && result.slice( -check.length ) === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"~=\" ) {\n\t\t\t\t\treturn ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" )\n\t\t\t\t\t\t.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"|=\" ) {\n\t\t\t\t\treturn result === check || result.slice( 0, check.length + 1 ) === check + \"-\";\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t};\n\t\t},\n\n\t\tCHILD: function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnodeName( node, name ) :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\t\t\t\t\t\t\touterCache = parent[ expando ] || ( parent[ expando ] = {} );\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\t\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnodeName( node, name ) :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\t\t\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\tPSEUDO: function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// https://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tfind.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as jQuery does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf.call( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\tnot: markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrimCSS, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element\n\t\t\t\t\t// (see https://github.com/jquery/sizzle/issues/299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\thas: markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn find( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\tcontains: markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || jQuery.text( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// https://www.w3.org/TR/selectors/#lang-pseudo\n\t\tlang: markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tfind.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\ttarget: function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\troot: function( elem ) {\n\t\t\treturn elem === documentElement;\n\t\t},\n\n\t\tfocus: function( elem ) {\n\t\t\treturn elem === safeActiveElement() &&\n\t\t\t\tdocument.hasFocus() &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\tenabled: createDisabledPseudo( false ),\n\t\tdisabled: createDisabledPseudo( true ),\n\n\t\tchecked: function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\treturn ( nodeName( elem, \"input\" ) && !!elem.checked ) ||\n\t\t\t\t( nodeName( elem, \"option\" ) && !!elem.selected );\n\t\t},\n\n\t\tselected: function( elem ) {\n\n\t\t\t// Support: IE <=11+\n\t\t\t// Accessing the selectedIndex property\n\t\t\t// forces the browser to treat the default option as\n\t\t\t// selected when in an optgroup.\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\tempty: function( elem ) {\n\n\t\t\t// https://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t//   but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\tparent: function( elem ) {\n\t\t\treturn !Expr.pseudos.empty( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\theader: function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\tinput: function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\tbutton: function( elem ) {\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"button\" ||\n\t\t\t\tnodeName( elem, \"button\" );\n\t\t},\n\n\t\ttext: function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"text\" &&\n\n\t\t\t\t// Support: IE <10 only\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear\n\t\t\t\t// with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\tfirst: createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\tlast: createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\teq: createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\teven: createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\todd: createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\tlt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i;\n\n\t\t\tif ( argument < 0 ) {\n\t\t\t\ti = argument + length;\n\t\t\t} else if ( argument > length ) {\n\t\t\t\ti = length;\n\t\t\t} else {\n\t\t\t\ti = argument;\n\t\t\t}\n\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\tgt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos.nth = Expr.pseudos.eq;\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\nfunction tokenize( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rleadingCombinator.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrimCSS, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\tif ( parseOnly ) {\n\t\treturn soFar.length;\n\t}\n\n\treturn soFar ?\n\t\tfind.error( selector ) :\n\n\t\t// Cache the tokens\n\t\ttokenCache( selector, groups ).slice( 0 );\n}\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\tif ( skip && nodeName( elem, skip ) ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = outerCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\touterCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tfind( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem, matcherOut,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed ||\n\t\t\t\tmultipleContexts( selector || \"*\",\n\t\t\t\t\tcontext.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems;\n\n\t\tif ( matcher ) {\n\n\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter\n\t\t\t// or preexisting results,\n\t\t\tmatcherOut = postFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t[] :\n\n\t\t\t\t// ...otherwise use results directly\n\t\t\t\tresults;\n\n\t\t\t// Find primary matches\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t} else {\n\t\t\tmatcherOut = matcherIn;\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf.call( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf.call( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tvar ret = ( !leadingRelative && ( xml || context != outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element\n\t\t\t// (see https://github.com/jquery/sizzle/issues/299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 )\n\t\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrimCSS, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find.TAG( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: iOS <=7 - 9 only\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching\n\t\t\t// elements by id. (see trac-14142)\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tjQuery.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\nfunction compile( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n}\n\n/**\n * A low-level selection function that works with jQuery's compiled\n *  selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n *  selector function built with jQuery selector compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nfunction select( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find.ID(\n\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\tcontext\n\t\t\t) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr.needsContext.test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) &&\n\t\t\t\t\t\ttestContext( context.parentNode ) || context\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n}\n\n// One-time assignments\n\n// Support: Android <=4.0 - 4.1+\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Android <=4.0 - 4.1+\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\njQuery.find = find;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.unique = jQuery.uniqueSort;\n\n// These have always been private, but they used to be documented as part of\n// Sizzle so let's maintain them for now for backwards compatibility purposes.\nfind.compile = compile;\nfind.select = select;\nfind.setDocument = setDocument;\nfind.tokenize = tokenize;\n\nfind.escape = jQuery.escapeSelector;\nfind.getText = jQuery.text;\nfind.isXML = jQuery.isXMLDoc;\nfind.selectors = jQuery.expr;\nfind.support = jQuery.support;\nfind.uniqueSort = jQuery.uniqueSort;\n\n\t/* eslint-enable */\n\n} )();\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over  to avoid XSS via location.hash (trac-9521)\n\t// Strict HTML recognition (trac-11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to jQuery#find\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t//  elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.error );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the error, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getErrorHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getErrorHook();\n\n\t\t\t\t\t\t\t\t// The deprecated alias of the above. While the name suggests\n\t\t\t\t\t\t\t\t// returning the stack, not an error instance, jQuery just passes\n\t\t\t\t\t\t\t\t// it directly to `console.warn` so both will work; an instance\n\t\t\t\t\t\t\t\t// just better cooperates with source maps.\n\t\t\t\t\t\t\t\t} else if ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n// If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error\n// captured before the async barrier to get the original error cause\n// which may otherwise be hidden.\njQuery.Deferred.exceptionHook = function( error, asyncError ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message,\n\t\t\terror.stack, asyncError );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See trac-6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (trac-9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t//  - Node\n\t//    - Node.ELEMENT_NODE\n\t//    - Node.DOCUMENT_NODE\n\t//  - Object\n\t//    - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see trac-8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t//   1. No key was specified\n\t\t//   2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t//   1. The entire cache object\n\t\t//   2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t//   1. An object of properties\n\t\t//   2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (trac-14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (trac-11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (trac-14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces \";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (trac-13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting  or other required elements.\n\tthead: [ 1, \"\", \"
\" ],\n\tcol: [ 2, \"\", \"
\" ],\n\ttr: [ 2, \"\", \"
\" ],\n\ttd: [ 3, \"\", \"
\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (trac-12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (trac-13208)\n\t\t\t\t// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (trac-13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", true );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, isSetup ) {\n\n\t// Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !isSetup ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\tif ( !saved ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tdataPriv.set( this, type, false );\n\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering\n\t\t\t\t// the native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, jQuery.event.trigger(\n\t\t\t\t\tsaved[ 0 ],\n\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\tthis\n\t\t\t\t) );\n\n\t\t\t\t// Abort handling of the native event by all jQuery handlers while allowing\n\t\t\t\t// native handlers on the same element to run. On target, this is achieved\n\t\t\t\t// by stopping immediate propagation just on the jQuery event. However,\n\t\t\t\t// the native event is re-wrapped by a jQuery one on each level of the\n\t\t\t\t// propagation so the only way to stop it for jQuery is to stop it for\n\t\t\t\t// everyone via native `stopPropagation()`. This is not a problem for\n\t\t\t\t// focus/blur which don't bubble, but it does also stop click on checkboxes\n\t\t\t\t// and radios. We accept this limitation.\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.isImmediatePropagationStopped = returnTrue;\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (trac-504, trac-13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\n\tfunction focusMappedHandler( nativeEvent ) {\n\t\tif ( document.documentMode ) {\n\n\t\t\t// Support: IE 11+\n\t\t\t// Attach a single focusin/focusout handler on the document while someone wants\n\t\t\t// focus/blur. This is because the former are synchronous in IE while the latter\n\t\t\t// are async. In other browsers, all those handlers are invoked synchronously.\n\n\t\t\t// `handle` from private data would already wrap the event, but we need\n\t\t\t// to change the `type` here.\n\t\t\tvar handle = dataPriv.get( this, \"handle\" ),\n\t\t\t\tevent = jQuery.event.fix( nativeEvent );\n\t\t\tevent.type = nativeEvent.type === \"focusin\" ? \"focus\" : \"blur\";\n\t\t\tevent.isSimulated = true;\n\n\t\t\t// First, handle focusin/focusout\n\t\t\thandle( nativeEvent );\n\n\t\t\t// ...then, handle focus/blur\n\t\t\t//\n\t\t\t// focus/blur don't bubble while focusin/focusout do; simulate the former by only\n\t\t\t// invoking the handler at the lower level.\n\t\t\tif ( event.target === event.currentTarget ) {\n\n\t\t\t\t// The setup part calls `leverageNative`, which, in turn, calls\n\t\t\t\t// `jQuery.event.add`, so event handle will already have been set\n\t\t\t\t// by this point.\n\t\t\t\thandle( event );\n\t\t\t}\n\t\t} else {\n\n\t\t\t// For non-IE browsers, attach a single capturing handler on the document\n\t\t\t// while someone wants focusin/focusout.\n\t\t\tjQuery.event.simulate( delegateType, nativeEvent.target,\n\t\t\t\tjQuery.event.fix( nativeEvent ) );\n\t\t}\n\t}\n\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\tvar attaches;\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, true );\n\n\t\t\tif ( document.documentMode ) {\n\n\t\t\t\t// Support: IE 9 - 11+\n\t\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\t\tattaches = dataPriv.get( this, delegateType );\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t}\n\t\t\t\tdataPriv.set( this, delegateType, ( attaches || 0 ) + 1 );\n\t\t\t} else {\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tteardown: function() {\n\t\t\tvar attaches;\n\n\t\t\tif ( document.documentMode ) {\n\t\t\t\tattaches = dataPriv.get( this, delegateType ) - 1;\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t\tdataPriv.remove( this, delegateType );\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.set( this, delegateType, attaches );\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Return false to indicate standard teardown should be applied\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\t// Suppress native focus or blur if we're currently inside\n\t\t// a leveraged native-event stack\n\t\t_default: function( event ) {\n\t\t\treturn dataPriv.get( event.target, type );\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n\n\t// Support: Firefox <=44\n\t// Firefox doesn't have focus(in | out) events\n\t// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n\t//\n\t// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n\t// focus(in | out) events fire after focus & blur events,\n\t// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n\t// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\t//\n\t// Support: IE 9 - 11+\n\t// To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch,\n\t// attach a single handler for both events in IE.\n\tjQuery.event.special[ delegateType ] = {\n\t\tsetup: function() {\n\n\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType );\n\n\t\t\t// Support: IE 9 - 11+\n\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.addEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t}\n\t\t\tdataPriv.set( dataHolder, delegateType, ( attaches || 0 ) + 1 );\n\t\t},\n\t\tteardown: function() {\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType ) - 1;\n\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.removeEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( dataHolder, delegateType );\n\t\t\t} else {\n\t\t\t\tdataPriv.set( dataHolder, delegateType, attaches );\n\t\t\t}\n\t\t}\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (trac-8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Re-enable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Unwrap a CDATA section containing script contents. This shouldn't be\n\t\t\t\t\t\t\t// needed as in XML documents they're already not visible when\n\t\t\t\t\t\t\t// inspecting element contents and in HTML documents they have no\n\t\t\t\t\t\t\t// meaning but we're preserving that logic for backwards compatibility.\n\t\t\t\t\t\t\t// This will be removed completely in 4.0. See gh-4904.\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew jQuery#find here for performance reasons:\n\t\t\t// https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar rcustomProp = /^--/;\n\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (trac-8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"box-sizing:content-box;border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is `display: block`\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\t\tisCustomProp = rcustomProp.test( name ),\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, trac-12537)\n\t// .css('--customProperty) (gh-3144)\n\tif ( computed ) {\n\n\t\t// Support: IE <=9 - 11+\n\t\t// IE only supports `\"float\"` in `getPropertyValue`; in computed styles\n\t\t// it's only available as `\"cssFloat\"`. We no longer modify properties\n\t\t// sent to `.css()` apart from camelCasing, so we need to check both.\n\t\t// Normally, this would create difference in behavior: if\n\t\t// `getPropertyValue` returns an empty string, the value returned\n\t\t// by `.css()` would be `undefined`. This is usually the case for\n\t\t// disconnected elements. However, in IE even disconnected elements\n\t\t// with no styles return `\"none\"` for `getPropertyValue( \"float\" )`\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( isCustomProp && ret ) {\n\n\t\t\t// Support: Firefox 105+, Chrome <=105+\n\t\t\t// Spec requires trimming whitespace for custom properties (gh-4926).\n\t\t\t// Firefox only trims leading whitespace. Chrome just collapses\n\t\t\t// both leading & trailing whitespace to a single space.\n\t\t\t//\n\t\t\t// Fall back to `undefined` if empty string returned.\n\t\t\t// This collapses a missing definition with property defined\n\t\t\t// and set to an empty string but there's no standard API\n\t\t\t// allowing us to differentiate them without a performance penalty\n\t\t\t// and returning `undefined` aligns with older jQuery.\n\t\t\t//\n\t\t\t// rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n\t\t\t// as whitespace while CSS does not, but this is not a problem\n\t\t\t// because CSS preprocessing replaces them with U+000A LINE FEED\n\t\t\t// (which *is* CSS whitespace)\n\t\t\t// https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n\t\t\tret = ret.replace( rtrimCSS, \"$1\" ) || undefined;\n\t\t}\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0,\n\t\tmarginDelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\t// Count margin delta separately to only add it after scroll gutter adjustment.\n\t\t// This is needed to make negative margins work with `outerHeight( true )` (gh-3982).\n\t\tif ( box === \"margin\" ) {\n\t\t\tmarginDelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta + marginDelta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\tanimationIterationCount: true,\n\t\taspectRatio: true,\n\t\tborderImageSlice: true,\n\t\tcolumnCount: true,\n\t\tflexGrow: true,\n\t\tflexShrink: true,\n\t\tfontWeight: true,\n\t\tgridArea: true,\n\t\tgridColumn: true,\n\t\tgridColumnEnd: true,\n\t\tgridColumnStart: true,\n\t\tgridRow: true,\n\t\tgridRowEnd: true,\n\t\tgridRowStart: true,\n\t\tlineHeight: true,\n\t\topacity: true,\n\t\torder: true,\n\t\torphans: true,\n\t\tscale: true,\n\t\twidows: true,\n\t\tzIndex: true,\n\t\tzoom: true,\n\n\t\t// SVG-related\n\t\tfillOpacity: true,\n\t\tfloodOpacity: true,\n\t\tstopOpacity: true,\n\t\tstrokeMiterlimit: true,\n\t\tstrokeOpacity: true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug trac-9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (trac-7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// Use proper attribute retrieval (trac-12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + className + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += className + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + className + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + className + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar classNames, className, i, self,\n\t\t\ttype = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\treturn this.each( function() {\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\tself = jQuery( this );\n\n\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (trac-14686, trac-14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (trac-2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (trac-9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (trac-6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// trac-7653, trac-8125, trac-8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes trac-9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (trac-10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket trac-12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// trac-9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (trac-11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// trac-1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see trac-8605, trac-14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// trac-14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"