{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/foundation-sites/js/foundation.accordion.js","webpack:///./node_modules/foundation-sites/js/foundation.accordionMenu.js","webpack:///./node_modules/foundation-sites/js/foundation.core.js","webpack:///./node_modules/foundation-sites/js/foundation.core.plugin.js","webpack:///./node_modules/foundation-sites/js/foundation.core.utils.js","webpack:///./node_modules/foundation-sites/js/foundation.offcanvas.js","webpack:///./node_modules/foundation-sites/js/foundation.smoothScroll.js","webpack:///./node_modules/foundation-sites/js/foundation.sticky.js","webpack:///./node_modules/foundation-sites/js/foundation.util.box.js","webpack:///./node_modules/foundation-sites/js/foundation.util.imageLoader.js","webpack:///./node_modules/foundation-sites/js/foundation.util.keyboard.js","webpack:///./node_modules/foundation-sites/js/foundation.util.mediaQuery.js","webpack:///./node_modules/foundation-sites/js/foundation.util.motion.js","webpack:///./node_modules/foundation-sites/js/foundation.util.nest.js","webpack:///./node_modules/foundation-sites/js/foundation.util.timer.js","webpack:///./node_modules/foundation-sites/js/foundation.util.touch.js","webpack:///./node_modules/foundation-sites/js/foundation.util.triggers.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/what-input/dist/what-input.js","webpack:///./src/assets/js/app.js","webpack:///./src/assets/js/lib/foundation-explicit-pieces.js"],"names":["Accordion","element","options","$element","$","extend","defaults","data","className","_init","Keyboard","register","_isInitializing","attr","$tabs","children","each","idx","el","$el","$content","id","GetYoDigits","linkId","find","$initActive","length","_initialAnchor","prev","_openSingleTab","_checkDeepLink","anchor","window","location","hash","$anchor","$link","isOwnAnchor","parent","hasClass","_closeAllTabs","deepLinkSmudge","onLoad","offset","animate","scrollTop","top","deepLinkSmudgeDelay","trigger","deepLink","_events","_this","$elem","$tabContent","off","on","e","preventDefault","toggle","handleKey","next","$a","focus","multiExpand","previous","handled","$target","closest","is","console","info","up","down","updateHistory","history","pushState","replaceState","_openTab","$targetItem","$othersItems","siblings","allowAllClosed","_closeTab","$activeContents","not","targetContentId","addClass","slideDown","slideSpeed","removeClass","slideUp","$activeTabs","stop","css","Plugin","AccordionMenu","Nest","Feather","multiOpen","$menuLinks","$sub","subId","isActive","parentLink","clone","prependTo","wrap","submenuToggle","after","submenuToggleText","initPanes","$submenu","$elements","$prevElement","$nextElement","i","eq","Math","max","first","min","parents","open","close","closeAll","hideAll","$targetBranch","parentsUntil","add","$othersActiveSubmenus","$submenus","$allmenus","detach","remove","Burn","FOUNDATION_VERSION","Foundation","version","_plugins","_uuids","plugin","name","functionName","attrName","hyphenate","registerPlugin","pluginName","constructor","toLowerCase","uuid","push","unregisterPlugin","splice","indexOf","removeAttr","removeData","prop","reInit","plugins","isJQ","type","fns","plgs","forEach","p","foundation","Object","keys","err","error","reflow","elem","addBack","filter","opts","thing","split","opt","map","trim","parseValue","er","getFnName","addToJquery","method","$noJS","MediaQuery","args","Array","prototype","slice","call","arguments","plugClass","apply","ReferenceError","TypeError","fn","util","throttle","func","delay","timer","context","setTimeout","Date","now","getTime","vendors","requestAnimationFrame","vp","cancelAnimationFrame","test","navigator","userAgent","lastTime","callback","nextTime","clearTimeout","performance","start","Function","bind","oThis","aArgs","fToBind","fNOP","fBound","concat","funcNameRegex","results","exec","toString","str","isNaN","parseFloat","replace","_setup","getPluginName","_destroy","obj","rtl","namespace","chars","charsLength","floor","random","RegExpEscape","transitionend","transitions","document","createElement","end","t","style","triggerHandler","handler","didLoad","readyState","eventType","cb","one","ignoreMousedisappear","ignoreLeaveWindow","ignoreReappear","leaveEventHandler","eLeave","rest","relatedTarget","leaveEventDebouncer","hasFocus","reenterEventHandler","eReenter","currentTarget","has","target","OffCanvas","contentClasses","base","reveal","$lastTrigger","$triggers","position","nested","$sticky","isInCanvas","index","val","Triggers","init","contentId","warn","transition","match","contentOverlay","overlay","overlayPosition","setAttribute","$overlay","insertAfter","append","revealOnRegExp","RegExp","revealClass","revealOnClass","isRevealed","revealOn","_setMQChecker","transitionTime","contentScroll","inCanvasFor","inCanvasOn","_checkInCanvas","_removeContentClasses","_handleKeyboard","closeOnClick","onLoadListener","atLeast","hasReveal","join","_","topVal","parseInt","absoluteTopVal","width","stickyData","_addContentClasses","event","scrollHeight","clientHeight","allowUp","allowDown","lastY","originalEvent","pageY","stopPropagation","hasAttribute","forceTo","scrollTo","body","_stopScrolling","_recordScrollable","_stopScrollPropagation","autoFocus","canvasFocus","trapFocus","_fixStickyElements","_unfixStickyElements","releaseFocus","SmoothScroll","_linkClickListener","_handleLinkClick","arrival","getAttribute","_inTransition","scrollToLoc","loc","$loc","scrollPos","round","threshold","animationDuration","animationEasing","Sticky","$parent","$container","wasWrapped","container","containerClass","stickyClass","scrollCount","checkEvery","isStuck","containerHeight","getBoundingClientRect","height","elemHeight","_parsePoints","_setSizes","scroll","pageYOffset","_calc","_removeSticky","topPoint","reverse","topAnchor","btm","btmAnchor","documentElement","pts","breaks","len","pt","place","points","scrollListener","isOn","canStick","_eventsHandler","_pauseListeners","checkSizes","bottomPoint","_setSticky","stickTo","mrgn","notStuckTo","isTop","stickToTop","anchorPt","anchorHeight","topOrBottom","stickyOn","newElemWidth","comp","getComputedStyle","pdngl","pdngr","dynamicHeight","newContainerHeight","_setBreakPoints","mTop","emCalc","marginTop","mBtm","marginBottom","winHeight","innerHeight","bottom","unwrap","em","fontSize","Box","ImNotTouchingYou","OverlapArea","GetDimensions","GetExplicitOffsets","lrOnly","tbOnly","ignoreBottom","eleDims","topOver","bottomOver","leftOver","rightOver","parDims","left","windowDims","sqrt","Error","rect","parRect","parentNode","winRect","winY","winX","pageXOffset","parentDims","alignment","vOffset","hOffset","isOverflow","$eleDims","$anchorDims","leftVal","onImagesLoaded","images","self","unloaded","complete","naturalWidth","singleImageLoaded","image","Image","events","me","src","keyCodes","commands","findFocusable","parseKey","key","which","keyCode","String","fromCharCode","toUpperCase","shiftKey","ctrlKey","altKey","getKeyCodes","component","functions","commandList","cmds","command","zfIsKeyHandled","ltr","Rtl","returnValue","unhandled","componentName","$focusable","$firstFocusable","$lastFocusable","kcs","k","kc","defaultQueries","landscape","portrait","retina","matchMedia","styleMedia","media","script","getElementsByTagName","head","appendChild","insertBefore","currentStyle","matchMedium","text","styleSheet","cssText","textContent","matches","queries","current","isInitialized","$meta","appendTo","extractedStyles","namedQueries","parseStyleToObject","hasOwnProperty","value","_getCurrentSize","_watcher","_reInit","size","query","get","only","upTo","nextSize","parts","bpSize","bpModifier","queryIndex","findIndex","q","_getQueryName","nextQuery","matched","newSize","currentSize","styleObject","reduce","ret","param","decodeURIComponent","isArray","initClasses","activeClasses","Motion","animateIn","animation","animateOut","Move","duration","anim","prog","move","ts","isIn","initClass","activeClass","reset","show","finish","hide","transitionDuration","menu","items","subMenuClass","subItemClass","hasSubClass","applyAria","$item","Timer","nameSpace","remain","isPaused","restart","infinite","pause","Touch","startPosX","startPosY","startTime","elapsedTime","startEvent","isMoving","didMoved","onTouchEnd","removeEventListener","onTouchMove","tapEvent","Event","spotSwipe","x","touches","pageX","y","dx","dy","dir","abs","moveThreshold","timeThreshold","assign","onTouchStart","addEventListener","teardown","SpotSwipe","enabled","special","swipe","setup","tap","noop","setupSpotSwipe","setupTouchHandler","addTouch","handleTouch","changedTouches","eventTypes","touchstart","touchmove","touchend","simulatedEvent","MouseEvent","screenX","screenY","clientX","clientY","createEvent","initMouseEvent","dispatchEvent","MutationObserver","prefixes","triggers","Listeners","Basic","Global","Initializers","openListener","closeListener","toggleListener","closeableListener","fadeOut","toggleFocusListener","addOpenListener","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","closeMeListener","pluginId","addClosemeListener","yetiBoxes","plugNames","listeners","debounceGlobalListener","debounce","listener","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","attributeName","elementObserver","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","addGlobalListeners","triggersInitialized","IHearYou","global","factory","module","exports","w","noGlobal","arr","getProto","getPrototypeOf","class2type","hasOwn","fnToString","ObjectFunctionString","support","isFunction","nodeType","isWindow","preservedScriptAttributes","noModule","DOMEval","code","doc","node","removeChild","toType","jQuery","selector","rtrim","jquery","toArray","num","pushStack","elems","merge","prevObject","last","j","sort","copy","copyIsArray","deep","isPlainObject","undefined","expando","isReady","msg","proto","Ctor","isEmptyObject","globalEval","isArrayLike","makeArray","inArray","second","grep","invert","callbackInverse","callbackExpect","arg","guid","Symbol","iterator","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","pop","push_native","list","booleans","whitespace","identifier","pseudos","rwhitespace","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escaped","escapedWhitespace","high","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","disabledAncestor","addCombinator","disabled","childNodes","els","seed","m","nid","groups","newSelector","newContext","ownerDocument","getElementById","getElementsByClassName","qsa","nodeName","toSelector","testContext","querySelectorAll","qsaError","removeAttribute","cache","cacheLength","shift","markFunction","assert","addHandle","attrs","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","hasCompare","subWindow","defaultView","attachEvent","createComment","getById","getElementsByName","attrId","getAttributeNode","tag","tmp","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","specified","escape","sel","uniqueSort","duplicates","detectDuplicates","sortStable","firstChild","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","useCache","lastChild","uniqueID","pseudo","setFilters","matcher","unmatched","innerText","lang","elemLang","activeElement","href","tabIndex","checked","selected","selectedIndex","radio","checkbox","file","password","submit","filters","parseOnly","tokens","soFar","preFilters","cached","combinator","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","token","compiled","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","n","rneedsContext","needsContext","rsingleTag","winnow","qualifier","rootjQuery","root","parseHTML","ready","rparentsprev","guaranteedUnique","contents","targets","l","prevAll","sibling","nextAll","nextUntil","prevUntil","contentDocument","content","rnothtmlwhite","createOptions","object","flag","Callbacks","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","empty","disable","lock","fireWith","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","promise","fail","then","Deferred","tuples","state","always","deferred","pipe","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","that","mightThrow","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","stateString","when","singleValue","remaining","resolveContexts","resolveValues","master","updateFunc","rerrorNames","stack","message","readyException","readyList","catch","readyWait","wait","completed","doScroll","access","chainable","emptyGet","raw","bulk","rmsPrefix","rdashAlpha","fcamelCase","all","letter","camelCase","string","acceptData","owner","Data","uid","defineProperty","configurable","set","hasData","dataPriv","dataUser","rbrace","rmultiDash","getData","JSON","parse","dataAttr","_data","_removeData","dequeue","startLength","hooks","_queueHooks","setter","clearQueue","count","defer","pnum","source","rcssNum","cssExpand","isHiddenWithinTree","display","swap","old","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","values","rcheckableType","rtagName","rscriptType","wrapMap","option","thead","col","tr","td","_default","optgroup","tbody","tfoot","colgroup","caption","th","getAll","setGlobalEval","refElements","rhtml","buildFragment","scripts","selection","ignored","fragment","createDocumentFragment","nodes","createTextNode","htmlPrefilter","div","checkClone","cloneNode","noCloneChecked","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","safeActiveElement","types","origFn","handleObjIn","eventHandle","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","delegateCount","mappedTypes","origCount","removeEvent","nativeEvent","fix","handlerQueue","delegateTarget","preDispatch","isPropagationStopped","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","button","addProp","hook","enumerable","writable","load","noBubble","blur","click","beforeunload","props","isDefaultPrevented","defaultPrevented","timeStamp","isSimulated","stopImmediatePropagation","bubbles","cancelable","detail","eventPhase","metaKey","view","charCode","buttons","offsetX","offsetY","pointerId","pointerType","targetTouches","toElement","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rxhtmlTag","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","pdataCur","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","prepend","before","replaceWith","replaceChild","replaceAll","original","insert","rnumnonpx","getStyles","opener","rboxStyle","computeStyleTests","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","offsetWidth","measure","backgroundClip","clearCloneStyle","boxSizingReliable","pixelBoxStyles","pixelPosition","reliableMarginLeft","scrollboxSize","curCSS","computed","minWidth","maxWidth","getPropertyValue","addGetHookIf","conditionFn","hookFn","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","cssPrefixes","emptyStyle","vendorPropName","capName","finalPropName","cssProps","setPositiveNumber","subtract","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","ceil","getWidthOrHeight","valueIsBorderBox","cssHooks","opacity","origName","isCustomProp","setProperty","isFinite","getClientRects","margin","padding","border","prefix","suffix","expand","expanded","Tween","easing","propHooks","run","percent","eased","pos","step","fx","scrollLeft","linear","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","interval","tick","createFxNow","genFx","includeWidth","createTween","Animation","tweeners","defaultPrefilter","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","propFilter","specialEasing","properties","stopped","prefilters","currentTime","tweens","originalProperties","originalOptions","gotoEnd","tweener","prefilter","speed","speeds","fadeTo","to","optall","doAnimation","stopQueue","timers","cssFn","slideToggle","fadeIn","fadeToggle","slow","fast","time","timeout","checkOn","optSelected","radioValue","boolHook","nType","attrHooks","bool","attrNames","getter","lowercaseName","rfocusable","rclickable","removeProp","propFix","tabindex","stripAndCollapse","getClass","classesToArray","classes","curValue","clazz","finalValue","toggleClass","stateVal","isValidValue","classNames","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","isTrigger","parentWindow","simulate","attaches","nonce","rquery","parseXML","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","s","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rlocalProtocol","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","ajaxHandleResponses","responses","ct","finalDataType","firstDataType","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","conv","responseFields","dataFilter","throws","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","overrideMimeType","status","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","modified","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","visible","offsetHeight","xhr","XMLHttpRequest","xhrSuccessStatus","xhrSupported","cors","errorCallback","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","offsetParent","parentOffset","Height","Width","defaultExtra","funcName","hover","fnOver","fnOut","unbind","delegate","undelegate","proxy","holdReady","hold","parseJSON","isNumeric","define","_jQuery","_$","noConflict","webpackPolyfill","deprecate","paths","webpackUniversalModuleDefinition","modules","installedModules","__webpack_require__","moduleId","loaded","c","ask","ignoreKeys","specificKeys","registerOnChange","unRegisterOnChange","currentElement","currentInput","currentIntent","sessionStorage","getItem","eventTimer","formInputs","functionList","ignoreMap","specificMap","inputMap","keydown","keyup","mousedown","mousemove","MSPointerDown","MSPointerMove","pointerdown","pointermove","isBuffering","isScrolling","mousePos","pointerMap","supportsPassive","setUp","detectWheel","addListeners","doUpdate","passive","PointerEvent","setInput","setIntent","MSPointerEvent","eventBuffer","setElement","clearElement","eventKey","ignoreMatch","specificMatch","shouldUpdate","setItem","activeElem","notFormInput","fireFunctions","detectScrolling","classList","wheelType","onmousewheel","objPos","onscroll","menIcon","closeIcon","log","switchBox","dataset","site","front","back","zIndex","collaps","cont","boxOpen","maxHeight","CoreUtils"],"mappings":"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","file":"app.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","'use strict';\n\nimport $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\n\n/**\n * Accordion module.\n * @module foundation.accordion\n * @requires foundation.util.keyboard\n */\n\nclass Accordion extends Plugin {\n /**\n * Creates a new instance of an accordion.\n * @class\n * @name Accordion\n * @fires Accordion#init\n * @param {jQuery} element - jQuery object to make into an accordion.\n * @param {Object} options - a plain object with settings to override the default options.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, Accordion.defaults, this.$element.data(), options);\n\n this.className = 'Accordion'; // ie9 back compat\n this._init();\n\n Keyboard.register('Accordion', {\n 'ENTER': 'toggle',\n 'SPACE': 'toggle',\n 'ARROW_DOWN': 'next',\n 'ARROW_UP': 'previous'\n });\n }\n\n /**\n * Initializes the accordion by animating the preset active pane(s).\n * @private\n */\n _init() {\n this._isInitializing = true;\n\n this.$element.attr('role', 'tablist');\n this.$tabs = this.$element.children('[data-accordion-item]');\n \n this.$tabs.attr({'role': 'presentation'});\n\n this.$tabs.each(function(idx, el) {\n var $el = $(el),\n $content = $el.children('[data-tab-content]'),\n id = $content[0].id || GetYoDigits(6, 'accordion'),\n linkId = (el.id) ? `${el.id}-label` : `${id}-label`;\n\n $el.find('a:first').attr({\n 'aria-controls': id,\n 'role': 'tab',\n 'id': linkId,\n 'aria-expanded': false,\n 'aria-selected': false\n });\n\n $content.attr({'role': 'tabpanel', 'aria-labelledby': linkId, 'aria-hidden': true, 'id': id});\n });\n\n var $initActive = this.$element.find('.is-active').children('[data-tab-content]');\n if ($initActive.length) {\n // Save up the initial hash to return to it later when going back in history\n this._initialAnchor = $initActive.prev('a').attr('href');\n this._openSingleTab($initActive);\n }\n\n this._checkDeepLink = () => {\n var anchor = window.location.hash;\n\n if (!anchor.length) {\n // If we are still initializing and there is no anchor, then there is nothing to do\n if (this._isInitializing) return;\n // Otherwise, move to the initial anchor\n if (this._initialAnchor) anchor = this._initialAnchor;\n }\n\n var $anchor = anchor && $(anchor);\n var $link = anchor && this.$element.find(`[href$=\"${anchor}\"]`);\n // Whether the anchor element that has been found is part of this element\n var isOwnAnchor = !!($anchor.length && $link.length);\n\n if (isOwnAnchor) {\n // If there is an anchor for the hash, open it (if not already active)\n if ($anchor && $link && $link.length) {\n if (!$link.parent('[data-accordion-item]').hasClass('is-active')) {\n this._openSingleTab($anchor);\n };\n }\n // Otherwise, close everything\n else {\n this._closeAllTabs();\n }\n\n // Roll up a little to show the titles\n if (this.options.deepLinkSmudge) {\n onLoad($(window), () => {\n var offset = this.$element.offset();\n $('html, body').animate({ scrollTop: offset.top }, this.options.deepLinkSmudgeDelay);\n });\n }\n\n /**\n * Fires when the plugin has deeplinked at pageload\n * @event Accordion#deeplink\n */\n this.$element.trigger('deeplink.zf.accordion', [$link, $anchor]);\n }\n }\n\n //use browser to open a tab, if it exists in this tabset\n if (this.options.deepLink) {\n this._checkDeepLink();\n }\n\n this._events();\n\n this._isInitializing = false;\n }\n\n /**\n * Adds event handlers for items within the accordion.\n * @private\n */\n _events() {\n var _this = this;\n\n this.$tabs.each(function() {\n var $elem = $(this);\n var $tabContent = $elem.children('[data-tab-content]');\n if ($tabContent.length) {\n $elem.children('a').off('click.zf.accordion keydown.zf.accordion')\n .on('click.zf.accordion', function(e) {\n e.preventDefault();\n _this.toggle($tabContent);\n }).on('keydown.zf.accordion', function(e){\n Keyboard.handleKey(e, 'Accordion', {\n toggle: function() {\n _this.toggle($tabContent);\n },\n next: function() {\n var $a = $elem.next().find('a').focus();\n if (!_this.options.multiExpand) {\n $a.trigger('click.zf.accordion')\n }\n },\n previous: function() {\n var $a = $elem.prev().find('a').focus();\n if (!_this.options.multiExpand) {\n $a.trigger('click.zf.accordion')\n }\n },\n handled: function() {\n e.preventDefault();\n }\n });\n });\n }\n });\n if(this.options.deepLink) {\n $(window).on('hashchange', this._checkDeepLink);\n }\n }\n\n /**\n * Toggles the selected content pane's open/close state.\n * @param {jQuery} $target - jQuery object of the pane to toggle (`.accordion-content`).\n * @function\n */\n toggle($target) {\n if ($target.closest('[data-accordion]').is('[disabled]')) {\n console.info('Cannot toggle an accordion that is disabled.');\n return;\n }\n if($target.parent().hasClass('is-active')) {\n this.up($target);\n } else {\n this.down($target);\n }\n //either replace or update browser history\n if (this.options.deepLink) {\n var anchor = $target.prev('a').attr('href');\n\n if (this.options.updateHistory) {\n history.pushState({}, '', anchor);\n } else {\n history.replaceState({}, '', anchor);\n }\n }\n }\n\n /**\n * Opens the accordion tab defined by `$target`.\n * @param {jQuery} $target - Accordion pane to open (`.accordion-content`).\n * @fires Accordion#down\n * @function\n */\n down($target) {\n if ($target.closest('[data-accordion]').is('[disabled]')) {\n console.info('Cannot call down on an accordion that is disabled.');\n return;\n }\n\n if (this.options.multiExpand)\n this._openTab($target);\n else\n this._openSingleTab($target);\n }\n\n /**\n * Closes the tab defined by `$target`.\n * It may be ignored if the Accordion options don't allow it.\n *\n * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n * @fires Accordion#up\n * @function\n */\n up($target) {\n if (this.$element.is('[disabled]')) {\n console.info('Cannot call up on an accordion that is disabled.');\n return;\n }\n\n // Don't close the item if it is already closed\n const $targetItem = $target.parent();\n if (!$targetItem.hasClass('is-active')) return;\n\n // Don't close the item if there is no other active item (unless with `allowAllClosed`)\n const $othersItems = $targetItem.siblings();\n if (!this.options.allowAllClosed && !$othersItems.hasClass('is-active')) return;\n\n this._closeTab($target);\n }\n\n /**\n * Make the tab defined by `$target` the only opened tab, closing all others tabs.\n * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n * @function\n * @private\n */\n _openSingleTab($target) {\n // Close all the others active tabs.\n const $activeContents = this.$element.children('.is-active').children('[data-tab-content]');\n if ($activeContents.length) {\n this._closeTab($activeContents.not($target));\n }\n\n // Then open the target.\n this._openTab($target);\n }\n\n /**\n * Opens the tab defined by `$target`.\n * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n * @fires Accordion#down\n * @function\n * @private\n */\n _openTab($target) {\n const $targetItem = $target.parent();\n const targetContentId = $target.attr('aria-labelledby');\n\n $target.attr('aria-hidden', false);\n $targetItem.addClass('is-active');\n\n $(`#${targetContentId}`).attr({\n 'aria-expanded': true,\n 'aria-selected': true\n });\n\n $target.slideDown(this.options.slideSpeed, () => {\n /**\n * Fires when the tab is done opening.\n * @event Accordion#down\n */\n this.$element.trigger('down.zf.accordion', [$target]);\n });\n }\n\n /**\n * Closes the tab defined by `$target`.\n * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n * @fires Accordion#up\n * @function\n * @private\n */\n _closeTab($target) {\n const $targetItem = $target.parent();\n const targetContentId = $target.attr('aria-labelledby');\n\n $target.attr('aria-hidden', true)\n $targetItem.removeClass('is-active');\n\n $(`#${targetContentId}`).attr({\n 'aria-expanded': false,\n 'aria-selected': false\n });\n\n $target.slideUp(this.options.slideSpeed, () => {\n /**\n * Fires when the tab is done collapsing up.\n * @event Accordion#up\n */\n this.$element.trigger('up.zf.accordion', [$target]);\n });\n }\n\n /**\n * Closes all active tabs\n * @fires Accordion#up\n * @function\n * @private\n */\n _closeAllTabs() {\n var $activeTabs = this.$element.children('.is-active').children('[data-tab-content]');\n if ($activeTabs.length) {\n this._closeTab($activeTabs);\n }\n }\n\n /**\n * Destroys an instance of an accordion.\n * @fires Accordion#destroyed\n * @function\n */\n _destroy() {\n this.$element.find('[data-tab-content]').stop(true).slideUp(0).css('display', '');\n this.$element.find('a').off('.zf.accordion');\n if(this.options.deepLink) {\n $(window).off('hashchange', this._checkDeepLink);\n }\n\n }\n}\n\nAccordion.defaults = {\n /**\n * Amount of time to animate the opening of an accordion pane.\n * @option\n * @type {number}\n * @default 250\n */\n slideSpeed: 250,\n /**\n * Allow the accordion to have multiple open panes.\n * @option\n * @type {boolean}\n * @default false\n */\n multiExpand: false,\n /**\n * Allow the accordion to close all panes.\n * @option\n * @type {boolean}\n * @default false\n */\n allowAllClosed: false,\n /**\n * Link the location hash to the open pane.\n * Set the location hash when the opened pane changes, and open and scroll to the corresponding pane when the location changes.\n * @option\n * @type {boolean}\n * @default false\n */\n deepLink: false,\n /**\n * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the accordion panel is visible\n * @option\n * @type {boolean}\n * @default false\n */\n deepLinkSmudge: false,\n /**\n * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n * @option\n * @type {number}\n * @default 300\n */\n deepLinkSmudgeDelay: 300,\n /**\n * If `deepLink` is enabled, update the browser history with the open accordion\n * @option\n * @type {boolean}\n * @default false\n */\n updateHistory: false\n};\n\nexport {Accordion};\n","'use strict';\n\n\nimport $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * AccordionMenu module.\n * @module foundation.accordionMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n */\n\nclass AccordionMenu extends Plugin {\n /**\n * Creates a new instance of an accordion menu.\n * @class\n * @name AccordionMenu\n * @fires AccordionMenu#init\n * @param {jQuery} element - jQuery object to make into an accordion menu.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, AccordionMenu.defaults, this.$element.data(), options);\n this.className = 'AccordionMenu'; // ie9 back compat\n\n this._init();\n\n Keyboard.register('AccordionMenu', {\n 'ENTER': 'toggle',\n 'SPACE': 'toggle',\n 'ARROW_RIGHT': 'open',\n 'ARROW_UP': 'up',\n 'ARROW_DOWN': 'down',\n 'ARROW_LEFT': 'close',\n 'ESCAPE': 'closeAll'\n });\n }\n\n\n\n /**\n * Initializes the accordion menu by hiding all nested menus.\n * @private\n */\n _init() {\n Nest.Feather(this.$element, 'accordion');\n\n var _this = this;\n\n this.$element.find('[data-submenu]').not('.is-active').slideUp(0);//.find('a').css('padding-left', '1rem');\n this.$element.attr({\n 'role': 'tree',\n 'aria-multiselectable': this.options.multiOpen\n });\n\n this.$menuLinks = this.$element.find('.is-accordion-submenu-parent');\n this.$menuLinks.each(function(){\n var linkId = this.id || GetYoDigits(6, 'acc-menu-link'),\n $elem = $(this),\n $sub = $elem.children('[data-submenu]'),\n subId = $sub[0].id || GetYoDigits(6, 'acc-menu'),\n isActive = $sub.hasClass('is-active');\n\n if(_this.options.parentLink) {\n let $anchor = $elem.children('a');\n $anchor.clone().prependTo($sub).wrap('
  • ');\n }\n\n if(_this.options.submenuToggle) {\n $elem.addClass('has-submenu-toggle');\n $elem.children('a').after('');\n } else {\n $elem.attr({\n 'aria-controls': subId,\n 'aria-expanded': isActive,\n 'id': linkId\n });\n }\n $sub.attr({\n 'aria-labelledby': linkId,\n 'aria-hidden': !isActive,\n 'role': 'group',\n 'id': subId\n });\n });\n this.$element.find('li').attr({\n 'role': 'treeitem'\n });\n var initPanes = this.$element.find('.is-active');\n if(initPanes.length){\n var _this = this;\n initPanes.each(function(){\n _this.down($(this));\n });\n }\n this._events();\n }\n\n /**\n * Adds event handlers for items within the menu.\n * @private\n */\n _events() {\n var _this = this;\n\n this.$element.find('li').each(function() {\n var $submenu = $(this).children('[data-submenu]');\n\n if ($submenu.length) {\n if(_this.options.submenuToggle) {\n $(this).children('.submenu-toggle').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function(e) {\n _this.toggle($submenu);\n });\n } else {\n $(this).children('a').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function(e) {\n e.preventDefault();\n _this.toggle($submenu);\n });\n }\n }\n }).on('keydown.zf.accordionMenu', function(e){\n var $element = $(this),\n $elements = $element.parent('ul').children('li'),\n $prevElement,\n $nextElement,\n $target = $element.children('[data-submenu]');\n\n $elements.each(function(i) {\n if ($(this).is($element)) {\n $prevElement = $elements.eq(Math.max(0, i-1)).find('a').first();\n $nextElement = $elements.eq(Math.min(i+1, $elements.length-1)).find('a').first();\n\n if ($(this).children('[data-submenu]:visible').length) { // has open sub menu\n $nextElement = $element.find('li:first-child').find('a').first();\n }\n if ($(this).is(':first-child')) { // is first element of sub menu\n $prevElement = $element.parents('li').first().find('a').first();\n } else if ($prevElement.parents('li').first().children('[data-submenu]:visible').length) { // if previous element has open sub menu\n $prevElement = $prevElement.parents('li').find('li:last-child').find('a').first();\n }\n if ($(this).is(':last-child')) { // is last element of sub menu\n $nextElement = $element.parents('li').first().next('li').find('a').first();\n }\n\n return;\n }\n });\n\n Keyboard.handleKey(e, 'AccordionMenu', {\n open: function() {\n if ($target.is(':hidden')) {\n _this.down($target);\n $target.find('li').first().find('a').first().focus();\n }\n },\n close: function() {\n if ($target.length && !$target.is(':hidden')) { // close active sub of this item\n _this.up($target);\n } else if ($element.parent('[data-submenu]').length) { // close currently open sub\n _this.up($element.parent('[data-submenu]'));\n $element.parents('li').first().find('a').first().focus();\n }\n },\n up: function() {\n $prevElement.focus();\n return true;\n },\n down: function() {\n $nextElement.focus();\n return true;\n },\n toggle: function() {\n if (_this.options.submenuToggle) {\n return false;\n }\n if ($element.children('[data-submenu]').length) {\n _this.toggle($element.children('[data-submenu]'));\n return true;\n }\n },\n closeAll: function() {\n _this.hideAll();\n },\n handled: function(preventDefault) {\n if (preventDefault) {\n e.preventDefault();\n }\n }\n });\n });//.attr('tabindex', 0);\n }\n\n /**\n * Closes all panes of the menu.\n * @function\n */\n hideAll() {\n this.up(this.$element.find('[data-submenu]'));\n }\n\n /**\n * Opens all panes of the menu.\n * @function\n */\n showAll() {\n this.down(this.$element.find('[data-submenu]'));\n }\n\n /**\n * Toggles the open/close state of a submenu.\n * @function\n * @param {jQuery} $target - the submenu to toggle\n */\n toggle($target){\n if(!$target.is(':animated')) {\n if (!$target.is(':hidden')) {\n this.up($target);\n }\n else {\n this.down($target);\n }\n }\n }\n\n /**\n * Opens the sub-menu defined by `$target`.\n * @param {jQuery} $target - Sub-menu to open.\n * @fires AccordionMenu#down\n */\n down($target) {\n // If having multiple submenus active is disabled, close all the submenus\n // that are not parents or children of the targeted submenu.\n if (!this.options.multiOpen) {\n // The \"branch\" of the targetted submenu, from the component root to\n // the active submenus nested in it.\n const $targetBranch = $target.parentsUntil(this.$element)\n .add($target)\n .add($target.find('.is-active'));\n // All the active submenus that are not in the branch.\n const $othersActiveSubmenus = this.$element.find('.is-active').not($targetBranch);\n\n this.up($othersActiveSubmenus);\n }\n\n $target\n .addClass('is-active')\n .attr({ 'aria-hidden': false });\n\n if(this.options.submenuToggle) {\n $target.prev('.submenu-toggle').attr({'aria-expanded': true});\n }\n else {\n $target.parent('.is-accordion-submenu-parent').attr({'aria-expanded': true});\n }\n\n $target.slideDown(this.options.slideSpeed, () => {\n /**\n * Fires when the menu is done opening.\n * @event AccordionMenu#down\n */\n this.$element.trigger('down.zf.accordionMenu', [$target]);\n });\n }\n\n /**\n * Closes the sub-menu defined by `$target`. All sub-menus inside the target will be closed as well.\n * @param {jQuery} $target - Sub-menu to close.\n * @fires AccordionMenu#up\n */\n up($target) {\n const $submenus = $target.find('[data-submenu]');\n const $allmenus = $target.add($submenus);\n\n $submenus.slideUp(0);\n $allmenus\n .removeClass('is-active')\n .attr('aria-hidden', true);\n\n if(this.options.submenuToggle) {\n $allmenus.prev('.submenu-toggle').attr('aria-expanded', false);\n }\n else {\n $allmenus.parent('.is-accordion-submenu-parent').attr('aria-expanded', false);\n }\n\n $target.slideUp(this.options.slideSpeed, () => {\n /**\n * Fires when the menu is done collapsing up.\n * @event AccordionMenu#up\n */\n this.$element.trigger('up.zf.accordionMenu', [$target]);\n });\n }\n\n /**\n * Destroys an instance of accordion menu.\n * @fires AccordionMenu#destroyed\n */\n _destroy() {\n this.$element.find('[data-submenu]').slideDown(0).css('display', '');\n this.$element.find('a').off('click.zf.accordionMenu');\n this.$element.find('[data-is-parent-link]').detach();\n\n if(this.options.submenuToggle) {\n this.$element.find('.has-submenu-toggle').removeClass('has-submenu-toggle');\n this.$element.find('.submenu-toggle').remove();\n }\n\n Nest.Burn(this.$element, 'accordion');\n }\n}\n\nAccordionMenu.defaults = {\n /**\n * Adds the parent link to the submenu.\n * @option\n * @type {boolean}\n * @default false\n */\n parentLink: false,\n /**\n * Amount of time to animate the opening of a submenu in ms.\n * @option\n * @type {number}\n * @default 250\n */\n slideSpeed: 250,\n /**\n * Adds a separate submenu toggle button. This allows the parent item to have a link.\n * @option\n * @example true\n */\n submenuToggle: false,\n /**\n * The text used for the submenu toggle if enabled. This is used for screen readers only.\n * @option\n * @example true\n */\n submenuToggleText: 'Toggle menu',\n /**\n * Allow the menu to have multiple open panes.\n * @option\n * @type {boolean}\n * @default true\n */\n multiOpen: true\n};\n\nexport {AccordionMenu};\n","\"use strict\";\n\nimport $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nvar FOUNDATION_VERSION = '6.6.1';\n\n// Global Foundation object\n// This is attached to the window, or used as a module for AMD/Browserify\nvar Foundation = {\n version: FOUNDATION_VERSION,\n\n /**\n * Stores initialized plugins.\n */\n _plugins: {},\n\n /**\n * Stores generated unique ids for plugin instances\n */\n _uuids: [],\n\n /**\n * Defines a Foundation plugin, adding it to the `Foundation` namespace and the list of plugins to initialize when reflowing.\n * @param {Object} plugin - The constructor of the plugin.\n */\n plugin: function(plugin, name) {\n // Object key to use when adding to global Foundation object\n // Examples: Foundation.Reveal, Foundation.OffCanvas\n var className = (name || functionName(plugin));\n // Object key to use when storing the plugin, also used to create the identifying data attribute for the plugin\n // Examples: data-reveal, data-off-canvas\n var attrName = hyphenate(className);\n\n // Add to the Foundation object and the plugins list (for reflowing)\n this._plugins[attrName] = this[className] = plugin;\n },\n /**\n * @function\n * Populates the _uuids array with pointers to each individual plugin instance.\n * Adds the `zfPlugin` data-attribute to programmatically created plugins to allow use of $(selector).foundation(method) calls.\n * Also fires the initialization event for each plugin, consolidating repetitive code.\n * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n * @param {String} name - the name of the plugin, passed as a camelCased string.\n * @fires Plugin#init\n */\n registerPlugin: function(plugin, name){\n var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();\n plugin.uuid = GetYoDigits(6, pluginName);\n\n if(!plugin.$element.attr(`data-${pluginName}`)){ plugin.$element.attr(`data-${pluginName}`, plugin.uuid); }\n if(!plugin.$element.data('zfPlugin')){ plugin.$element.data('zfPlugin', plugin); }\n /**\n * Fires when the plugin has initialized.\n * @event Plugin#init\n */\n plugin.$element.trigger(`init.zf.${pluginName}`);\n\n this._uuids.push(plugin.uuid);\n\n return;\n },\n /**\n * @function\n * Removes the plugins uuid from the _uuids array.\n * Removes the zfPlugin data attribute, as well as the data-plugin-name attribute.\n * Also fires the destroyed event for the plugin, consolidating repetitive code.\n * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n * @fires Plugin#destroyed\n */\n unregisterPlugin: function(plugin){\n var pluginName = hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));\n\n this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);\n plugin.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n /**\n * Fires when the plugin has been destroyed.\n * @event Plugin#destroyed\n */\n .trigger(`destroyed.zf.${pluginName}`);\n for(var prop in plugin){\n plugin[prop] = null;//clean up script to prep for garbage collection.\n }\n return;\n },\n\n /**\n * @function\n * Causes one or more active plugins to re-initialize, resetting event listeners, recalculating positions, etc.\n * @param {String} plugins - optional string of an individual plugin key, attained by calling `$(element).data('pluginName')`, or string of a plugin class i.e. `'dropdown'`\n * @default If no argument is passed, reflow all currently active plugins.\n */\n reInit: function(plugins){\n var isJQ = plugins instanceof $;\n try{\n if(isJQ){\n plugins.each(function(){\n $(this).data('zfPlugin')._init();\n });\n }else{\n var type = typeof plugins,\n _this = this,\n fns = {\n 'object': function(plgs){\n plgs.forEach(function(p){\n p = hyphenate(p);\n $('[data-'+ p +']').foundation('_init');\n });\n },\n 'string': function(){\n plugins = hyphenate(plugins);\n $('[data-'+ plugins +']').foundation('_init');\n },\n 'undefined': function(){\n this['object'](Object.keys(_this._plugins));\n }\n };\n fns[type](plugins);\n }\n }catch(err){\n console.error(err);\n }finally{\n return plugins;\n }\n },\n\n /**\n * Initialize plugins on any elements within `elem` (and `elem` itself) that aren't already initialized.\n * @param {Object} elem - jQuery object containing the element to check inside. Also checks the element itself, unless it's the `document` object.\n * @param {String|Array} plugins - A list of plugins to initialize. Leave this out to initialize everything.\n */\n reflow: function(elem, plugins) {\n\n // If plugins is undefined, just grab everything\n if (typeof plugins === 'undefined') {\n plugins = Object.keys(this._plugins);\n }\n // If plugins is a string, convert it to an array with one item\n else if (typeof plugins === 'string') {\n plugins = [plugins];\n }\n\n var _this = this;\n\n // Iterate through each plugin\n $.each(plugins, function(i, name) {\n // Get the current plugin\n var plugin = _this._plugins[name];\n\n // Localize the search to all elements inside elem, as well as elem itself, unless elem === document\n var $elem = $(elem).find('[data-'+name+']').addBack('[data-'+name+']').filter(function () {\n return typeof $(this).data(\"zfPlugin\") === 'undefined';\n });\n\n // For each plugin found, initialize it\n $elem.each(function() {\n var $el = $(this),\n opts = { reflow: true };\n\n if($el.attr('data-options')){\n var thing = $el.attr('data-options').split(';').forEach(function(e, i){\n var opt = e.split(':').map(function(el){ return el.trim(); });\n if(opt[0]) opts[opt[0]] = parseValue(opt[1]);\n });\n }\n try{\n $el.data('zfPlugin', new plugin($(this), opts));\n }catch(er){\n console.error(er);\n }finally{\n return;\n }\n });\n });\n },\n getFnName: functionName,\n\n addToJquery: function($) {\n // TODO: consider not making this a jQuery function\n // TODO: need way to reflow vs. re-initialize\n /**\n * The Foundation jQuery method.\n * @param {String|Array} method - An action to perform on the current jQuery object.\n */\n var foundation = function(method) {\n var type = typeof method,\n $noJS = $('.no-js');\n\n if($noJS.length){\n $noJS.removeClass('no-js');\n }\n\n if(type === 'undefined'){//needs to initialize the Foundation object, or an individual plugin.\n MediaQuery._init();\n Foundation.reflow(this);\n }else if(type === 'string'){//an individual method to invoke on a plugin or group of plugins\n var args = Array.prototype.slice.call(arguments, 1);//collect all the arguments, if necessary\n var plugClass = this.data('zfPlugin');//determine the class of plugin\n\n if(typeof plugClass !== 'undefined' && typeof plugClass[method] !== 'undefined'){//make sure both the class and method exist\n if(this.length === 1){//if there's only one, call it directly.\n plugClass[method].apply(plugClass, args);\n }else{\n this.each(function(i, el){//otherwise loop through the jQuery collection and invoke the method on each\n plugClass[method].apply($(el).data('zfPlugin'), args);\n });\n }\n }else{//error for no class or no method\n throw new ReferenceError(\"We're sorry, '\" + method + \"' is not an available method for \" + (plugClass ? functionName(plugClass) : 'this element') + '.');\n }\n }else{//error for invalid argument type\n throw new TypeError(`We're sorry, ${type} is not a valid parameter. You must use a string representing the method you wish to invoke.`);\n }\n return this;\n };\n $.fn.foundation = foundation;\n return $;\n }\n};\n\nFoundation.util = {\n /**\n * Function for applying a debounce effect to a function call.\n * @function\n * @param {Function} func - Function to be called at end of timeout.\n * @param {Number} delay - Time in ms to delay the call of `func`.\n * @returns function\n */\n throttle: function (func, delay) {\n var timer = null;\n\n return function () {\n var context = this, args = arguments;\n\n if (timer === null) {\n timer = setTimeout(function () {\n func.apply(context, args);\n timer = null;\n }, delay);\n }\n };\n }\n};\n\nwindow.Foundation = Foundation;\n\n// Polyfill for requestAnimationFrame\n(function() {\n if (!Date.now || !window.Date.now)\n window.Date.now = Date.now = function() { return new Date().getTime(); };\n\n var vendors = ['webkit', 'moz'];\n for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {\n var vp = vendors[i];\n window.requestAnimationFrame = window[vp+'RequestAnimationFrame'];\n window.cancelAnimationFrame = (window[vp+'CancelAnimationFrame']\n || window[vp+'CancelRequestAnimationFrame']);\n }\n if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)\n || !window.requestAnimationFrame || !window.cancelAnimationFrame) {\n var lastTime = 0;\n window.requestAnimationFrame = function(callback) {\n var now = Date.now();\n var nextTime = Math.max(lastTime + 16, now);\n return setTimeout(function() { callback(lastTime = nextTime); },\n nextTime - now);\n };\n window.cancelAnimationFrame = clearTimeout;\n }\n /**\n * Polyfill for performance.now, required by rAF\n */\n if(!window.performance || !window.performance.now){\n window.performance = {\n start: Date.now(),\n now: function(){ return Date.now() - this.start; }\n };\n }\n})();\nif (!Function.prototype.bind) {\n Function.prototype.bind = function(oThis) {\n if (typeof this !== 'function') {\n // closest thing possible to the ECMAScript 5\n // internal IsCallable function\n throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n }\n\n var aArgs = Array.prototype.slice.call(arguments, 1),\n fToBind = this,\n fNOP = function() {},\n fBound = function() {\n return fToBind.apply(this instanceof fNOP\n ? this\n : oThis,\n aArgs.concat(Array.prototype.slice.call(arguments)));\n };\n\n if (this.prototype) {\n // native functions don't have a prototype\n fNOP.prototype = this.prototype;\n }\n fBound.prototype = new fNOP();\n\n return fBound;\n };\n}\n// Polyfill to get the name of a function in IE9\nfunction functionName(fn) {\n if (typeof Function.prototype.name === 'undefined') {\n var funcNameRegex = /function\\s([^(]{1,})\\(/;\n var results = (funcNameRegex).exec((fn).toString());\n return (results && results.length > 1) ? results[1].trim() : \"\";\n }\n else if (typeof fn.prototype === 'undefined') {\n return fn.constructor.name;\n }\n else {\n return fn.prototype.constructor.name;\n }\n}\nfunction parseValue(str){\n if ('true' === str) return true;\n else if ('false' === str) return false;\n else if (!isNaN(str * 1)) return parseFloat(str);\n return str;\n}\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport {Foundation};\n","'use strict';\n\nimport $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\n\n// Abstract class for providing lifecycle hooks. Expect plugins to define AT LEAST\n// {function} _setup (replaces previous constructor),\n// {function} _destroy (replaces previous destroy)\nclass Plugin {\n\n constructor(element, options) {\n this._setup(element, options);\n var pluginName = getPluginName(this);\n this.uuid = GetYoDigits(6, pluginName);\n\n if(!this.$element.attr(`data-${pluginName}`)){ this.$element.attr(`data-${pluginName}`, this.uuid); }\n if(!this.$element.data('zfPlugin')){ this.$element.data('zfPlugin', this); }\n /**\n * Fires when the plugin has initialized.\n * @event Plugin#init\n */\n this.$element.trigger(`init.zf.${pluginName}`);\n }\n\n destroy() {\n this._destroy();\n var pluginName = getPluginName(this);\n this.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n /**\n * Fires when the plugin has been destroyed.\n * @event Plugin#destroyed\n */\n .trigger(`destroyed.zf.${pluginName}`);\n for(var prop in this){\n this[prop] = null;//clean up script to prep for garbage collection.\n }\n }\n}\n\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nfunction getPluginName(obj) {\n if(typeof(obj.constructor.name) !== 'undefined') {\n return hyphenate(obj.constructor.name);\n } else {\n return hyphenate(obj.className);\n }\n}\n\nexport {Plugin};\n","\"use strict\";\n\nimport $ from 'jquery';\n\n// Core Foundation Utilities, utilized in a number of places.\n\n /**\n * Returns a boolean for RTL support\n */\nfunction rtl() {\n return $('html').attr('dir') === 'rtl';\n}\n\n/**\n * returns a random base-36 uid with namespacing\n * @function\n * @param {Number} length - number of random base-36 digits desired. Increase for more random strings.\n * @param {String} namespace - name of plugin to be incorporated in uid, optional.\n * @default {String} '' - if no plugin name is provided, nothing is appended to the uid.\n * @returns {String} - unique id\n */\nfunction GetYoDigits(length = 6, namespace){\n let str = '';\n const chars = '0123456789abcdefghijklmnopqrstuvwxyz';\n const charsLength = chars.length;\n for (let i = 0; i < length; i++) {\n str += chars[Math.floor(Math.random() * charsLength)];\n }\n return namespace ? `${str}-${namespace}` : str;\n}\n\n/**\n * Escape a string so it can be used as a regexp pattern\n * @function\n * @see https://stackoverflow.com/a/9310752/4317384\n *\n * @param {String} str - string to escape.\n * @returns {String} - escaped string\n */\nfunction RegExpEscape(str){\n return str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nfunction transitionend($elem){\n var transitions = {\n 'transition': 'transitionend',\n 'WebkitTransition': 'webkitTransitionEnd',\n 'MozTransition': 'transitionend',\n 'OTransition': 'otransitionend'\n };\n var elem = document.createElement('div'),\n end;\n\n for (var t in transitions){\n if (typeof elem.style[t] !== 'undefined'){\n end = transitions[t];\n }\n }\n if(end){\n return end;\n }else{\n end = setTimeout(function(){\n $elem.triggerHandler('transitionend', [$elem]);\n }, 1);\n return 'transitionend';\n }\n}\n\n/**\n * Return an event type to listen for window load.\n *\n * If `$elem` is passed, an event will be triggered on `$elem`. If window is already loaded, the event will still be triggered.\n * If `handler` is passed, attach it to the event on `$elem`.\n * Calling `onLoad` without handler allows you to get the event type that will be triggered before attaching the handler by yourself.\n * @function\n *\n * @param {Object} [] $elem - jQuery element on which the event will be triggered if passed.\n * @param {Function} [] handler - function to attach to the event.\n * @returns {String} - event type that should or will be triggered.\n */\nfunction onLoad($elem, handler) {\n const didLoad = document.readyState === 'complete';\n const eventType = (didLoad ? '_didLoad' : 'load') + '.zf.util.onLoad';\n const cb = () => $elem.triggerHandler(eventType);\n\n if ($elem) {\n if (handler) $elem.one(eventType, handler);\n\n if (didLoad)\n setTimeout(cb);\n else\n $(window).one('load', cb);\n }\n\n return eventType;\n}\n\n/**\n * Retuns an handler for the `mouseleave` that ignore disappeared mouses.\n *\n * If the mouse \"disappeared\" from the document (like when going on a browser UI element, See https://git.io/zf-11410),\n * the event is ignored.\n * - If the `ignoreLeaveWindow` is `true`, the event is ignored when the user actually left the window\n * (like by switching to an other window with [Alt]+[Tab]).\n * - If the `ignoreReappear` is `true`, the event will be ignored when the mouse will reappear later on the document\n * outside of the element it left.\n *\n * @function\n *\n * @param {Function} [] handler - handler for the filtered `mouseleave` event to watch.\n * @param {Object} [] options - object of options:\n * - {Boolean} [false] ignoreLeaveWindow - also ignore when the user switched windows.\n * - {Boolean} [false] ignoreReappear - also ignore when the mouse reappeared outside of the element it left.\n * @returns {Function} - filtered handler to use to listen on the `mouseleave` event.\n */\nfunction ignoreMousedisappear(handler, { ignoreLeaveWindow = false, ignoreReappear = false } = {}) {\n return function leaveEventHandler(eLeave, ...rest) {\n const callback = handler.bind(this, eLeave, ...rest);\n\n // The mouse left: call the given callback if the mouse entered elsewhere\n if (eLeave.relatedTarget !== null) {\n return callback();\n }\n\n // Otherwise, check if the mouse actually left the window.\n // In firefox if the user switched between windows, the window sill have the focus by the time\n // the event is triggered. We have to debounce the event to test this case.\n setTimeout(function leaveEventDebouncer() {\n if (!ignoreLeaveWindow && document.hasFocus && !document.hasFocus()) {\n return callback();\n }\n\n // Otherwise, wait for the mouse to reeapear outside of the element,\n if (!ignoreReappear) {\n $(document).one('mouseenter', function reenterEventHandler(eReenter) {\n if (!$(eLeave.currentTarget).has(eReenter.target).length) {\n // Fill where the mouse finally entered.\n eLeave.relatedTarget = eReenter.target;\n callback();\n }\n });\n }\n\n }, 0);\n };\n}\n\n\nexport { rtl, GetYoDigits, RegExpEscape, transitionend, onLoad, ignoreMousedisappear };\n","'use strict';\n\nimport $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, transitionend, RegExpEscape } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * OffCanvas module.\n * @module foundation.offCanvas\n * @requires foundation.util.keyboard\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.triggers\n */\n\nclass OffCanvas extends Plugin {\n /**\n * Creates a new instance of an off-canvas wrapper.\n * @class\n * @name OffCanvas\n * @fires OffCanvas#init\n * @param {Object} element - jQuery object to initialize.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.className = 'OffCanvas'; // ie9 back compat\n this.$element = element;\n this.options = $.extend({}, OffCanvas.defaults, this.$element.data(), options);\n this.contentClasses = { base: [], reveal: [] };\n this.$lastTrigger = $();\n this.$triggers = $();\n this.position = 'left';\n this.$content = $();\n this.nested = !!(this.options.nested);\n this.$sticky = $();\n this.isInCanvas = false;\n\n // Defines the CSS transition/position classes of the off-canvas content container.\n $(['push', 'overlap']).each((index, val) => {\n this.contentClasses.base.push('has-transition-'+val);\n });\n $(['left', 'right', 'top', 'bottom']).each((index, val) => {\n this.contentClasses.base.push('has-position-'+val);\n this.contentClasses.reveal.push('has-reveal-'+val);\n });\n\n // Triggers init is idempotent, just need to make sure it is initialized\n Triggers.init($);\n MediaQuery._init();\n\n this._init();\n this._events();\n\n Keyboard.register('OffCanvas', {\n 'ESCAPE': 'close'\n });\n\n }\n\n /**\n * Initializes the off-canvas wrapper by adding the exit overlay (if needed).\n * @function\n * @private\n */\n _init() {\n var id = this.$element.attr('id');\n\n this.$element.attr('aria-hidden', 'true');\n\n // Find off-canvas content, either by ID (if specified), by siblings or by closest selector (fallback)\n if (this.options.contentId) {\n this.$content = $('#'+this.options.contentId);\n } else if (this.$element.siblings('[data-off-canvas-content]').length) {\n this.$content = this.$element.siblings('[data-off-canvas-content]').first();\n } else {\n this.$content = this.$element.closest('[data-off-canvas-content]').first();\n }\n\n if (!this.options.contentId) {\n // Assume that the off-canvas element is nested if it isn't a sibling of the content\n this.nested = this.$element.siblings('[data-off-canvas-content]').length === 0;\n\n } else if (this.options.contentId && this.options.nested === null) {\n // Warning if using content ID without setting the nested option\n // Once the element is nested it is required to work properly in this case\n console.warn('Remember to use the nested option if using the content ID option!');\n }\n\n if (this.nested === true) {\n // Force transition overlap if nested\n this.options.transition = 'overlap';\n // Remove appropriate classes if already assigned in markup\n this.$element.removeClass('is-transition-push');\n }\n\n this.$element.addClass(`is-transition-${this.options.transition} is-closed`);\n\n // Find triggers that affect this element and add aria-expanded to them\n this.$triggers = $(document)\n .find('[data-open=\"'+id+'\"], [data-close=\"'+id+'\"], [data-toggle=\"'+id+'\"]')\n .attr('aria-expanded', 'false')\n .attr('aria-controls', id);\n\n // Get position by checking for related CSS class\n this.position = this.$element.is('.position-left, .position-top, .position-right, .position-bottom') ? this.$element.attr('class').match(/position\\-(left|top|right|bottom)/)[1] : this.position;\n\n // Add an overlay over the content if necessary\n if (this.options.contentOverlay === true) {\n var overlay = document.createElement('div');\n var overlayPosition = $(this.$element).css(\"position\") === 'fixed' ? 'is-overlay-fixed' : 'is-overlay-absolute';\n overlay.setAttribute('class', 'js-off-canvas-overlay ' + overlayPosition);\n this.$overlay = $(overlay);\n if(overlayPosition === 'is-overlay-fixed') {\n $(this.$overlay).insertAfter(this.$element);\n } else {\n this.$content.append(this.$overlay);\n }\n }\n\n // Get the revealOn option from the class.\n var revealOnRegExp = new RegExp(RegExpEscape(this.options.revealClass) + '([^\\\\s]+)', 'g');\n var revealOnClass = revealOnRegExp.exec(this.$element[0].className);\n if (revealOnClass) {\n this.options.isRevealed = true;\n this.options.revealOn = this.options.revealOn || revealOnClass[1];\n }\n\n // Ensure the `reveal-on-*` class is set.\n if (this.options.isRevealed === true && this.options.revealOn) {\n this.$element.first().addClass(`${this.options.revealClass}${this.options.revealOn}`);\n this._setMQChecker();\n }\n\n if (this.options.transitionTime) {\n this.$element.css('transition-duration', this.options.transitionTime);\n }\n\n // Find fixed elements that should stay fixed while off-canvas is opened\n this.$sticky = this.$content.find('[data-off-canvas-sticky]');\n if (this.$sticky.length > 0 && this.options.transition === 'push') {\n // If there's at least one match force contentScroll:false because the absolute top value doesn't get recalculated on scroll\n // Limit to push transition since there's no transform scope for overlap\n this.options.contentScroll = false;\n }\n\n let inCanvasFor = this.$element.attr('class').match(/\\bin-canvas-for-(\\w+)/);\n if (inCanvasFor && inCanvasFor.length === 2) {\n // Set `inCanvasOn` option if found in-canvas-for-[BREAKPONT] CSS class\n this.options.inCanvasOn = inCanvasFor[1];\n } else if (this.options.inCanvasOn) {\n // Ensure the CSS class is set\n this.$element.addClass(`in-canvas-for-${this.options.inCanvasOn}`);\n }\n\n if (this.options.inCanvasOn) {\n this._checkInCanvas();\n }\n\n // Initally remove all transition/position CSS classes from off-canvas content container.\n this._removeContentClasses();\n }\n\n /**\n * Adds event handlers to the off-canvas wrapper and the exit overlay.\n * @function\n * @private\n */\n _events() {\n this.$element.off('.zf.trigger .zf.offCanvas').on({\n 'open.zf.trigger': this.open.bind(this),\n 'close.zf.trigger': this.close.bind(this),\n 'toggle.zf.trigger': this.toggle.bind(this),\n 'keydown.zf.offCanvas': this._handleKeyboard.bind(this)\n });\n\n if (this.options.closeOnClick === true) {\n var $target = this.options.contentOverlay ? this.$overlay : this.$content;\n $target.on({'click.zf.offCanvas': this.close.bind(this)});\n }\n\n if (this.options.inCanvasOn) {\n $(window).on('changed.zf.mediaquery', () => {\n this._checkInCanvas();\n });\n }\n\n }\n\n /**\n * Applies event listener for elements that will reveal at certain breakpoints.\n * @private\n */\n _setMQChecker() {\n var _this = this;\n\n this.onLoadListener = onLoad($(window), function () {\n if (MediaQuery.atLeast(_this.options.revealOn)) {\n _this.reveal(true);\n }\n });\n\n $(window).on('changed.zf.mediaquery', function () {\n if (MediaQuery.atLeast(_this.options.revealOn)) {\n _this.reveal(true);\n } else {\n _this.reveal(false);\n }\n });\n }\n\n /**\n * Checks if InCanvas on current breakpoint and adjust off-canvas accordingly\n * @private\n */\n _checkInCanvas() {\n this.isInCanvas = MediaQuery.atLeast(this.options.inCanvasOn);\n if (this.isInCanvas === true) {\n this.close();\n }\n }\n\n /**\n * Removes the CSS transition/position classes of the off-canvas content container.\n * Removing the classes is important when another off-canvas gets opened that uses the same content container.\n * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n * @private\n */\n _removeContentClasses(hasReveal) {\n if (typeof hasReveal !== 'boolean') {\n this.$content.removeClass(this.contentClasses.base.join(' '));\n } else if (hasReveal === false) {\n this.$content.removeClass(`has-reveal-${this.position}`);\n }\n }\n\n /**\n * Adds the CSS transition/position classes of the off-canvas content container, based on the opening off-canvas element.\n * Beforehand any transition/position class gets removed.\n * @param {Boolean} hasReveal - true if related off-canvas element is revealed.\n * @private\n */\n _addContentClasses(hasReveal) {\n this._removeContentClasses(hasReveal);\n if (typeof hasReveal !== 'boolean') {\n this.$content.addClass(`has-transition-${this.options.transition} has-position-${this.position}`);\n } else if (hasReveal === true) {\n this.$content.addClass(`has-reveal-${this.position}`);\n }\n }\n\n /**\n * Preserves the fixed behavior of sticky elements on opening an off-canvas with push transition.\n * Since the off-canvas container has got a transform scope in such a case, it is done by calculating position absolute values.\n * @private\n */\n _fixStickyElements() {\n this.$sticky.each((_, el) => {\n const $el = $(el);\n\n // If sticky element is currently fixed, adjust its top value to match absolute position due to transform scope\n // Limit to push transition because postion:fixed works without problems for overlap (no transform scope)\n if ($el.css('position') === 'fixed') {\n\n // Save current inline styling to restore it if undoing the absolute fixing\n let topVal = parseInt($el.css('top'), 10);\n $el.data('offCanvasSticky', { top: topVal });\n\n let absoluteTopVal = $(document).scrollTop() + topVal;\n $el.css({ top: `${absoluteTopVal}px`, width: '100%', transition: 'none' });\n }\n });\n }\n\n /**\n * Restores the original fixed styling of sticky elements after having closed an off-canvas that got pseudo fixed beforehand.\n * This reverts the changes of _fixStickyElements()\n * @private\n */\n _unfixStickyElements() {\n this.$sticky.each((_, el) => {\n const $el = $(el);\n let stickyData = $el.data('offCanvasSticky');\n\n // If sticky element has got data object with prior values (meaning it was originally fixed) restore these values once off-canvas is closed\n if (typeof stickyData === 'object') {\n $el.css({ top: `${stickyData.top}px`, width: '', transition: '' })\n $el.data('offCanvasSticky', '');\n }\n });\n }\n\n /**\n * Handles the revealing/hiding the off-canvas at breakpoints, not the same as open.\n * @param {Boolean} isRevealed - true if element should be revealed.\n * @function\n */\n reveal(isRevealed) {\n if (isRevealed) {\n this.close();\n this.isRevealed = true;\n this.$element.attr('aria-hidden', 'false');\n this.$element.off('open.zf.trigger toggle.zf.trigger');\n this.$element.removeClass('is-closed');\n } else {\n this.isRevealed = false;\n this.$element.attr('aria-hidden', 'true');\n this.$element.off('open.zf.trigger toggle.zf.trigger').on({\n 'open.zf.trigger': this.open.bind(this),\n 'toggle.zf.trigger': this.toggle.bind(this)\n });\n this.$element.addClass('is-closed');\n }\n this._addContentClasses(isRevealed);\n }\n\n /**\n * Stops scrolling of the body when OffCanvas is open on mobile Safari and other troublesome browsers.\n * @function\n * @private\n */\n _stopScrolling(event) {\n return false;\n }\n\n /**\n * Tag the element given as context whether it can be scrolled up and down.\n * Used to allow or prevent it to scroll. See `_stopScrollPropagation`.\n *\n * Taken and adapted from http://stackoverflow.com/questions/16889447/prevent-full-page-scrolling-ios\n * Only really works for y, not sure how to extend to x or if we need to.\n *\n * @function\n * @private\n */\n _recordScrollable(event) {\n let elem = this; // called from event handler context with this as elem\n\n // If the element is scrollable (content overflows), then...\n if (elem.scrollHeight !== elem.clientHeight) {\n // If we're at the top, scroll down one pixel to allow scrolling up\n if (elem.scrollTop === 0) {\n elem.scrollTop = 1;\n }\n // If we're at the bottom, scroll up one pixel to allow scrolling down\n if (elem.scrollTop === elem.scrollHeight - elem.clientHeight) {\n elem.scrollTop = elem.scrollHeight - elem.clientHeight - 1;\n }\n }\n elem.allowUp = elem.scrollTop > 0;\n elem.allowDown = elem.scrollTop < (elem.scrollHeight - elem.clientHeight);\n elem.lastY = event.originalEvent.pageY;\n }\n\n /**\n * Prevent the given event propagation if the element given as context can scroll.\n * Used to preserve the element scrolling on mobile (`touchmove`) when the document\n * scrolling is prevented. See https://git.io/zf-9707.\n * @function\n * @private\n */\n _stopScrollPropagation(event) {\n let elem = this; // called from event handler context with this as elem\n let parent; // off-canvas elem if called from inner scrollbox\n let up = event.pageY < elem.lastY;\n let down = !up;\n elem.lastY = event.pageY;\n\n if((up && elem.allowUp) || (down && elem.allowDown)) {\n // It is not recommended to stop event propagation (the user cannot watch it),\n // but in this case this is the only solution we have.\n event.stopPropagation();\n\n // If elem is inner scrollbox we are scrolling the outer off-canvas down/up once the box end has been reached\n // This lets the user continue to touch move the off-canvas without the need to place the finger outside the scrollbox\n if (elem.hasAttribute('data-off-canvas-scrollbox')) {\n parent = elem.closest('[data-off-canvas], [data-off-canvas-scrollbox-outer]');\n if (elem.scrollTop <= 1 && parent.scrollTop > 0) {\n parent.scrollTop--;\n } else if (elem.scrollTop >= elem.scrollHeight - elem.clientHeight - 1 && parent.scrollTop < parent.scrollHeight - parent.clientHeight) {\n parent.scrollTop++;\n }\n }\n\n } else {\n event.preventDefault();\n }\n }\n\n /**\n * Opens the off-canvas menu.\n * @function\n * @param {Object} event - Event object passed from listener.\n * @param {jQuery} trigger - element that triggered the off-canvas to open.\n * @fires OffCanvas#opened\n * @todo also trigger 'open' event?\n */\n open(event, trigger) {\n if (this.$element.hasClass('is-open') || this.isRevealed || this.isInCanvas) { return; }\n var _this = this;\n\n if (trigger) {\n this.$lastTrigger = trigger;\n }\n\n if (this.options.forceTo === 'top') {\n window.scrollTo(0, 0);\n } else if (this.options.forceTo === 'bottom') {\n window.scrollTo(0,document.body.scrollHeight);\n }\n\n if (this.options.transitionTime && this.options.transition !== 'overlap') {\n this.$element.siblings('[data-off-canvas-content]').css('transition-duration', this.options.transitionTime);\n } else {\n this.$element.siblings('[data-off-canvas-content]').css('transition-duration', '');\n }\n\n this.$element.addClass('is-open').removeClass('is-closed');\n\n this.$triggers.attr('aria-expanded', 'true');\n this.$element.attr('aria-hidden', 'false');\n\n this.$content.addClass('is-open-' + this.position);\n\n // If `contentScroll` is set to false, add class and disable scrolling on touch devices.\n if (this.options.contentScroll === false) {\n $('body').addClass('is-off-canvas-open').on('touchmove', this._stopScrolling);\n this.$element.on('touchstart', this._recordScrollable);\n this.$element.on('touchmove', this._stopScrollPropagation);\n this.$element.on('touchstart', '[data-off-canvas-scrollbox]', this._recordScrollable);\n this.$element.on('touchmove', '[data-off-canvas-scrollbox]', this._stopScrollPropagation);\n }\n\n if (this.options.contentOverlay === true) {\n this.$overlay.addClass('is-visible');\n }\n\n if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n this.$overlay.addClass('is-closable');\n }\n\n if (this.options.autoFocus === true) {\n this.$element.one(transitionend(this.$element), function() {\n if (!_this.$element.hasClass('is-open')) {\n return; // exit if prematurely closed\n }\n var canvasFocus = _this.$element.find('[data-autofocus]');\n if (canvasFocus.length) {\n canvasFocus.eq(0).focus();\n } else {\n _this.$element.find('a, button').eq(0).focus();\n }\n });\n }\n\n if (this.options.trapFocus === true) {\n this.$content.attr('tabindex', '-1');\n Keyboard.trapFocus(this.$element);\n }\n\n if (this.options.transition === 'push') {\n this._fixStickyElements();\n }\n\n this._addContentClasses();\n\n /**\n * Fires when the off-canvas menu opens.\n * @event OffCanvas#opened\n */\n this.$element.trigger('opened.zf.offCanvas');\n\n /**\n * Fires when the off-canvas menu open transition is done.\n * @event OffCanvas#openedEnd\n */\n this.$element.one(transitionend(this.$element), () => {\n this.$element.trigger('openedEnd.zf.offCanvas');\n });\n }\n\n /**\n * Closes the off-canvas menu.\n * @function\n * @param {Function} cb - optional cb to fire after closure.\n * @fires OffCanvas#close\n * @fires OffCanvas#closed\n */\n close(cb) {\n if (!this.$element.hasClass('is-open') || this.isRevealed) { return; }\n\n /**\n * Fires when the off-canvas menu closes.\n * @event OffCanvas#close\n */\n this.$element.trigger('close.zf.offCanvas');\n\n var _this = this;\n\n this.$element.removeClass('is-open');\n\n this.$element.attr('aria-hidden', 'true');\n\n this.$content.removeClass('is-open-left is-open-top is-open-right is-open-bottom');\n\n if (this.options.contentOverlay === true) {\n this.$overlay.removeClass('is-visible');\n }\n\n if (this.options.closeOnClick === true && this.options.contentOverlay === true) {\n this.$overlay.removeClass('is-closable');\n }\n\n this.$triggers.attr('aria-expanded', 'false');\n\n\n // Listen to transitionEnd: add class, re-enable scrolling and release focus when done.\n this.$element.one(transitionend(this.$element), (e) => {\n\n this.$element.addClass('is-closed');\n this._removeContentClasses();\n\n if (this.options.transition === 'push') {\n this._unfixStickyElements();\n }\n\n // If `contentScroll` is set to false, remove class and re-enable scrolling on touch devices.\n if (this.options.contentScroll === false) {\n $('body').removeClass('is-off-canvas-open').off('touchmove', this._stopScrolling);\n this.$element.off('touchstart', this._recordScrollable);\n this.$element.off('touchmove', this._stopScrollPropagation);\n this.$element.off('touchstart', '[data-off-canvas-scrollbox]', this._recordScrollable);\n this.$element.off('touchmove', '[data-off-canvas-scrollbox]', this._stopScrollPropagation);\n }\n\n if (this.options.trapFocus === true) {\n this.$content.removeAttr('tabindex');\n Keyboard.releaseFocus(this.$element);\n }\n\n /**\n * Fires when the off-canvas menu close transition is done.\n * @event OffCanvas#closed\n */\n this.$element.trigger('closed.zf.offCanvas');\n });\n }\n\n /**\n * Toggles the off-canvas menu open or closed.\n * @function\n * @param {Object} event - Event object passed from listener.\n * @param {jQuery} trigger - element that triggered the off-canvas to open.\n */\n toggle(event, trigger) {\n if (this.$element.hasClass('is-open')) {\n this.close(event, trigger);\n }\n else {\n this.open(event, trigger);\n }\n }\n\n /**\n * Handles keyboard input when detected. When the escape key is pressed, the off-canvas menu closes, and focus is restored to the element that opened the menu.\n * @function\n * @private\n */\n _handleKeyboard(e) {\n Keyboard.handleKey(e, 'OffCanvas', {\n close: () => {\n this.close();\n this.$lastTrigger.focus();\n return true;\n },\n handled: () => {\n e.preventDefault();\n }\n });\n }\n\n /**\n * Destroys the OffCanvas plugin.\n * @function\n */\n _destroy() {\n this.close();\n this.$element.off('.zf.trigger .zf.offCanvas');\n this.$overlay.off('.zf.offCanvas');\n if (this.onLoadListener) $(window).off(this.onLoadListener);\n }\n}\n\nOffCanvas.defaults = {\n /**\n * Allow the user to click outside of the menu to close it.\n * @option\n * @type {boolean}\n * @default true\n */\n closeOnClick: true,\n\n /**\n * Adds an overlay on top of `[data-off-canvas-content]`.\n * @option\n * @type {boolean}\n * @default true\n */\n contentOverlay: true,\n\n /**\n * Target an off-canvas content container by ID that may be placed anywhere. If null the closest content container will be taken.\n * @option\n * @type {?string}\n * @default null\n */\n contentId: null,\n\n /**\n * Define the off-canvas element is nested in an off-canvas content. This is required when using the contentId option for a nested element.\n * @option\n * @type {boolean}\n * @default null\n */\n nested: null,\n\n /**\n * Enable/disable scrolling of the main content when an off canvas panel is open.\n * @option\n * @type {boolean}\n * @default true\n */\n contentScroll: true,\n\n /**\n * Amount of time the open and close transition requires, including the appropriate milliseconds (`ms`) or seconds (`s`) unit (e.g. `500ms`, `.75s`) If none selected, pulls from body style.\n * @option\n * @type {string}\n * @default null\n */\n transitionTime: null,\n\n /**\n * Type of transition for the OffCanvas menu. Options are 'push', 'detached' or 'slide'.\n * @option\n * @type {string}\n * @default push\n */\n transition: 'push',\n\n /**\n * Force the page to scroll to top or bottom on open.\n * @option\n * @type {?string}\n * @default null\n */\n forceTo: null,\n\n /**\n * Allow the OffCanvas to remain open for certain breakpoints.\n * @option\n * @type {boolean}\n * @default false\n */\n isRevealed: false,\n\n /**\n * Breakpoint at which to reveal. JS will use a RegExp to target standard classes, if changing classnames, pass your class with the `revealClass` option.\n * @option\n * @type {?string}\n * @default null\n */\n revealOn: null,\n\n /**\n * Breakpoint at which the off-canvas gets moved into canvas content and acts as regular page element.\n * @option\n * @type {?string}\n * @default null\n */\n inCanvasOn: null,\n\n /**\n * Force focus to the offcanvas on open. If true, will focus the opening trigger on close.\n * @option\n * @type {boolean}\n * @default true\n */\n autoFocus: true,\n\n /**\n * Class used to force an OffCanvas to remain open. Foundation defaults for this are `reveal-for-large` & `reveal-for-medium`.\n * @option\n * @type {string}\n * @default reveal-for-\n * @todo improve the regex testing for this.\n */\n revealClass: 'reveal-for-',\n\n /**\n * Triggers optional focus trapping when opening an OffCanvas. Sets tabindex of [data-off-canvas-content] to -1 for accessibility purposes.\n * @option\n * @type {boolean}\n * @default false\n */\n trapFocus: false\n}\n\nexport {OffCanvas};\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * SmoothScroll module.\n * @module foundation.smoothScroll\n */\nclass SmoothScroll extends Plugin {\n /**\n * Creates a new instance of SmoothScroll.\n * @class\n * @name SmoothScroll\n * @fires SmoothScroll#init\n * @param {Object} element - jQuery object to add the trigger to.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, SmoothScroll.defaults, this.$element.data(), options);\n this.className = 'SmoothScroll'; // ie9 back compat\n\n this._init();\n }\n\n /**\n * Initialize the SmoothScroll plugin\n * @private\n */\n _init() {\n const id = this.$element[0].id || GetYoDigits(6, 'smooth-scroll');\n this.$element.attr({ id });\n\n this._events();\n }\n\n /**\n * Initializes events for SmoothScroll.\n * @private\n */\n _events() {\n this._linkClickListener = this._handleLinkClick.bind(this);\n this.$element.on('click.zf.smoothScroll', this._linkClickListener);\n this.$element.on('click.zf.smoothScroll', 'a[href^=\"#\"]', this._linkClickListener);\n }\n\n /**\n * Handle the given event to smoothly scroll to the anchor pointed by the event target.\n * @param {*} e - event\n * @function\n * @private\n */\n _handleLinkClick(e) {\n // Follow the link if it does not point to an anchor.\n if (!$(e.currentTarget).is('a[href^=\"#\"]')) return;\n\n const arrival = e.currentTarget.getAttribute('href');\n\n this._inTransition = true;\n\n SmoothScroll.scrollToLoc(arrival, this.options, () => {\n this._inTransition = false;\n });\n\n e.preventDefault();\n };\n\n /**\n * Function to scroll to a given location on the page.\n * @param {String} loc - A properly formatted jQuery id selector. Example: '#foo'\n * @param {Object} options - The options to use.\n * @param {Function} callback - The callback function.\n * @static\n * @function\n */\n static scrollToLoc(loc, options = SmoothScroll.defaults, callback) {\n const $loc = $(loc);\n\n // Do nothing if target does not exist to prevent errors\n if (!$loc.length) return false;\n\n var scrollPos = Math.round($loc.offset().top - options.threshold / 2 - options.offset);\n\n $('html, body').stop(true).animate(\n { scrollTop: scrollPos },\n options.animationDuration,\n options.animationEasing,\n () => {\n if (typeof callback === 'function'){\n callback();\n }\n }\n );\n }\n\n /**\n * Destroys the SmoothScroll instance.\n * @function\n */\n _destroy() {\n this.$element.off('click.zf.smoothScroll', this._linkClickListener)\n this.$element.off('click.zf.smoothScroll', 'a[href^=\"#\"]', this._linkClickListener);\n }\n}\n\n/**\n * Default settings for plugin.\n */\nSmoothScroll.defaults = {\n /**\n * Amount of time, in ms, the animated scrolling should take between locations.\n * @option\n * @type {number}\n * @default 500\n */\n animationDuration: 500,\n /**\n * Animation style to use when scrolling between locations. Can be `'swing'` or `'linear'`.\n * @option\n * @type {string}\n * @default 'linear'\n * @see {@link https://api.jquery.com/animate|Jquery animate}\n */\n animationEasing: 'linear',\n /**\n * Number of pixels to use as a marker for location changes.\n * @option\n * @type {number}\n * @default 50\n */\n threshold: 50,\n /**\n * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.\n * @option\n * @type {number}\n * @default 0\n */\n offset: 0\n}\n\nexport {SmoothScroll}\n","'use strict';\n\nimport $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Sticky module.\n * @module foundation.sticky\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nclass Sticky extends Plugin {\n /**\n * Creates a new instance of a sticky thing.\n * @class\n * @name Sticky\n * @param {jQuery} element - jQuery object to make sticky.\n * @param {Object} options - options object passed when creating the element programmatically.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, Sticky.defaults, this.$element.data(), options);\n this.className = 'Sticky'; // ie9 back compat\n\n // Triggers init is idempotent, just need to make sure it is initialized\n Triggers.init($);\n\n this._init();\n }\n\n /**\n * Initializes the sticky element by adding classes, getting/setting dimensions, breakpoints and attributes\n * @function\n * @private\n */\n _init() {\n MediaQuery._init();\n\n var $parent = this.$element.parent('[data-sticky-container]'),\n id = this.$element[0].id || GetYoDigits(6, 'sticky'),\n _this = this;\n\n if($parent.length){\n this.$container = $parent;\n } else {\n this.wasWrapped = true;\n this.$element.wrap(this.options.container);\n this.$container = this.$element.parent();\n }\n this.$container.addClass(this.options.containerClass);\n\n this.$element.addClass(this.options.stickyClass).attr({ 'data-resize': id, 'data-mutate': id });\n if (this.options.anchor !== '') {\n $('#' + _this.options.anchor).attr({ 'data-mutate': id });\n }\n\n this.scrollCount = this.options.checkEvery;\n this.isStuck = false;\n this.onLoadListener = onLoad($(window), function () {\n //We calculate the container height to have correct values for anchor points offset calculation.\n _this.containerHeight = _this.$element.css(\"display\") == \"none\" ? 0 : _this.$element[0].getBoundingClientRect().height;\n _this.$container.css('height', _this.containerHeight);\n _this.elemHeight = _this.containerHeight;\n if (_this.options.anchor !== '') {\n _this.$anchor = $('#' + _this.options.anchor);\n } else {\n _this._parsePoints();\n }\n\n _this._setSizes(function () {\n var scroll = window.pageYOffset;\n _this._calc(false, scroll);\n //Unstick the element will ensure that proper classes are set.\n if (!_this.isStuck) {\n _this._removeSticky((scroll >= _this.topPoint) ? false : true);\n }\n });\n _this._events(id.split('-').reverse().join('-'));\n });\n }\n\n /**\n * If using multiple elements as anchors, calculates the top and bottom pixel values the sticky thing should stick and unstick on.\n * @function\n * @private\n */\n _parsePoints() {\n var top = this.options.topAnchor == \"\" ? 1 : this.options.topAnchor,\n btm = this.options.btmAnchor== \"\" ? document.documentElement.scrollHeight : this.options.btmAnchor,\n pts = [top, btm],\n breaks = {};\n for (var i = 0, len = pts.length; i < len && pts[i]; i++) {\n var pt;\n if (typeof pts[i] === 'number') {\n pt = pts[i];\n } else {\n var place = pts[i].split(':'),\n anchor = $(`#${place[0]}`);\n\n pt = anchor.offset().top;\n if (place[1] && place[1].toLowerCase() === 'bottom') {\n pt += anchor[0].getBoundingClientRect().height;\n }\n }\n breaks[i] = pt;\n }\n\n\n this.points = breaks;\n return;\n }\n\n /**\n * Adds event handlers for the scrolling element.\n * @private\n * @param {String} id - pseudo-random id for unique scroll event listener.\n */\n _events(id) {\n var _this = this,\n scrollListener = this.scrollListener = `scroll.zf.${id}`;\n if (this.isOn) { return; }\n if (this.canStick) {\n this.isOn = true;\n $(window).off(scrollListener)\n .on(scrollListener, function(e) {\n if (_this.scrollCount === 0) {\n _this.scrollCount = _this.options.checkEvery;\n _this._setSizes(function() {\n _this._calc(false, window.pageYOffset);\n });\n } else {\n _this.scrollCount--;\n _this._calc(false, window.pageYOffset);\n }\n });\n }\n\n this.$element.off('resizeme.zf.trigger')\n .on('resizeme.zf.trigger', function(e, el) {\n _this._eventsHandler(id);\n });\n\n this.$element.on('mutateme.zf.trigger', function (e, el) {\n _this._eventsHandler(id);\n });\n\n if(this.$anchor) {\n this.$anchor.on('mutateme.zf.trigger', function (e, el) {\n _this._eventsHandler(id);\n });\n }\n }\n\n /**\n * Handler for events.\n * @private\n * @param {String} id - pseudo-random id for unique scroll event listener.\n */\n _eventsHandler(id) {\n var _this = this,\n scrollListener = this.scrollListener = `scroll.zf.${id}`;\n\n _this._setSizes(function() {\n _this._calc(false);\n if (_this.canStick) {\n if (!_this.isOn) {\n _this._events(id);\n }\n } else if (_this.isOn) {\n _this._pauseListeners(scrollListener);\n }\n });\n }\n\n /**\n * Removes event handlers for scroll and change events on anchor.\n * @fires Sticky#pause\n * @param {String} scrollListener - unique, namespaced scroll listener attached to `window`\n */\n _pauseListeners(scrollListener) {\n this.isOn = false;\n $(window).off(scrollListener);\n\n /**\n * Fires when the plugin is paused due to resize event shrinking the view.\n * @event Sticky#pause\n * @private\n */\n this.$element.trigger('pause.zf.sticky');\n }\n\n /**\n * Called on every `scroll` event and on `_init`\n * fires functions based on booleans and cached values\n * @param {Boolean} checkSizes - true if plugin should recalculate sizes and breakpoints.\n * @param {Number} scroll - current scroll position passed from scroll event cb function. If not passed, defaults to `window.pageYOffset`.\n */\n _calc(checkSizes, scroll) {\n if (checkSizes) { this._setSizes(); }\n\n if (!this.canStick) {\n if (this.isStuck) {\n this._removeSticky(true);\n }\n return false;\n }\n\n if (!scroll) { scroll = window.pageYOffset; }\n\n if (scroll >= this.topPoint) {\n if (scroll <= this.bottomPoint) {\n if (!this.isStuck) {\n this._setSticky();\n }\n } else {\n if (this.isStuck) {\n this._removeSticky(false);\n }\n }\n } else {\n if (this.isStuck) {\n this._removeSticky(true);\n }\n }\n }\n\n /**\n * Causes the $element to become stuck.\n * Adds `position: fixed;`, and helper classes.\n * @fires Sticky#stuckto\n * @function\n * @private\n */\n _setSticky() {\n var _this = this,\n stickTo = this.options.stickTo,\n mrgn = stickTo === 'top' ? 'marginTop' : 'marginBottom',\n notStuckTo = stickTo === 'top' ? 'bottom' : 'top',\n css = {};\n\n css[mrgn] = `${this.options[mrgn]}em`;\n css[stickTo] = 0;\n css[notStuckTo] = 'auto';\n this.isStuck = true;\n this.$element.removeClass(`is-anchored is-at-${notStuckTo}`)\n .addClass(`is-stuck is-at-${stickTo}`)\n .css(css)\n /**\n * Fires when the $element has become `position: fixed;`\n * Namespaced to `top` or `bottom`, e.g. `sticky.zf.stuckto:top`\n * @event Sticky#stuckto\n */\n .trigger(`sticky.zf.stuckto:${stickTo}`);\n this.$element.on(\"transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd\", function() {\n _this._setSizes();\n });\n }\n\n /**\n * Causes the $element to become unstuck.\n * Removes `position: fixed;`, and helper classes.\n * Adds other helper classes.\n * @param {Boolean} isTop - tells the function if the $element should anchor to the top or bottom of its $anchor element.\n * @fires Sticky#unstuckfrom\n * @private\n */\n _removeSticky(isTop) {\n var stickTo = this.options.stickTo,\n stickToTop = stickTo === 'top',\n css = {},\n anchorPt = (this.points ? this.points[1] - this.points[0] : this.anchorHeight) - this.elemHeight,\n mrgn = stickToTop ? 'marginTop' : 'marginBottom',\n notStuckTo = stickToTop ? 'bottom' : 'top',\n topOrBottom = isTop ? 'top' : 'bottom';\n\n css[mrgn] = 0;\n\n css['bottom'] = 'auto';\n if(isTop) {\n css['top'] = 0;\n } else {\n css['top'] = anchorPt;\n }\n\n this.isStuck = false;\n this.$element.removeClass(`is-stuck is-at-${stickTo}`)\n .addClass(`is-anchored is-at-${topOrBottom}`)\n .css(css)\n /**\n * Fires when the $element has become anchored.\n * Namespaced to `top` or `bottom`, e.g. `sticky.zf.unstuckfrom:bottom`\n * @event Sticky#unstuckfrom\n */\n .trigger(`sticky.zf.unstuckfrom:${topOrBottom}`);\n }\n\n /**\n * Sets the $element and $container sizes for plugin.\n * Calls `_setBreakPoints`.\n * @param {Function} cb - optional callback function to fire on completion of `_setBreakPoints`.\n * @private\n */\n _setSizes(cb) {\n this.canStick = MediaQuery.is(this.options.stickyOn);\n if (!this.canStick) {\n if (cb && typeof cb === 'function') { cb(); }\n }\n\n var _this = this,\n newElemWidth = this.$container[0].getBoundingClientRect().width,\n comp = window.getComputedStyle(this.$container[0]),\n pdngl = parseInt(comp['padding-left'], 10),\n pdngr = parseInt(comp['padding-right'], 10);\n\n if (this.$anchor && this.$anchor.length) {\n this.anchorHeight = this.$anchor[0].getBoundingClientRect().height;\n } else {\n this._parsePoints();\n }\n\n this.$element.css({\n 'max-width': `${newElemWidth - pdngl - pdngr}px`\n });\n\n // Recalculate the height only if it is \"dynamic\"\n if (this.options.dynamicHeight || !this.containerHeight) {\n // Get the sticked element height and apply it to the container to \"hold the place\"\n var newContainerHeight = this.$element[0].getBoundingClientRect().height || this.containerHeight;\n newContainerHeight = this.$element.css(\"display\") == \"none\" ? 0 : newContainerHeight;\n this.$container.css('height', newContainerHeight);\n this.containerHeight = newContainerHeight;\n }\n this.elemHeight = this.containerHeight;\n\n if (!this.isStuck) {\n if (this.$element.hasClass('is-at-bottom')) {\n var anchorPt = (this.points ? this.points[1] - this.$container.offset().top : this.anchorHeight) - this.elemHeight;\n this.$element.css('top', anchorPt);\n }\n }\n\n this._setBreakPoints(this.containerHeight, function() {\n if (cb && typeof cb === 'function') { cb(); }\n });\n }\n\n /**\n * Sets the upper and lower breakpoints for the element to become sticky/unsticky.\n * @param {Number} elemHeight - px value for sticky.$element height, calculated by `_setSizes`.\n * @param {Function} cb - optional callback function to be called on completion.\n * @private\n */\n _setBreakPoints(elemHeight, cb) {\n if (!this.canStick) {\n if (cb && typeof cb === 'function') { cb(); }\n else { return false; }\n }\n var mTop = emCalc(this.options.marginTop),\n mBtm = emCalc(this.options.marginBottom),\n topPoint = this.points ? this.points[0] : this.$anchor.offset().top,\n bottomPoint = this.points ? this.points[1] : topPoint + this.anchorHeight,\n // topPoint = this.$anchor.offset().top || this.points[0],\n // bottomPoint = topPoint + this.anchorHeight || this.points[1],\n winHeight = window.innerHeight;\n\n if (this.options.stickTo === 'top') {\n topPoint -= mTop;\n bottomPoint -= (elemHeight + mTop);\n } else if (this.options.stickTo === 'bottom') {\n topPoint -= (winHeight - (elemHeight + mBtm));\n bottomPoint -= (winHeight - mBtm);\n } else {\n //this would be the stickTo: both option... tricky\n }\n\n this.topPoint = topPoint;\n this.bottomPoint = bottomPoint;\n\n if (cb && typeof cb === 'function') { cb(); }\n }\n\n /**\n * Destroys the current sticky element.\n * Resets the element to the top position first.\n * Removes event listeners, JS-added css properties and classes, and unwraps the $element if the JS added the $container.\n * @function\n */\n _destroy() {\n this._removeSticky(true);\n\n this.$element.removeClass(`${this.options.stickyClass} is-anchored is-at-top`)\n .css({\n height: '',\n top: '',\n bottom: '',\n 'max-width': ''\n })\n .off('resizeme.zf.trigger')\n .off('mutateme.zf.trigger');\n if (this.$anchor && this.$anchor.length) {\n this.$anchor.off('change.zf.sticky');\n }\n if (this.scrollListener) $(window).off(this.scrollListener)\n if (this.onLoadListener) $(window).off(this.onLoadListener)\n\n if (this.wasWrapped) {\n this.$element.unwrap();\n } else {\n this.$container.removeClass(this.options.containerClass)\n .css({\n height: ''\n });\n }\n }\n}\n\nSticky.defaults = {\n /**\n * Customizable container template. Add your own classes for styling and sizing.\n * @option\n * @type {string}\n * @default '<div data-sticky-container></div>'\n */\n container: '
    ',\n /**\n * Location in the view the element sticks to. Can be `'top'` or `'bottom'`.\n * @option\n * @type {string}\n * @default 'top'\n */\n stickTo: 'top',\n /**\n * If anchored to a single element, the id of that element.\n * @option\n * @type {string}\n * @default ''\n */\n anchor: '',\n /**\n * If using more than one element as anchor points, the id of the top anchor.\n * @option\n * @type {string}\n * @default ''\n */\n topAnchor: '',\n /**\n * If using more than one element as anchor points, the id of the bottom anchor.\n * @option\n * @type {string}\n * @default ''\n */\n btmAnchor: '',\n /**\n * Margin, in `em`'s to apply to the top of the element when it becomes sticky.\n * @option\n * @type {number}\n * @default 1\n */\n marginTop: 1,\n /**\n * Margin, in `em`'s to apply to the bottom of the element when it becomes sticky.\n * @option\n * @type {number}\n * @default 1\n */\n marginBottom: 1,\n /**\n * Breakpoint string that is the minimum screen size an element should become sticky.\n * @option\n * @type {string}\n * @default 'medium'\n */\n stickyOn: 'medium',\n /**\n * Class applied to sticky element, and removed on destruction. Foundation defaults to `sticky`.\n * @option\n * @type {string}\n * @default 'sticky'\n */\n stickyClass: 'sticky',\n /**\n * Class applied to sticky container. Foundation defaults to `sticky-container`.\n * @option\n * @type {string}\n * @default 'sticky-container'\n */\n containerClass: 'sticky-container',\n /**\n * If true (by default), keep the sticky container the same height as the element. Otherwise, the container height is set once and does not change.\n * @option\n * @type {boolean}\n * @default true\n */\n dynamicHeight: true,\n /**\n * Number of scroll events between the plugin's recalculating sticky points. Setting it to `0` will cause it to recalc every scroll event, setting it to `-1` will prevent recalc on scroll.\n * @option\n * @type {number}\n * @default -1\n */\n checkEvery: -1\n};\n\n/**\n * Helper function to calculate em values\n * @param Number {em} - number of em's to calculate into pixels\n */\nfunction emCalc(em) {\n return parseInt(window.getComputedStyle(document.body, null).fontSize, 10) * em;\n}\n\nexport {Sticky};\n","'use strict';\n\n\nimport { rtl as Rtl } from \"./foundation.core.utils\";\n\nvar Box = {\n ImNotTouchingYou: ImNotTouchingYou,\n OverlapArea: OverlapArea,\n GetDimensions: GetDimensions,\n GetExplicitOffsets: GetExplicitOffsets\n}\n\n/**\n * Compares the dimensions of an element to a container and determines collision events with container.\n * @function\n * @param {jQuery} element - jQuery object to test for collisions.\n * @param {jQuery} parent - jQuery object to use as bounding container.\n * @param {Boolean} lrOnly - set to true to check left and right values only.\n * @param {Boolean} tbOnly - set to true to check top and bottom values only.\n * @default if no parent object passed, detects collisions with `window`.\n * @returns {Boolean} - true if collision free, false if a collision in any direction.\n */\nfunction ImNotTouchingYou(element, parent, lrOnly, tbOnly, ignoreBottom) {\n return OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) === 0;\n};\n\nfunction OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) {\n var eleDims = GetDimensions(element),\n topOver, bottomOver, leftOver, rightOver;\n if (parent) {\n var parDims = GetDimensions(parent);\n\n bottomOver = (parDims.height + parDims.offset.top) - (eleDims.offset.top + eleDims.height);\n topOver = eleDims.offset.top - parDims.offset.top;\n leftOver = eleDims.offset.left - parDims.offset.left;\n rightOver = (parDims.width + parDims.offset.left) - (eleDims.offset.left + eleDims.width);\n }\n else {\n bottomOver = (eleDims.windowDims.height + eleDims.windowDims.offset.top) - (eleDims.offset.top + eleDims.height);\n topOver = eleDims.offset.top - eleDims.windowDims.offset.top;\n leftOver = eleDims.offset.left - eleDims.windowDims.offset.left;\n rightOver = eleDims.windowDims.width - (eleDims.offset.left + eleDims.width);\n }\n\n bottomOver = ignoreBottom ? 0 : Math.min(bottomOver, 0);\n topOver = Math.min(topOver, 0);\n leftOver = Math.min(leftOver, 0);\n rightOver = Math.min(rightOver, 0);\n\n if (lrOnly) {\n return leftOver + rightOver;\n }\n if (tbOnly) {\n return topOver + bottomOver;\n }\n\n // use sum of squares b/c we care about overlap area.\n return Math.sqrt((topOver * topOver) + (bottomOver * bottomOver) + (leftOver * leftOver) + (rightOver * rightOver));\n}\n\n/**\n * Uses native methods to return an object of dimension values.\n * @function\n * @param {jQuery || HTML} element - jQuery object or DOM element for which to get the dimensions. Can be any element other that document or window.\n * @returns {Object} - nested object of integer pixel values\n * TODO - if element is window, return only those values.\n */\nfunction GetDimensions(elem){\n elem = elem.length ? elem[0] : elem;\n\n if (elem === window || elem === document) {\n throw new Error(\"I'm sorry, Dave. I'm afraid I can't do that.\");\n }\n\n var rect = elem.getBoundingClientRect(),\n parRect = elem.parentNode.getBoundingClientRect(),\n winRect = document.body.getBoundingClientRect(),\n winY = window.pageYOffset,\n winX = window.pageXOffset;\n\n return {\n width: rect.width,\n height: rect.height,\n offset: {\n top: rect.top + winY,\n left: rect.left + winX\n },\n parentDims: {\n width: parRect.width,\n height: parRect.height,\n offset: {\n top: parRect.top + winY,\n left: parRect.left + winX\n }\n },\n windowDims: {\n width: winRect.width,\n height: winRect.height,\n offset: {\n top: winY,\n left: winX\n }\n }\n }\n}\n\n/**\n * Returns an object of top and left integer pixel values for dynamically rendered elements,\n * such as: Tooltip, Reveal, and Dropdown. Maintained for backwards compatibility, and where\n * you don't know alignment, but generally from\n * 6.4 forward you should use GetExplicitOffsets, as GetOffsets conflates position and alignment.\n * @function\n * @param {jQuery} element - jQuery object for the element being positioned.\n * @param {jQuery} anchor - jQuery object for the element's anchor point.\n * @param {String} position - a string relating to the desired position of the element, relative to it's anchor\n * @param {Number} vOffset - integer pixel value of desired vertical separation between anchor and element.\n * @param {Number} hOffset - integer pixel value of desired horizontal separation between anchor and element.\n * @param {Boolean} isOverflow - if a collision event is detected, sets to true to default the element to full width - any desired offset.\n * TODO alter/rewrite to work with `em` values as well/instead of pixels\n */\nfunction GetExplicitOffsets(element, anchor, position, alignment, vOffset, hOffset, isOverflow) {\n var $eleDims = GetDimensions(element),\n $anchorDims = anchor ? GetDimensions(anchor) : null;\n\n var topVal, leftVal;\n\n // set position related attribute\n\n switch (position) {\n case 'top':\n topVal = $anchorDims.offset.top - ($eleDims.height + vOffset);\n break;\n case 'bottom':\n topVal = $anchorDims.offset.top + $anchorDims.height + vOffset;\n break;\n case 'left':\n leftVal = $anchorDims.offset.left - ($eleDims.width + hOffset);\n break;\n case 'right':\n leftVal = $anchorDims.offset.left + $anchorDims.width + hOffset;\n break;\n }\n\n\n // set alignment related attribute\n switch (position) {\n case 'top':\n case 'bottom':\n switch (alignment) {\n case 'left':\n leftVal = $anchorDims.offset.left + hOffset;\n break;\n case 'right':\n leftVal = $anchorDims.offset.left - $eleDims.width + $anchorDims.width - hOffset;\n break;\n case 'center':\n leftVal = isOverflow ? hOffset : (($anchorDims.offset.left + ($anchorDims.width / 2)) - ($eleDims.width / 2)) + hOffset;\n break;\n }\n break;\n case 'right':\n case 'left':\n switch (alignment) {\n case 'bottom':\n topVal = $anchorDims.offset.top - vOffset + $anchorDims.height - $eleDims.height;\n break;\n case 'top':\n topVal = $anchorDims.offset.top + vOffset\n break;\n case 'center':\n topVal = ($anchorDims.offset.top + vOffset + ($anchorDims.height / 2)) - ($eleDims.height / 2)\n break;\n }\n break;\n }\n return {top: topVal, left: leftVal};\n}\n\nexport {Box};\n","'use strict';\n\nimport $ from 'jquery';\n\n/**\n * Runs a callback function when images are fully loaded.\n * @param {Object} images - Image(s) to check if loaded.\n * @param {Func} callback - Function to execute when image is fully loaded.\n */\nfunction onImagesLoaded(images, callback){\n var self = this,\n unloaded = images.length;\n\n if (unloaded === 0) {\n callback();\n }\n\n images.each(function(){\n // Check if image is loaded\n if (this.complete && typeof this.naturalWidth !== 'undefined') {\n singleImageLoaded();\n }\n else {\n // If the above check failed, simulate loading on detached element.\n var image = new Image();\n // Still count image as loaded if it finalizes with an error.\n var events = \"load.zf.images error.zf.images\";\n $(image).one(events, function me(event){\n // Unbind the event listeners. We're using 'one' but only one of the two events will have fired.\n $(this).off(events, me);\n singleImageLoaded();\n });\n image.src = $(this).attr('src');\n }\n });\n\n function singleImageLoaded() {\n unloaded--;\n if (unloaded === 0) {\n callback();\n }\n }\n}\n\nexport { onImagesLoaded };\n","/*******************************************\n * *\n * This util was created by Marius Olbertz *\n * Please thank Marius on GitHub /owlbertz *\n * or the web http://www.mariusolbertz.de/ *\n * *\n ******************************************/\n\n'use strict';\n\nimport $ from 'jquery';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst keyCodes = {\n 9: 'TAB',\n 13: 'ENTER',\n 27: 'ESCAPE',\n 32: 'SPACE',\n 35: 'END',\n 36: 'HOME',\n 37: 'ARROW_LEFT',\n 38: 'ARROW_UP',\n 39: 'ARROW_RIGHT',\n 40: 'ARROW_DOWN'\n}\n\nvar commands = {}\n\n// Functions pulled out to be referenceable from internals\nfunction findFocusable($element) {\n if(!$element) {return false; }\n return $element.find('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]').filter(function() {\n if (!$(this).is(':visible') || $(this).attr('tabindex') < 0) { return false; } //only have visible elements and those that have a tabindex greater or equal 0\n return true;\n });\n}\n\nfunction parseKey(event) {\n var key = keyCodes[event.which || event.keyCode] || String.fromCharCode(event.which).toUpperCase();\n\n // Remove un-printable characters, e.g. for `fromCharCode` calls for CTRL only events\n key = key.replace(/\\W+/, '');\n\n if (event.shiftKey) key = `SHIFT_${key}`;\n if (event.ctrlKey) key = `CTRL_${key}`;\n if (event.altKey) key = `ALT_${key}`;\n\n // Remove trailing underscore, in case only modifiers were used (e.g. only `CTRL_ALT`)\n key = key.replace(/_$/, '');\n\n return key;\n}\n\nvar Keyboard = {\n keys: getKeyCodes(keyCodes),\n\n /**\n * Parses the (keyboard) event and returns a String that represents its key\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n * @param {Event} event - the event generated by the event handler\n * @return String key - String that represents the key pressed\n */\n parseKey: parseKey,\n\n /**\n * Handles the given (keyboard) event\n * @param {Event} event - the event generated by the event handler\n * @param {String} component - Foundation component's name, e.g. Slider or Reveal\n * @param {Objects} functions - collection of functions that are to be executed\n */\n handleKey(event, component, functions) {\n var commandList = commands[component],\n keyCode = this.parseKey(event),\n cmds,\n command,\n fn;\n\n if (!commandList) return console.warn('Component not defined!');\n\n // Ignore the event if it was already handled\n if (event.zfIsKeyHandled === true) return;\n\n // This component does not differentiate between ltr and rtl\n if (typeof commandList.ltr === 'undefined') {\n cmds = commandList; // use plain list\n } else { // merge ltr and rtl: if document is rtl, rtl overwrites ltr and vice versa\n if (Rtl()) cmds = $.extend({}, commandList.ltr, commandList.rtl);\n\n else cmds = $.extend({}, commandList.rtl, commandList.ltr);\n }\n command = cmds[keyCode];\n\n fn = functions[command];\n // Execute the handler if found\n if (fn && typeof fn === 'function') {\n var returnValue = fn.apply();\n\n // Mark the event as \"handled\" to prevent future handlings\n event.zfIsKeyHandled = true;\n\n // Execute function when event was handled\n if (functions.handled || typeof functions.handled === 'function') {\n functions.handled(returnValue);\n }\n } else {\n // Execute function when event was not handled\n if (functions.unhandled || typeof functions.unhandled === 'function') {\n functions.unhandled();\n }\n }\n },\n\n /**\n * Finds all focusable elements within the given `$element`\n * @param {jQuery} $element - jQuery object to search within\n * @return {jQuery} $focusable - all focusable elements within `$element`\n */\n\n findFocusable: findFocusable,\n\n /**\n * Returns the component name name\n * @param {Object} component - Foundation component, e.g. Slider or Reveal\n * @return String componentName\n */\n\n register(componentName, cmds) {\n commands[componentName] = cmds;\n },\n\n\n // TODO9438: These references to Keyboard need to not require global. Will 'this' work in this context?\n //\n /**\n * Traps the focus in the given element.\n * @param {jQuery} $element jQuery object to trap the foucs into.\n */\n trapFocus($element) {\n var $focusable = findFocusable($element),\n $firstFocusable = $focusable.eq(0),\n $lastFocusable = $focusable.eq(-1);\n\n $element.on('keydown.zf.trapfocus', function(event) {\n if (event.target === $lastFocusable[0] && parseKey(event) === 'TAB') {\n event.preventDefault();\n $firstFocusable.focus();\n }\n else if (event.target === $firstFocusable[0] && parseKey(event) === 'SHIFT_TAB') {\n event.preventDefault();\n $lastFocusable.focus();\n }\n });\n },\n /**\n * Releases the trapped focus from the given element.\n * @param {jQuery} $element jQuery object to release the focus for.\n */\n releaseFocus($element) {\n $element.off('keydown.zf.trapfocus');\n }\n}\n\n/*\n * Constants for easier comparing.\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n */\nfunction getKeyCodes(kcs) {\n var k = {};\n for (var kc in kcs) k[kcs[kc]] = kcs[kc];\n return k;\n}\n\nexport {Keyboard};\n","'use strict';\n\nimport $ from 'jquery';\n\n// Default set of media queries\nconst defaultQueries = {\n 'default' : 'only screen',\n landscape : 'only screen and (orientation: landscape)',\n portrait : 'only screen and (orientation: portrait)',\n retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +\n 'only screen and (min--moz-device-pixel-ratio: 2),' +\n 'only screen and (-o-min-device-pixel-ratio: 2/1),' +\n 'only screen and (min-device-pixel-ratio: 2),' +\n 'only screen and (min-resolution: 192dpi),' +\n 'only screen and (min-resolution: 2dppx)'\n };\n\n\n// matchMedia() polyfill - Test a CSS media type/query in JS.\n// Authors & copyright © 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n/* eslint-disable */\nwindow.matchMedia || (window.matchMedia = (function () {\n \"use strict\";\n\n // For browsers that support matchMedium api such as IE 9 and webkit\n var styleMedia = (window.styleMedia || window.media);\n\n // For those that don't support matchMedium\n if (!styleMedia) {\n var style = document.createElement('style'),\n script = document.getElementsByTagName('script')[0],\n info = null;\n\n style.type = 'text/css';\n style.id = 'matchmediajs-test';\n\n if (!script) {\n document.head.appendChild(style);\n } else {\n script.parentNode.insertBefore(style, script);\n }\n\n // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;\n\n styleMedia = {\n matchMedium: function (media) {\n var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';\n\n // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n if (style.styleSheet) {\n style.styleSheet.cssText = text;\n } else {\n style.textContent = text;\n }\n\n // Test if media query is true or false\n return info.width === '1px';\n }\n };\n }\n\n return function(media) {\n return {\n matches: styleMedia.matchMedium(media || 'all'),\n media: media || 'all'\n };\n };\n})());\n/* eslint-enable */\n\nvar MediaQuery = {\n queries: [],\n\n current: '',\n\n /**\n * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n * @function\n * @private\n */\n _init() {\n\n // make sure the initialization is only done once when calling _init() several times\n if (this.isInitialized === true) {\n return;\n } else {\n this.isInitialized = true;\n }\n\n var self = this;\n var $meta = $('meta.foundation-mq');\n if(!$meta.length){\n $('').appendTo(document.head);\n }\n\n var extractedStyles = $('.foundation-mq').css('font-family');\n var namedQueries;\n\n namedQueries = parseStyleToObject(extractedStyles);\n\n self.queries = []; // reset\n\n for (var key in namedQueries) {\n if(namedQueries.hasOwnProperty(key)) {\n self.queries.push({\n name: key,\n value: `only screen and (min-width: ${namedQueries[key]})`\n });\n }\n }\n\n this.current = this._getCurrentSize();\n\n this._watcher();\n },\n\n /**\n * Reinitializes the media query helper.\n * Useful if your CSS breakpoint configuration has just been loaded or has changed since the initialization.\n * @function\n * @private\n */\n _reInit() {\n this.isInitialized = false;\n this._init();\n },\n\n /**\n * Checks if the screen is at least as wide as a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n */\n atLeast(size) {\n var query = this.get(size);\n\n if (query) {\n return window.matchMedia(query).matches;\n }\n\n return false;\n },\n\n /**\n * Checks if the screen is within the given breakpoint.\n * If smaller than the breakpoint of larger than its upper limit it returns false.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` otherwise.\n */\n only(size) {\n return size === this._getCurrentSize();\n },\n\n /**\n * Checks if the screen is within a breakpoint or smaller.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it's larger.\n */\n upTo(size) {\n const nextSize = this.next(size);\n\n // If the next breakpoint does not match, the screen is smaller than\n // the upper limit of this breakpoint.\n if (nextSize) {\n return !this.atLeast(nextSize);\n }\n\n // If there is no next breakpoint, the \"size\" breakpoint does not have\n // an upper limit and the screen will always be within it or smaller.\n return true;\n },\n\n /**\n * Checks if the screen matches to a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n */\n is(size) {\n const parts = size.trim().split(' ').filter(p => !!p.length);\n const [bpSize, bpModifier = ''] = parts;\n\n // Only the breakpont\n if (bpModifier === 'only') {\n return this.only(bpSize);\n }\n // At least the breakpoint (included)\n if (!bpModifier || bpModifier === 'up') {\n return this.atLeast(bpSize);\n }\n // Up to the breakpoint (included)\n if (bpModifier === 'down') {\n return this.upTo(bpSize);\n }\n\n throw new Error(`\n Invalid breakpoint passed to MediaQuery.is().\n Expected a breakpoint name formatted like \" \", got \"${size}\".\n `);\n },\n\n /**\n * Gets the media query of a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to get.\n * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n */\n get(size) {\n for (var i in this.queries) {\n if(this.queries.hasOwnProperty(i)) {\n var query = this.queries[i];\n if (size === query.name) return query.value;\n }\n }\n\n return null;\n },\n\n /**\n * Get the breakpoint following the given breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint.\n * @returns {String|null} - The name of the following breakpoint, or `null` if the passed breakpoint was the last one.\n */\n next(size) {\n const queryIndex = this.queries.findIndex((q) => this._getQueryName(q) === size);\n if (queryIndex === -1) {\n throw new Error(`\n Unknown breakpoint \"${size}\" passed to MediaQuery.next().\n Ensure it is present in your Sass \"$breakpoints\" setting.\n `);\n }\n\n const nextQuery = this.queries[queryIndex + 1];\n return nextQuery ? nextQuery.name : null;\n },\n\n /**\n * Returns the name of the breakpoint related to the given value.\n * @function\n * @private\n * @param {String|Object} value - Breakpoint name or query object.\n * @returns {String} Name of the breakpoint.\n */\n _getQueryName(value) {\n if (typeof value === 'string')\n return value;\n if (typeof value === 'object')\n return value.name;\n throw new TypeError(`\n Invalid value passed to MediaQuery._getQueryName().\n Expected a breakpoint name (String) or a breakpoint query (Object), got \"${value}\" (${typeof value})\n `);\n },\n\n /**\n * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n * @function\n * @private\n * @returns {String} Name of the current breakpoint.\n */\n _getCurrentSize() {\n var matched;\n\n for (var i = 0; i < this.queries.length; i++) {\n var query = this.queries[i];\n\n if (window.matchMedia(query.value).matches) {\n matched = query;\n }\n }\n\n return matched && this._getQueryName(matched);\n },\n\n /**\n * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n * @function\n * @private\n */\n _watcher() {\n $(window).off('resize.zf.mediaquery').on('resize.zf.mediaquery', () => {\n var newSize = this._getCurrentSize(), currentSize = this.current;\n\n if (newSize !== currentSize) {\n // Change the current media query\n this.current = newSize;\n\n // Broadcast the media query change on the window\n $(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n }\n });\n }\n};\n\n\n\n// Thank you: https://github.com/sindresorhus/query-string\nfunction parseStyleToObject(str) {\n var styleObject = {};\n\n if (typeof str !== 'string') {\n return styleObject;\n }\n\n str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n if (!str) {\n return styleObject;\n }\n\n styleObject = str.split('&').reduce(function(ret, param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = parts[0];\n var val = parts[1];\n key = decodeURIComponent(key);\n\n // missing `=` should be `null`:\n // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n if (!ret.hasOwnProperty(key)) {\n ret[key] = val;\n } else if (Array.isArray(ret[key])) {\n ret[key].push(val);\n } else {\n ret[key] = [ret[key], val];\n }\n return ret;\n }, {});\n\n return styleObject;\n}\n\nexport {MediaQuery};\n","'use strict';\n\nimport $ from 'jquery';\nimport { transitionend } from './foundation.core.utils';\n\n/**\n * Motion module.\n * @module foundation.motion\n */\n\nconst initClasses = ['mui-enter', 'mui-leave'];\nconst activeClasses = ['mui-enter-active', 'mui-leave-active'];\n\nconst Motion = {\n animateIn: function(element, animation, cb) {\n animate(true, element, animation, cb);\n },\n\n animateOut: function(element, animation, cb) {\n animate(false, element, animation, cb);\n }\n}\n\nfunction Move(duration, elem, fn){\n var anim, prog, start = null;\n // console.log('called');\n\n if (duration === 0) {\n fn.apply(elem);\n elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n return;\n }\n\n function move(ts){\n if(!start) start = ts;\n // console.log(start, ts);\n prog = ts - start;\n fn.apply(elem);\n\n if(prog < duration){ anim = window.requestAnimationFrame(move, elem); }\n else{\n window.cancelAnimationFrame(anim);\n elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n }\n }\n anim = window.requestAnimationFrame(move);\n}\n\n/**\n * Animates an element in or out using a CSS transition class.\n * @function\n * @private\n * @param {Boolean} isIn - Defines if the animation is in or out.\n * @param {Object} element - jQuery or HTML object to animate.\n * @param {String} animation - CSS class to use.\n * @param {Function} cb - Callback to run when animation is finished.\n */\nfunction animate(isIn, element, animation, cb) {\n element = $(element).eq(0);\n\n if (!element.length) return;\n\n var initClass = isIn ? initClasses[0] : initClasses[1];\n var activeClass = isIn ? activeClasses[0] : activeClasses[1];\n\n // Set up the animation\n reset();\n\n element\n .addClass(animation)\n .css('transition', 'none');\n\n requestAnimationFrame(() => {\n element.addClass(initClass);\n if (isIn) element.show();\n });\n\n // Start the animation\n requestAnimationFrame(() => {\n element\n .css('transition', '')\n .addClass(activeClass);\n });\n\n // Clean up the animation when it finishes\n element.one(transitionend(element), finish);\n\n // Hides the element (for out animations), resets the element, and runs a callback\n function finish() {\n if (!isIn) element.hide();\n reset();\n if (cb) cb.apply(element);\n }\n\n // Resets transitions and removes motion-specific classes\n function reset() {\n element[0].style.transitionDuration = 0;\n element.removeClass(`${initClass} ${activeClass} ${animation}`);\n }\n}\n\nexport { Move, Motion };\n\n","'use strict';\n\nimport $ from 'jquery';\n\nconst Nest = {\n Feather(menu, type = 'zf') {\n menu.attr('role', 'menubar');\n\n var items = menu.find('li').attr({'role': 'menuitem'}),\n subMenuClass = `is-${type}-submenu`,\n subItemClass = `${subMenuClass}-item`,\n hasSubClass = `is-${type}-submenu-parent`,\n applyAria = (type !== 'accordion'); // Accordions handle their own ARIA attriutes.\n\n items.each(function() {\n var $item = $(this),\n $sub = $item.children('ul');\n\n if ($sub.length) {\n $item.addClass(hasSubClass);\n if(applyAria) {\n $item.attr({\n 'aria-haspopup': true,\n 'aria-label': $item.children('a:first').text()\n });\n // Note: Drilldowns behave differently in how they hide, and so need\n // additional attributes. We should look if this possibly over-generalized\n // utility (Nest) is appropriate when we rework menus in 6.4\n if(type === 'drilldown') {\n $item.attr({'aria-expanded': false});\n }\n }\n $sub\n .addClass(`submenu ${subMenuClass}`)\n .attr({\n 'data-submenu': '',\n 'role': 'menubar'\n });\n if(type === 'drilldown') {\n $sub.attr({'aria-hidden': true});\n }\n }\n\n if ($item.parent('[data-submenu]').length) {\n $item.addClass(`is-submenu-item ${subItemClass}`);\n }\n });\n\n return;\n },\n\n Burn(menu, type) {\n var //items = menu.find('li'),\n subMenuClass = `is-${type}-submenu`,\n subItemClass = `${subMenuClass}-item`,\n hasSubClass = `is-${type}-submenu-parent`;\n\n menu\n .find('>li, > li > ul, .menu, .menu > li, [data-submenu] > li')\n .removeClass(`${subMenuClass} ${subItemClass} ${hasSubClass} is-submenu-item submenu is-active`)\n .removeAttr('data-submenu').css('display', '');\n\n }\n}\n\nexport {Nest};\n","'use strict';\n\nimport $ from 'jquery';\n\nfunction Timer(elem, options, cb) {\n var _this = this,\n duration = options.duration,//options is an object for easily adding features later.\n nameSpace = Object.keys(elem.data())[0] || 'timer',\n remain = -1,\n start,\n timer;\n\n this.isPaused = false;\n\n this.restart = function() {\n remain = -1;\n clearTimeout(timer);\n this.start();\n }\n\n this.start = function() {\n this.isPaused = false;\n // if(!elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.\n clearTimeout(timer);\n remain = remain <= 0 ? duration : remain;\n elem.data('paused', false);\n start = Date.now();\n timer = setTimeout(function(){\n if(options.infinite){\n _this.restart();//rerun the timer.\n }\n if (cb && typeof cb === 'function') { cb(); }\n }, remain);\n elem.trigger(`timerstart.zf.${nameSpace}`);\n }\n\n this.pause = function() {\n this.isPaused = true;\n //if(elem.data('paused')){ return false; }//maybe implement this sanity check if used for other things.\n clearTimeout(timer);\n elem.data('paused', true);\n var end = Date.now();\n remain = remain - (end - start);\n elem.trigger(`timerpaused.zf.${nameSpace}`);\n }\n}\n\nexport {Timer};\n","//**************************************************\n//**Work inspired by multiple jquery swipe plugins**\n//**Done by Yohai Ararat ***************************\n//**************************************************\n\nimport $ from 'jquery';\n\nvar Touch = {};\n\nvar startPosX,\n startPosY,\n startTime,\n elapsedTime,\n startEvent,\n isMoving = false,\n didMoved = false;\n\nfunction onTouchEnd(e) {\n this.removeEventListener('touchmove', onTouchMove);\n this.removeEventListener('touchend', onTouchEnd);\n\n // If the touch did not move, consider it as a \"tap\"\n if (!didMoved) {\n var tapEvent = $.Event('tap', startEvent || e);\n $(this).trigger(tapEvent);\n }\n\n startEvent = null;\n isMoving = false;\n didMoved = false;\n}\n\nfunction onTouchMove(e) {\n if ($.spotSwipe.preventDefault) { e.preventDefault(); }\n\n if(isMoving) {\n var x = e.touches[0].pageX;\n var y = e.touches[0].pageY;\n var dx = startPosX - x;\n var dy = startPosY - y;\n var dir;\n didMoved = true;\n elapsedTime = new Date().getTime() - startTime;\n if(Math.abs(dx) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n dir = dx > 0 ? 'left' : 'right';\n }\n // else if(Math.abs(dy) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n // dir = dy > 0 ? 'down' : 'up';\n // }\n if(dir) {\n e.preventDefault();\n onTouchEnd.apply(this, arguments);\n $(this)\n .trigger($.Event('swipe', Object.assign({}, e)), dir)\n .trigger($.Event(`swipe${dir}`, Object.assign({}, e)));\n }\n }\n\n}\n\nfunction onTouchStart(e) {\n\n if (e.touches.length == 1) {\n startPosX = e.touches[0].pageX;\n startPosY = e.touches[0].pageY;\n startEvent = e;\n isMoving = true;\n didMoved = false;\n startTime = new Date().getTime();\n this.addEventListener('touchmove', onTouchMove, false);\n this.addEventListener('touchend', onTouchEnd, false);\n }\n}\n\nfunction init() {\n this.addEventListener && this.addEventListener('touchstart', onTouchStart, false);\n}\n\nfunction teardown() {\n this.removeEventListener('touchstart', onTouchStart);\n}\n\nclass SpotSwipe {\n constructor($) {\n this.version = '1.0.0';\n this.enabled = 'ontouchstart' in document.documentElement;\n this.preventDefault = false;\n this.moveThreshold = 75;\n this.timeThreshold = 200;\n this.$ = $;\n this._init();\n }\n\n _init() {\n var $ = this.$;\n $.event.special.swipe = { setup: init };\n $.event.special.tap = { setup: init };\n\n $.each(['left', 'up', 'down', 'right'], function () {\n $.event.special[`swipe${this}`] = { setup: function(){\n $(this).on('swipe', $.noop);\n } };\n });\n }\n}\n\n/****************************************************\n * As far as I can tell, both setupSpotSwipe and *\n * setupTouchHandler should be idempotent, *\n * because they directly replace functions & *\n * values, and do not add event handlers directly. *\n ****************************************************/\n\nTouch.setupSpotSwipe = function($) {\n $.spotSwipe = new SpotSwipe($);\n};\n\n/****************************************************\n * Method for adding pseudo drag events to elements *\n ***************************************************/\nTouch.setupTouchHandler = function($) {\n $.fn.addTouch = function(){\n this.each(function(i,el){\n $(el).bind('touchstart touchmove touchend touchcancel', function(event) {\n //we pass the original event object because the jQuery event\n //object is normalized to w3c specs and does not provide the TouchList\n handleTouch(event);\n });\n });\n\n var handleTouch = function(event){\n var touches = event.changedTouches,\n first = touches[0],\n eventTypes = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup'\n },\n type = eventTypes[event.type],\n simulatedEvent\n ;\n\n if('MouseEvent' in window && typeof window.MouseEvent === 'function') {\n simulatedEvent = new window.MouseEvent(type, {\n 'bubbles': true,\n 'cancelable': true,\n 'screenX': first.screenX,\n 'screenY': first.screenY,\n 'clientX': first.clientX,\n 'clientY': first.clientY\n });\n } else {\n simulatedEvent = document.createEvent('MouseEvent');\n simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0/*left*/, null);\n }\n first.target.dispatchEvent(simulatedEvent);\n };\n };\n};\n\nTouch.init = function ($) {\n\n if(typeof($.spotSwipe) === 'undefined') {\n Touch.setupSpotSwipe($);\n Touch.setupTouchHandler($);\n }\n};\n\nexport {Touch};\n","'use strict';\n\nimport $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n for (var i=0; i < prefixes.length; i++) {\n if (`${prefixes[i]}MutationObserver` in window) {\n return window[`${prefixes[i]}MutationObserver`];\n }\n }\n return false;\n}());\n\nconst triggers = (el, type) => {\n el.data(type).split(' ').forEach(id => {\n $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n });\n};\n\nvar Triggers = {\n Listeners: {\n Basic: {},\n Global: {}\n },\n Initializers: {}\n}\n\nTriggers.Listeners.Basic = {\n openListener: function() {\n triggers($(this), 'open');\n },\n closeListener: function() {\n let id = $(this).data('close');\n if (id) {\n triggers($(this), 'close');\n }\n else {\n $(this).trigger('close.zf.trigger');\n }\n },\n toggleListener: function() {\n let id = $(this).data('toggle');\n if (id) {\n triggers($(this), 'toggle');\n } else {\n $(this).trigger('toggle.zf.trigger');\n }\n },\n closeableListener: function(e) {\n let animation = $(this).data('closable');\n\n // Only close the first closable element. See https://git.io/zf-7833\n e.stopPropagation();\n\n if(animation !== ''){\n Motion.animateOut($(this), animation, function() {\n $(this).trigger('closed.zf');\n });\n }else{\n $(this).fadeOut().trigger('closed.zf');\n }\n },\n toggleFocusListener: function() {\n let id = $(this).data('toggle-focus');\n $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global = {\n resizeListener: function($nodes) {\n if(!MutationObserver){//fallback for IE 9\n $nodes.each(function(){\n $(this).triggerHandler('resizeme.zf.trigger');\n });\n }\n //trigger all listening elements and signal a resize event\n $nodes.attr('data-events', \"resize\");\n },\n scrollListener: function($nodes) {\n if(!MutationObserver){//fallback for IE 9\n $nodes.each(function(){\n $(this).triggerHandler('scrollme.zf.trigger');\n });\n }\n //trigger all listening elements and signal a scroll event\n $nodes.attr('data-events', \"scroll\");\n },\n closeMeListener: function(e, pluginId){\n let plugin = e.namespace.split('.')[0];\n let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n plugins.each(function(){\n let _this = $(this);\n _this.triggerHandler('close.zf.trigger', [_this]);\n });\n }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n var yetiBoxes = $('[data-yeti-box]'),\n plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n if(pluginName){\n if(typeof pluginName === 'string'){\n plugNames.push(pluginName);\n }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n plugNames = plugNames.concat(pluginName);\n }else{\n console.error('Plugin names must be strings');\n }\n }\n if(yetiBoxes.length){\n let listeners = plugNames.map((name) => {\n return `closeme.zf.${name}`;\n }).join(' ');\n\n $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n let timer, args = Array.prototype.slice.call(arguments, 3);\n $(window).off(trigger).on(trigger, function(e) {\n if (timer) { clearTimeout(timer); }\n timer = setTimeout(function(){\n listener.apply(null, args);\n }, debounce || 10);//default time to emit scroll event\n });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n let $nodes = $('[data-resize]');\n if($nodes.length){\n debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n let $nodes = $('[data-scroll]');\n if($nodes.length){\n debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n if(!MutationObserver){ return false; }\n let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n //element callback\n var listeningElementsMutation = function (mutationRecordsList) {\n var $target = $(mutationRecordsList[0].target);\n\n //trigger the event handler for the element depending on type\n switch (mutationRecordsList[0].type) {\n case \"attributes\":\n if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n }\n if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('resizeme.zf.trigger', [$target]);\n }\n if (mutationRecordsList[0].attributeName === \"style\") {\n $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n }\n break;\n\n case \"childList\":\n $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n break;\n\n default:\n return false;\n //nothing\n }\n };\n\n if ($nodes.length) {\n //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n for (var i = 0; i <= $nodes.length - 1; i++) {\n var elementObserver = new MutationObserver(listeningElementsMutation);\n elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n }\n }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n let $document = $(document);\n\n Triggers.Initializers.addOpenListener($document);\n Triggers.Initializers.addCloseListener($document);\n Triggers.Initializers.addToggleListener($document);\n Triggers.Initializers.addCloseableListener($document);\n Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n let $document = $(document);\n Triggers.Initializers.addMutationEventsListener($document);\n Triggers.Initializers.addResizeListener();\n Triggers.Initializers.addScrollListener();\n Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function ($, Foundation) {\n onLoad($(window), function () {\n if ($.triggersInitialized !== true) {\n Triggers.Initializers.addSimpleListeners();\n Triggers.Initializers.addGlobalListeners();\n $.triggersInitialized = true;\n }\n });\n\n if(Foundation) {\n Foundation.Triggers = Triggers;\n // Legacy included to be backwards compatible for now.\n Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n }\n}\n\nexport {Triggers};\n","/*!\n * jQuery JavaScript Library v3.3.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2018-01-20T17:24Z\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 #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 document = window.document;\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar concat = arr.concat;\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 // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\n };\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, doc, node ) {\n\t\tdoc = doc || document;\n\n\t\tvar i,\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\t\t\t\tif ( node[ i ] ) {\n\t\t\t\t\tscript[ i ] = node[ i ];\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\n\tversion = \"3.3.1\",\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\n\t// Support: Android <=4.0 only\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\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\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\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( 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\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && Array.isArray( src ) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject( src ) ? src : {};\n\t\t\t\t\t}\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\n\t\t/* eslint-disable no-unused-vars */\n\t\t// See https://github.com/eslint/eslint/issues/6125\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 global context\n\tglobalEval: function( code ) {\n\t\tDOMEval( code );\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\t// Support: Android <=4.0 only\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\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[ 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\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 concat.apply( [], 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( \" \" ),\nfunction( i, name ) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n} );\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}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.3\n * https://sizzlejs.com/\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2016-08-08\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = 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\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = \"(?:\\\\\\\\.|[\\\\w-]|[^\\0-\\\\xa0])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\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\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\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\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\n\trattributeQuotes = new RegExp( \"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\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// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tdisabledAncestor = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && (\"form\" in elem || \"label\" in elem);\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\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\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( 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\n\t\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\t\tsetDocument( context );\n\t\t}\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, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\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\tresults.push( 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, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\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\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( 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]) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\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 ( support.qsa &&\n\t\t\t\t!compilerCache[ selector + \" \" ] &&\n\t\t\t\t(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\n\t\t\t\tif ( nodeType !== 1 ) {\n\t\t\t\t\tnewContext = context;\n\t\t\t\t\tnewSelector = selector;\n\n\t\t\t\t// qSA looks outside Element context, which is not what we want\n\t\t\t\t// Thanks to Andrew Dupont for this workaround technique\n\t\t\t\t// Support: IE <=8\n\t\t\t\t// Exclude object elements\n\t\t\t\t} else if ( context.nodeName.toLowerCase() !== \"object\" ) {\n\n\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\tif ( (nid = context.getAttribute( \"id\" )) ) {\n\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontext.setAttribute( \"id\", (nid = expando) );\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 + \" \" + toSelector( groups[i] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\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\t\t\t\t}\n\n\t\t\t\tif ( newSelector ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\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\t// All others\n\treturn select( selector.replace( rtrim, \"$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\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\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 Sizzle\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\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\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\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"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\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.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\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\tdisabledAncestor( 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 Sizzle 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// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\t// documentElement is verified for cases where it doesn't yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\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\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9-11, Edge\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\tif ( preferredDoc !== document &&\n\t\t(subWindow = document.defaultView) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( el ) {\n\t\tel.appendChild( document.createComment(\"\") );\n\t\treturn !el.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\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\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\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\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && 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\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( document.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( el ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( el ) {\n\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll(\":enabled\").length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll(\":disabled\").length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( el ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\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\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( 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\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\tif ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === document || b.ownerDocument === preferredDoc && 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( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === document ? -1 :\n\t\t\t\tb === document ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\t// Make sure that attribute selectors are quoted\n\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!compilerCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( 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\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}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn (sel + \"\").replace( rcssescape, fcssescape );\n};\n\nSizzle.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 */\nSizzle.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\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( 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\tresults.splice( 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\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\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\t\"ATTR\": 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] || \"\" ).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\t\"CHILD\": function( match ) {\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\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.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] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\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\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": 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\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\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\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": 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 + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.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\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": 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, uniqueCache, 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\tnode.nodeName.toLowerCase() === 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\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\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\tcache = uniqueCache[ 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\tuniqueCache[ 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\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\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ 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\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\tnode.nodeName.toLowerCase() === 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 ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ 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\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://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\tSizzle.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 Sizzle 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( 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\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\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( rtrim, \"$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\t\t\t\t\t// Don't keep the element (issue #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\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || elem.innerText || getText( 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// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.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\t\"target\": 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\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\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\t\"empty\": function( elem ) {\n\t\t\t// http://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\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": 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\t\"odd\": 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\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\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\t\"gt\": 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\ntokenize = Sizzle.tokenize = function( 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\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 = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\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\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\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\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, uniqueCache, 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\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( (oldCache = uniqueCache[ 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\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ 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\tSizzle( 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,\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 || multipleContexts( selector || \"*\", context.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\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\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\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\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( 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( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\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\t\t\t// Avoid hanging onto element (issue #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\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\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 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$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\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\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\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: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\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\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\tresults.push( 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\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\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\tSizzle.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\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\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, matcherFromGroupMatchers( 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 Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( 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\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[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\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 ) && testContext( 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// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( el ) {\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement(\"fieldset\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( el ) {\n\tel.innerHTML = \"\";\n\treturn el.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( el ) {\n\tel.innerHTML = \"\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( el ) {\n\treturn el.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\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\n\n\nfunction nodeName( elem, name ) {\n\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\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 (#9521)\n\t// Strict HTML recognition (#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 Sizzle\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 if ( nodeName( elem, \"iframe\" ) ) {\n return elem.contentDocument;\n }\n\n // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n // Treat the template element as a regular one in browsers that\n // don't support it.\n if ( nodeName( elem, \"template\" ) ) {\n elem = elem.content || elem;\n }\n\n return 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.stackTrace );\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 stack, 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.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = 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 master Deferred\n\t\t\tmaster = 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\tmaster.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, master.done( updateFunc( i ) ).resolve, master.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 ( master.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn master.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 ), master.reject );\n\t\t}\n\n\t\treturn master.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\njQuery.Deferred.exceptionHook = function( error, stack ) {\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, error.stack, stack );\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 #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\tvalue :\n\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 (#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 #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 (#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 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\tjQuery.contains( elem.ownerDocument, elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\nvar swap = function( elem, options, callback, args ) {\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.apply( elem, args || [] );\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\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 = ( 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// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// Support: IE <=9 only\n\toption: [ 1, \"\" ],\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\n// Support: IE <=9 only\nwrapMap.optgroup = wrapMap.option;\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\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 (#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, contains, 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 (#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\tcontains = jQuery.contains( elem.ownerDocument, 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 ( contains ) {\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\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 (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#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} )();\nvar documentElement = document.documentElement;\n\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 only\n// See #13393 for more info\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\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// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\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 = {};\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\t// Make a writable jQuery.Event from the native event object\n\t\tvar event = jQuery.event.fix( nativeEvent );\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\t\t\thandlers = ( dataPriv.get( this, \"events\" ) || {} )[ 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// Triggered event must either 1) have no namespace, or 2) have namespace(s)\n\t\t\t\t// a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.rnamespace || event.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 (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #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 (#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\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\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\tfocus: {\n\n\t\t\t// Fire native event if possible so blur/focus sequence is correct\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this !== safeActiveElement() && this.focus ) {\n\t\t\t\t\tthis.focus();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusin\"\n\t\t},\n\t\tblur: {\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this === safeActiveElement() && this.blur ) {\n\t\t\t\t\tthis.blur();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusout\"\n\t\t},\n\t\tclick: {\n\n\t\t\t// For checkbox, fire native event so checked state will be right\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this.type === \"checkbox\" && this.click && nodeName( this, \"input\" ) ) {\n\t\t\t\t\tthis.click();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, don't fire native .click() on links\n\t\t\t_default: function( event ) {\n\t\t\t\treturn nodeName( event.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\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 (#504, #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\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\n\twhich: function( event ) {\n\t\tvar button = event.button;\n\n\t\t// Add which for key events\n\t\tif ( event.which == null && rkeyEvent.test( event.type ) ) {\n\t\t\treturn event.charCode != null ? event.charCode : event.keyCode;\n\t\t}\n\n\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\tif ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {\n\t\t\tif ( button & 1 ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif ( button & 2 ) {\n\t\t\t\treturn 3;\n\t\t\t}\n\n\t\t\tif ( button & 4 ) {\n\t\t\t\treturn 2;\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn event.which;\n\t}\n}, jQuery.event.addProp );\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/* eslint-disable max-len */\n\n\t// See https://github.com/eslint/eslint/issues/3229\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,\n\n\t/* eslint-enable */\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, pdataCur, 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.access( src );\n\t\tpdataCur = dataPriv.set( dest, pdataOld );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdelete pdataCur.handle;\n\t\t\tpdataCur.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 = concat.apply( [], 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 (#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// Reenable 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 ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), doc, node );\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 && jQuery.contains( node.ownerDocument, 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.replace( rxhtmlTag, \"<$1>\" );\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 = jQuery.contains( elem.ownerDocument, 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 Sizzle here for performance reasons: 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 getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #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 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\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = div.offsetWidth === 36 || \"absolute\";\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\treliableMarginLeftVal,\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 (#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\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\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, #12537)\n\t// .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !jQuery.contains( elem.ownerDocument, 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\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\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t},\n\n\tcssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style;\n\n// Return a css property mapped to a potentially vendor prefixed property\nfunction vendorPropName( name ) {\n\n\t// Shortcut for names that are not vendor prefixed\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\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 property mapped along what jQuery.cssProps suggests or to\n// a vendor prefixed property.\nfunction finalPropName( name ) {\n\tvar ret = jQuery.cssProps[ name ];\n\tif ( !ret ) {\n\t\tret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;\n\t}\n\treturn ret;\n}\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\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\tif ( box === \"margin\" ) {\n\t\t\tdelta += 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\t\t) );\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\t\tval = curCSS( elem, dimension, styles ),\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox;\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\t// Check for style in case a browser which returns unreliable values\n\t// for getComputedStyle silently falls back to the reliable elem.style\n\tvalueIsBorderBox = valueIsBorderBox &&\n\t\t( support.boxSizingReliable() || val === elem.style[ dimension ] );\n\n\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t// This happens for inline elements with no explicit setting (gh-3571)\n\t// Support: Android <=4.1 - 4.3 only\n\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\tif ( val === \"auto\" ||\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) {\n\n\t\tval = elem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ];\n\n\t\t// offsetWidth/offsetHeight provide border-box values\n\t\tvalueIsBorderBox = true;\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\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": 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 (#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 #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 (#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\tif ( type === \"number\" ) {\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\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t\t} ) :\n\t\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\t\t\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra && boxModelAdjustment(\n\t\t\t\t\telem,\n\t\t\t\t\tdimension,\n\t\t\t\t\textra,\n\t\t\t\t\tisBorderBox,\n\t\t\t\t\tstyles\n\t\t\t\t);\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 && support.scrollboxSize() === styles.position ) {\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\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\t( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||\n\t\t\t\t\tjQuery.cssHooks[ tween.prop ] ) ) {\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/* 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 )` (#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\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\t\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 && type !== false ) {\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.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\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// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#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 classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\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\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\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\telem.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 classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\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\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\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\telem.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 type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\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\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\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = 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\"\" :\n\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\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 (#14686, #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 (#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\n\n\nsupport.focusin = \"onfocusin\" in window;\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 (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#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\" ) || {} )[ 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 (#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\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = Date.now();\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml;\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\t\txml = undefined;\n\t}\n\n\tif ( !xml || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\tjQuery.error( \"Invalid XML: \" + data );\n\t}\n\treturn xml;\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\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} )\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} )\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// #7653, #8125, #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 (#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\toriginAnchor.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 #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\t\tjQuery( callbackContext ) :\n\t\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() ] = 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;\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 (#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 #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 (#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// #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++ ) + uncached;\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// 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\n\njQuery._evalUrl = function( url ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\t\t\"throws\": true\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// #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 #8605, #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// #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 requests\n\tif ( s.crossDomain ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"