{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./app/javascript/packs/calculation.js","webpack:///./app/javascript/packs/dogs/puppy_weight_calculation.js","webpack:///./app/javascript/packs/dogs/weight_chart.js","webpack:///./node_modules/bootstrap/js/dist/modal.js","webpack:///./node_modules/bootstrap/js/dist/base-component.js","webpack:///./node_modules/bootstrap/js/dist/dom/data.js","webpack:///./node_modules/bootstrap/js/dist/dom/manipulator.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/jquery.flot/jquery.flot.js","webpack:///./node_modules/bootstrap/js/dist/dom/selector-engine.js","webpack:///./node_modules/bootstrap/js/dist/dom/event-handler.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","K","A","lbToKg","kgToLb","inToCm","cmToIn","daysBetween","date1","date2","Math","floor","Date","parse","fgompertz","step","w","step_power","b","max","exp","pow","mgompertz","fgompertz_inv","y","w_init","mgompertz_inv","getAge","birthdate_el","measurement_el","$","val","getH","age","parseFloat","getHCurve","steps","curve","length","push","getW","getWCurve","xTickGenerator","axis","units","days","singular","plural","from","to","wantedTicks","minTicks","window","width","map","unit","ceil","min","ticks","extend","res","u","v","str","useThis","k","bc","require","currentZoom","xaxis","dogSizes","color","options","legend","show","yaxis","tickDecimals","tickFormatter","tick","round","selection","bgData","lower","area","reverse","concat","label","data","lines","lineWidth","fill","fgData","convertCurveToUnit","drawPlot","dataset","croppedData","xmin","xmax","splice","plot","plotZoom","ranges","getweight","validateInputs","append","weight","isNumeric","updateAnswer","text","toFixed","puppyWeight","points","attr","breedName","lowerLimit","upper","upperLimit","underweightArea","overweightArea","eventualPuppyWeight","eventualLowerLimit","removeClass","addClass","hide","slideDown","document","documentElement","body","animate","scrollTop","offset","top","addEventListener","onresize","event","on","e","this","target","setTimeout","innerWidth","referrer","indexOf","remove","factory","_get","Reflect","receiver","base","_getPrototypeOf","_superPropBase","desc","getOwnPropertyDescriptor","_setPrototypeOf","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","construct","sham","Proxy","toString","_isNativeReflectConstruct","result","Super","NewTarget","constructor","arguments","apply","_possibleConstructorReturn","self","_typeof","ReferenceError","_assertThisInitialized","getPrototypeOf","ownKeys","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","_objectSpread","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","obj","configurable","writable","_classCallCheck","instance","Constructor","TypeError","_defineProperties","props","descriptor","_createClass","protoProps","staticProps","iterator","SelectorEngine","EventHandler","Manipulator","BaseComponent","_interopDefaultLegacy","plugin","callback","SelectorEngine__default","EventHandler__default","Manipulator__default","BaseComponent__default","getTransitionDurationFromElement","element","_window$getComputedSt","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","Number","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","jquery","nodeType","typeCheckConfig","componentName","config","configTypes","expectedTypes","valueType","undefined","match","toLowerCase","RegExp","test","toUpperCase","reflow","offsetHeight","DOMContentLoadedCallbacks","isRTL","dir","execute","ScrollBarHelper","_element","documentWidth","clientWidth","abs","getWidth","_disableOverFlow","_setElementAttributes","calculatedValue","_saveInitialAttribute","style","overflow","selector","styleProp","_this","scrollbarWidth","_applyManipulationCallback","_resetElementAttributes","actualValue","setDataAttribute","getDataAttribute","removeProperty","removeDataAttribute","callBack","find","Default$1","isVisible","isAnimated","rootElement","clickCallback","DefaultType$1","EVENT_MOUSEDOWN","Backdrop","_config","_getConfig","_isAppended","_append","_getElement","classList","add","_emulateAnimation","_this2","dispose","backdrop","createElement","className","findOne","_this3","appendChild","off","transitionElement","waitForTransition","durationPadding","emulatedDuration","called","handler","_ref","removeEventListener","executeAfterTransition","EVENT_KEY","Default","keyboard","focus","DefaultType","EVENT_HIDE","EVENT_HIDE_PREVENTED","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_CLICK_DATA_API","Modal","_BaseComponent__defau","subClass","superClass","_inherits","_super","_this4","_dialog","_backdrop","_initializeBackDrop","_isShown","_ignoreBackdropClick","_isTransitioning","_scrollBar","relatedTarget","_this5","trigger","defaultPrevented","_isAnimated","_adjustDialog","_setEscapeEvent","_setResizeEvent","one","_showBackdrop","_showElement","_this6","includes","tagName","preventDefault","_queueCallback","_hideModal","htmlElement","Boolean","getDataAttributes","_this7","modalBody","parentNode","Node","ELEMENT_NODE","display","removeAttribute","setAttribute","_enforceFocus","_this8","contains","_this9","_triggerBackdropTransition","_this10","_this11","_resetAdjustments","reset","_this12","currentTarget","_this13","_this$_element","scrollHeight","isModalOverflowing","clientHeight","overflowY","isBodyOverflowing","paddingLeft","paddingRight","each","getOrCreateInstance","_this14","getAttribute","hrefAttr","startsWith","trim","getSelector","querySelector","showEvent","getClientRects","getPropertyValue","toggle","jQuery","hasAttribute","getjQuery","NAME","JQUERY_NO_CONFLICT","fn","jQueryInterface","noConflict","readyState","Data","Data__default","getElement","set","DATA_KEY","getInstance","Error","getOwnPropertyNames","propertyName","elementMap","Map","has","instanceMap","size","console","error","Array","normalizeData","normalizeDataKey","replace","chr","attributes","pureKey","charAt","slice","rect","getBoundingClientRect","left","scrollLeft","position","offsetTop","offsetLeft","global","noGlobal","arr","getProto","_slice","flat","array","class2type","hasOwn","fnToString","ObjectFunctionString","support","isFunction","isWindow","preservedScriptAttributes","type","src","nonce","noModule","DOMEval","code","node","doc","script","head","removeChild","toType","context","init","isArrayLike","toArray","num","pushStack","elems","ret","merge","prevObject","elem","first","eq","last","even","grep","_elem","odd","len","j","end","sort","copy","copyIsArray","clone","deep","isPlainObject","isArray","expando","random","isReady","msg","noop","proto","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","second","invert","matches","callbackExpect","arg","guid","_i","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","a","pop","pushNative","list","booleans","whitespace","identifier","pseudos","rwhitespace","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","disabled","nodeName","next","childNodes","els","seed","nid","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","testContext","scope","toSelector","join","querySelectorAll","qsaError","cache","cacheLength","shift","markFunction","assert","el","addHandle","attrs","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","hasCompare","subWindow","defaultView","attachEvent","createComment","getById","getElementsByName","attrId","getAttributeNode","tag","tmp","input","innerHTML","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","what","_argument","simple","forward","ofType","_context","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","args","setFilters","idx","matched","matcher","unmatched","lang","elemLang","hash","location","activeElement","hasFocus","href","tabIndex","checked","selected","selectedIndex","_matchIndexes","radio","checkbox","file","password","image","submit","tokens","combinator","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","token","compiled","_name","defaultValue","unique","isXMLDoc","escapeSelector","_dir","until","truncate","is","_siblings","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","rootjQuery","root","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","sibling","targets","closest","index","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","contentDocument","content","rnothtmlwhite","Identity","Thrower","ex","adoptValue","resolve","reject","noValue","method","promise","fail","then","Callbacks","_","flag","createOptions","firing","memory","_fired","_locked","queue","firingIndex","fire","once","stopOnFalse","empty","disable","lock","locked","fireWith","fired","Deferred","func","tuples","_state","_promise","state","always","deferred","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","stateString","when","singleValue","remaining","resolveContexts","resolveValues","master","updateFunc","rerrorNames","stack","warn","message","readyException","readyList","completed","readyWait","wait","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","camelCase","string","acceptData","owner","uid","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","JSON","getData","_data","removeData","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","css","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","values","div","rcheckableType","rtagName","rscriptType","createDocumentFragment","checkClone","cloneNode","noCloneChecked","option","wrapMap","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","buildFragment","scripts","ignored","wrap","attached","fragment","nodes","htmlPrefilter","createTextNode","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","expectSync","err","safeActiveElement","_on","types","origFn","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","handleObjIn","eventHandle","events","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","isImmediatePropagationStopped","rnamespace","postDispatch","_handlers","matchedHandlers","matchedSelectors","button","addProp","hook","originalEvent","load","noBubble","click","beforeunload","returnValue","isDefaultPrevented","timeStamp","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","_remove","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","getStyles","opener","swap","old","rboxStyle","curCSS","computed","minWidth","maxWidth","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","offsetWidth","measure","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","height","parseInt","cssPrefixes","emptyStyle","vendorProps","finalPropName","_final","cssProps","capName","vendorPropName","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","getWidthOrHeight","valueIsBorderBox","offsetProp","Tween","easing","cssHooks","opacity","origName","isCustomProp","setProperty","isFinite","scrollboxSizeBuggy","margin","padding","border","prefix","suffix","expand","expanded","parts","propHooks","run","percent","eased","duration","pos","fx","linear","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","properties","stopped","prefilters","currentTime","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","complete","timer","anim","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflowX","prefilter","speed","opt","speeds","fadeTo","optall","doAnimation","finish","stopQueue","timers","cssFn","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","bool","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","classes","curValue","clazz","finalValue","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","responseFields","converters","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","_statusCode","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","status","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","responses","isSuccess","response","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","current","conv","dataFilter","ajaxConvert","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","_callback","errorCallback","open","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","_callback2","scriptAttrs","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","curElem","using","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","delegate","undelegate","hover","fnOver","fnOut","proxy","holdReady","hold","parseJSON","isNaN","_jQuery","_$","webpackPolyfill","deprecate","paths","make","g","normalize","f","clamp","extract","lookupColors","aqua","azure","beige","black","blue","brown","cyan","darkblue","darkcyan","darkgrey","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkviolet","fuchsia","gold","green","indigo","khaki","lightblue","lightcyan","lightgreen","lightgrey","lightpink","lightyellow","lime","magenta","maroon","navy","olive","orange","pink","purple","violet","red","silver","white","yellow","Canvas","cls","direction","getContext","G_vmlCanvasManager","initElement","devicePixelRatio","backingStoreRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","pixelRatio","resize","textContainer","_textCache","Plot","placeholder","data_","options_","plugins","series","colors","noColumns","labelFormatter","labelBoxBorderColor","backgroundColor","backgroundOpacity","sorted","font","tickColor","transform","inverseTransform","autoscaleMargin","labelWidth","labelHeight","reserveSpace","tickLength","alignTicksWithAxis","tickSize","minTickSize","xaxes","yaxes","radius","fillColor","symbol","bars","barWidth","align","horizontal","zero","shadowSize","highlightColor","grid","aboveData","borderColor","labelMargin","axisMargin","borderWidth","minBorderMargin","markings","markingsColor","markingsLineWidth","clickable","hoverable","autoHighlight","mouseActiveRadius","interaction","redrawOverlayInterval","surface","overlay","eventHolder","ctx","octx","plotOffset","bottom","plotWidth","plotHeight","processOptions","processRawData","processDatapoints","processOffset","drawBackground","drawSeries","draw","bindEvents","drawOverlay","shutdown","executeHooks","setData","parseData","neededColors","maxIndex","sc","colorPool","colorPoolSize","variation","colori","getOrCreateAxis","axisNumber","fillInSeriesOptions","ps","format","topSentry","POSITIVE_INFINITY","bottomSentry","NEGATIVE_INFINITY","fakeInfinity","MAX_VALUE","updateAxis","datamin","datamax","allAxes","used","datapoints","x","number","required","autoscale","pointsize","insertSteps","nullify","Infinity","ymin","ymax","coord","canvasToAxisCoords","c2p","x1","y1","axes","redrawTimeout","onMouseMove","onMouseLeave","onClick","allocateAxisBoxFirstPhase","lw","lh","isXAxis","innermost","found","setupGrid","showGrid","axisOpts","widen","setRange","allocatedAxes","noTicks","sqrt","dec","log","LN10","maxDec","magn","norm","tickGenerator","NaN","factor","formatted","decimal","precision","substr","otherAxis","niceTicks","extraDec","ts","setupTickGeneration","oticks","setTicks","snapRangeToTicks","legacyStyles","layer","info","getTextInfo","measureTickLabels","minMargin","margins","adjustLayoutForThingsStickingOut","allocateAxisBoxSecondPhase","identity","it","p2c","setTransformationHelpers","halign","valign","removeText","addText","fragments","entries","rowStarted","lf","ascending","entry","insertLegend","clear","save","translate","fillStyle","getColorOrGradient","fillRect","restore","drawGrid","render","triggerRedrawOverlay","extractRange","bw","getAxes","xrange","yrange","xequal","yequal","subPixel","beginPath","strokeStyle","moveTo","lineTo","stroke","xoff","yoff","strokeRect","plotLine","xoffset","yoffset","axisx","axisy","prevx","prevy","x2","y2","lineJoin","sw","angle","sin","getFillStyle","areaOpen","ypos","segmentStart","segmentEnd","x1old","x2old","plotLineArea","drawSeriesLines","barLeft","fillStyleCallback","barRight","drawBar","plotBars","drawSeriesBars","plotPoints","shadow","arc","closePath","drawSeriesPoints","drawLeft","drawRight","drawTop","drawBottom","filloptions","seriesColor","getPlaceholder","getCanvas","getPlotOffset","getXAxes","getYAxes","getOptions","highlight","unhighlight","pointOffset","point","destroy","highlights","initPlugins","axisOptions","axisCount","fontSize","fontSizeDefault","fontDefaults","variant","family","lineHeight","x2axis","y2axis","coloredAreas","coloredAreasColor","parseOptions","existing","setupCanvases","mousemove","triggerClickHoverEvent","eventname","seriesFilter","canvasX","canvasY","item","mouseX","mouseY","maxDistance","smallestDistance","mx","my","maxx","maxy","dx","dy","dist","datapoint","dataIndex","seriesIndex","findNearbyItem","h","auto","hi","drawBarHighlight","drawPointHighlight","indexOfHighlight","pointRadius","spec","defaultColor","gradient","createLinearGradient","co","brightness","addColorStop","clearRect","layerKey","getTextLayer","layerCache","styleKey","styleCache","positions","rendered","textStyle","outerWidth","outerHeight","version","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","minLen","_unsupportedIterableToArray","_nonIterableSpread","arr2","_toConsumableArray","Element","_ref2","child","ancestor","previous","previousElementSibling","nextElementSibling","_arrayWithHoles","_arr","_n","_d","_e","_s","_iterableToArrayLimit","_nonIterableRest","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","customEventsRegex","nativeEvents","Set","getUidEvent","getEvent","findHandler","delegationSelector","uidEventList","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","getTypeEvent","addHandler","oneOff","wrapFn","_normalizeParams2","_slicedToArray","previousFn","domElements","bootstrapDelegationHandler","bootstrapHandler","removeHandler","_normalizeParams4","inNamespace","isNamespace","elementEvent","storeElementEvent","handlerKey","removeNamespacedHandlers","keyHandlers","jQueryEvent","isNative","nativeDispatch","createEvent","initEvent","CustomEvent","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","loadCSPNonce","ref","cspNonce","csrfParam","csrfToken","meta","CSRFProtection","refreshCSRFTokens","initCustomEvent","stopEverything","eventType","AcceptHeaders","createXHR","prepareOptions","processResponse","OPENED","accept","withCredentials","DONE","parser","isCrossDomain","serializeElement","additionalParam","inputs","formElements","form","allowAction","handleConfirm","confirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","action","isRemote","handleRemote","enctype","FormData","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","rails","_rails_loaded"],"mappings":"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","file":"js/dogs/weight_chart.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 = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1421);\n","// const K = [10, 25, 45, 77];\n// const A = -0.2;\n// // var B = [9.19814356, 10.987186, 11.4973043, 12.05979376];\n// const C = 0.12;\n\nconst K = [10, 25, 45, 77];\nconst A = -0.2;\n// var B = [9.19814356, 10.987186, 11.4973043, 12.05979376];\nconst C = 0.12;\nconst STEP_HEIGHT_POWER = 4.5;\nconst STEP_WEIGHT_POWER = 7.0;\n\nexport const lbToKg = function(value) {\n return 0.4536*value;\n}\n\nexport const kgToLb = function(value) {\n return value/0.4536;\n}\n\nexport const inToCm = function(value) {\n return 2.54*value;\n}\n\nexport const cmToIn = function(value) {\n return value*0.3937;\n}\n\nexport const daysBetween = function(date1, date2) {\n return Math.floor(( Date.parse(date2) - Date.parse(date1) ) / 86400000);\n}\n\n// START - gompertz function\nconst mgompertz = function(step, w, b, d, step_power) {\n return Math.max(0, (w-A)*Math.exp(-Math.exp(-C*(Math.pow(step/step_power, d)-b))) + A);\n}\n\nconst mgompertz_inv = function(step, y, d, w_init, step_power) {\n var w = w_init;\n var iterations = 100;\n // debugger\n for (let i = 0; i < iterations; i++) {\n w = (y-A)/Math.exp(-Math.exp(-C*(Math.pow(step/step_power, d(w))-b(w)))) + A;\n }\n return w;\n}\n\nconst fgompertz = function(step, w, step_power) {\n return mgompertz(step, w, b(w), d(w), step_power);\n}\n\nconst fgompertz_inv = function(step, y, step_power) {\n var w_init = 0;\n if (y < fgompertz(step, K[1], b(K[1]), d(K[1]), step_power)) {\n w_init = K[0];\n } else if (y < fgompertz(step, K[2], b(K[2]), d(K[2]), step_power)) {\n w_init = K[1];\n } else {\n w_init = K[2];\n }\n\n return mgompertz_inv(step, y, d, w_init, step_power);\n}\n// END - gompertz function\n\nexport const getAge = function(birthdate_el, measurement_el) {\n return daysBetween($(birthdate_el).val(), $(measurement_el).val());\n}\n\nexport const getH = function(age, value) {\n return fgompertz_inv(parseFloat(age), parseFloat(value), STEP_HEIGHT_POWER);\n}\n\nexport const getHCurve = function(steps, w) {\n let curve = [];\n for (let i = 0; i < steps.length; i += 1) {\n curve.push([steps[i], fgompertz(steps[i], w, STEP_HEIGHT_POWER)]);\n }\n return curve;\n}\n\nexport const getW = function(age, value) {\n return fgompertz_inv(parseFloat(age), parseFloat(value), STEP_WEIGHT_POWER);\n}\n\nexport const getWCurve = function(steps, w) {\n let curve = [];\n for (let i = 0; i < steps.length; i += 1) {\n curve.push([steps[i], fgompertz(steps[i], w, STEP_WEIGHT_POWER)]);\n }\n return curve;\n}\n\nexport const xTickGenerator = function(axis) {\n var units = [\n {days: 360, singular: 'yr', plural: 'yrs', from: 84, to: 100000},\n {days: 30, singular: 'mth', plural: 'mths', from: 84, to: 100000},\n {days: 7, singular: 'w', plural: 'w', from: 0, to: 84}\n ];\n\n var wantedTicks = 8;\n var minTicks = 5;\n\n // Use fewer ticks on phones\n if ($(window).width() < 768) {\n wantedTicks = 4;\n minTicks = 3;\n }\n\n units = $.map(units, function(unit, i) {\n if (axis.max > unit.from && axis.max <= unit.to) {\n var step = Math.ceil(((axis.max - axis.min)/unit.days)/wantedTicks);\n var ticks = Math.ceil((axis.max - axis.min)/(step*unit.days));\n return $.extend(true, unit, {step: step, ticks: ticks});\n }\n });\n\n var res = [[0, 'birth']];\n\n for (let u = 0; u < units.length; u++) {\n var unit = units[u];\n var step = unit.step;\n var i = Math.floor(axis.min / unit.days);\n var v;\n do {\n v = i * unit.days;\n if (i !== 0) {\n var str = '';\n if (i === 1) {\n str = i + ' ' + unit.singular;\n } else {\n str = i + ' ' + unit.plural;\n }\n\n var useThis = true;\n for (let k = 0; k < res.length; k++) {\n if (res[k][0] > v - step*unit.days && res[k][0] < v + step*unit.days) {\n // Conflicting tick already exists, so drop this one\n useThis = false;\n }\n }\n if (useThis) res.push([v, str]);\n }\n i = i + step;\n } while (v < axis.max);\n if (unit.ticks >= minTicks) break;\n }\n return res;\n}\n\nexport const b = function(w) {\n var bc = [[0.11927, 8.00545], [0.025506, 10.349538], [0.017578, 10.706303]];\n if (w < K[1]) {\n return bc[0][0]*w + bc[0][1];\n } else if (w < K[2]) {\n return bc[1][0]*w + bc[1][1];\n } else {\n return bc[2][0]*w + bc[2][1];\n }\n}\n\nexport const d = function(w) {\n return 1-0.0014443*w;\n}\n","require('jquery.flot');\n\nimport {\n lbToKg,\n kgToLb,\n daysBetween,\n mgompertz,\n mgompertz_inv,\n fgompertz,\n fgompertz_inv,\n getWCurve,\n xTickGenerator,\n getW,\n b,\n d,\n getAge,\n} from 'packs/calculation.js'\n\nvar currentZoom = {xaxis: {from: 0, to: 24}};\nvar plot;\nvar puppyWeightColor = '#599AC2';\nvar color2 = '#fc832f';\nvar color3 = '#e59e2e';\nvar color4 = '#fed83b';\nvar color5 = '#aeb23b';\nvar bgFill = 0.5;\nvar dogSizes = [\n {name: 'Giant', from: 50, to: 75, color: color5},\n {name: 'Large', from: 30, to: 50, color: color4},\n {name: 'Medium', from: 15, to: 30, color: color3},\n {name: 'Small', from: 5, to: 15, color: color2}\n];\n\nconst MIN_STEP = 0;\nconst MAX_STEP = 720;\nconst STEP = 4.0;\nlet steps = [];\nfor (let i = MIN_STEP; i <= MAX_STEP; i += STEP) {\n steps.push(i);\n}\nvar options = {\n // legend: { show: true, container: $(\"#legend\") },\n legend: { show: false },\n xaxis: { ticks: xTickGenerator },\n yaxis: { ticks: 10, tickDecimals: 2, tickFormatter: function (tick) { return Math.round(tick*100)/100 + \" \" + $('#puppy_weight_weight_unit').val(); } },\n selection: { mode: \"xy\" }\n};\nvar datasetSizes = $.map(dogSizes, function(val, i) {\n var lower = getWCurve(steps, val.from);\n var upper = getWCurve(steps, val.to);\n var area = upper.reverse().concat(lower);\n return {label: val.name, data: area, lines: { show: true, lineWidth: 0.0, fill: bgFill}, color: val.color };\n});\nvar bgData = datasetSizes;\nvar fgData = [];\n\nfunction convertFromUnit(value) {\n if ($('#puppy_weight_weight_unit').val() === 'lb') {\n return lbToKg(value);\n } else {\n return value;\n }\n}\n\nfunction convertToUnit(value) {\n if ($('#puppy_weight_weight_unit').val() === 'lb') {\n return kgToLb(value);\n } else {\n return value;\n }\n}\n\nfunction convertCurveToUnit(curve) {\n if ($('#puppy_weight_weight_unit').val() === 'lb') {\n for (let i = 0; i < curve.length; i++) {\n curve[i][1] = kgToLb(curve[i][1]);\n }\n }\n}\n\nexport const drawPlot = function() {\n var dataset = bgData.concat(fgData);\n var croppedData = $.extend(true, [], dataset);\n if (typeof currentZoom.yaxis === \"undefined\") {\n var xmin = currentZoom.xaxis.min;\n var xmax = currentZoom.xaxis.max;\n for (let i = 0; i < dataset.length; i++) {\n for (let k = croppedData[i].data.length - 1; k >= 0; k--) {\n if ((croppedData[i].data[k][0] < xmin) || (croppedData[i].data[k][0] > xmax)) {\n croppedData[i].data.splice(k, 1);\n }\n }\n }\n }\n for (let k = 0; k < croppedData.length; k++) {\n convertCurveToUnit(croppedData[k].data);\n }\n plot = $.plot($(\"#placeholder\"), croppedData, $.extend(true, {}, options, currentZoom));\n // $('#legend').find('table').addClass('condensed-table');\n}\n\nexport const plotZoom = function(ranges) {\n currentZoom = {xaxis: { min: ranges.xaxis.from, max: ranges.xaxis.to }};\n if (typeof ranges.yaxis !== \"undefined\") {\n currentZoom = $.extend(true, currentZoom, {yaxis: { min: ranges.yaxis.from, max: ranges.yaxis.to }});\n }\n drawPlot();\n}\n\nfunction goToChart() {\n $([document.documentElement, document.body]).animate({\n scrollTop: $(\"#weight-ans\").offset().top - 160\n }, 350);\n}\n\nfunction getweight() {\n return convertFromUnit($('#puppy_weight_weight').val());\n}\n\nexport const validateInputs = function() {\n const age = getAge('#puppy_weight_birthdate', '#puppy_weight_measurement_date');\n\n if (age <= 0) {\n $('body').append(\"\");\n return false;\n }\n\n const weight = getweight();\n const w = getW(age, weight);\n\n if (!$.isNumeric(w)) {\n $('body').append(\"\");\n return false;\n }\n\n return true\n}\n\nexport function updateAnswer() {\n const age = getAge('#puppy_weight_birthdate', '#puppy_weight_measurement_date');\n const weight = getweight();\n const w = getW(age, weight);\n\n if ($.isNumeric(w)) {\n $('#weight-ans').text(convertToUnit(w).toFixed(1) + ' ' + $('#puppy_weight_weight_unit').val());\n const puppyWeight = getWCurve(steps, w);\n fgData = [\n { label: 'Your puppy', data: puppyWeight, lines: { show: true, fill: false }, color: puppyWeightColor },\n { data: [[age, weight]], points: { show: true }, color: puppyWeightColor }\n ];\n\n if ($('#puppy_weight_breed').length > 0) {\n const from = lbToKg(parseFloat($('#min').attr('data-value')));\n const to = lbToKg(parseFloat($('#max').attr('data-value')));\n const breedName = $('#breed-name').attr('data-value');\n\n const lower = getWCurve(steps, from);\n const lowerLimit = getWCurve(steps, from * 0.7);\n const upper = getWCurve(steps, to);\n const upperLimit = getWCurve(steps, to * 1.3);\n const area = upper.reverse().concat(lower);\n\n const underweightArea = lower.reverse().concat(lowerLimit);\n // reverse() is mutating, so upper has been reversed, cannot use\n const overweightArea = upperLimit.reverse().concat(getWCurve(steps, to));\n bgData = [\n { label: breedName, data: area, lines: { show: true, lineWidth: 0.0, fill: bgFill }, color: 'green' },\n { label: 'Overweight', data: overweightArea, lines: { show: true, lineWidth: 0.0, fill: bgFill }, color: 'red' },\n { label: 'Underweight', data: underweightArea, lines: { show: true, lineWidth: 0.0, fill: bgFill }, color: 'orange' },\n ];\n\n const eventualPuppyWeight = puppyWeight[puppyWeight.length - 1][1]\n // lower and upper has been reversed, so take the first 1\n const eventualLowerLimit = lower[0][1]\n const eventualUpperLimit = upper[0][1]\n switch(true) {\n case eventualPuppyWeight > eventualUpperLimit:\n $('#overweight-result').removeClass('d-none');\n $('.weight-result').addClass('text-danger');\n $('#underweight-copy').hide();\n $('#non-underweight-copy').show();\n break\n case eventualPuppyWeight < eventualLowerLimit:\n $('#underweight-result').removeClass('d-none');\n $('.weight-result').addClass('text-warning');\n $('#underweight-copy').show();\n $('#non-underweight-copy').hide();\n break\n default:\n $('#healthy-result').removeClass('d-none');\n $('.weight-result').addClass('text-success');\n $('#underweight-copy').hide();\n $('#non-underweight-copy').show();\n }\n }\n\n drawPlot();\n $('.answer-container').slideDown(350);\n goToChart();\n } else {\n fgData = [];\n if ($('.flot-base').length !== 0) {\n drawPlot();\n };\n $('body').append(\"\");\n }\n}\n","require('jquery.flot')\nrequire(\"../../scss/_variables.scss\")\nrequire(\"@rails/ujs\")\nrequire('bootstrap/js/dist/modal')\n\nimport {\n drawPlot,\n plotZoom,\n validateInputs,\n updateAnswer,\n} from 'packs/dogs/puppy_weight_calculation.js'\n\ndocument.addEventListener(\"turbolinks:load\", () => {\n window.onresize = function(event) {\n drawPlot();\n };\n\n $('.zoom').on('click', function (e) {\n var to = parseFloat($(this).data('to'));\n var from = parseFloat($(this).data('from'));\n plotZoom({xaxis: {from: from, to: to}});\n $('.zoom').removeClass('active');\n $(e.target).addClass('active');\n return false;\n });\n\n setTimeout(function() {\n drawPlot();\n $(\"#placeholder\").bind(\"plotselected\", function (event, ranges) {\n plotZoom(ranges);\n });\n }, 350);\n\n $('#puppy-weight-form').on('submit', function(event) {\n if (validateInputs()) {\n return true;\n } else {\n return false;\n }\n })\n\n if ($('#puppy_weight_params').length !== 0) {\n updateAnswer();\n }\n\n if ($('.transient-intro').length && window.innerWidth < 576) {\n if (document.referrer.indexOf(\"puppy-weight-chart\") !== -1) {\n $('.transient-intro').remove();\n }\n }\n});\n","function _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * Bootstrap modal.js v5.0.2 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/selector-engine.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./base-component.js')) : typeof define === 'function' && define.amd ? define(['./dom/selector-engine', './dom/event-handler', './dom/manipulator', './base-component'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Modal = factory(global.SelectorEngine, global.EventHandler, global.Manipulator, global.Base));\n})(this, function (SelectorEngine, EventHandler, Manipulator, BaseComponent) {\n 'use strict';\n\n function _interopDefaultLegacy(e) {\n return e && _typeof(e) === 'object' && 'default' in e ? e : {\n 'default': e\n };\n }\n\n var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);\n\n var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n\n var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);\n\n var BaseComponent__default = /*#__PURE__*/_interopDefaultLegacy(BaseComponent);\n\n var MILLISECONDS_MULTIPLIER = 1000;\n var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n var toType = function toType(obj) {\n if (obj === null || obj === undefined) {\n return \"\".concat(obj);\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n };\n\n var getSelector = function getSelector(element) {\n var selector = element.getAttribute('data-bs-target');\n\n if (!selector || selector === '#') {\n var hrefAttr = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes,\n // so everything starting with `#` or `.`. If a \"real\" URL is used as the selector,\n // `document.querySelector` will rightfully complain it is invalid.\n // See https://github.com/twbs/bootstrap/issues/32273\n\n if (!hrefAttr || !hrefAttr.includes('#') && !hrefAttr.startsWith('.')) {\n return null;\n } // Just in case some CMS puts out a full URL with the anchor appended\n\n\n if (hrefAttr.includes('#') && !hrefAttr.startsWith('#')) {\n hrefAttr = \"#\".concat(hrefAttr.split('#')[1]);\n }\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null;\n }\n\n return selector;\n };\n\n var getElementFromSelector = function getElementFromSelector(element) {\n var selector = getSelector(element);\n return selector ? document.querySelector(selector) : null;\n };\n\n var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n var _window$getComputedSt = window.getComputedStyle(element),\n transitionDuration = _window$getComputedSt.transitionDuration,\n transitionDelay = _window$getComputedSt.transitionDelay;\n\n var floatTransitionDuration = Number.parseFloat(transitionDuration);\n var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n };\n\n var triggerTransitionEnd = function triggerTransitionEnd(element) {\n element.dispatchEvent(new Event(TRANSITION_END));\n };\n\n var isElement = function isElement(obj) {\n if (!obj || _typeof(obj) !== 'object') {\n return false;\n }\n\n if (typeof obj.jquery !== 'undefined') {\n obj = obj[0];\n }\n\n return typeof obj.nodeType !== 'undefined';\n };\n\n var getElement = function getElement(obj) {\n if (isElement(obj)) {\n // it's a jQuery object or a node element\n return obj.jquery ? obj[0] : obj;\n }\n\n if (typeof obj === 'string' && obj.length > 0) {\n return SelectorEngine__default['default'].findOne(obj);\n }\n\n return null;\n };\n\n var typeCheckConfig = function typeCheckConfig(componentName, config, configTypes) {\n Object.keys(configTypes).forEach(function (property) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new TypeError(\"\".concat(componentName.toUpperCase(), \": Option \\\"\").concat(property, \"\\\" provided type \\\"\").concat(valueType, \"\\\" but expected type \\\"\").concat(expectedTypes, \"\\\".\"));\n }\n });\n };\n\n var isVisible = function isVisible(element) {\n if (!isElement(element) || element.getClientRects().length === 0) {\n return false;\n }\n\n return getComputedStyle(element).getPropertyValue('visibility') === 'visible';\n };\n\n var reflow = function reflow(element) {\n return element.offsetHeight;\n };\n\n var getjQuery = function getjQuery() {\n var _window = window,\n jQuery = _window.jQuery;\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery;\n }\n\n return null;\n };\n\n var DOMContentLoadedCallbacks = [];\n\n var onDOMContentLoaded = function onDOMContentLoaded(callback) {\n if (document.readyState === 'loading') {\n // add listener on the first call when the document is in loading state\n if (!DOMContentLoadedCallbacks.length) {\n document.addEventListener('DOMContentLoaded', function () {\n DOMContentLoadedCallbacks.forEach(function (callback) {\n return callback();\n });\n });\n }\n\n DOMContentLoadedCallbacks.push(callback);\n } else {\n callback();\n }\n };\n\n var isRTL = function isRTL() {\n return document.documentElement.dir === 'rtl';\n };\n\n var defineJQueryPlugin = function defineJQueryPlugin(plugin) {\n onDOMContentLoaded(function () {\n var $ = getjQuery();\n /* istanbul ignore if */\n\n if ($) {\n var name = plugin.NAME;\n var JQUERY_NO_CONFLICT = $.fn[name];\n $.fn[name] = plugin.jQueryInterface;\n $.fn[name].Constructor = plugin;\n\n $.fn[name].noConflict = function () {\n $.fn[name] = JQUERY_NO_CONFLICT;\n return plugin.jQueryInterface;\n };\n }\n });\n };\n\n var execute = function execute(callback) {\n if (typeof callback === 'function') {\n callback();\n }\n };\n\n var executeAfterTransition = function executeAfterTransition(callback, transitionElement) {\n var waitForTransition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!waitForTransition) {\n execute(callback);\n return;\n }\n\n var durationPadding = 5;\n var emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;\n var called = false;\n\n var handler = function handler(_ref) {\n var target = _ref.target;\n\n if (target !== transitionElement) {\n return;\n }\n\n called = true;\n transitionElement.removeEventListener(TRANSITION_END, handler);\n execute(callback);\n };\n\n transitionElement.addEventListener(TRANSITION_END, handler);\n setTimeout(function () {\n if (!called) {\n triggerTransitionEnd(transitionElement);\n }\n }, emulatedDuration);\n };\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.2): util/scrollBar.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\n var SELECTOR_STICKY_CONTENT = '.sticky-top';\n\n var ScrollBarHelper = /*#__PURE__*/function () {\n function ScrollBarHelper() {\n _classCallCheck(this, ScrollBarHelper);\n\n this._element = document.body;\n }\n\n _createClass(ScrollBarHelper, [{\n key: \"getWidth\",\n value: function getWidth() {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n var documentWidth = document.documentElement.clientWidth;\n return Math.abs(window.innerWidth - documentWidth);\n }\n }, {\n key: \"hide\",\n value: function hide() {\n var width = this.getWidth();\n\n this._disableOverFlow(); // give padding to element to balance the hidden scrollbar width\n\n\n this._setElementAttributes(this._element, 'paddingRight', function (calculatedValue) {\n return calculatedValue + width;\n }); // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\n\n\n this._setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', function (calculatedValue) {\n return calculatedValue + width;\n });\n\n this._setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', function (calculatedValue) {\n return calculatedValue - width;\n });\n }\n }, {\n key: \"_disableOverFlow\",\n value: function _disableOverFlow() {\n this._saveInitialAttribute(this._element, 'overflow');\n\n this._element.style.overflow = 'hidden';\n }\n }, {\n key: \"_setElementAttributes\",\n value: function _setElementAttributes(selector, styleProp, callback) {\n var _this = this;\n\n var scrollbarWidth = this.getWidth();\n\n var manipulationCallBack = function manipulationCallBack(element) {\n if (element !== _this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\n return;\n }\n\n _this._saveInitialAttribute(element, styleProp);\n\n var calculatedValue = window.getComputedStyle(element)[styleProp];\n element.style[styleProp] = \"\".concat(callback(Number.parseFloat(calculatedValue)), \"px\");\n };\n\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this._resetElementAttributes(this._element, 'overflow');\n\n this._resetElementAttributes(this._element, 'paddingRight');\n\n this._resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight');\n\n this._resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight');\n }\n }, {\n key: \"_saveInitialAttribute\",\n value: function _saveInitialAttribute(element, styleProp) {\n var actualValue = element.style[styleProp];\n\n if (actualValue) {\n Manipulator__default['default'].setDataAttribute(element, styleProp, actualValue);\n }\n }\n }, {\n key: \"_resetElementAttributes\",\n value: function _resetElementAttributes(selector, styleProp) {\n var manipulationCallBack = function manipulationCallBack(element) {\n var value = Manipulator__default['default'].getDataAttribute(element, styleProp);\n\n if (typeof value === 'undefined') {\n element.style.removeProperty(styleProp);\n } else {\n Manipulator__default['default'].removeDataAttribute(element, styleProp);\n element.style[styleProp] = value;\n }\n };\n\n this._applyManipulationCallback(selector, manipulationCallBack);\n }\n }, {\n key: \"_applyManipulationCallback\",\n value: function _applyManipulationCallback(selector, callBack) {\n if (isElement(selector)) {\n callBack(selector);\n } else {\n SelectorEngine__default['default'].find(selector, this._element).forEach(callBack);\n }\n }\n }, {\n key: \"isOverflowing\",\n value: function isOverflowing() {\n return this.getWidth() > 0;\n }\n }]);\n\n return ScrollBarHelper;\n }();\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.2): util/backdrop.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n var Default$1 = {\n isVisible: true,\n // if false, we use the backdrop helper without adding any element to the dom\n isAnimated: false,\n rootElement: 'body',\n // give the choice to place backdrop under different elements\n clickCallback: null\n };\n var DefaultType$1 = {\n isVisible: 'boolean',\n isAnimated: 'boolean',\n rootElement: '(element|string)',\n clickCallback: '(function|null)'\n };\n var NAME$1 = 'backdrop';\n var CLASS_NAME_BACKDROP = 'modal-backdrop';\n var CLASS_NAME_FADE$1 = 'fade';\n var CLASS_NAME_SHOW$1 = 'show';\n var EVENT_MOUSEDOWN = \"mousedown.bs.\".concat(NAME$1);\n\n var Backdrop = /*#__PURE__*/function () {\n function Backdrop(config) {\n _classCallCheck(this, Backdrop);\n\n this._config = this._getConfig(config);\n this._isAppended = false;\n this._element = null;\n }\n\n _createClass(Backdrop, [{\n key: \"show\",\n value: function show(callback) {\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n\n this._append();\n\n if (this._config.isAnimated) {\n reflow(this._getElement());\n }\n\n this._getElement().classList.add(CLASS_NAME_SHOW$1);\n\n this._emulateAnimation(function () {\n execute(callback);\n });\n }\n }, {\n key: \"hide\",\n value: function hide(callback) {\n var _this2 = this;\n\n if (!this._config.isVisible) {\n execute(callback);\n return;\n }\n\n this._getElement().classList.remove(CLASS_NAME_SHOW$1);\n\n this._emulateAnimation(function () {\n _this2.dispose();\n\n execute(callback);\n });\n } // Private\n\n }, {\n key: \"_getElement\",\n value: function _getElement() {\n if (!this._element) {\n var backdrop = document.createElement('div');\n backdrop.className = CLASS_NAME_BACKDROP;\n\n if (this._config.isAnimated) {\n backdrop.classList.add(CLASS_NAME_FADE$1);\n }\n\n this._element = backdrop;\n }\n\n return this._element;\n }\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n config = _objectSpread(_objectSpread({}, Default$1), _typeof(config) === 'object' ? config : {}); // use getElement() with the default \"body\" to get a fresh Element on each instantiation\n\n config.rootElement = getElement(config.rootElement);\n typeCheckConfig(NAME$1, config, DefaultType$1);\n return config;\n }\n }, {\n key: \"_append\",\n value: function _append() {\n var _this3 = this;\n\n if (this._isAppended) {\n return;\n }\n\n this._config.rootElement.appendChild(this._getElement());\n\n EventHandler__default['default'].on(this._getElement(), EVENT_MOUSEDOWN, function () {\n execute(_this3._config.clickCallback);\n });\n this._isAppended = true;\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n if (!this._isAppended) {\n return;\n }\n\n EventHandler__default['default'].off(this._element, EVENT_MOUSEDOWN);\n\n this._element.remove();\n\n this._isAppended = false;\n }\n }, {\n key: \"_emulateAnimation\",\n value: function _emulateAnimation(callback) {\n executeAfterTransition(callback, this._getElement(), this._config.isAnimated);\n }\n }]);\n\n return Backdrop;\n }();\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.2): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n\n var NAME = 'modal';\n var DATA_KEY = 'bs.modal';\n var EVENT_KEY = \".\".concat(DATA_KEY);\n var DATA_API_KEY = '.data-api';\n var ESCAPE_KEY = 'Escape';\n var Default = {\n backdrop: true,\n keyboard: true,\n focus: true\n };\n var DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean'\n };\n var EVENT_HIDE = \"hide\".concat(EVENT_KEY);\n var EVENT_HIDE_PREVENTED = \"hidePrevented\".concat(EVENT_KEY);\n var EVENT_HIDDEN = \"hidden\".concat(EVENT_KEY);\n var EVENT_SHOW = \"show\".concat(EVENT_KEY);\n var EVENT_SHOWN = \"shown\".concat(EVENT_KEY);\n var EVENT_FOCUSIN = \"focusin\".concat(EVENT_KEY);\n var EVENT_RESIZE = \"resize\".concat(EVENT_KEY);\n var EVENT_CLICK_DISMISS = \"click.dismiss\".concat(EVENT_KEY);\n var EVENT_KEYDOWN_DISMISS = \"keydown.dismiss\".concat(EVENT_KEY);\n var EVENT_MOUSEUP_DISMISS = \"mouseup.dismiss\".concat(EVENT_KEY);\n var EVENT_MOUSEDOWN_DISMISS = \"mousedown.dismiss\".concat(EVENT_KEY);\n var EVENT_CLICK_DATA_API = \"click\".concat(EVENT_KEY).concat(DATA_API_KEY);\n var CLASS_NAME_OPEN = 'modal-open';\n var CLASS_NAME_FADE = 'fade';\n var CLASS_NAME_SHOW = 'show';\n var CLASS_NAME_STATIC = 'modal-static';\n var SELECTOR_DIALOG = '.modal-dialog';\n var SELECTOR_MODAL_BODY = '.modal-body';\n var SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]';\n var SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"modal\"]';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Modal = /*#__PURE__*/function (_BaseComponent__defau) {\n _inherits(Modal, _BaseComponent__defau);\n\n var _super = _createSuper(Modal);\n\n function Modal(element, config) {\n var _this4;\n\n _classCallCheck(this, Modal);\n\n _this4 = _super.call(this, element);\n _this4._config = _this4._getConfig(config);\n _this4._dialog = SelectorEngine__default['default'].findOne(SELECTOR_DIALOG, _this4._element);\n _this4._backdrop = _this4._initializeBackDrop();\n _this4._isShown = false;\n _this4._ignoreBackdropClick = false;\n _this4._isTransitioning = false;\n _this4._scrollBar = new ScrollBarHelper();\n return _this4;\n } // Getters\n\n\n _createClass(Modal, [{\n key: \"toggle\",\n // Public\n value: function toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n }, {\n key: \"show\",\n value: function show(relatedTarget) {\n var _this5 = this;\n\n if (this._isShown || this._isTransitioning) {\n return;\n }\n\n var showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW, {\n relatedTarget: relatedTarget\n });\n\n if (showEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = true;\n\n if (this._isAnimated()) {\n this._isTransitioning = true;\n }\n\n this._scrollBar.hide();\n\n document.body.classList.add(CLASS_NAME_OPEN);\n\n this._adjustDialog();\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) {\n return _this5.hide(event);\n });\n EventHandler__default['default'].on(this._dialog, EVENT_MOUSEDOWN_DISMISS, function () {\n EventHandler__default['default'].one(_this5._element, EVENT_MOUSEUP_DISMISS, function (event) {\n if (event.target === _this5._element) {\n _this5._ignoreBackdropClick = true;\n }\n });\n });\n\n this._showBackdrop(function () {\n return _this5._showElement(relatedTarget);\n });\n }\n }, {\n key: \"hide\",\n value: function hide(event) {\n var _this6 = this;\n\n if (event && ['A', 'AREA'].includes(event.target.tagName)) {\n event.preventDefault();\n }\n\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n\n var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n this._isShown = false;\n\n var isAnimated = this._isAnimated();\n\n if (isAnimated) {\n this._isTransitioning = true;\n }\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n EventHandler__default['default'].off(document, EVENT_FOCUSIN);\n\n this._element.classList.remove(CLASS_NAME_SHOW);\n\n EventHandler__default['default'].off(this._element, EVENT_CLICK_DISMISS);\n EventHandler__default['default'].off(this._dialog, EVENT_MOUSEDOWN_DISMISS);\n\n this._queueCallback(function () {\n return _this6._hideModal();\n }, this._element, isAnimated);\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n [window, this._dialog].forEach(function (htmlElement) {\n return EventHandler__default['default'].off(htmlElement, EVENT_KEY);\n });\n\n this._backdrop.dispose();\n\n _get(_getPrototypeOf(Modal.prototype), \"dispose\", this).call(this);\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n\n\n EventHandler__default['default'].off(document, EVENT_FOCUSIN);\n }\n }, {\n key: \"handleUpdate\",\n value: function handleUpdate() {\n this._adjustDialog();\n } // Private\n\n }, {\n key: \"_initializeBackDrop\",\n value: function _initializeBackDrop() {\n return new Backdrop({\n isVisible: Boolean(this._config.backdrop),\n // 'static' option will be translated to true, and booleans will keep their value\n isAnimated: this._isAnimated()\n });\n }\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n config = _objectSpread(_objectSpread(_objectSpread({}, Default), Manipulator__default['default'].getDataAttributes(this._element)), _typeof(config) === 'object' ? config : {});\n typeCheckConfig(NAME, config, DefaultType);\n return config;\n }\n }, {\n key: \"_showElement\",\n value: function _showElement(relatedTarget) {\n var _this7 = this;\n\n var isAnimated = this._isAnimated();\n\n var modalBody = SelectorEngine__default['default'].findOne(SELECTOR_MODAL_BODY, this._dialog);\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element);\n }\n\n this._element.style.display = 'block';\n\n this._element.removeAttribute('aria-hidden');\n\n this._element.setAttribute('aria-modal', true);\n\n this._element.setAttribute('role', 'dialog');\n\n this._element.scrollTop = 0;\n\n if (modalBody) {\n modalBody.scrollTop = 0;\n }\n\n if (isAnimated) {\n reflow(this._element);\n }\n\n this._element.classList.add(CLASS_NAME_SHOW);\n\n if (this._config.focus) {\n this._enforceFocus();\n }\n\n var transitionComplete = function transitionComplete() {\n if (_this7._config.focus) {\n _this7._element.focus();\n }\n\n _this7._isTransitioning = false;\n EventHandler__default['default'].trigger(_this7._element, EVENT_SHOWN, {\n relatedTarget: relatedTarget\n });\n };\n\n this._queueCallback(transitionComplete, this._dialog, isAnimated);\n }\n }, {\n key: \"_enforceFocus\",\n value: function _enforceFocus() {\n var _this8 = this;\n\n EventHandler__default['default'].off(document, EVENT_FOCUSIN); // guard against infinite focus loop\n\n EventHandler__default['default'].on(document, EVENT_FOCUSIN, function (event) {\n if (document !== event.target && _this8._element !== event.target && !_this8._element.contains(event.target)) {\n _this8._element.focus();\n }\n });\n }\n }, {\n key: \"_setEscapeEvent\",\n value: function _setEscapeEvent() {\n var _this9 = this;\n\n if (this._isShown) {\n EventHandler__default['default'].on(this._element, EVENT_KEYDOWN_DISMISS, function (event) {\n if (_this9._config.keyboard && event.key === ESCAPE_KEY) {\n event.preventDefault();\n\n _this9.hide();\n } else if (!_this9._config.keyboard && event.key === ESCAPE_KEY) {\n _this9._triggerBackdropTransition();\n }\n });\n } else {\n EventHandler__default['default'].off(this._element, EVENT_KEYDOWN_DISMISS);\n }\n }\n }, {\n key: \"_setResizeEvent\",\n value: function _setResizeEvent() {\n var _this10 = this;\n\n if (this._isShown) {\n EventHandler__default['default'].on(window, EVENT_RESIZE, function () {\n return _this10._adjustDialog();\n });\n } else {\n EventHandler__default['default'].off(window, EVENT_RESIZE);\n }\n }\n }, {\n key: \"_hideModal\",\n value: function _hideModal() {\n var _this11 = this;\n\n this._element.style.display = 'none';\n\n this._element.setAttribute('aria-hidden', true);\n\n this._element.removeAttribute('aria-modal');\n\n this._element.removeAttribute('role');\n\n this._isTransitioning = false;\n\n this._backdrop.hide(function () {\n document.body.classList.remove(CLASS_NAME_OPEN);\n\n _this11._resetAdjustments();\n\n _this11._scrollBar.reset();\n\n EventHandler__default['default'].trigger(_this11._element, EVENT_HIDDEN);\n });\n }\n }, {\n key: \"_showBackdrop\",\n value: function _showBackdrop(callback) {\n var _this12 = this;\n\n EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, function (event) {\n if (_this12._ignoreBackdropClick) {\n _this12._ignoreBackdropClick = false;\n return;\n }\n\n if (event.target !== event.currentTarget) {\n return;\n }\n\n if (_this12._config.backdrop === true) {\n _this12.hide();\n } else if (_this12._config.backdrop === 'static') {\n _this12._triggerBackdropTransition();\n }\n });\n\n this._backdrop.show(callback);\n }\n }, {\n key: \"_isAnimated\",\n value: function _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_FADE);\n }\n }, {\n key: \"_triggerBackdropTransition\",\n value: function _triggerBackdropTransition() {\n var _this13 = this;\n\n var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE_PREVENTED);\n\n if (hideEvent.defaultPrevented) {\n return;\n }\n\n var _this$_element = this._element,\n classList = _this$_element.classList,\n scrollHeight = _this$_element.scrollHeight,\n style = _this$_element.style;\n var isModalOverflowing = scrollHeight > document.documentElement.clientHeight; // return if the following background transition hasn't yet completed\n\n if (!isModalOverflowing && style.overflowY === 'hidden' || classList.contains(CLASS_NAME_STATIC)) {\n return;\n }\n\n if (!isModalOverflowing) {\n style.overflowY = 'hidden';\n }\n\n classList.add(CLASS_NAME_STATIC);\n\n this._queueCallback(function () {\n classList.remove(CLASS_NAME_STATIC);\n\n if (!isModalOverflowing) {\n _this13._queueCallback(function () {\n style.overflowY = '';\n }, _this13._dialog);\n }\n }, this._dialog);\n\n this._element.focus();\n } // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n }, {\n key: \"_adjustDialog\",\n value: function _adjustDialog() {\n var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n var scrollbarWidth = this._scrollBar.getWidth();\n\n var isBodyOverflowing = scrollbarWidth > 0;\n\n if (!isBodyOverflowing && isModalOverflowing && !isRTL() || isBodyOverflowing && !isModalOverflowing && isRTL()) {\n this._element.style.paddingLeft = \"\".concat(scrollbarWidth, \"px\");\n }\n\n if (isBodyOverflowing && !isModalOverflowing && !isRTL() || !isBodyOverflowing && isModalOverflowing && isRTL()) {\n this._element.style.paddingRight = \"\".concat(scrollbarWidth, \"px\");\n }\n }\n }, {\n key: \"_resetAdjustments\",\n value: function _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n } // Static\n\n }], [{\n key: \"jQueryInterface\",\n value: function jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n var data = Modal.getOrCreateInstance(this, config);\n\n if (typeof config !== 'string') {\n return;\n }\n\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n }\n\n data[config](relatedTarget);\n });\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME;\n }\n }]);\n\n return Modal;\n }(BaseComponent__default['default']);\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n var _this14 = this;\n\n var target = getElementFromSelector(this);\n\n if (['A', 'AREA'].includes(this.tagName)) {\n event.preventDefault();\n }\n\n EventHandler__default['default'].one(target, EVENT_SHOW, function (showEvent) {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return;\n }\n\n EventHandler__default['default'].one(target, EVENT_HIDDEN, function () {\n if (isVisible(_this14)) {\n _this14.focus();\n }\n });\n });\n var data = Modal.getOrCreateInstance(target);\n data.toggle(this);\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Modal to jQuery only if jQuery is present\n */\n\n defineJQueryPlugin(Modal);\n return Modal;\n});","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * Bootstrap base-component.js v5.0.2 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/selector-engine.js'), require('./dom/event-handler.js')) : typeof define === 'function' && define.amd ? define(['./dom/data', './dom/selector-engine', './dom/event-handler'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Base = factory(global.Data, global.SelectorEngine, global.EventHandler));\n})(this, function (Data, SelectorEngine, EventHandler) {\n 'use strict';\n\n function _interopDefaultLegacy(e) {\n return e && _typeof(e) === 'object' && 'default' in e ? e : {\n 'default': e\n };\n }\n\n var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);\n\n var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);\n\n var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);\n\n var MILLISECONDS_MULTIPLIER = 1000;\n var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n var getTransitionDurationFromElement = function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n var _window$getComputedSt = window.getComputedStyle(element),\n transitionDuration = _window$getComputedSt.transitionDuration,\n transitionDelay = _window$getComputedSt.transitionDelay;\n\n var floatTransitionDuration = Number.parseFloat(transitionDuration);\n var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n };\n\n var triggerTransitionEnd = function triggerTransitionEnd(element) {\n element.dispatchEvent(new Event(TRANSITION_END));\n };\n\n var isElement = function isElement(obj) {\n if (!obj || _typeof(obj) !== 'object') {\n return false;\n }\n\n if (typeof obj.jquery !== 'undefined') {\n obj = obj[0];\n }\n\n return typeof obj.nodeType !== 'undefined';\n };\n\n var getElement = function getElement(obj) {\n if (isElement(obj)) {\n // it's a jQuery object or a node element\n return obj.jquery ? obj[0] : obj;\n }\n\n if (typeof obj === 'string' && obj.length > 0) {\n return SelectorEngine__default['default'].findOne(obj);\n }\n\n return null;\n };\n\n var execute = function execute(callback) {\n if (typeof callback === 'function') {\n callback();\n }\n };\n\n var executeAfterTransition = function executeAfterTransition(callback, transitionElement) {\n var waitForTransition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!waitForTransition) {\n execute(callback);\n return;\n }\n\n var durationPadding = 5;\n var emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;\n var called = false;\n\n var handler = function handler(_ref) {\n var target = _ref.target;\n\n if (target !== transitionElement) {\n return;\n }\n\n called = true;\n transitionElement.removeEventListener(TRANSITION_END, handler);\n execute(callback);\n };\n\n transitionElement.addEventListener(TRANSITION_END, handler);\n setTimeout(function () {\n if (!called) {\n triggerTransitionEnd(transitionElement);\n }\n }, emulatedDuration);\n };\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.2): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n\n var VERSION = '5.0.2';\n\n var BaseComponent = /*#__PURE__*/function () {\n function BaseComponent(element) {\n _classCallCheck(this, BaseComponent);\n\n element = getElement(element);\n\n if (!element) {\n return;\n }\n\n this._element = element;\n Data__default['default'].set(this._element, this.constructor.DATA_KEY, this);\n }\n\n _createClass(BaseComponent, [{\n key: \"dispose\",\n value: function dispose() {\n var _this = this;\n\n Data__default['default'].remove(this._element, this.constructor.DATA_KEY);\n EventHandler__default['default'].off(this._element, this.constructor.EVENT_KEY);\n Object.getOwnPropertyNames(this).forEach(function (propertyName) {\n _this[propertyName] = null;\n });\n }\n }, {\n key: \"_queueCallback\",\n value: function _queueCallback(callback, element) {\n var isAnimated = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n executeAfterTransition(callback, element, isAnimated);\n }\n /** Static */\n\n }], [{\n key: \"getInstance\",\n value: function getInstance(element) {\n return Data__default['default'].get(element, this.DATA_KEY);\n }\n }, {\n key: \"getOrCreateInstance\",\n value: function getOrCreateInstance(element) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return this.getInstance(element) || new this(element, _typeof(config) === 'object' ? config : null);\n }\n }, {\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n throw new Error('You have to implement the static method \"NAME\", for each component!');\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return \"bs.\".concat(this.NAME);\n }\n }, {\n key: \"EVENT_KEY\",\n get: function get() {\n return \".\".concat(this.DATA_KEY);\n }\n }]);\n\n return BaseComponent;\n }();\n\n return BaseComponent;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * Bootstrap data.js v5.0.2 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Data = factory());\n})(this, function () {\n 'use strict';\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.2): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var elementMap = new Map();\n var data = {\n set: function set(element, key, instance) {\n if (!elementMap.has(element)) {\n elementMap.set(element, new Map());\n }\n\n var instanceMap = elementMap.get(element); // make it clear we only want one instance per element\n // can be removed later when multiple key/instances are fine to be used\n\n if (!instanceMap.has(key) && instanceMap.size !== 0) {\n // eslint-disable-next-line no-console\n console.error(\"Bootstrap doesn't allow more than one instance per element. Bound instance: \".concat(Array.from(instanceMap.keys())[0], \".\"));\n return;\n }\n\n instanceMap.set(key, instance);\n },\n get: function get(element, key) {\n if (elementMap.has(element)) {\n return elementMap.get(element).get(key) || null;\n }\n\n return null;\n },\n remove: function remove(element, key) {\n if (!elementMap.has(element)) {\n return;\n }\n\n var instanceMap = elementMap.get(element);\n instanceMap[\"delete\"](key); // free up element references if there are no instances left for an element\n\n if (instanceMap.size === 0) {\n elementMap[\"delete\"](element);\n }\n }\n };\n return data;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * Bootstrap manipulator.js v5.0.2 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Manipulator = factory());\n})(this, function () {\n 'use strict';\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.2): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n function normalizeData(val) {\n if (val === 'true') {\n return true;\n }\n\n if (val === 'false') {\n return false;\n }\n\n if (val === Number(val).toString()) {\n return Number(val);\n }\n\n if (val === '' || val === 'null') {\n return null;\n }\n\n return val;\n }\n\n function normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, function (chr) {\n return \"-\".concat(chr.toLowerCase());\n });\n }\n\n var Manipulator = {\n setDataAttribute: function setDataAttribute(element, key, value) {\n element.setAttribute(\"data-bs-\".concat(normalizeDataKey(key)), value);\n },\n removeDataAttribute: function removeDataAttribute(element, key) {\n element.removeAttribute(\"data-bs-\".concat(normalizeDataKey(key)));\n },\n getDataAttributes: function getDataAttributes(element) {\n if (!element) {\n return {};\n }\n\n var attributes = {};\n Object.keys(element.dataset).filter(function (key) {\n return key.startsWith('bs');\n }).forEach(function (key) {\n var pureKey = key.replace(/^bs/, '');\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);\n attributes[pureKey] = normalizeData(element.dataset[key]);\n });\n return attributes;\n },\n getDataAttribute: function getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(\"data-bs-\".concat(normalizeDataKey(key))));\n },\n offset: function offset(element) {\n var rect = element.getBoundingClientRect();\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n };\n },\n position: function position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n };\n }\n };\n return Manipulator;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * jQuery JavaScript Library v3.5.0\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: 2020-04-10T15:07Z\n */\n(function (global, factory) {\n \"use strict\";\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && _typeof(module.exports) === \"object\") {\n // For CommonJS and CommonJS-like environments where a proper `window`\n // is present, execute the factory and get jQuery.\n // For environments that do not have a `window` with a `document`\n // (such as Node.js), expose a factory as module.exports.\n // This accentuates the need for the creation of a real `window`.\n // e.g. var jQuery = require(\"jquery\")(window);\n // See ticket #14549 for more info.\n module.exports = global.document ? factory(global, true) : function (w) {\n if (!w.document) {\n throw new Error(\"jQuery requires a window with a document\");\n }\n\n return factory(w);\n };\n } else {\n factory(global);\n } // Pass this if window is not defined yet\n\n})(typeof window !== \"undefined\" ? window : this, function (window, noGlobal) {\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\n var arr = [];\n var getProto = Object.getPrototypeOf;\n var _slice = arr.slice;\n var flat = arr.flat ? function (array) {\n return arr.flat.call(array);\n } : function (array) {\n return arr.concat.apply([], array);\n };\n var push = arr.push;\n var indexOf = arr.indexOf;\n var class2type = {};\n var toString = class2type.toString;\n var hasOwn = class2type.hasOwnProperty;\n var fnToString = hasOwn.toString;\n var ObjectFunctionString = fnToString.call(Object);\n var support = {};\n\n var isFunction = function isFunction(obj) {\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 var isWindow = function isWindow(obj) {\n return obj != null && obj === obj.window;\n };\n\n var document = window.document;\n var preservedScriptAttributes = {\n type: true,\n src: true,\n nonce: true,\n noModule: true\n };\n\n function DOMEval(code, node, doc) {\n doc = doc || document;\n var i,\n val,\n script = doc.createElement(\"script\");\n script.text = code;\n\n if (node) {\n for (i in preservedScriptAttributes) {\n // Support: Firefox 64+, Edge 18+\n // Some browsers don't support the \"nonce\" property on scripts.\n // On the other hand, just using `getAttribute` is not enough as\n // the `nonce` attribute is reset to an empty string whenever it\n // becomes browsing-context connected.\n // See https://github.com/whatwg/html/issues/2369\n // See https://html.spec.whatwg.org/#nonce-attributes\n // The `node.getAttribute` check was added for the sake of\n // `jQuery.globalEval` so that it can fake a nonce-containing node\n // via an object.\n val = node[i] || node.getAttribute && node.getAttribute(i);\n\n if (val) {\n script.setAttribute(i, val);\n }\n }\n }\n\n doc.head.appendChild(script).parentNode.removeChild(script);\n }\n\n function toType(obj) {\n if (obj == null) {\n return obj + \"\";\n } // Support: Android <=2.3 only (functionish RegExp)\n\n\n return _typeof(obj) === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : _typeof(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 var version = \"3.5.0\",\n // Define a local copy of jQuery\n jQuery = function jQuery(selector, context) {\n // The jQuery object is actually just the init constructor 'enhanced'\n // Need init if jQuery is called (just allow error to be thrown if not included)\n return new jQuery.fn.init(selector, context);\n };\n\n jQuery.fn = jQuery.prototype = {\n // The current version of jQuery being used\n jquery: version,\n constructor: jQuery,\n // The default length of a jQuery object is 0\n length: 0,\n toArray: function toArray() {\n return _slice.call(this);\n },\n // Get the Nth element in the matched element set OR\n // Get the whole matched element set as a clean array\n get: function get(num) {\n // Return all the elements in a clean array\n if (num == null) {\n return _slice.call(this);\n } // Return just the one element from the set\n\n\n return num < 0 ? this[num + this.length] : this[num];\n },\n // Take an array of elements and push it onto the stack\n // (returning the new matched element set)\n pushStack: function pushStack(elems) {\n // Build a new jQuery matched element set\n var ret = jQuery.merge(this.constructor(), elems); // Add the old object onto the stack (as a reference)\n\n ret.prevObject = this; // Return the newly-formed element set\n\n return ret;\n },\n // Execute a callback for every element in the matched set.\n each: function each(callback) {\n return jQuery.each(this, callback);\n },\n map: function map(callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n slice: function slice() {\n return this.pushStack(_slice.apply(this, arguments));\n },\n first: function first() {\n return this.eq(0);\n },\n last: function last() {\n return this.eq(-1);\n },\n even: function even() {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return (i + 1) % 2;\n }));\n },\n odd: function odd() {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return i % 2;\n }));\n },\n eq: function eq(i) {\n var len = this.length,\n j = +i + (i < 0 ? len : 0);\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n },\n end: function end() {\n return this.prevObject || this.constructor();\n },\n // For internal use only.\n // Behaves like an Array's method, not like a jQuery method.\n push: push,\n sort: arr.sort,\n splice: arr.splice\n };\n\n jQuery.extend = jQuery.fn.extend = function () {\n var options,\n name,\n src,\n copy,\n copyIsArray,\n clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false; // Handle a deep copy situation\n\n if (typeof target === \"boolean\") {\n deep = target; // Skip the boolean and the target\n\n target = arguments[i] || {};\n i++;\n } // Handle case when target is a string or something (possible in deep copy)\n\n\n if (_typeof(target) !== \"object\" && !isFunction(target)) {\n target = {};\n } // Extend jQuery itself if only one argument is passed\n\n\n if (i === length) {\n target = this;\n i--;\n }\n\n for (; i < length; i++) {\n // Only deal with non-null/undefined values\n if ((options = arguments[i]) != null) {\n // Extend the base object\n for (name in options) {\n copy = options[name]; // Prevent Object.prototype pollution\n // Prevent never-ending loop\n\n if (name === \"__proto__\" || target === copy) {\n continue;\n } // Recurse if we're merging plain objects or arrays\n\n\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n src = target[name]; // Ensure proper type for the source value\n\n if (copyIsArray && !Array.isArray(src)) {\n clone = [];\n } else if (!copyIsArray && !jQuery.isPlainObject(src)) {\n clone = {};\n } else {\n clone = src;\n }\n\n copyIsArray = false; // Never move original objects, clone them\n\n target[name] = jQuery.extend(deep, clone, copy); // Don't bring in undefined values\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n } // Return the modified object\n\n\n return target;\n };\n\n jQuery.extend({\n // Unique for each copy of jQuery on the page\n expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n // Assume jQuery is ready without the ready module\n isReady: true,\n error: function error(msg) {\n throw new Error(msg);\n },\n noop: function noop() {},\n isPlainObject: function isPlainObject(obj) {\n var proto, Ctor; // Detect obvious negatives\n // Use toString instead of jQuery.type to catch host objects\n\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n\n proto = getProto(obj); // Objects with no prototype (e.g., `Object.create( null )`) are plain\n\n if (!proto) {\n return true;\n } // Objects with prototype are plain iff they were constructed by a global Object function\n\n\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n },\n isEmptyObject: function isEmptyObject(obj) {\n var name;\n\n for (name in obj) {\n return false;\n }\n\n return true;\n },\n // Evaluates a script in a provided context; falls back to the global one\n // if not specified.\n globalEval: function globalEval(code, options, doc) {\n DOMEval(code, {\n nonce: options && options.nonce\n }, doc);\n },\n each: function each(obj, callback) {\n var length,\n i = 0;\n\n if (isArrayLike(obj)) {\n length = obj.length;\n\n for (; i < length; i++) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n }\n\n return obj;\n },\n // results is for internal usage only\n makeArray: function makeArray(arr, results) {\n var ret = results || [];\n\n if (arr != null) {\n if (isArrayLike(Object(arr))) {\n jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n } else {\n push.call(ret, arr);\n }\n }\n\n return ret;\n },\n inArray: function inArray(elem, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, elem, i);\n },\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n merge: function merge(first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n\n for (; j < len; j++) {\n first[i++] = second[j];\n }\n\n first.length = i;\n return first;\n },\n grep: function grep(elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert; // Go through the array, only saving the items\n // that pass the validator function\n\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n\n return matches;\n },\n // arg is for internal usage only\n map: function map(elems, callback, arg) {\n var length,\n value,\n i = 0,\n ret = []; // Go through the array, translating each of the items to their new values\n\n if (isArrayLike(elems)) {\n length = elems.length;\n\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n } // Go through every key on the object,\n\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n }\n } // Flatten any nested arrays\n\n\n return flat(ret);\n },\n // A global GUID counter for objects\n guid: 1,\n // jQuery.support is not used in Core but other projects attach their\n // properties to it so it needs to exist.\n support: support\n });\n\n if (typeof Symbol === \"function\") {\n jQuery.fn[Symbol.iterator] = arr[Symbol.iterator];\n } // Populate the class2type map\n\n\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (_i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n\n function isArrayLike(obj) {\n // Support: real iOS 8.2 only (not reproducible in simulator)\n // `in` check used to prevent JIT error (gh-2145)\n // hasOwn isn't used here due to false negatives\n // regarding Nodelist length in IE\n var length = !!obj && \"length\" in obj && obj.length,\n type = toType(obj);\n\n if (isFunction(obj) || isWindow(obj)) {\n return false;\n }\n\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n\n var Sizzle =\n /*!\n * Sizzle CSS Selector Engine v2.3.5\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2020-03-14\n */\n function (window) {\n var i,\n support,\n Expr,\n getText,\n isXML,\n tokenize,\n compile,\n select,\n outermostContext,\n sortInput,\n hasDuplicate,\n // Local document vars\n setDocument,\n document,\n docElem,\n documentIsHTML,\n rbuggyQSA,\n rbuggyMatches,\n matches,\n contains,\n // Instance-specific data\n expando = \"sizzle\" + 1 * new Date(),\n preferredDoc = window.document,\n dirruns = 0,\n done = 0,\n classCache = createCache(),\n tokenCache = createCache(),\n compilerCache = createCache(),\n nonnativeSelectorCache = createCache(),\n sortOrder = function sortOrder(a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\n\n return 0;\n },\n // Instance methods\n hasOwn = {}.hasOwnProperty,\n arr = [],\n pop = arr.pop,\n pushNative = arr.push,\n push = arr.push,\n slice = arr.slice,\n // Use a stripped-down indexOf as it's faster than native\n // https://jsperf.com/thor-indexof-vs-for/5\n indexOf = function indexOf(list, elem) {\n var i = 0,\n len = list.length;\n\n for (; i < len; i++) {\n if (list[i] === elem) {\n return i;\n }\n }\n\n return -1;\n },\n booleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" + \"ismap|loop|multiple|open|readonly|required|scoped\",\n // Regular expressions\n // http://www.w3.org/TR/css3-selectors/#whitespace\n whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n identifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n attributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace + // Operator (capture 2)\n \"*([*^$|!~]?=)\" + whitespace + // \"Attribute values must be CSS identifiers [capture 5]\n // or strings [capture 3 or capture 4]\"\n \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace + \"*\\\\]\",\n pseudos = \":(\" + identifier + \")(?:\\\\((\" + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n // 1. quoted (capture 3; capture 4 or capture 5)\n \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" + // 2. simple (capture 6)\n \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" + // 3. anything else (capture 2)\n \".*\" + \")\\\\)|)\",\n // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n rwhitespace = new RegExp(whitespace + \"+\", \"g\"),\n rtrim = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\"),\n rcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\n rcombinators = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\"),\n rdescend = new RegExp(whitespace + \"|>\"),\n rpseudo = new RegExp(pseudos),\n ridentifier = new RegExp(\"^\" + identifier + \"$\"),\n matchExpr = {\n \"ID\": new RegExp(\"^#(\" + identifier + \")\"),\n \"CLASS\": new RegExp(\"^\\\\.(\" + identifier + \")\"),\n \"TAG\": new RegExp(\"^(\" + identifier + \"|[*])\"),\n \"ATTR\": new RegExp(\"^\" + attributes),\n \"PSEUDO\": new RegExp(\"^\" + pseudos),\n \"CHILD\": new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\n \"bool\": new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\n // For use in libraries implementing .is()\n // We use this for POS matching in `select`\n \"needsContext\": new RegExp(\"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n },\n rhtml = /HTML$/i,\n rinputs = /^(?:input|select|textarea|button)$/i,\n rheader = /^h\\d$/i,\n rnative = /^[^{]+\\{\\s*\\[native \\w/,\n // Easily-parseable/retrievable ID or TAG or CLASS selectors\n rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n rsibling = /[+~]/,\n // CSS escapes\n // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n runescape = new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\"),\n funescape = function funescape(escape, nonHex) {\n var high = \"0x\" + escape.slice(1) - 0x10000;\n return nonHex ? // Strip the backslash prefix from a non-hex escape sequence\n nonHex : // Replace a hexadecimal escape sequence with the encoded Unicode code point\n // Support: IE <=11+\n // For values outside the Basic Multilingual Plane (BMP), manually construct a\n // surrogate pair\n high < 0 ? String.fromCharCode(high + 0x10000) : String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\n },\n // CSS string/identifier serialization\n // https://drafts.csswg.org/cssom/#common-serializing-idioms\n rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n fcssescape = function fcssescape(ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === \"\\0\") {\n return \"\\uFFFD\";\n } // Control characters and (dependent upon position) numbers get escaped as code points\n\n\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\n } // Other potentially-special ASCII characters get backslash-escaped\n\n\n return \"\\\\\" + ch;\n },\n // Used for iframes\n // See setDocument()\n // Removing the function wrapper causes a \"Permission Denied\"\n // error in IE\n unloadHandler = function unloadHandler() {\n setDocument();\n },\n inDisabledFieldset = addCombinator(function (elem) {\n return elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n }, {\n dir: \"parentNode\",\n next: \"legend\"\n }); // Optimize for push.apply( _, NodeList )\n\n\n try {\n push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes); // Support: Android<4.0\n // Detect silently failing push.apply\n // eslint-disable-next-line no-unused-expressions\n\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push = {\n apply: arr.length ? // Leverage slice if possible\n function (target, els) {\n pushNative.apply(target, slice.call(els));\n } : // Support: IE<9\n // Otherwise append directly\n function (target, els) {\n var j = target.length,\n i = 0; // Can't trust NodeList.length\n\n while (target[j++] = els[i++]) {}\n\n target.length = j - 1;\n }\n };\n }\n\n function Sizzle(selector, context, results, seed) {\n var m,\n i,\n elem,\n nid,\n match,\n groups,\n newSelector,\n newContext = context && context.ownerDocument,\n // nodeType defaults to 9, since context defaults to document\n nodeType = context ? context.nodeType : 9;\n results = results || []; // Return early from calls with invalid selector or context\n\n if (typeof selector !== \"string\" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\n return results;\n } // Try to shortcut find operations (as opposed to filters) in HTML documents\n\n\n if (!seed) {\n setDocument(context);\n context = context || document;\n\n if (documentIsHTML) {\n // If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n // (excepting DocumentFragment context, where the methods don't exist)\n if (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\n // ID selector\n if (m = match[1]) {\n // Document context\n if (nodeType === 9) {\n if (elem = context.getElementById(m)) {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (elem.id === m) {\n results.push(elem);\n return results;\n }\n } else {\n return results;\n } // Element context\n\n } else {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (newContext && (elem = newContext.getElementById(m)) && contains(context, elem) && elem.id === m) {\n results.push(elem);\n return results;\n }\n } // Type selector\n\n } else if (match[2]) {\n push.apply(results, context.getElementsByTagName(selector));\n return results; // Class selector\n } else if ((m = match[3]) && support.getElementsByClassName && context.getElementsByClassName) {\n push.apply(results, context.getElementsByClassName(m));\n return results;\n }\n } // Take advantage of querySelectorAll\n\n\n if (support.qsa && !nonnativeSelectorCache[selector + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(selector)) && ( // Support: IE 8 only\n // Exclude object elements\n nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\")) {\n newSelector = selector;\n newContext = context; // qSA considers elements outside a scoping root when evaluating child or\n // descendant combinators, which is not what we want.\n // In such cases, we work around the behavior by prefixing every selector in the\n // list with an ID selector referencing the scope context.\n // The technique has to be used as well when a leading combinator is used\n // as such selectors are not recognized by querySelectorAll.\n // Thanks to Andrew Dupont for this technique.\n\n if (nodeType === 1 && (rdescend.test(selector) || rcombinators.test(selector))) {\n // Expand context for sibling selectors\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context; // We can use :scope instead of the ID hack if the browser\n // supports it & if we're not changing the context.\n\n if (newContext !== context || !support.scope) {\n // Capture the context ID, setting it first if necessary\n if (nid = context.getAttribute(\"id\")) {\n nid = nid.replace(rcssescape, fcssescape);\n } else {\n context.setAttribute(\"id\", nid = expando);\n }\n } // Prefix every selector in the list\n\n\n groups = tokenize(selector);\n i = groups.length;\n\n while (i--) {\n groups[i] = (nid ? \"#\" + nid : \":scope\") + \" \" + toSelector(groups[i]);\n }\n\n newSelector = groups.join(\",\");\n }\n\n try {\n push.apply(results, newContext.querySelectorAll(newSelector));\n return results;\n } catch (qsaError) {\n nonnativeSelectorCache(selector, true);\n } finally {\n if (nid === expando) {\n context.removeAttribute(\"id\");\n }\n }\n }\n }\n } // All others\n\n\n return select(selector.replace(rtrim, \"$1\"), context, results, seed);\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 */\n\n\n function createCache() {\n var keys = [];\n\n function cache(key, value) {\n // Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n if (keys.push(key + \" \") > Expr.cacheLength) {\n // Only keep the most recent entries\n delete cache[keys.shift()];\n }\n\n return cache[key + \" \"] = value;\n }\n\n return cache;\n }\n /**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\n\n\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n /**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\n\n\n function assert(fn) {\n var el = document.createElement(\"fieldset\");\n\n try {\n return !!fn(el);\n } catch (e) {\n return false;\n } finally {\n // Remove from its parent by default\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n } // release memory in IE\n\n\n el = null;\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 */\n\n\n function addHandle(attrs, handler) {\n var arr = attrs.split(\"|\"),\n i = arr.length;\n\n while (i--) {\n Expr.attrHandle[arr[i]] = handler;\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 */\n\n\n function siblingCheck(a, b) {\n var cur = b && a,\n diff = cur && a.nodeType === 1 && b.nodeType === 1 && a.sourceIndex - b.sourceIndex; // Use IE sourceIndex if available on both nodes\n\n if (diff) {\n return diff;\n } // Check if b follows a\n\n\n if (cur) {\n while (cur = cur.nextSibling) {\n if (cur === b) {\n return -1;\n }\n }\n }\n\n return a ? 1 : -1;\n }\n /**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\n\n\n function createInputPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\n\n\n function createButtonPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return (name === \"input\" || name === \"button\") && elem.type === type;\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 */\n\n\n function createDisabledPseudo(disabled) {\n // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n return function (elem) {\n // Only certain elements can match :enabled or :disabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n if (\"form\" in elem) {\n // Check for inherited disabledness on relevant non-disabled elements:\n // * listed form-associated elements in a disabled fieldset\n // https://html.spec.whatwg.org/multipage/forms.html#category-listed\n // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n // * option elements in a disabled optgroup\n // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n // All such elements have a \"form\" property.\n if (elem.parentNode && elem.disabled === false) {\n // Option elements defer to a parent optgroup if present\n if (\"label\" in elem) {\n if (\"label\" in elem.parentNode) {\n return elem.parentNode.disabled === disabled;\n } else {\n return elem.disabled === disabled;\n }\n } // Support: IE 6 - 11\n // Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\n\n return elem.isDisabled === disabled || // Where there is no isDisabled, check manually\n\n /* jshint -W018 */\n elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled;\n }\n\n return elem.disabled === disabled; // Try to winnow out elements that can't be disabled before trusting the disabled property.\n // Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n // even exist on them, let alone have a boolean value.\n } else if (\"label\" in elem) {\n return elem.disabled === disabled;\n } // Remaining elements are neither :enabled nor :disabled\n\n\n return false;\n };\n }\n /**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\n\n\n function createPositionalPseudo(fn) {\n return markFunction(function (argument) {\n argument = +argument;\n return markFunction(function (seed, matches) {\n var j,\n matchIndexes = fn([], seed.length, argument),\n i = matchIndexes.length; // Match elements found at the specified indexes\n\n while (i--) {\n if (seed[j = matchIndexes[i]]) {\n seed[j] = !(matches[j] = seed[j]);\n }\n }\n });\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 */\n\n\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== \"undefined\" && context;\n } // Expose support vars for convenience\n\n\n support = Sizzle.support = {};\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 */\n\n isXML = Sizzle.isXML = function (elem) {\n var namespace = elem.namespaceURI,\n docElem = (elem.ownerDocument || elem).documentElement; // Support: IE <=8\n // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n // https://bugs.jquery.com/ticket/4833\n\n return !rhtml.test(namespace || docElem && docElem.nodeName || \"HTML\");\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 */\n\n\n setDocument = Sizzle.setDocument = function (node) {\n var hasCompare,\n subWindow,\n doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (doc == document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n } // Update global variables\n\n\n document = doc;\n docElem = document.documentElement;\n documentIsHTML = !isXML(document); // Support: IE 9 - 11+, Edge 12 - 18+\n // Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (preferredDoc != document && (subWindow = document.defaultView) && subWindow.top !== subWindow) {\n // Support: IE 11, Edge\n if (subWindow.addEventListener) {\n subWindow.addEventListener(\"unload\", unloadHandler, false); // Support: IE 9 - 10 only\n } else if (subWindow.attachEvent) {\n subWindow.attachEvent(\"onunload\", unloadHandler);\n }\n } // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n // Safari 4 - 5 only, Opera <=11.6 - 12.x only\n // IE/Edge & older browsers don't support the :scope pseudo-class.\n // Support: Safari 6.0 only\n // Safari 6.0 supports :scope but it's an alias of :root there.\n\n\n support.scope = assert(function (el) {\n docElem.appendChild(el).appendChild(document.createElement(\"div\"));\n return typeof el.querySelectorAll !== \"undefined\" && !el.querySelectorAll(\":scope fieldset div\").length;\n });\n /* Attributes\n ---------------------------------------------------------------------- */\n // Support: IE<8\n // Verify that getAttribute really returns attributes and not properties\n // (excepting IE8 booleans)\n\n support.attributes = assert(function (el) {\n el.className = \"i\";\n return !el.getAttribute(\"className\");\n });\n /* getElement(s)By*\n ---------------------------------------------------------------------- */\n // Check if getElementsByTagName(\"*\") returns only elements\n\n support.getElementsByTagName = assert(function (el) {\n el.appendChild(document.createComment(\"\"));\n return !el.getElementsByTagName(\"*\").length;\n }); // Support: IE<9\n\n support.getElementsByClassName = rnative.test(document.getElementsByClassName); // Support: IE<10\n // Check if getElementById returns elements by name\n // The broken getElementById methods don't pick up programmatically-set names,\n // so use a roundabout getElementsByName test\n\n support.getById = assert(function (el) {\n docElem.appendChild(el).id = expando;\n return !document.getElementsByName || !document.getElementsByName(expando).length;\n }); // ID filter and find\n\n if (support.getById) {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n return elem.getAttribute(\"id\") === attrId;\n };\n };\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var elem = context.getElementById(id);\n return elem ? [elem] : [];\n }\n };\n } else {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n var node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n return node && node.value === attrId;\n };\n }; // Support: IE 6 - 7 only\n // getElementById is not reliable as a find shortcut\n\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var node,\n i,\n elems,\n elem = context.getElementById(id);\n\n if (elem) {\n // Verify the id attribute\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n } // Fall back on getElementsByName\n\n\n elems = context.getElementsByName(id);\n i = 0;\n\n while (elem = elems[i++]) {\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n }\n }\n }\n\n return [];\n }\n };\n } // Tag\n\n\n Expr.find[\"TAG\"] = support.getElementsByTagName ? function (tag, context) {\n if (typeof context.getElementsByTagName !== \"undefined\") {\n return context.getElementsByTagName(tag); // DocumentFragment nodes don't have gEBTN\n } else if (support.qsa) {\n return context.querySelectorAll(tag);\n }\n } : function (tag, context) {\n var elem,\n tmp = [],\n i = 0,\n // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n results = context.getElementsByTagName(tag); // Filter out possible comments\n\n if (tag === \"*\") {\n while (elem = results[i++]) {\n if (elem.nodeType === 1) {\n tmp.push(elem);\n }\n }\n\n return tmp;\n }\n\n return results;\n }; // Class\n\n Expr.find[\"CLASS\"] = support.getElementsByClassName && function (className, context) {\n if (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n /* QSA/matchesSelector\n ---------------------------------------------------------------------- */\n // QSA and matchesSelector support\n // matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\n\n rbuggyMatches = []; // qSa(:focus) reports false when true (Chrome 21)\n // We allow this because of a bug in IE8/9 that throws an error\n // whenever `document.activeElement` is accessed on an iframe\n // So, we allow :focus to pass through QSA all the time to avoid the IE error\n // See https://bugs.jquery.com/ticket/13378\n\n rbuggyQSA = [];\n\n if (support.qsa = rnative.test(document.querySelectorAll)) {\n // Build QSA regex\n // Regex strategy adopted from Diego Perini\n assert(function (el) {\n var input; // Select is set to empty string on purpose\n // This is to test IE's treatment of not explicitly\n // setting a boolean content attribute,\n // since its presence should be enough\n // https://bugs.jquery.com/ticket/12359\n\n docElem.appendChild(el).innerHTML = \"\" + \"\"; // Support: IE8, Opera 11-12.16\n // Nothing should be selected when empty strings follow ^= or $= or *=\n // The test attribute must be unknown in Opera but \"safe\" for WinRT\n // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\n if (el.querySelectorAll(\"[msallowcapture^='']\").length) {\n rbuggyQSA.push(\"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Support: IE8\n // Boolean attributes and \"value\" are not treated correctly\n\n\n if (!el.querySelectorAll(\"[selected]\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\n\n if (!el.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\n rbuggyQSA.push(\"~=\");\n } // Support: IE 11+, Edge 15 - 18+\n // IE 11/Edge don't find elements on a `[name='']` query in some cases.\n // Adding a temporary attribute to the document before the selection works\n // around the issue.\n // Interestingly, IE 10 & older don't seem to have the issue.\n\n\n input = document.createElement(\"input\");\n input.setAttribute(\"name\", \"\");\n el.appendChild(input);\n\n if (!el.querySelectorAll(\"[name='']\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Webkit/Opera - :checked should return selected option elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n // IE8 throws error here and will not see later tests\n\n\n if (!el.querySelectorAll(\":checked\").length) {\n rbuggyQSA.push(\":checked\");\n } // Support: Safari 8+, iOS 8+\n // https://bugs.webkit.org/show_bug.cgi?id=136851\n // In-page `selector#id sibling-combinator selector` fails\n\n\n if (!el.querySelectorAll(\"a#\" + expando + \"+*\").length) {\n rbuggyQSA.push(\".#.+[+~]\");\n } // Support: Firefox <=3.6 - 5 only\n // Old Firefox doesn't throw on a badly-escaped identifier.\n\n\n el.querySelectorAll(\"\\\\\\f\");\n rbuggyQSA.push(\"[\\\\r\\\\n\\\\f]\");\n });\n assert(function (el) {\n el.innerHTML = \"\" + \"\"; // Support: Windows 8 Native Apps\n // The type and name attributes are restricted during .innerHTML assignment\n\n var input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"hidden\");\n el.appendChild(input).setAttribute(\"name\", \"D\"); // Support: IE8\n // Enforce case-sensitivity of name attribute\n\n if (el.querySelectorAll(\"[name=d]\").length) {\n rbuggyQSA.push(\"name\" + whitespace + \"*[*^$|!~]?=\");\n } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n // IE8 throws error here and will not see later tests\n\n\n if (el.querySelectorAll(\":enabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: IE9-11+\n // IE's :disabled selector does not pick up the children of disabled fieldsets\n\n\n docElem.appendChild(el).disabled = true;\n\n if (el.querySelectorAll(\":disabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: Opera 10 - 11 only\n // Opera 10-11 does not throw on post-comma invalid pseudos\n\n\n el.querySelectorAll(\"*,:x\");\n rbuggyQSA.push(\",.*:\");\n });\n }\n\n if (support.matchesSelector = rnative.test(matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector)) {\n assert(function (el) {\n // Check to see if it's possible to do matchesSelector\n // on a disconnected node (IE 9)\n support.disconnectedMatch = matches.call(el, \"*\"); // This should fail with an exception\n // Gecko does not error, returns false instead\n\n matches.call(el, \"[s!='']:x\");\n rbuggyMatches.push(\"!=\", pseudos);\n });\n }\n\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join(\"|\"));\n /* Contains\n ---------------------------------------------------------------------- */\n\n hasCompare = rnative.test(docElem.compareDocumentPosition); // Element contains another\n // Purposefully self-exclusive\n // As in, an element does not contain itself\n\n contains = hasCompare || rnative.test(docElem.contains) ? function (a, b) {\n var adown = a.nodeType === 9 ? a.documentElement : a,\n bup = b && b.parentNode;\n return a === bup || !!(bup && bup.nodeType === 1 && (adown.contains ? adown.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16));\n } : function (a, b) {\n if (b) {\n while (b = b.parentNode) {\n if (b === a) {\n return true;\n }\n }\n }\n\n return false;\n };\n /* Sorting\n ---------------------------------------------------------------------- */\n // Document order sorting\n\n sortOrder = hasCompare ? function (a, b) {\n // Flag for duplicate removal\n if (a === b) {\n hasDuplicate = true;\n return 0;\n } // Sort on method existence if only one input has compareDocumentPosition\n\n\n var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\n if (compare) {\n return compare;\n } // Calculate position if both inputs belong to the same document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n\n compare = (a.ownerDocument || a) == (b.ownerDocument || b) ? a.compareDocumentPosition(b) : // Otherwise we know they are disconnected\n 1; // Disconnected nodes\n\n if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) {\n // Choose the first element that is related to our preferred document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (a == document || a.ownerDocument == preferredDoc && contains(preferredDoc, a)) {\n return -1;\n } // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n\n if (b == document || b.ownerDocument == preferredDoc && contains(preferredDoc, b)) {\n return 1;\n } // Maintain original order\n\n\n return sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0;\n }\n\n return compare & 4 ? -1 : 1;\n } : function (a, b) {\n // Exit early if the nodes are identical\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n\n var cur,\n i = 0,\n aup = a.parentNode,\n bup = b.parentNode,\n ap = [a],\n bp = [b]; // Parentless nodes are either documents or disconnected\n\n if (!aup || !bup) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n\n /* eslint-disable eqeqeq */\n return a == document ? -1 : b == document ? 1 :\n /* eslint-enable eqeqeq */\n aup ? -1 : bup ? 1 : sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0; // If the nodes are siblings, we can do a quick check\n } else if (aup === bup) {\n return siblingCheck(a, b);\n } // Otherwise we need full lists of their ancestors for comparison\n\n\n cur = a;\n\n while (cur = cur.parentNode) {\n ap.unshift(cur);\n }\n\n cur = b;\n\n while (cur = cur.parentNode) {\n bp.unshift(cur);\n } // Walk down the tree looking for a discrepancy\n\n\n while (ap[i] === bp[i]) {\n i++;\n }\n\n return i ? // Do a sibling check if the nodes have a common ancestor\n siblingCheck(ap[i], bp[i]) : // Otherwise nodes in our document sort first\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n\n /* eslint-disable eqeqeq */\n ap[i] == preferredDoc ? -1 : bp[i] == preferredDoc ? 1 :\n /* eslint-enable eqeqeq */\n 0;\n };\n return document;\n };\n\n Sizzle.matches = function (expr, elements) {\n return Sizzle(expr, null, null, elements);\n };\n\n Sizzle.matchesSelector = function (elem, expr) {\n setDocument(elem);\n\n if (support.matchesSelector && documentIsHTML && !nonnativeSelectorCache[expr + \" \"] && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n try {\n var ret = matches.call(elem, expr); // IE 9's matchesSelector returns false on disconnected nodes\n\n if (ret || support.disconnectedMatch || // As well, disconnected nodes are said to be in a document\n // fragment in IE 9\n elem.document && elem.document.nodeType !== 11) {\n return ret;\n }\n } catch (e) {\n nonnativeSelectorCache(expr, true);\n }\n }\n\n return Sizzle(expr, document, null, [elem]).length > 0;\n };\n\n Sizzle.contains = function (context, elem) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((context.ownerDocument || context) != document) {\n setDocument(context);\n }\n\n return contains(context, elem);\n };\n\n Sizzle.attr = function (elem, name) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((elem.ownerDocument || elem) != document) {\n setDocument(elem);\n }\n\n var fn = Expr.attrHandle[name.toLowerCase()],\n // Don't get fooled by Object.prototype properties (jQuery #13807)\n val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined;\n return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n };\n\n Sizzle.escape = function (sel) {\n return (sel + \"\").replace(rcssescape, fcssescape);\n };\n\n Sizzle.error = function (msg) {\n throw new Error(\"Syntax error, unrecognized expression: \" + msg);\n };\n /**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\n\n\n Sizzle.uniqueSort = function (results) {\n var elem,\n duplicates = [],\n j = 0,\n i = 0; // Unless we *know* we can detect duplicates, assume their presence\n\n hasDuplicate = !support.detectDuplicates;\n sortInput = !support.sortStable && results.slice(0);\n results.sort(sortOrder);\n\n if (hasDuplicate) {\n while (elem = results[i++]) {\n if (elem === results[i]) {\n j = duplicates.push(i);\n }\n }\n\n while (j--) {\n results.splice(duplicates[j], 1);\n }\n } // Clear input after sorting to release objects\n // See https://github.com/jquery/sizzle/pull/225\n\n\n sortInput = null;\n return results;\n };\n /**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\n\n\n getText = Sizzle.getText = function (elem) {\n var node,\n ret = \"\",\n i = 0,\n nodeType = elem.nodeType;\n\n if (!nodeType) {\n // If no nodeType, this is expected to be an array\n while (node = elem[i++]) {\n // Do not traverse comment nodes\n ret += getText(node);\n }\n } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) {\n // Use textContent for elements\n // innerText usage removed for consistency of new lines (jQuery #11153)\n if (typeof elem.textContent === \"string\") {\n return elem.textContent;\n } else {\n // Traverse its children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n ret += getText(elem);\n }\n }\n } else if (nodeType === 3 || nodeType === 4) {\n return elem.nodeValue;\n } // Do not include comment or processing instruction nodes\n\n\n return ret;\n };\n\n Expr = Sizzle.selectors = {\n // Can be adjusted by the user\n cacheLength: 50,\n createPseudo: markFunction,\n match: matchExpr,\n attrHandle: {},\n find: {},\n relative: {\n \">\": {\n dir: \"parentNode\",\n first: true\n },\n \" \": {\n dir: \"parentNode\"\n },\n \"+\": {\n dir: \"previousSibling\",\n first: true\n },\n \"~\": {\n dir: \"previousSibling\"\n }\n },\n preFilter: {\n \"ATTR\": function ATTR(match) {\n match[1] = match[1].replace(runescape, funescape); // Move the given value to match[3] whether quoted or unquoted\n\n match[3] = (match[3] || match[4] || match[5] || \"\").replace(runescape, funescape);\n\n if (match[2] === \"~=\") {\n match[3] = \" \" + match[3] + \" \";\n }\n\n return match.slice(0, 4);\n },\n \"CHILD\": function CHILD(match) {\n /* matches from matchExpr[\"CHILD\"]\n \t1 type (only|nth|...)\n \t2 what (child|of-type)\n \t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n \t4 xn-component of xn+y argument ([+-]?\\d*n|)\n \t5 sign of xn-component\n \t6 x of xn-component\n \t7 sign of y-component\n \t8 y of y-component\n */\n match[1] = match[1].toLowerCase();\n\n if (match[1].slice(0, 3) === \"nth\") {\n // nth-* requires argument\n if (!match[3]) {\n Sizzle.error(match[0]);\n } // numeric x and y parameters for Expr.filter.CHILD\n // remember that false/true cast respectively to 0/1\n\n\n match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === \"even\" || match[3] === \"odd\"));\n match[5] = +(match[7] + match[8] || match[3] === \"odd\"); // other types prohibit arguments\n } else if (match[3]) {\n Sizzle.error(match[0]);\n }\n\n return match;\n },\n \"PSEUDO\": function PSEUDO(match) {\n var excess,\n unquoted = !match[6] && match[2];\n\n if (matchExpr[\"CHILD\"].test(match[0])) {\n return null;\n } // Accept quoted arguments as-is\n\n\n if (match[3]) {\n match[2] = match[4] || match[5] || \"\"; // Strip excess characters from unquoted arguments\n } else if (unquoted && rpseudo.test(unquoted) && ( // Get excess from tokenize (recursively)\n excess = tokenize(unquoted, true)) && ( // advance to the next closing parenthesis\n excess = unquoted.indexOf(\")\", unquoted.length - excess) - unquoted.length)) {\n // excess is a negative index\n match[0] = match[0].slice(0, excess);\n match[2] = unquoted.slice(0, excess);\n } // Return only captures needed by the pseudo filter method (type and argument)\n\n\n return match.slice(0, 3);\n }\n },\n filter: {\n \"TAG\": function TAG(nodeNameSelector) {\n var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\n return nodeNameSelector === \"*\" ? function () {\n return true;\n } : function (elem) {\n return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n };\n },\n \"CLASS\": function CLASS(className) {\n var pattern = classCache[className + \" \"];\n return pattern || (pattern = new RegExp(\"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\")) && classCache(className, function (elem) {\n return pattern.test(typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\");\n });\n },\n \"ATTR\": function ATTR(name, operator, check) {\n return function (elem) {\n var result = Sizzle.attr(elem, name);\n\n if (result == null) {\n return operator === \"!=\";\n }\n\n if (!operator) {\n return true;\n }\n\n result += \"\";\n /* eslint-disable max-len */\n\n return operator === \"=\" ? result === check : operator === \"!=\" ? result !== check : operator === \"^=\" ? check && result.indexOf(check) === 0 : operator === \"*=\" ? check && result.indexOf(check) > -1 : operator === \"$=\" ? check && result.slice(-check.length) === check : operator === \"~=\" ? (\" \" + result.replace(rwhitespace, \" \") + \" \").indexOf(check) > -1 : operator === \"|=\" ? result === check || result.slice(0, check.length + 1) === check + \"-\" : false;\n /* eslint-enable max-len */\n };\n },\n \"CHILD\": function CHILD(type, what, _argument, first, last) {\n var simple = type.slice(0, 3) !== \"nth\",\n forward = type.slice(-4) !== \"last\",\n ofType = what === \"of-type\";\n return first === 1 && last === 0 ? // Shortcut for :nth-*(n)\n function (elem) {\n return !!elem.parentNode;\n } : function (elem, _context, xml) {\n var cache,\n uniqueCache,\n outerCache,\n node,\n nodeIndex,\n start,\n dir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n parent = elem.parentNode,\n name = ofType && elem.nodeName.toLowerCase(),\n useCache = !xml && !ofType,\n diff = false;\n\n if (parent) {\n // :(first|last|only)-(child|of-type)\n if (simple) {\n while (dir) {\n node = elem;\n\n while (node = node[dir]) {\n if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) {\n return false;\n }\n } // Reverse direction for :only-* (if we haven't yet done so)\n\n\n start = dir = type === \"only\" && !start && \"nextSibling\";\n }\n\n return true;\n }\n\n start = [forward ? parent.firstChild : parent.lastChild]; // non-xml :nth-child(...) stores cache data on `parent`\n\n if (forward && useCache) {\n // Seek `elem` from a previously-cached index\n // ...in a gzip-friendly way\n node = parent;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex && cache[2];\n node = nodeIndex && parent.childNodes[nodeIndex];\n\n while (node = ++nodeIndex && node && node[dir] || ( // Fallback to seeking `elem` from the start\n diff = nodeIndex = 0) || start.pop()) {\n // When found, cache indexes on `parent` and break\n if (node.nodeType === 1 && ++diff && node === elem) {\n uniqueCache[type] = [dirruns, nodeIndex, diff];\n break;\n }\n }\n } else {\n // Use previously-cached element index if available\n if (useCache) {\n // ...in a gzip-friendly way\n node = elem;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex;\n } // xml :nth-child(...)\n // or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\n\n if (diff === false) {\n // Use the same loop as above to seek `elem` from the start\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) {\n // Cache the index of each encountered element\n if (useCache) {\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n uniqueCache[type] = [dirruns, diff];\n }\n\n if (node === elem) {\n break;\n }\n }\n }\n }\n } // Incorporate the offset, then check against cycle size\n\n\n diff -= last;\n return diff === first || diff % first === 0 && diff / first >= 0;\n }\n };\n },\n \"PSEUDO\": function PSEUDO(pseudo, argument) {\n // pseudo-class names are case-insensitive\n // http://www.w3.org/TR/selectors/#pseudo-classes\n // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n // Remember that setFilters inherits from pseudos\n var args,\n fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle.error(\"unsupported pseudo: \" + pseudo); // The user may use createPseudo to indicate that\n // arguments are needed to create the filter function\n // just as Sizzle does\n\n if (fn[expando]) {\n return fn(argument);\n } // But maintain support for old signatures\n\n\n if (fn.length > 1) {\n args = [pseudo, pseudo, \"\", argument];\n return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) {\n var idx,\n matched = fn(seed, argument),\n i = matched.length;\n\n while (i--) {\n idx = indexOf(seed, matched[i]);\n seed[idx] = !(matches[idx] = matched[i]);\n }\n }) : function (elem) {\n return fn(elem, 0, args);\n };\n }\n\n return fn;\n }\n },\n pseudos: {\n // Potentially complex pseudos\n \"not\": markFunction(function (selector) {\n // Trim the selector passed to compile\n // to avoid treating leading and trailing\n // spaces as combinators\n var input = [],\n results = [],\n matcher = compile(selector.replace(rtrim, \"$1\"));\n return matcher[expando] ? markFunction(function (seed, matches, _context, xml) {\n var elem,\n unmatched = matcher(seed, null, xml, []),\n i = seed.length; // Match elements unmatched by `matcher`\n\n while (i--) {\n if (elem = unmatched[i]) {\n seed[i] = !(matches[i] = elem);\n }\n }\n }) : function (elem, _context, xml) {\n input[0] = elem;\n matcher(input, null, xml, results); // Don't keep the element (issue #299)\n\n input[0] = null;\n return !results.pop();\n };\n }),\n \"has\": markFunction(function (selector) {\n return function (elem) {\n return Sizzle(selector, elem).length > 0;\n };\n }),\n \"contains\": markFunction(function (text) {\n text = text.replace(runescape, funescape);\n return function (elem) {\n return (elem.textContent || getText(elem)).indexOf(text) > -1;\n };\n }),\n // \"Whether an element is represented by a :lang() selector\n // is based solely on the element's language value\n // being equal to the identifier C,\n // or beginning with the identifier C immediately followed by \"-\".\n // The matching of C against the element's language value is performed case-insensitively.\n // The identifier C does not have to be a valid language name.\"\n // http://www.w3.org/TR/selectors/#lang-pseudo\n \"lang\": markFunction(function (lang) {\n // lang value must be a valid identifier\n if (!ridentifier.test(lang || \"\")) {\n Sizzle.error(\"unsupported lang: \" + lang);\n }\n\n lang = lang.replace(runescape, funescape).toLowerCase();\n return function (elem) {\n var elemLang;\n\n do {\n if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) {\n elemLang = elemLang.toLowerCase();\n return elemLang === lang || elemLang.indexOf(lang + \"-\") === 0;\n }\n } while ((elem = elem.parentNode) && elem.nodeType === 1);\n\n return false;\n };\n }),\n // Miscellaneous\n \"target\": function target(elem) {\n var hash = window.location && window.location.hash;\n return hash && hash.slice(1) === elem.id;\n },\n \"root\": function root(elem) {\n return elem === docElem;\n },\n \"focus\": function focus(elem) {\n return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n },\n // Boolean properties\n \"enabled\": createDisabledPseudo(false),\n \"disabled\": createDisabledPseudo(true),\n \"checked\": function checked(elem) {\n // In CSS3, :checked should return both checked and selected elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n var nodeName = elem.nodeName.toLowerCase();\n return nodeName === \"input\" && !!elem.checked || nodeName === \"option\" && !!elem.selected;\n },\n \"selected\": function selected(elem) {\n // Accessing this property makes selected-by-default\n // options in Safari work properly\n if (elem.parentNode) {\n // eslint-disable-next-line no-unused-expressions\n elem.parentNode.selectedIndex;\n }\n\n return elem.selected === true;\n },\n // Contents\n \"empty\": function empty(elem) {\n // http://www.w3.org/TR/selectors/#empty-pseudo\n // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n // but not by others (comment: 8; processing instruction: 7; etc.)\n // nodeType < 6 works because attributes (2) do not appear as children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n if (elem.nodeType < 6) {\n return false;\n }\n }\n\n return true;\n },\n \"parent\": function parent(elem) {\n return !Expr.pseudos[\"empty\"](elem);\n },\n // Element/input types\n \"header\": function header(elem) {\n return rheader.test(elem.nodeName);\n },\n \"input\": function input(elem) {\n return rinputs.test(elem.nodeName);\n },\n \"button\": function button(elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === \"button\" || name === \"button\";\n },\n \"text\": function text(elem) {\n var attr;\n return elem.nodeName.toLowerCase() === \"input\" && elem.type === \"text\" && ( // Support: IE<8\n // New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\");\n },\n // Position-in-collection\n \"first\": createPositionalPseudo(function () {\n return [0];\n }),\n \"last\": createPositionalPseudo(function (_matchIndexes, length) {\n return [length - 1];\n }),\n \"eq\": createPositionalPseudo(function (_matchIndexes, length, argument) {\n return [argument < 0 ? argument + length : argument];\n }),\n \"even\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 0;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"odd\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 1;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"lt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument > length ? length : argument;\n\n for (; --i >= 0;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"gt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n\n for (; ++i < length;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n })\n }\n };\n Expr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"]; // Add button/input type pseudos\n\n for (i in {\n radio: true,\n checkbox: true,\n file: true,\n password: true,\n image: true\n }) {\n Expr.pseudos[i] = createInputPseudo(i);\n }\n\n for (i in {\n submit: true,\n reset: true\n }) {\n Expr.pseudos[i] = createButtonPseudo(i);\n } // Easy API for creating new setFilters\n\n\n function setFilters() {}\n\n setFilters.prototype = Expr.filters = Expr.pseudos;\n Expr.setFilters = new setFilters();\n\n tokenize = Sizzle.tokenize = function (selector, parseOnly) {\n var matched,\n match,\n tokens,\n type,\n soFar,\n groups,\n preFilters,\n cached = tokenCache[selector + \" \"];\n\n if (cached) {\n return parseOnly ? 0 : cached.slice(0);\n }\n\n soFar = selector;\n groups = [];\n preFilters = Expr.preFilter;\n\n while (soFar) {\n // Comma and first run\n if (!matched || (match = rcomma.exec(soFar))) {\n if (match) {\n // Don't consume trailing commas as valid\n soFar = soFar.slice(match[0].length) || soFar;\n }\n\n groups.push(tokens = []);\n }\n\n matched = false; // Combinators\n\n if (match = rcombinators.exec(soFar)) {\n matched = match.shift();\n tokens.push({\n value: matched,\n // Cast descendant combinators to space\n type: match[0].replace(rtrim, \" \")\n });\n soFar = soFar.slice(matched.length);\n } // Filters\n\n\n for (type in Expr.filter) {\n if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: type,\n matches: match\n });\n soFar = soFar.slice(matched.length);\n }\n }\n\n if (!matched) {\n break;\n }\n } // Return the length of the invalid excess\n // if we're just parsing\n // Otherwise, throw an error or return tokens\n\n\n return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) : // Cache the tokens\n tokenCache(selector, groups).slice(0);\n };\n\n function toSelector(tokens) {\n var i = 0,\n len = tokens.length,\n selector = \"\";\n\n for (; i < len; i++) {\n selector += tokens[i].value;\n }\n\n return selector;\n }\n\n function addCombinator(matcher, combinator, base) {\n var dir = combinator.dir,\n skip = combinator.next,\n key = skip || dir,\n checkNonElements = base && key === \"parentNode\",\n doneName = done++;\n return combinator.first ? // Check against closest ancestor/preceding element\n function (elem, context, xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n return matcher(elem, context, xml);\n }\n }\n\n return false;\n } : // Check against all ancestor/preceding elements\n function (elem, context, xml) {\n var oldCache,\n uniqueCache,\n outerCache,\n newCache = [dirruns, doneName]; // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\n if (xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n if (matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n } else {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n outerCache = elem[expando] || (elem[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[elem.uniqueID] || (outerCache[elem.uniqueID] = {});\n\n if (skip && skip === elem.nodeName.toLowerCase()) {\n elem = elem[dir] || elem;\n } else if ((oldCache = uniqueCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) {\n // Assign to newCache so results back-propagate to previous elements\n return newCache[2] = oldCache[2];\n } else {\n // Reuse newcache so results back-propagate to previous elements\n uniqueCache[key] = newCache; // A match means we're done; a fail means we have to keep checking\n\n if (newCache[2] = matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n }\n }\n\n return false;\n };\n }\n\n function elementMatcher(matchers) {\n return matchers.length > 1 ? function (elem, context, xml) {\n var i = matchers.length;\n\n while (i--) {\n if (!matchers[i](elem, context, xml)) {\n return false;\n }\n }\n\n return true;\n } : matchers[0];\n }\n\n function multipleContexts(selector, contexts, results) {\n var i = 0,\n len = contexts.length;\n\n for (; i < len; i++) {\n Sizzle(selector, contexts[i], results);\n }\n\n return results;\n }\n\n function condense(unmatched, map, filter, context, xml) {\n var elem,\n newUnmatched = [],\n i = 0,\n len = unmatched.length,\n mapped = map != null;\n\n for (; i < len; i++) {\n if (elem = unmatched[i]) {\n if (!filter || filter(elem, context, xml)) {\n newUnmatched.push(elem);\n\n if (mapped) {\n map.push(i);\n }\n }\n }\n }\n\n return newUnmatched;\n }\n\n function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n if (postFilter && !postFilter[expando]) {\n postFilter = setMatcher(postFilter);\n }\n\n if (postFinder && !postFinder[expando]) {\n postFinder = setMatcher(postFinder, postSelector);\n }\n\n return markFunction(function (seed, results, context, xml) {\n var temp,\n i,\n elem,\n preMap = [],\n postMap = [],\n preexisting = results.length,\n // Get initial elements from seed or context\n elems = seed || multipleContexts(selector || \"*\", context.nodeType ? [context] : context, []),\n // Prefilter to get matcher input, preserving a map for seed-results synchronization\n matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems,\n matcherOut = matcher ? // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n postFinder || (seed ? preFilter : preexisting || postFilter) ? // ...intermediate processing is necessary\n [] : // ...otherwise use results directly\n results : matcherIn; // Find primary matches\n\n if (matcher) {\n matcher(matcherIn, matcherOut, context, xml);\n } // Apply postFilter\n\n\n if (postFilter) {\n temp = condense(matcherOut, postMap);\n postFilter(temp, [], context, xml); // Un-match failing elements by moving them back to matcherIn\n\n i = temp.length;\n\n while (i--) {\n if (elem = temp[i]) {\n matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n }\n }\n }\n\n if (seed) {\n if (postFinder || preFilter) {\n if (postFinder) {\n // Get the final matcherOut by condensing this intermediate into postFinder contexts\n temp = [];\n i = matcherOut.length;\n\n while (i--) {\n if (elem = matcherOut[i]) {\n // Restore matcherIn since elem is not yet a final match\n temp.push(matcherIn[i] = elem);\n }\n }\n\n postFinder(null, matcherOut = [], temp, xml);\n } // Move matched elements from seed to results to keep them synchronized\n\n\n i = matcherOut.length;\n\n while (i--) {\n if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf(seed, elem) : preMap[i]) > -1) {\n seed[temp] = !(results[temp] = elem);\n }\n }\n } // Add elements to results, through postFinder if defined\n\n } else {\n matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\n\n if (postFinder) {\n postFinder(null, results, matcherOut, xml);\n } else {\n push.apply(results, matcherOut);\n }\n }\n });\n }\n\n function matcherFromTokens(tokens) {\n var checkContext,\n matcher,\n j,\n len = tokens.length,\n leadingRelative = Expr.relative[tokens[0].type],\n implicitRelative = leadingRelative || Expr.relative[\" \"],\n i = leadingRelative ? 1 : 0,\n // The foundational matcher ensures that elements are reachable from top-level context(s)\n matchContext = addCombinator(function (elem) {\n return elem === checkContext;\n }, implicitRelative, true),\n matchAnyContext = addCombinator(function (elem) {\n return indexOf(checkContext, elem) > -1;\n }, implicitRelative, true),\n matchers = [function (elem, context, xml) {\n var ret = !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml)); // Avoid hanging onto element (issue #299)\n\n checkContext = null;\n return ret;\n }];\n\n for (; i < len; i++) {\n if (matcher = Expr.relative[tokens[i].type]) {\n matchers = [addCombinator(elementMatcher(matchers), matcher)];\n } else {\n matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches); // Return special upon seeing a positional matcher\n\n if (matcher[expando]) {\n // Find the next relative operator (if any) for proper handling\n j = ++i;\n\n for (; j < len; j++) {\n if (Expr.relative[tokens[j].type]) {\n break;\n }\n }\n\n return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector( // If the preceding token was a descendant combinator, insert an implicit any-element `*`\n tokens.slice(0, i - 1).concat({\n value: tokens[i - 2].type === \" \" ? \"*\" : \"\"\n })).replace(rtrim, \"$1\"), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens));\n }\n\n matchers.push(matcher);\n }\n }\n\n return elementMatcher(matchers);\n }\n\n function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n var bySet = setMatchers.length > 0,\n byElement = elementMatchers.length > 0,\n superMatcher = function superMatcher(seed, context, xml, results, outermost) {\n var elem,\n j,\n matcher,\n matchedCount = 0,\n i = \"0\",\n unmatched = seed && [],\n setMatched = [],\n contextBackup = outermostContext,\n // We must always have either seed elements or outermost context\n elems = seed || byElement && Expr.find[\"TAG\"](\"*\", outermost),\n // Use integer dirruns iff this is the outermost matcher\n dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1,\n len = elems.length;\n\n if (outermost) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n outermostContext = context == document || context || outermost;\n } // Add elements passing elementMatchers directly to results\n // Support: IE<9, Safari\n // Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\n\n for (; i !== len && (elem = elems[i]) != null; i++) {\n if (byElement && elem) {\n j = 0; // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (!context && elem.ownerDocument != document) {\n setDocument(elem);\n xml = !documentIsHTML;\n }\n\n while (matcher = elementMatchers[j++]) {\n if (matcher(elem, context || document, xml)) {\n results.push(elem);\n break;\n }\n }\n\n if (outermost) {\n dirruns = dirrunsUnique;\n }\n } // Track unmatched elements for set filters\n\n\n if (bySet) {\n // They will have gone through all possible matchers\n if (elem = !matcher && elem) {\n matchedCount--;\n } // Lengthen the array for every element, matched or not\n\n\n if (seed) {\n unmatched.push(elem);\n }\n }\n } // `i` is now the count of elements visited above, and adding it to `matchedCount`\n // makes the latter nonnegative.\n\n\n matchedCount += i; // Apply set filters to unmatched elements\n // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n // equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n // no element matchers and no seed.\n // Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n // case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n // numerically zero.\n\n if (bySet && i !== matchedCount) {\n j = 0;\n\n while (matcher = setMatchers[j++]) {\n matcher(unmatched, setMatched, context, xml);\n }\n\n if (seed) {\n // Reintegrate element matches to eliminate the need for sorting\n if (matchedCount > 0) {\n while (i--) {\n if (!(unmatched[i] || setMatched[i])) {\n setMatched[i] = pop.call(results);\n }\n }\n } // Discard index placeholder values to get only actual matches\n\n\n setMatched = condense(setMatched);\n } // Add matches to results\n\n\n push.apply(results, setMatched); // Seedless set matches succeeding multiple successful matchers stipulate sorting\n\n if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\n Sizzle.uniqueSort(results);\n }\n } // Override manipulation of globals by nested matchers\n\n\n if (outermost) {\n dirruns = dirrunsUnique;\n outermostContext = contextBackup;\n }\n\n return unmatched;\n };\n\n return bySet ? markFunction(superMatcher) : superMatcher;\n }\n\n compile = Sizzle.compile = function (selector, match\n /* Internal Use Only */\n ) {\n var i,\n setMatchers = [],\n elementMatchers = [],\n cached = compilerCache[selector + \" \"];\n\n if (!cached) {\n // Generate a function of recursive functions that can be used to check each element\n if (!match) {\n match = tokenize(selector);\n }\n\n i = match.length;\n\n while (i--) {\n cached = matcherFromTokens(match[i]);\n\n if (cached[expando]) {\n setMatchers.push(cached);\n } else {\n elementMatchers.push(cached);\n }\n } // Cache the compiled function\n\n\n cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers)); // Save selector and tokenization\n\n cached.selector = selector;\n }\n\n return cached;\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 */\n\n\n select = Sizzle.select = function (selector, context, results, seed) {\n var i,\n tokens,\n token,\n type,\n find,\n compiled = typeof selector === \"function\" && selector,\n match = !seed && tokenize(selector = compiled.selector || selector);\n results = results || []; // Try to minimize operations if there is only one selector in the list and no seed\n // (the latter of which guarantees us context)\n\n if (match.length === 1) {\n // Reduce context if the leading compound selector is an ID\n tokens = match[0] = match[0].slice(0);\n\n if (tokens.length > 2 && (token = tokens[0]).type === \"ID\" && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\n context = (Expr.find[\"ID\"](token.matches[0].replace(runescape, funescape), context) || [])[0];\n\n if (!context) {\n return results; // Precompiled matchers will still verify ancestry, so step up a level\n } else if (compiled) {\n context = context.parentNode;\n }\n\n selector = selector.slice(tokens.shift().value.length);\n } // Fetch a seed set for right-to-left matching\n\n\n i = matchExpr[\"needsContext\"].test(selector) ? 0 : tokens.length;\n\n while (i--) {\n token = tokens[i]; // Abort if we hit a combinator\n\n if (Expr.relative[type = token.type]) {\n break;\n }\n\n if (find = Expr.find[type]) {\n // Search, expanding context for leading sibling combinators\n if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) {\n // If seed is empty or no tokens remain, we can return early\n tokens.splice(i, 1);\n selector = seed.length && toSelector(tokens);\n\n if (!selector) {\n push.apply(results, seed);\n return results;\n }\n\n break;\n }\n }\n }\n } // Compile and execute a filtering function if one is not provided\n // Provide `match` to avoid retokenization if we modified the selector above\n\n\n (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context);\n return results;\n }; // One-time assignments\n // Sort stability\n\n\n support.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando; // Support: Chrome 14-35+\n // Always assume duplicates if they aren't passed to the comparison function\n\n support.detectDuplicates = !!hasDuplicate; // Initialize against the default document\n\n setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n // Detached nodes confoundingly follow *each other*\n\n support.sortDetached = assert(function (el) {\n // Should return 1, but returns 4 (following)\n return el.compareDocumentPosition(document.createElement(\"fieldset\")) & 1;\n }); // Support: IE<8\n // Prevent attribute/property \"interpolation\"\n // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\n\n if (!assert(function (el) {\n el.innerHTML = \"\";\n return el.firstChild.getAttribute(\"href\") === \"#\";\n })) {\n addHandle(\"type|href|height|width\", function (elem, name, isXML) {\n if (!isXML) {\n return elem.getAttribute(name, name.toLowerCase() === \"type\" ? 1 : 2);\n }\n });\n } // Support: IE<9\n // Use defaultValue in place of getAttribute(\"value\")\n\n\n if (!support.attributes || !assert(function (el) {\n el.innerHTML = \"\";\n el.firstChild.setAttribute(\"value\", \"\");\n return el.firstChild.getAttribute(\"value\") === \"\";\n })) {\n addHandle(\"value\", function (elem, _name, isXML) {\n if (!isXML && elem.nodeName.toLowerCase() === \"input\") {\n return elem.defaultValue;\n }\n });\n } // Support: IE<9\n // Use getAttributeNode to fetch booleans when getAttribute lies\n\n\n if (!assert(function (el) {\n return el.getAttribute(\"disabled\") == null;\n })) {\n addHandle(booleans, function (elem, name, isXML) {\n var val;\n\n if (!isXML) {\n return elem[name] === true ? name.toLowerCase() : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n }\n });\n }\n\n return Sizzle;\n }(window);\n\n jQuery.find = Sizzle;\n jQuery.expr = Sizzle.selectors; // Deprecated\n\n jQuery.expr[\":\"] = jQuery.expr.pseudos;\n jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\n jQuery.text = Sizzle.getText;\n jQuery.isXMLDoc = Sizzle.isXML;\n jQuery.contains = Sizzle.contains;\n jQuery.escapeSelector = Sizzle.escape;\n\n var dir = function dir(elem, _dir, until) {\n var matched = [],\n truncate = until !== undefined;\n\n while ((elem = elem[_dir]) && elem.nodeType !== 9) {\n if (elem.nodeType === 1) {\n if (truncate && jQuery(elem).is(until)) {\n break;\n }\n\n matched.push(elem);\n }\n }\n\n return matched;\n };\n\n var _siblings = function siblings(n, elem) {\n var matched = [];\n\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== elem) {\n matched.push(n);\n }\n }\n\n return matched;\n };\n\n var rneedsContext = jQuery.expr.match.needsContext;\n\n function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n }\n\n ;\n var rsingleTag = /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i; // Implement the identical functionality for filter and not\n\n function winnow(elements, qualifier, not) {\n if (isFunction(qualifier)) {\n return jQuery.grep(elements, function (elem, i) {\n return !!qualifier.call(elem, i, elem) !== not;\n });\n } // Single element\n\n\n if (qualifier.nodeType) {\n return jQuery.grep(elements, function (elem) {\n return elem === qualifier !== not;\n });\n } // Arraylike of elements (jQuery, arguments, Array)\n\n\n if (typeof qualifier !== \"string\") {\n return jQuery.grep(elements, function (elem) {\n return indexOf.call(qualifier, elem) > -1 !== not;\n });\n } // Filtered directly for both simple and complex selectors\n\n\n return jQuery.filter(qualifier, elements, not);\n }\n\n jQuery.filter = function (expr, elems, not) {\n var elem = elems[0];\n\n if (not) {\n expr = \":not(\" + expr + \")\";\n }\n\n if (elems.length === 1 && elem.nodeType === 1) {\n return jQuery.find.matchesSelector(elem, expr) ? [elem] : [];\n }\n\n return jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n return elem.nodeType === 1;\n }));\n };\n\n jQuery.fn.extend({\n find: function find(selector) {\n var i,\n ret,\n len = this.length,\n self = this;\n\n if (typeof selector !== \"string\") {\n return this.pushStack(jQuery(selector).filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(self[i], this)) {\n return true;\n }\n }\n }));\n }\n\n ret = this.pushStack([]);\n\n for (i = 0; i < len; i++) {\n jQuery.find(selector, self[i], ret);\n }\n\n return len > 1 ? jQuery.uniqueSort(ret) : ret;\n },\n filter: function filter(selector) {\n return this.pushStack(winnow(this, selector || [], false));\n },\n not: function not(selector) {\n return this.pushStack(winnow(this, selector || [], true));\n },\n is: function is(selector) {\n return !!winnow(this, // If this is a positional/relative selector, check membership in the returned set\n // so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n typeof selector === \"string\" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length;\n }\n }); // Initialize a jQuery object\n // A central reference to the root jQuery(document)\n\n var rootjQuery,\n // A simple way to check for HTML strings\n // Prioritize #id over to avoid XSS via location.hash (#9521)\n // Strict HTML recognition (#11290: must start with <)\n // Shortcut simple #id case for speed\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n init = jQuery.fn.init = function (selector, context, root) {\n var match, elem; // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\n if (!selector) {\n return this;\n } // Method init() accepts an alternate rootjQuery\n // so migrate can support jQuery.sub (gh-2101)\n\n\n root = root || rootjQuery; // Handle HTML strings\n\n if (typeof selector === \"string\") {\n if (selector[0] === \"<\" && selector[selector.length - 1] === \">\" && selector.length >= 3) {\n // Assume that strings that start and end with <> are HTML and skip the regex check\n match = [null, selector, null];\n } else {\n match = rquickExpr.exec(selector);\n } // Match html or make sure no context is specified for #id\n\n\n if (match && (match[1] || !context)) {\n // HANDLE: $(html) -> $(array)\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context; // Option to run scripts is true for back-compat\n // Intentionally let the error be thrown if parseHTML is not present\n\n jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true)); // HANDLE: $(html, props)\n\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n for (match in context) {\n // Properties of context are called as methods if possible\n if (isFunction(this[match])) {\n this[match](context[match]); // ...and otherwise set as attributes\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n\n return this; // HANDLE: $(#id)\n } else {\n elem = document.getElementById(match[2]);\n\n if (elem) {\n // Inject the element directly into the jQuery object\n this[0] = elem;\n this.length = 1;\n }\n\n return this;\n } // HANDLE: $(expr, $(...))\n\n } else if (!context || context.jquery) {\n return (context || root).find(selector); // HANDLE: $(expr, context)\n // (which is just equivalent to: $(context).find(expr)\n } else {\n return this.constructor(context).find(selector);\n } // HANDLE: $(DOMElement)\n\n } else if (selector.nodeType) {\n this[0] = selector;\n this.length = 1;\n return this; // HANDLE: $(function)\n // Shortcut for document ready\n } else if (isFunction(selector)) {\n return root.ready !== undefined ? root.ready(selector) : // Execute immediately if ready is not present\n selector(jQuery);\n }\n\n return jQuery.makeArray(selector, this);\n }; // Give the init function the jQuery prototype for later instantiation\n\n\n init.prototype = jQuery.fn; // Initialize central reference\n\n rootjQuery = jQuery(document);\n var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n // Methods guaranteed to produce a unique set when starting from a unique set\n guaranteedUnique = {\n children: true,\n contents: true,\n next: true,\n prev: true\n };\n jQuery.fn.extend({\n has: function has(target) {\n var targets = jQuery(target, this),\n l = targets.length;\n return this.filter(function () {\n var i = 0;\n\n for (; i < l; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n closest: function closest(selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n targets = typeof selectors !== \"string\" && jQuery(selectors); // Positional selectors never match, since there's no _selection_ context\n\n if (!rneedsContext.test(selectors)) {\n for (; i < l; i++) {\n for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n // Always skip document fragments\n if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 : // Don't pass non-elements to Sizzle\n cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n matched.push(cur);\n break;\n }\n }\n }\n }\n\n return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\n },\n // Determine the position of an element within the set\n index: function index(elem) {\n // No argument, return index in parent\n if (!elem) {\n return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n } // Index in selector\n\n\n if (typeof elem === \"string\") {\n return indexOf.call(jQuery(elem), this[0]);\n } // Locate the position of the desired element\n\n\n return indexOf.call(this, // If it receives a jQuery object, the first element is used\n elem.jquery ? elem[0] : elem);\n },\n add: function add(selector, context) {\n return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n },\n addBack: function addBack(selector) {\n return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n }\n });\n\n function sibling(cur, dir) {\n while ((cur = cur[dir]) && cur.nodeType !== 1) {}\n\n return cur;\n }\n\n jQuery.each({\n parent: function parent(elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function parents(elem) {\n return dir(elem, \"parentNode\");\n },\n parentsUntil: function parentsUntil(elem, _i, until) {\n return dir(elem, \"parentNode\", until);\n },\n next: function next(elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function prev(elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function nextAll(elem) {\n return dir(elem, \"nextSibling\");\n },\n prevAll: function prevAll(elem) {\n return dir(elem, \"previousSibling\");\n },\n nextUntil: function nextUntil(elem, _i, until) {\n return dir(elem, \"nextSibling\", until);\n },\n prevUntil: function prevUntil(elem, _i, until) {\n return dir(elem, \"previousSibling\", until);\n },\n siblings: function siblings(elem) {\n return _siblings((elem.parentNode || {}).firstChild, elem);\n },\n children: function children(elem) {\n return _siblings(elem.firstChild);\n },\n contents: function contents(elem) {\n if (elem.contentDocument != null && // Support: IE 11+\n // elements with no `data` attribute has an object\n // `contentDocument` with a `null` prototype.\n getProto(elem.contentDocument)) {\n return elem.contentDocument;\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\n\n if (nodeName(elem, \"template\")) {\n elem = elem.content || elem;\n }\n\n return jQuery.merge([], elem.childNodes);\n }\n }, function (name, fn) {\n jQuery.fn[name] = function (until, selector) {\n var matched = jQuery.map(this, fn, until);\n\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n\n if (selector && typeof selector === \"string\") {\n matched = jQuery.filter(selector, matched);\n }\n\n if (this.length > 1) {\n // Remove duplicates\n if (!guaranteedUnique[name]) {\n jQuery.uniqueSort(matched);\n } // Reverse order for parents* and prev-derivatives\n\n\n if (rparentsprev.test(name)) {\n matched.reverse();\n }\n }\n\n return this.pushStack(matched);\n };\n });\n var rnothtmlwhite = /[^\\x20\\t\\r\\n\\f]+/g; // Convert String-formatted options into Object-formatted ones\n\n function createOptions(options) {\n var object = {};\n jQuery.each(options.match(rnothtmlwhite) || [], function (_, flag) {\n object[flag] = true;\n });\n return object;\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 */\n\n\n jQuery.Callbacks = function (options) {\n // Convert options from String-formatted to Object-formatted if needed\n // (we check in cache first)\n options = typeof options === \"string\" ? createOptions(options) : jQuery.extend({}, options);\n\n var // Flag to know if list is currently firing\n firing,\n // Last fire value for non-forgettable lists\n memory,\n // Flag to know if list was already fired\n _fired,\n // Flag to prevent firing\n _locked,\n // Actual callback list\n list = [],\n // Queue of execution data for repeatable lists\n queue = [],\n // Index of currently firing callback (modified by add/remove as needed)\n firingIndex = -1,\n // Fire callbacks\n fire = function fire() {\n // Enforce single-firing\n _locked = _locked || options.once; // Execute callbacks for all pending executions,\n // respecting firingIndex overrides and runtime changes\n\n _fired = firing = true;\n\n for (; queue.length; firingIndex = -1) {\n memory = queue.shift();\n\n while (++firingIndex < list.length) {\n // Run callback and check for early termination\n if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {\n // Jump to end and forget the data so .add doesn't re-fire\n firingIndex = list.length;\n memory = false;\n }\n }\n } // Forget the data if we're done with it\n\n\n if (!options.memory) {\n memory = false;\n }\n\n firing = false; // Clean up if we're done firing for good\n\n if (_locked) {\n // Keep an empty list if we have data for future add calls\n if (memory) {\n list = []; // Otherwise, this object is spent\n } else {\n list = \"\";\n }\n }\n },\n // Actual Callbacks object\n self = {\n // Add a callback or a collection of callbacks to the list\n add: function add() {\n if (list) {\n // If we have memory from a past run, we should fire after adding\n if (memory && !firing) {\n firingIndex = list.length - 1;\n queue.push(memory);\n }\n\n (function add(args) {\n jQuery.each(args, function (_, arg) {\n if (isFunction(arg)) {\n if (!options.unique || !self.has(arg)) {\n list.push(arg);\n }\n } else if (arg && arg.length && toType(arg) !== \"string\") {\n // Inspect recursively\n add(arg);\n }\n });\n })(arguments);\n\n if (memory && !firing) {\n fire();\n }\n }\n\n return this;\n },\n // Remove a callback from the list\n remove: function remove() {\n jQuery.each(arguments, function (_, arg) {\n var index;\n\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1); // Handle firing indexes\n\n if (index <= firingIndex) {\n firingIndex--;\n }\n }\n });\n return this;\n },\n // Check if a given callback is in the list.\n // If no argument is given, return whether or not list has callbacks attached.\n has: function has(fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n },\n // Remove all callbacks from the list\n empty: function empty() {\n if (list) {\n list = [];\n }\n\n return this;\n },\n // Disable .fire and .add\n // Abort any current/pending executions\n // Clear all callbacks and values\n disable: function disable() {\n _locked = queue = [];\n list = memory = \"\";\n return this;\n },\n disabled: function disabled() {\n return !list;\n },\n // Disable .fire\n // Also disable .add unless we have memory (since it would have no effect)\n // Abort any pending executions\n lock: function lock() {\n _locked = queue = [];\n\n if (!memory && !firing) {\n list = memory = \"\";\n }\n\n return this;\n },\n locked: function locked() {\n return !!_locked;\n },\n // Call all callbacks with the given context and arguments\n fireWith: function fireWith(context, args) {\n if (!_locked) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n queue.push(args);\n\n if (!firing) {\n fire();\n }\n }\n\n return this;\n },\n // Call all the callbacks with the given arguments\n fire: function fire() {\n self.fireWith(this, arguments);\n return this;\n },\n // To know if the callbacks have already been called at least once\n fired: function fired() {\n return !!_fired;\n }\n };\n\n return self;\n };\n\n function Identity(v) {\n return v;\n }\n\n function Thrower(ex) {\n throw ex;\n }\n\n function adoptValue(value, resolve, reject, noValue) {\n var method;\n\n try {\n // Check for promise aspect first to privilege synchronous behavior\n if (value && isFunction(method = value.promise)) {\n method.call(value).done(resolve).fail(reject); // Other thenables\n } else if (value && isFunction(method = value.then)) {\n method.call(value, resolve, reject); // Other non-thenables\n } else {\n // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n // * false: [ value ].slice( 0 ) => resolve( value )\n // * true: [ value ].slice( 1 ) => resolve()\n resolve.apply(undefined, [value].slice(noValue));\n } // For Promises/A+, convert exceptions into rejections\n // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n // Deferred#then to conditionally suppress rejection.\n\n } catch (value) {\n // Support: Android 4.0 only\n // Strict mode functions invoked without .call/.apply get global-object context\n reject.apply(undefined, [value]);\n }\n }\n\n jQuery.extend({\n Deferred: function Deferred(func) {\n var tuples = [// action, add listener, callbacks,\n // ... .then handlers, argument index, [final state]\n [\"notify\", \"progress\", jQuery.Callbacks(\"memory\"), jQuery.Callbacks(\"memory\"), 2], [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 0, \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 1, \"rejected\"]],\n _state = \"pending\",\n _promise = {\n state: function state() {\n return _state;\n },\n always: function always() {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n \"catch\": function _catch(fn) {\n return _promise.then(null, fn);\n },\n // Keep pipe for back-compat\n pipe: function pipe()\n /* fnDone, fnFail, fnProgress */\n {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (_i, tuple) {\n // Map tuples (progress, done, fail) to arguments (done, fail, progress)\n var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]]; // deferred.progress(function() { bind to newDefer or newDefer.notify })\n // deferred.done(function() { bind to newDefer or newDefer.resolve })\n // deferred.fail(function() { bind to newDefer or newDefer.reject })\n\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n\n if (returned && isFunction(returned.promise)) {\n returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);\n } else {\n newDefer[tuple[0] + \"With\"](this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n },\n then: function then(onFulfilled, onRejected, onProgress) {\n var maxDepth = 0;\n\n function resolve(depth, deferred, handler, special) {\n return function () {\n var that = this,\n args = arguments,\n mightThrow = function mightThrow() {\n var returned, then; // Support: Promises/A+ section 2.3.3.3.3\n // https://promisesaplus.com/#point-59\n // Ignore double-resolution attempts\n\n if (depth < maxDepth) {\n return;\n }\n\n returned = handler.apply(that, args); // Support: Promises/A+ section 2.3.1\n // https://promisesaplus.com/#point-48\n\n if (returned === deferred.promise()) {\n throw new TypeError(\"Thenable self-resolution\");\n } // Support: Promises/A+ sections 2.3.3.1, 3.5\n // https://promisesaplus.com/#point-54\n // https://promisesaplus.com/#point-75\n // Retrieve `then` only once\n\n\n then = returned && ( // Support: Promises/A+ section 2.3.4\n // https://promisesaplus.com/#point-64\n // Only check objects and functions for thenability\n _typeof(returned) === \"object\" || typeof returned === \"function\") && returned.then; // Handle a returned thenable\n\n if (isFunction(then)) {\n // Special processors (notify) just wait for resolution\n if (special) {\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special)); // Normal processors (resolve) also hook into progress\n } else {\n // ...and disregard older resolution values\n maxDepth++;\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special), resolve(maxDepth, deferred, Identity, deferred.notifyWith));\n } // Handle all other returned values\n\n } else {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Identity) {\n that = undefined;\n args = [returned];\n } // Process the value(s)\n // Default process is resolve\n\n\n (special || deferred.resolveWith)(that, args);\n }\n },\n // Only normal processors (resolve) catch and reject exceptions\n process = special ? mightThrow : function () {\n try {\n mightThrow();\n } catch (e) {\n if (jQuery.Deferred.exceptionHook) {\n jQuery.Deferred.exceptionHook(e, process.stackTrace);\n } // Support: Promises/A+ section 2.3.3.3.4.1\n // https://promisesaplus.com/#point-61\n // Ignore post-resolution exceptions\n\n\n if (depth + 1 >= maxDepth) {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Thrower) {\n that = undefined;\n args = [e];\n }\n\n deferred.rejectWith(that, args);\n }\n }\n }; // Support: Promises/A+ section 2.3.3.3.1\n // https://promisesaplus.com/#point-57\n // Re-resolve promises immediately to dodge false rejection from\n // subsequent errors\n\n\n if (depth) {\n process();\n } else {\n // Call an optional hook to record the stack, in case of exception\n // since it's otherwise lost when execution goes async\n if (jQuery.Deferred.getStackHook) {\n process.stackTrace = jQuery.Deferred.getStackHook();\n }\n\n window.setTimeout(process);\n }\n };\n }\n\n return jQuery.Deferred(function (newDefer) {\n // progress_handlers.add( ... )\n tuples[0][3].add(resolve(0, newDefer, isFunction(onProgress) ? onProgress : Identity, newDefer.notifyWith)); // fulfilled_handlers.add( ... )\n\n tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity)); // rejected_handlers.add( ... )\n\n tuples[2][3].add(resolve(0, newDefer, isFunction(onRejected) ? onRejected : Thrower));\n }).promise();\n },\n // Get a promise for this deferred\n // If obj is provided, the promise aspect is added to the object\n promise: function promise(obj) {\n return obj != null ? jQuery.extend(obj, _promise) : _promise;\n }\n },\n deferred = {}; // Add list-specific methods\n\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[5]; // promise.progress = list.add\n // promise.done = list.add\n // promise.fail = list.add\n\n _promise[tuple[1]] = list.add; // Handle state\n\n if (stateString) {\n list.add(function () {\n // state = \"resolved\" (i.e., fulfilled)\n // state = \"rejected\"\n _state = stateString;\n }, // rejected_callbacks.disable\n // fulfilled_callbacks.disable\n tuples[3 - i][2].disable, // rejected_handlers.disable\n // fulfilled_handlers.disable\n tuples[3 - i][3].disable, // progress_callbacks.lock\n tuples[0][2].lock, // progress_handlers.lock\n tuples[0][3].lock);\n } // progress_handlers.fire\n // fulfilled_handlers.fire\n // rejected_handlers.fire\n\n\n list.add(tuple[3].fire); // deferred.notify = function() { deferred.notifyWith(...) }\n // deferred.resolve = function() { deferred.resolveWith(...) }\n // deferred.reject = function() { deferred.rejectWith(...) }\n\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? undefined : this, arguments);\n return this;\n }; // deferred.notifyWith = list.fireWith\n // deferred.resolveWith = list.fireWith\n // deferred.rejectWith = list.fireWith\n\n\n deferred[tuple[0] + \"With\"] = list.fireWith;\n }); // Make the deferred a promise\n\n _promise.promise(deferred); // Call given func if any\n\n\n if (func) {\n func.call(deferred, deferred);\n } // All done!\n\n\n return deferred;\n },\n // Deferred helper\n when: function when(singleValue) {\n var // count of uncompleted subordinates\n remaining = arguments.length,\n // count of unprocessed arguments\n i = remaining,\n // subordinate fulfillment data\n resolveContexts = Array(i),\n resolveValues = _slice.call(arguments),\n // the master Deferred\n master = jQuery.Deferred(),\n // subordinate callback factory\n updateFunc = function updateFunc(i) {\n return function (value) {\n resolveContexts[i] = this;\n resolveValues[i] = arguments.length > 1 ? _slice.call(arguments) : value;\n\n if (! --remaining) {\n master.resolveWith(resolveContexts, resolveValues);\n }\n };\n }; // Single- and empty arguments are adopted like Promise.resolve\n\n\n if (remaining <= 1) {\n adoptValue(singleValue, master.done(updateFunc(i)).resolve, master.reject, !remaining); // Use .then() to unwrap secondary thenables (cf. gh-3000)\n\n if (master.state() === \"pending\" || isFunction(resolveValues[i] && resolveValues[i].then)) {\n return master.then();\n }\n } // Multiple arguments are aggregated like Promise.all array elements\n\n\n while (i--) {\n adoptValue(resolveValues[i], updateFunc(i), master.reject);\n }\n\n return master.promise();\n }\n }); // These usually indicate a programmer mistake during development,\n // warn about them ASAP rather than swallowing them by default.\n\n var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n jQuery.Deferred.exceptionHook = function (error, stack) {\n // Support: IE 8 - 9 only\n // Console exists when dev tools are open, which can happen at any time\n if (window.console && window.console.warn && error && rerrorNames.test(error.name)) {\n window.console.warn(\"jQuery.Deferred exception: \" + error.message, error.stack, stack);\n }\n };\n\n jQuery.readyException = function (error) {\n window.setTimeout(function () {\n throw error;\n });\n }; // The deferred used on DOM ready\n\n\n var readyList = jQuery.Deferred();\n\n jQuery.fn.ready = function (fn) {\n readyList.then(fn) // Wrap jQuery.readyException in a function so that the lookup\n // happens at the time of error handling instead of callback\n // registration.\n [\"catch\"](function (error) {\n jQuery.readyException(error);\n });\n return this;\n };\n\n jQuery.extend({\n // Is the DOM ready to be used? Set to true once it occurs.\n isReady: false,\n // A counter to track how many items to wait for before\n // the ready event fires. See #6781\n readyWait: 1,\n // Handle when the DOM is ready\n ready: function ready(wait) {\n // Abort if there are pending holds or we're already ready\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n return;\n } // Remember that the DOM is ready\n\n\n jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be\n\n if (wait !== true && --jQuery.readyWait > 0) {\n return;\n } // If there are functions bound, to execute\n\n\n readyList.resolveWith(document, [jQuery]);\n }\n });\n jQuery.ready.then = readyList.then; // The ready event handler and self cleanup method\n\n function completed() {\n document.removeEventListener(\"DOMContentLoaded\", completed);\n window.removeEventListener(\"load\", completed);\n jQuery.ready();\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\n\n\n if (document.readyState === \"complete\" || document.readyState !== \"loading\" && !document.documentElement.doScroll) {\n // Handle it asynchronously to allow scripts the opportunity to delay ready\n window.setTimeout(jQuery.ready);\n } else {\n // Use the handy event callback\n document.addEventListener(\"DOMContentLoaded\", completed); // A fallback to window.onload, that will always work\n\n window.addEventListener(\"load\", completed);\n } // Multifunctional method to get and set values of a collection\n // The value/s can optionally be executed if it's a function\n\n\n var access = function access(elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n len = elems.length,\n bulk = key == null; // Sets many values\n\n if (toType(key) === \"object\") {\n chainable = true;\n\n for (i in key) {\n access(elems, fn, i, key[i], true, emptyGet, raw);\n } // Sets one value\n\n } else if (value !== undefined) {\n chainable = true;\n\n if (!isFunction(value)) {\n raw = true;\n }\n\n if (bulk) {\n // Bulk operations run against the entire set\n if (raw) {\n fn.call(elems, value);\n fn = null; // ...except when executing function values\n } else {\n bulk = fn;\n\n fn = function fn(elem, _key, value) {\n return bulk.call(jQuery(elem), value);\n };\n }\n }\n\n if (fn) {\n for (; i < len; i++) {\n fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n }\n }\n }\n\n if (chainable) {\n return elems;\n } // Gets\n\n\n if (bulk) {\n return fn.call(elems);\n }\n\n return len ? fn(elems[0], key) : emptyGet;\n }; // Matches dashed string for camelizing\n\n\n var rmsPrefix = /^-ms-/,\n rdashAlpha = /-([a-z])/g; // Used by camelCase as callback to replace()\n\n function fcamelCase(_all, letter) {\n return letter.toUpperCase();\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)\n\n\n function camelCase(string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n }\n\n var acceptData = function acceptData(owner) {\n // Accepts only:\n // - Node\n // - Node.ELEMENT_NODE\n // - Node.DOCUMENT_NODE\n // - Object\n // - Any\n return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType;\n };\n\n function Data() {\n this.expando = jQuery.expando + Data.uid++;\n }\n\n Data.uid = 1;\n Data.prototype = {\n cache: function cache(owner) {\n // Check if the owner object already has a cache\n var value = owner[this.expando]; // If not, create one\n\n if (!value) {\n value = Object.create(null); // We can accept data for non-element nodes in modern browsers,\n // but we should not, see #8335.\n // Always return an empty object.\n\n if (acceptData(owner)) {\n // If it is a node unlikely to be stringify-ed or looped over\n // use plain assignment\n if (owner.nodeType) {\n owner[this.expando] = value; // Otherwise secure it in a non-enumerable property\n // configurable must be true to allow the property to be\n // deleted when data is removed\n } else {\n Object.defineProperty(owner, this.expando, {\n value: value,\n configurable: true\n });\n }\n }\n }\n\n return value;\n },\n set: function set(owner, data, value) {\n var prop,\n cache = this.cache(owner); // Handle: [ owner, key, value ] args\n // Always use camelCase key (gh-2257)\n\n if (typeof data === \"string\") {\n cache[camelCase(data)] = value; // Handle: [ owner, { properties } ] args\n } else {\n // Copy the properties one-by-one to the cache object\n for (prop in data) {\n cache[camelCase(prop)] = data[prop];\n }\n }\n\n return cache;\n },\n get: function get(owner, key) {\n return key === undefined ? this.cache(owner) : // Always use camelCase key (gh-2257)\n owner[this.expando] && owner[this.expando][camelCase(key)];\n },\n access: function access(owner, key, value) {\n // In cases where either:\n //\n // 1. No key was specified\n // 2. A string key was specified, but no value provided\n //\n // Take the \"read\" path and allow the get method to determine\n // which value to return, respectively either:\n //\n // 1. The entire cache object\n // 2. The data stored at the key\n //\n if (key === undefined || key && typeof key === \"string\" && value === undefined) {\n return this.get(owner, key);\n } // When the key is not a string, or both a key and value\n // are specified, set or extend (existing objects) with either:\n //\n // 1. An object of properties\n // 2. A key and value\n //\n\n\n this.set(owner, key, value); // Since the \"set\" path can have two possible entry points\n // return the expected data based on which path was taken[*]\n\n return value !== undefined ? value : key;\n },\n remove: function remove(owner, key) {\n var i,\n cache = owner[this.expando];\n\n if (cache === undefined) {\n return;\n }\n\n if (key !== undefined) {\n // Support array or space separated string of keys\n if (Array.isArray(key)) {\n // If key is an array of keys...\n // We always set camelCase keys, so remove that.\n key = key.map(camelCase);\n } else {\n key = camelCase(key); // If a key with the spaces exists, use it.\n // Otherwise, create an array by matching non-whitespace\n\n key = key in cache ? [key] : key.match(rnothtmlwhite) || [];\n }\n\n i = key.length;\n\n while (i--) {\n delete cache[key[i]];\n }\n } // Remove the expando if there's no more data\n\n\n if (key === undefined || jQuery.isEmptyObject(cache)) {\n // Support: Chrome <=35 - 45\n // Webkit & Blink performance suffers when deleting properties\n // from DOM nodes, so set to undefined instead\n // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n if (owner.nodeType) {\n owner[this.expando] = undefined;\n } else {\n delete owner[this.expando];\n }\n }\n },\n hasData: function hasData(owner) {\n var cache = owner[this.expando];\n return cache !== undefined && !jQuery.isEmptyObject(cache);\n }\n };\n var dataPriv = new Data();\n var dataUser = new Data(); //\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\n var rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n rmultiDash = /[A-Z]/g;\n\n function getData(data) {\n if (data === \"true\") {\n return true;\n }\n\n if (data === \"false\") {\n return false;\n }\n\n if (data === \"null\") {\n return null;\n } // Only convert to a number if it doesn't change the string\n\n\n if (data === +data + \"\") {\n return +data;\n }\n\n if (rbrace.test(data)) {\n return JSON.parse(data);\n }\n\n return data;\n }\n\n function dataAttr(elem, key, data) {\n var name; // If nothing was found internally, try to fetch any\n // data from the HTML5 data-* attribute\n\n if (data === undefined && elem.nodeType === 1) {\n name = \"data-\" + key.replace(rmultiDash, \"-$&\").toLowerCase();\n data = elem.getAttribute(name);\n\n if (typeof data === \"string\") {\n try {\n data = getData(data);\n } catch (e) {} // Make sure we set the data so it isn't changed later\n\n\n dataUser.set(elem, key, data);\n } else {\n data = undefined;\n }\n }\n\n return data;\n }\n\n jQuery.extend({\n hasData: function hasData(elem) {\n return dataUser.hasData(elem) || dataPriv.hasData(elem);\n },\n data: function data(elem, name, _data) {\n return dataUser.access(elem, name, _data);\n },\n removeData: function removeData(elem, name) {\n dataUser.remove(elem, name);\n },\n // TODO: Now that all calls to _data and _removeData have been replaced\n // with direct calls to dataPriv methods, these can be deprecated.\n _data: function _data(elem, name, data) {\n return dataPriv.access(elem, name, data);\n },\n _removeData: function _removeData(elem, name) {\n dataPriv.remove(elem, name);\n }\n });\n jQuery.fn.extend({\n data: function data(key, value) {\n var i,\n name,\n data,\n elem = this[0],\n attrs = elem && elem.attributes; // Gets all values\n\n if (key === undefined) {\n if (this.length) {\n data = dataUser.get(elem);\n\n if (elem.nodeType === 1 && !dataPriv.get(elem, \"hasDataAttrs\")) {\n i = attrs.length;\n\n while (i--) {\n // Support: IE 11 only\n // The attrs elements can be null (#14894)\n if (attrs[i]) {\n name = attrs[i].name;\n\n if (name.indexOf(\"data-\") === 0) {\n name = camelCase(name.slice(5));\n dataAttr(elem, name, data[name]);\n }\n }\n }\n\n dataPriv.set(elem, \"hasDataAttrs\", true);\n }\n }\n\n return data;\n } // Sets multiple values\n\n\n if (_typeof(key) === \"object\") {\n return this.each(function () {\n dataUser.set(this, key);\n });\n }\n\n return access(this, function (value) {\n var data; // The calling jQuery object (element matches) is not empty\n // (and therefore has an element appears at this[ 0 ]) and the\n // `value` parameter was not undefined. An empty jQuery object\n // will result in `undefined` for elem = this[ 0 ] which will\n // throw an exception if an attempt to read a data cache is made.\n\n if (elem && value === undefined) {\n // Attempt to get data from the cache\n // The key will always be camelCased in Data\n data = dataUser.get(elem, key);\n\n if (data !== undefined) {\n return data;\n } // Attempt to \"discover\" the data in\n // HTML5 custom data-* attrs\n\n\n data = dataAttr(elem, key);\n\n if (data !== undefined) {\n return data;\n } // We tried really hard, but the data doesn't exist.\n\n\n return;\n } // Set the data...\n\n\n this.each(function () {\n // We always store the camelCased key\n dataUser.set(this, key, value);\n });\n }, null, value, arguments.length > 1, null, true);\n },\n removeData: function removeData(key) {\n return this.each(function () {\n dataUser.remove(this, key);\n });\n }\n });\n jQuery.extend({\n queue: function queue(elem, type, data) {\n var queue;\n\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = dataPriv.get(elem, type); // Speed up dequeue by getting out quickly if this is just a lookup\n\n if (data) {\n if (!queue || Array.isArray(data)) {\n queue = dataPriv.access(elem, type, jQuery.makeArray(data));\n } else {\n queue.push(data);\n }\n }\n\n return queue || [];\n }\n },\n dequeue: function dequeue(elem, type) {\n type = type || \"fx\";\n\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function next() {\n jQuery.dequeue(elem, type);\n }; // If the fx queue is dequeued, always remove the progress sentinel\n\n\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\n\n if (fn) {\n // Add a progress sentinel to prevent the fx queue from being\n // automatically dequeued\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n } // Clear up the last queue stop function\n\n\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\n\n if (!startLength && hooks) {\n hooks.empty.fire();\n }\n },\n // Not public - generate a queueHooks object, or return the current one\n _queueHooks: function _queueHooks(elem, type) {\n var key = type + \"queueHooks\";\n return dataPriv.get(elem, key) || dataPriv.access(elem, key, {\n empty: jQuery.Callbacks(\"once memory\").add(function () {\n dataPriv.remove(elem, [type + \"queue\", key]);\n })\n });\n }\n });\n jQuery.fn.extend({\n queue: function queue(type, data) {\n var setter = 2;\n\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n\n return data === undefined ? this : this.each(function () {\n var queue = jQuery.queue(this, type, data); // Ensure a hooks for this queue\n\n jQuery._queueHooks(this, type);\n\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function dequeue(type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function clearQueue(type) {\n return this.queue(type || \"fx\", []);\n },\n // Get a promise resolved when queues of a certain type\n // are emptied (fx is the type by default)\n promise: function promise(type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function resolve() {\n if (! --count) {\n defer.resolveWith(elements, [elements]);\n }\n };\n\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n\n type = type || \"fx\";\n\n while (i--) {\n tmp = dataPriv.get(elements[i], type + \"queueHooks\");\n\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\n }\n\n resolve();\n return defer.promise(obj);\n }\n });\n var pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n var rcssNum = new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n var cssExpand = [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n var documentElement = document.documentElement;\n\n var isAttached = function isAttached(elem) {\n return jQuery.contains(elem.ownerDocument, elem);\n },\n composed = {\n composed: true\n }; // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n // Check attachment across shadow DOM boundaries when possible (gh-3504)\n // Support: iOS 10.0-10.2 only\n // Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n // leading to errors. We need to check for `getRootNode`.\n\n\n if (documentElement.getRootNode) {\n isAttached = function isAttached(elem) {\n return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument;\n };\n }\n\n var isHiddenWithinTree = function isHiddenWithinTree(elem, el) {\n // isHiddenWithinTree might be called from jQuery#filter function;\n // in that case, element will be second argument\n elem = el || elem; // Inline style trumps all\n\n return elem.style.display === \"none\" || elem.style.display === \"\" && // Otherwise, check computed style\n // Support: Firefox <=43 - 45\n // Disconnected elements can have computed display: none, so first confirm that elem is\n // in the document.\n isAttached(elem) && jQuery.css(elem, \"display\") === \"none\";\n };\n\n function adjustCSS(elem, prop, valueParts, tween) {\n var adjusted,\n scale,\n maxIterations = 20,\n currentValue = tween ? function () {\n return tween.cur();\n } : function () {\n return jQuery.css(elem, prop, \"\");\n },\n initial = currentValue(),\n unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\n // Starting value computation is required for potential unit mismatches\n initialInUnit = elem.nodeType && (jQuery.cssNumber[prop] || unit !== \"px\" && +initial) && rcssNum.exec(jQuery.css(elem, prop));\n\n if (initialInUnit && initialInUnit[3] !== unit) {\n // Support: Firefox <=54\n // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n initial = initial / 2; // Trust units reported by jQuery.css\n\n unit = unit || initialInUnit[3]; // Iteratively approximate from a nonzero starting point\n\n initialInUnit = +initial || 1;\n\n while (maxIterations--) {\n // Evaluate and update our best guess (doubling guesses that zero out).\n // Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n jQuery.style(elem, prop, initialInUnit + unit);\n\n if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) {\n maxIterations = 0;\n }\n\n initialInUnit = initialInUnit / scale;\n }\n\n initialInUnit = initialInUnit * 2;\n jQuery.style(elem, prop, initialInUnit + unit); // Make sure we update the tween properties later on\n\n valueParts = valueParts || [];\n }\n\n if (valueParts) {\n initialInUnit = +initialInUnit || +initial || 0; // Apply relative offset (+=/-=) if specified\n\n adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];\n\n if (tween) {\n tween.unit = unit;\n tween.start = initialInUnit;\n tween.end = adjusted;\n }\n }\n\n return adjusted;\n }\n\n var defaultDisplayMap = {};\n\n function getDefaultDisplay(elem) {\n var temp,\n doc = elem.ownerDocument,\n nodeName = elem.nodeName,\n display = defaultDisplayMap[nodeName];\n\n if (display) {\n return display;\n }\n\n temp = doc.body.appendChild(doc.createElement(nodeName));\n display = jQuery.css(temp, \"display\");\n temp.parentNode.removeChild(temp);\n\n if (display === \"none\") {\n display = \"block\";\n }\n\n defaultDisplayMap[nodeName] = display;\n return display;\n }\n\n function showHide(elements, show) {\n var display,\n elem,\n values = [],\n index = 0,\n length = elements.length; // Determine new display value for elements that need to change\n\n for (; index < length; index++) {\n elem = elements[index];\n\n if (!elem.style) {\n continue;\n }\n\n display = elem.style.display;\n\n if (show) {\n // Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n // check is required in this first loop unless we have a nonempty display value (either\n // inline or about-to-be-restored)\n if (display === \"none\") {\n values[index] = dataPriv.get(elem, \"display\") || null;\n\n if (!values[index]) {\n elem.style.display = \"\";\n }\n }\n\n if (elem.style.display === \"\" && isHiddenWithinTree(elem)) {\n values[index] = getDefaultDisplay(elem);\n }\n } else {\n if (display !== \"none\") {\n values[index] = \"none\"; // Remember what we're overwriting\n\n dataPriv.set(elem, \"display\", display);\n }\n }\n } // Set the display of the elements in a second loop to avoid constant reflow\n\n\n for (index = 0; index < length; index++) {\n if (values[index] != null) {\n elements[index].style.display = values[index];\n }\n }\n\n return elements;\n }\n\n jQuery.fn.extend({\n show: function show() {\n return showHide(this, true);\n },\n hide: function hide() {\n return showHide(this);\n },\n toggle: function toggle(state) {\n if (typeof state === \"boolean\") {\n return state ? this.show() : this.hide();\n }\n\n return this.each(function () {\n if (isHiddenWithinTree(this)) {\n jQuery(this).show();\n } else {\n jQuery(this).hide();\n }\n });\n }\n });\n var rcheckableType = /^(?:checkbox|radio)$/i;\n var rtagName = /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;\n var rscriptType = /^$|^module$|\\/(?:java|ecma)script/i;\n\n (function () {\n var fragment = document.createDocumentFragment(),\n div = fragment.appendChild(document.createElement(\"div\")),\n input = document.createElement(\"input\"); // Support: Android 4.0 - 4.3 only\n // Check state lost if the name is set (#11217)\n // Support: Windows Web Apps (WWA)\n // `name` and `type` must use .setAttribute for WWA (#14901)\n\n input.setAttribute(\"type\", \"radio\");\n input.setAttribute(\"checked\", \"checked\");\n input.setAttribute(\"name\", \"t\");\n div.appendChild(input); // Support: Android <=4.1 only\n // Older WebKit doesn't clone checked state correctly in fragments\n\n support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked; // Support: IE <=11 only\n // Make sure textarea (and checkbox) defaultValue is properly cloned\n\n div.innerHTML = \"\";\n support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue; // Support: IE <=9 only\n // IE <=9 replaces \";\n support.option = !!div.lastChild;\n })(); // We have to close these tags to support XHTML (#13200)\n\n\n var wrapMap = {\n // XHTML parsers do not magically insert elements in the\n // same way that tag soup parsers do. So we cannot shorten\n // this by omitting or other required elements.\n thead: [1, \"\", \"
\"],\n col: [2, \"\", \"
\"],\n tr: [2, \"\", \"
\"],\n td: [3, \"\", \"
\"],\n _default: [0, \"\", \"\"]\n };\n wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n wrapMap.th = wrapMap.td; // Support: IE <=9 only\n\n if (!support.option) {\n wrapMap.optgroup = wrapMap.option = [1, \"\"];\n }\n\n function getAll(context, tag) {\n // Support: IE <=9 - 11 only\n // Use typeof to avoid zero-argument method invocation on host objects (#15151)\n var ret;\n\n if (typeof context.getElementsByTagName !== \"undefined\") {\n ret = context.getElementsByTagName(tag || \"*\");\n } else if (typeof context.querySelectorAll !== \"undefined\") {\n ret = context.querySelectorAll(tag || \"*\");\n } else {\n ret = [];\n }\n\n if (tag === undefined || tag && nodeName(context, tag)) {\n return jQuery.merge([context], ret);\n }\n\n return ret;\n } // Mark scripts as having already been evaluated\n\n\n function setGlobalEval(elems, refElements) {\n var i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n dataPriv.set(elems[i], \"globalEval\", !refElements || dataPriv.get(refElements[i], \"globalEval\"));\n }\n }\n\n var rhtml = /<|&#?\\w+;/;\n\n function buildFragment(elems, context, scripts, selection, ignored) {\n var elem,\n tmp,\n tag,\n wrap,\n attached,\n j,\n fragment = context.createDocumentFragment(),\n nodes = [],\n i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n elem = elems[i];\n\n if (elem || elem === 0) {\n // Add nodes directly\n if (toType(elem) === \"object\") {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(nodes, elem.nodeType ? [elem] : elem); // Convert non-html into a text node\n } else if (!rhtml.test(elem)) {\n nodes.push(context.createTextNode(elem)); // Convert html into DOM nodes\n } else {\n tmp = tmp || fragment.appendChild(context.createElement(\"div\")); // Deserialize a standard representation\n\n tag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\n wrap = wrapMap[tag] || wrapMap._default;\n tmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2]; // Descend through wrappers to the right content\n\n j = wrap[0];\n\n while (j--) {\n tmp = tmp.lastChild;\n } // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n\n\n jQuery.merge(nodes, tmp.childNodes); // Remember the top-level container\n\n tmp = fragment.firstChild; // Ensure the created nodes are orphaned (#12392)\n\n tmp.textContent = \"\";\n }\n }\n } // Remove wrapper from fragment\n\n\n fragment.textContent = \"\";\n i = 0;\n\n while (elem = nodes[i++]) {\n // Skip elements already in the context collection (trac-4087)\n if (selection && jQuery.inArray(elem, selection) > -1) {\n if (ignored) {\n ignored.push(elem);\n }\n\n continue;\n }\n\n attached = isAttached(elem); // Append to fragment\n\n tmp = getAll(fragment.appendChild(elem), \"script\"); // Preserve script evaluation history\n\n if (attached) {\n setGlobalEval(tmp);\n } // Capture executables\n\n\n if (scripts) {\n j = 0;\n\n while (elem = tmp[j++]) {\n if (rscriptType.test(elem.type || \"\")) {\n scripts.push(elem);\n }\n }\n }\n }\n\n return fragment;\n }\n\n var rkeyEvent = /^key/,\n rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\n function returnTrue() {\n return true;\n }\n\n function returnFalse() {\n return false;\n } // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous, except when they are no-op.\n // So expect focus to be synchronous when the element is already active,\n // and blur to be synchronous when the element is not already active.\n // (focus and blur are always synchronous in other supported browsers,\n // this just defines when we can count on it).\n\n\n function expectSync(elem, type) {\n return elem === safeActiveElement() === (type === \"focus\");\n } // Support: IE <=9 only\n // Accessing document.activeElement can throw unexpectedly\n // https://bugs.jquery.com/ticket/13393\n\n\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) {}\n }\n\n function _on(elem, types, selector, data, fn, one) {\n var origFn, type; // Types can be a map of types/handlers\n\n if (_typeof(types) === \"object\") {\n // ( types-Object, selector, data )\n if (typeof selector !== \"string\") {\n // ( types-Object, data )\n data = data || selector;\n selector = undefined;\n }\n\n for (type in types) {\n _on(elem, type, selector, data, types[type], one);\n }\n\n return elem;\n }\n\n if (data == null && fn == null) {\n // ( types, fn )\n fn = selector;\n data = selector = undefined;\n } else if (fn == null) {\n if (typeof selector === \"string\") {\n // ( types, selector, fn )\n fn = data;\n data = undefined;\n } else {\n // ( types, data, fn )\n fn = data;\n data = selector;\n selector = undefined;\n }\n }\n\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return elem;\n }\n\n if (one === 1) {\n origFn = fn;\n\n fn = function fn(event) {\n // Can use an empty set, since event contains the info\n jQuery().off(event);\n return origFn.apply(this, arguments);\n }; // Use same guid so caller can remove using origFn\n\n\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n\n return elem.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\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 */\n\n\n jQuery.event = {\n global: {},\n add: function add(elem, types, handler, data, selector) {\n var handleObjIn,\n eventHandle,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.get(elem); // Only attach events to objects that accept data\n\n if (!acceptData(elem)) {\n return;\n } // Caller can pass in an object of custom data in lieu of the handler\n\n\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\n } // Ensure that invalid selectors throw exceptions at attach time\n // Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\n\n if (selector) {\n jQuery.find.matchesSelector(documentElement, selector);\n } // Make sure that the handler has a unique ID, used to find/remove it later\n\n\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n } // Init the element's event structure and main handler, if this is the first\n\n\n if (!(events = elemData.events)) {\n events = elemData.events = Object.create(null);\n }\n\n if (!(eventHandle = elemData.handle)) {\n eventHandle = elemData.handle = function (e) {\n // Discard the second event of a jQuery.event.trigger() and\n // when an event is called after a page has unloaded\n return typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply(elem, arguments) : undefined;\n };\n } // Handle multiple events separated by a space\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // There *must* be a type, no attaching namespace-only handlers\n\n if (!type) {\n continue;\n } // If event changes its type, use the special event handlers for the changed type\n\n\n special = jQuery.event.special[type] || {}; // If selector defined, determine special event api type, otherwise given type\n\n type = (selector ? special.delegateType : special.bindType) || type; // Update special based on newly reset type\n\n special = jQuery.event.special[type] || {}; // handleObj is passed to all event handlers\n\n handleObj = jQuery.extend({\n type: type,\n origType: origType,\n data: data,\n handler: handler,\n guid: handler.guid,\n selector: selector,\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n namespace: namespaces.join(\".\")\n }, handleObjIn); // Init the event handler queue if we're the first\n\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0; // Only use addEventListener if the special events handler returns false\n\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle);\n }\n }\n }\n\n if (special.add) {\n special.add.call(elem, handleObj);\n\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n } // Add to the element's handler list, delegates in front\n\n\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n } // Keep track of which events have ever been used, for event optimization\n\n\n jQuery.event.global[type] = true;\n }\n },\n // Detach an event or set of events from an element\n remove: function remove(elem, types, handler, selector, mappedTypes) {\n var j,\n origCount,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.hasData(elem) && dataPriv.get(elem);\n\n if (!elemData || !(events = elemData.events)) {\n return;\n } // Once for each type.namespace in types; type may be omitted\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // Unbind all events (on this namespace, if provided) for the element\n\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n\n continue;\n }\n\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n handlers = events[type] || [];\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\"); // Remove matching events\n\n origCount = j = handlers.length;\n\n while (j--) {\n handleObj = handlers[j];\n\n if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n handlers.splice(j, 1);\n\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n\n if (special.remove) {\n special.remove.call(elem, handleObj);\n }\n }\n } // Remove generic event handler if we removed something and no more handlers exist\n // (avoids potential for endless recursion during removal of special event handlers)\n\n\n if (origCount && !handlers.length) {\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n jQuery.removeEvent(elem, type, elemData.handle);\n }\n\n delete events[type];\n }\n } // Remove data and the expando if it's no longer used\n\n\n if (jQuery.isEmptyObject(events)) {\n dataPriv.remove(elem, \"handle events\");\n }\n },\n dispatch: function dispatch(nativeEvent) {\n var i,\n j,\n ret,\n matched,\n handleObj,\n handlerQueue,\n args = new Array(arguments.length),\n // Make a writable jQuery.Event from the native event object\n event = jQuery.event.fix(nativeEvent),\n handlers = (dataPriv.get(this, \"events\") || Object.create(null))[event.type] || [],\n special = jQuery.event.special[event.type] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event\n\n args[0] = event;\n\n for (i = 1; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n\n event.delegateTarget = this; // Call the preDispatch hook for the mapped type, and let it bail if desired\n\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n } // Determine handlers\n\n\n handlerQueue = jQuery.event.handlers.call(this, event, handlers); // Run delegates first; they may want to stop propagation beneath us\n\n i = 0;\n\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n j = 0;\n\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n // If the event is namespaced, then each handler is only invoked if it is\n // specially universal or its namespaces are a superset of the event's.\n if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) {\n event.handleObj = handleObj;\n event.data = handleObj.data;\n ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n } // Call the postDispatch hook for the mapped type\n\n\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n\n return event.result;\n },\n handlers: function handlers(event, _handlers) {\n var i,\n handleObj,\n sel,\n matchedHandlers,\n matchedSelectors,\n handlerQueue = [],\n delegateCount = _handlers.delegateCount,\n cur = event.target; // Find delegate handlers\n\n if (delegateCount && // Support: IE <=9\n // Black-hole SVG instance trees (trac-13180)\n cur.nodeType && // Support: Firefox <=42\n // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n // Support: IE 11 only\n // ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n !(event.type === \"click\" && event.button >= 1)) {\n for (; cur !== this; cur = cur.parentNode || this) {\n // Don't check non-elements (#13208)\n // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n if (cur.nodeType === 1 && !(event.type === \"click\" && cur.disabled === true)) {\n matchedHandlers = [];\n matchedSelectors = {};\n\n for (i = 0; i < delegateCount; i++) {\n handleObj = _handlers[i]; // Don't conflict with Object.prototype properties (#13203)\n\n sel = handleObj.selector + \" \";\n\n if (matchedSelectors[sel] === undefined) {\n matchedSelectors[sel] = handleObj.needsContext ? jQuery(sel, this).index(cur) > -1 : jQuery.find(sel, this, null, [cur]).length;\n }\n\n if (matchedSelectors[sel]) {\n matchedHandlers.push(handleObj);\n }\n }\n\n if (matchedHandlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: matchedHandlers\n });\n }\n }\n }\n } // Add the remaining (directly-bound) handlers\n\n\n cur = this;\n\n if (delegateCount < _handlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: _handlers.slice(delegateCount)\n });\n }\n\n return handlerQueue;\n },\n addProp: function addProp(name, hook) {\n Object.defineProperty(jQuery.Event.prototype, name, {\n enumerable: true,\n configurable: true,\n get: isFunction(hook) ? function () {\n if (this.originalEvent) {\n return hook(this.originalEvent);\n }\n } : function () {\n if (this.originalEvent) {\n return this.originalEvent[name];\n }\n },\n set: function set(value) {\n Object.defineProperty(this, name, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: value\n });\n }\n });\n },\n fix: function fix(originalEvent) {\n return originalEvent[jQuery.expando] ? originalEvent : new jQuery.Event(originalEvent);\n },\n special: {\n load: {\n // Prevent triggered image.load events from bubbling to window.load\n noBubble: true\n },\n click: {\n // Utilize native event to ensure correct state for checkable inputs\n setup: function setup(data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Claim the first handler\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n // dataPriv.set( el, \"click\", ... )\n leverageNative(el, \"click\", returnTrue);\n } // Return false to allow normal processing in the caller\n\n\n return false;\n },\n trigger: function trigger(data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Force setup before triggering a click\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n leverageNative(el, \"click\");\n } // Return non-false to allow normal event-path propagation\n\n\n return true;\n },\n // For cross-browser consistency, suppress native .click() on links\n // Also prevent it if we're currently inside a leveraged native-event stack\n _default: function _default(event) {\n var target = event.target;\n return rcheckableType.test(target.type) && target.click && nodeName(target, \"input\") && dataPriv.get(target, \"click\") || nodeName(target, \"a\");\n }\n },\n beforeunload: {\n postDispatch: function postDispatch(event) {\n // Support: Firefox 20+\n // Firefox doesn't alert if the returnValue field is not set.\n if (event.result !== undefined && event.originalEvent) {\n event.originalEvent.returnValue = event.result;\n }\n }\n }\n }\n }; // Ensure the presence of an event listener that handles manually-triggered\n // synthetic events by interrupting progress until reinvoked in response to\n // *native* events that it fires directly, ensuring that state changes have\n // already occurred before other listeners are invoked.\n\n function leverageNative(el, type, expectSync) {\n // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n if (!expectSync) {\n if (dataPriv.get(el, type) === undefined) {\n jQuery.event.add(el, type, returnTrue);\n }\n\n return;\n } // Register the controller as a special universal handler for all event namespaces\n\n\n dataPriv.set(el, type, false);\n jQuery.event.add(el, type, {\n namespace: false,\n handler: function handler(event) {\n var notAsync,\n result,\n saved = dataPriv.get(this, type);\n\n if (event.isTrigger & 1 && this[type]) {\n // Interrupt processing of the outer synthetic .trigger()ed event\n // Saved data should be false in such cases, but might be a leftover capture object\n // from an async native handler (gh-4350)\n if (!saved.length) {\n // Store arguments for use when handling the inner native event\n // There will always be at least one argument (an event object), so this array\n // will not be confused with a leftover capture object.\n saved = _slice.call(arguments);\n dataPriv.set(this, type, saved); // Trigger the native event and capture its result\n // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous\n\n notAsync = expectSync(this, type);\n this[type]();\n result = dataPriv.get(this, type);\n\n if (saved !== result || notAsync) {\n dataPriv.set(this, type, false);\n } else {\n result = {};\n }\n\n if (saved !== result) {\n // Cancel the outer synthetic event\n event.stopImmediatePropagation();\n event.preventDefault();\n return result.value;\n } // If this is an inner synthetic event for an event with a bubbling surrogate\n // (focus or blur), assume that the surrogate already propagated from triggering the\n // native event and prevent that from happening again here.\n // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n // bubbling surrogate propagates *after* the non-bubbling base), but that seems\n // less bad than duplication.\n\n } else if ((jQuery.event.special[type] || {}).delegateType) {\n event.stopPropagation();\n } // If this is a native event triggered above, everything is now in order\n // Fire an inner synthetic event with the original arguments\n\n } else if (saved.length) {\n // ...and capture the result\n dataPriv.set(this, type, {\n value: jQuery.event.trigger( // Support: IE <=9 - 11+\n // Extend with the prototype to reset the above stopImmediatePropagation()\n jQuery.extend(saved[0], jQuery.Event.prototype), saved.slice(1), this)\n }); // Abort handling of the native event\n\n event.stopImmediatePropagation();\n }\n }\n });\n }\n\n jQuery.removeEvent = function (elem, type, handle) {\n // This \"if\" is needed for plain objects\n if (elem.removeEventListener) {\n elem.removeEventListener(type, handle);\n }\n };\n\n jQuery.Event = function (src, props) {\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof jQuery.Event)) {\n return new jQuery.Event(src, props);\n } // Event object\n\n\n if (src && src.type) {\n this.originalEvent = src;\n this.type = src.type; // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n\n this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined && // Support: Android <=2.3 only\n src.returnValue === false ? returnTrue : returnFalse; // Create target properties\n // Support: Safari <=6 - 7 only\n // Target should not be a text node (#504, #13143)\n\n this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target;\n this.currentTarget = src.currentTarget;\n this.relatedTarget = src.relatedTarget; // Event type\n } else {\n this.type = src;\n } // Put explicitly provided properties onto the event object\n\n\n if (props) {\n jQuery.extend(this, props);\n } // Create a timestamp if incoming event doesn't have one\n\n\n this.timeStamp = src && src.timeStamp || Date.now(); // Mark it as fixed\n\n this[jQuery.expando] = true;\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\n\n\n jQuery.Event.prototype = {\n constructor: jQuery.Event,\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse,\n isSimulated: false,\n preventDefault: function preventDefault() {\n var e = this.originalEvent;\n this.isDefaultPrevented = returnTrue;\n\n if (e && !this.isSimulated) {\n e.preventDefault();\n }\n },\n stopPropagation: function stopPropagation() {\n var e = this.originalEvent;\n this.isPropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function stopImmediatePropagation() {\n var e = this.originalEvent;\n this.isImmediatePropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopImmediatePropagation();\n }\n\n this.stopPropagation();\n }\n }; // Includes all common event props including KeyEvent and MouseEvent specific props\n\n jQuery.each({\n altKey: true,\n bubbles: true,\n cancelable: true,\n changedTouches: true,\n ctrlKey: true,\n detail: true,\n eventPhase: true,\n metaKey: true,\n pageX: true,\n pageY: true,\n shiftKey: true,\n view: true,\n \"char\": true,\n code: true,\n charCode: true,\n key: true,\n keyCode: true,\n button: true,\n buttons: true,\n clientX: true,\n clientY: true,\n offsetX: true,\n offsetY: true,\n pointerId: true,\n pointerType: true,\n screenX: true,\n screenY: true,\n targetTouches: true,\n toElement: true,\n touches: true,\n which: function which(event) {\n var button = event.button; // Add which for key events\n\n if (event.which == null && rkeyEvent.test(event.type)) {\n return event.charCode != null ? event.charCode : event.keyCode;\n } // Add which for click: 1 === left; 2 === middle; 3 === right\n\n\n if (!event.which && button !== undefined && rmouseEvent.test(event.type)) {\n if (button & 1) {\n return 1;\n }\n\n if (button & 2) {\n return 3;\n }\n\n if (button & 4) {\n return 2;\n }\n\n return 0;\n }\n\n return event.which;\n }\n }, jQuery.event.addProp);\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (type, delegateType) {\n jQuery.event.special[type] = {\n // Utilize native event if possible so blur/focus sequence is correct\n setup: function setup() {\n // Claim the first handler\n // dataPriv.set( this, \"focus\", ... )\n // dataPriv.set( this, \"blur\", ... )\n leverageNative(this, type, expectSync); // Return false to allow normal processing in the caller\n\n return false;\n },\n trigger: function trigger() {\n // Force setup before trigger\n leverageNative(this, type); // Return non-false to allow normal event-path propagation\n\n return true;\n },\n delegateType: delegateType\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).\n\n jQuery.each({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\",\n pointerenter: \"pointerover\",\n pointerleave: \"pointerout\"\n }, function (orig, fix) {\n jQuery.event.special[orig] = {\n delegateType: fix,\n bindType: fix,\n handle: function handle(event) {\n var ret,\n target = this,\n related = event.relatedTarget,\n handleObj = event.handleObj; // For mouseenter/leave call the handler if related is outside the target.\n // NB: No relatedTarget if the mouse left/entered the browser window\n\n if (!related || related !== target && !jQuery.contains(target, related)) {\n event.type = handleObj.origType;\n ret = handleObj.handler.apply(this, arguments);\n event.type = fix;\n }\n\n return ret;\n }\n };\n });\n jQuery.fn.extend({\n on: function on(types, selector, data, fn) {\n return _on(this, types, selector, data, fn);\n },\n one: function one(types, selector, data, fn) {\n return _on(this, types, selector, data, fn, 1);\n },\n off: function off(types, selector, fn) {\n var handleObj, type;\n\n if (types && types.preventDefault && types.handleObj) {\n // ( event ) dispatched jQuery.Event\n handleObj = types.handleObj;\n jQuery(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler);\n return this;\n }\n\n if (_typeof(types) === \"object\") {\n // ( types-object [, selector] )\n for (type in types) {\n this.off(type, selector, types[type]);\n }\n\n return this;\n }\n\n if (selector === false || typeof selector === \"function\") {\n // ( types [, fn] )\n fn = selector;\n selector = undefined;\n }\n\n if (fn === false) {\n fn = returnFalse;\n }\n\n return this.each(function () {\n jQuery.event.remove(this, types, fn, selector);\n });\n }\n });\n var // Support: IE <=10 - 11, Edge 12 - 13 only\n // In IE/Edge using regex groups here causes severe slowdowns.\n // See https://connect.microsoft.com/IE/feedback/details/1736512/\n rnoInnerhtml = /\\s*$/g; // Prefer a tbody over its parent table for containing new rows\n\n function manipulationTarget(elem, content) {\n if (nodeName(elem, \"table\") && nodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\")) {\n return jQuery(elem).children(\"tbody\")[0] || elem;\n }\n\n return elem;\n } // Replace/restore the type attribute of script elements for safe DOM manipulation\n\n\n function disableScript(elem) {\n elem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n return elem;\n }\n\n function restoreScript(elem) {\n if ((elem.type || \"\").slice(0, 5) === \"true/\") {\n elem.type = elem.type.slice(5);\n } else {\n elem.removeAttribute(\"type\");\n }\n\n return elem;\n }\n\n function cloneCopyEvent(src, dest) {\n var i, l, type, pdataOld, udataOld, udataCur, events;\n\n if (dest.nodeType !== 1) {\n return;\n } // 1. Copy private data: events, handlers, etc.\n\n\n if (dataPriv.hasData(src)) {\n pdataOld = dataPriv.get(src);\n events = pdataOld.events;\n\n if (events) {\n dataPriv.remove(dest, \"handle events\");\n\n for (type in events) {\n for (i = 0, l = events[type].length; i < l; i++) {\n jQuery.event.add(dest, type, events[type][i]);\n }\n }\n }\n } // 2. Copy user data\n\n\n if (dataUser.hasData(src)) {\n udataOld = dataUser.access(src);\n udataCur = jQuery.extend({}, udataOld);\n dataUser.set(dest, udataCur);\n }\n } // Fix IE bugs, see support tests\n\n\n function fixInput(src, dest) {\n var nodeName = dest.nodeName.toLowerCase(); // Fails to persist the checked state of a cloned checkbox or radio button.\n\n if (nodeName === \"input\" && rcheckableType.test(src.type)) {\n dest.checked = src.checked; // Fails to return the selected option to the default selected state when cloning options\n } else if (nodeName === \"input\" || nodeName === \"textarea\") {\n dest.defaultValue = src.defaultValue;\n }\n }\n\n function domManip(collection, args, callback, ignored) {\n // Flatten any nested arrays\n args = flat(args);\n var fragment,\n first,\n scripts,\n hasScripts,\n node,\n doc,\n i = 0,\n l = collection.length,\n iNoClone = l - 1,\n value = args[0],\n valueIsFunction = isFunction(value); // We can't cloneNode fragments that contain checked, in WebKit\n\n if (valueIsFunction || l > 1 && typeof value === \"string\" && !support.checkClone && rchecked.test(value)) {\n return collection.each(function (index) {\n var self = collection.eq(index);\n\n if (valueIsFunction) {\n args[0] = value.call(this, index, self.html());\n }\n\n domManip(self, args, callback, ignored);\n });\n }\n\n if (l) {\n fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);\n first = fragment.firstChild;\n\n if (fragment.childNodes.length === 1) {\n fragment = first;\n } // Require either new content or an interest in ignored elements to invoke the callback\n\n\n if (first || ignored) {\n scripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\n hasScripts = scripts.length; // Use the original fragment for the last item\n // instead of the first because it can end up\n // being emptied incorrectly in certain situations (#8070).\n\n for (; i < l; i++) {\n node = fragment;\n\n if (i !== iNoClone) {\n node = jQuery.clone(node, true, true); // Keep references to cloned scripts for later restoration\n\n if (hasScripts) {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(scripts, getAll(node, \"script\"));\n }\n }\n\n callback.call(collection[i], node, i);\n }\n\n if (hasScripts) {\n doc = scripts[scripts.length - 1].ownerDocument; // Reenable scripts\n\n jQuery.map(scripts, restoreScript); // Evaluate executable scripts on first document insertion\n\n for (i = 0; i < hasScripts; i++) {\n node = scripts[i];\n\n if (rscriptType.test(node.type || \"\") && !dataPriv.access(node, \"globalEval\") && jQuery.contains(doc, node)) {\n if (node.src && (node.type || \"\").toLowerCase() !== \"module\") {\n // Optional AJAX dependency, but won't run scripts if not present\n if (jQuery._evalUrl && !node.noModule) {\n jQuery._evalUrl(node.src, {\n nonce: node.nonce || node.getAttribute(\"nonce\")\n }, doc);\n }\n } else {\n DOMEval(node.textContent.replace(rcleanScript, \"\"), node, doc);\n }\n }\n }\n }\n }\n }\n\n return collection;\n }\n\n function _remove(elem, selector, keepData) {\n var node,\n nodes = selector ? jQuery.filter(selector, elem) : elem,\n i = 0;\n\n for (; (node = nodes[i]) != null; i++) {\n if (!keepData && node.nodeType === 1) {\n jQuery.cleanData(getAll(node));\n }\n\n if (node.parentNode) {\n if (keepData && isAttached(node)) {\n setGlobalEval(getAll(node, \"script\"));\n }\n\n node.parentNode.removeChild(node);\n }\n }\n\n return elem;\n }\n\n jQuery.extend({\n htmlPrefilter: function htmlPrefilter(html) {\n return html;\n },\n clone: function clone(elem, dataAndEvents, deepDataAndEvents) {\n var i,\n l,\n srcElements,\n destElements,\n clone = elem.cloneNode(true),\n inPage = isAttached(elem); // Fix IE cloning issues\n\n if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) {\n // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n destElements = getAll(clone);\n srcElements = getAll(elem);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n fixInput(srcElements[i], destElements[i]);\n }\n } // Copy the events from the original to the clone\n\n\n if (dataAndEvents) {\n if (deepDataAndEvents) {\n srcElements = srcElements || getAll(elem);\n destElements = destElements || getAll(clone);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n cloneCopyEvent(srcElements[i], destElements[i]);\n }\n } else {\n cloneCopyEvent(elem, clone);\n }\n } // Preserve script evaluation history\n\n\n destElements = getAll(clone, \"script\");\n\n if (destElements.length > 0) {\n setGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\n } // Return the cloned set\n\n\n return clone;\n },\n cleanData: function cleanData(elems) {\n var data,\n elem,\n type,\n special = jQuery.event.special,\n i = 0;\n\n for (; (elem = elems[i]) !== undefined; i++) {\n if (acceptData(elem)) {\n if (data = elem[dataPriv.expando]) {\n if (data.events) {\n for (type in data.events) {\n if (special[type]) {\n jQuery.event.remove(elem, type); // This is a shortcut to avoid jQuery.event.remove's overhead\n } else {\n jQuery.removeEvent(elem, type, data.handle);\n }\n }\n } // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n\n\n elem[dataPriv.expando] = undefined;\n }\n\n if (elem[dataUser.expando]) {\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataUser.expando] = undefined;\n }\n }\n }\n }\n });\n jQuery.fn.extend({\n detach: function detach(selector) {\n return _remove(this, selector, true);\n },\n remove: function remove(selector) {\n return _remove(this, selector);\n },\n text: function text(value) {\n return access(this, function (value) {\n return value === undefined ? jQuery.text(this) : this.empty().each(function () {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n this.textContent = value;\n }\n });\n }, null, value, arguments.length);\n },\n append: function append() {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.appendChild(elem);\n }\n });\n },\n prepend: function prepend() {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.insertBefore(elem, target.firstChild);\n }\n });\n },\n before: function before() {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this);\n }\n });\n },\n after: function after() {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this.nextSibling);\n }\n });\n },\n empty: function empty() {\n var elem,\n i = 0;\n\n for (; (elem = this[i]) != null; i++) {\n if (elem.nodeType === 1) {\n // Prevent memory leaks\n jQuery.cleanData(getAll(elem, false)); // Remove any remaining nodes\n\n elem.textContent = \"\";\n }\n }\n\n return this;\n },\n clone: function clone(dataAndEvents, deepDataAndEvents) {\n dataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n return this.map(function () {\n return jQuery.clone(this, dataAndEvents, deepDataAndEvents);\n });\n },\n html: function html(value) {\n return access(this, function (value) {\n var elem = this[0] || {},\n i = 0,\n l = this.length;\n\n if (value === undefined && elem.nodeType === 1) {\n return elem.innerHTML;\n } // See if we can take a shortcut and just use innerHTML\n\n\n if (typeof value === \"string\" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\n value = jQuery.htmlPrefilter(value);\n\n try {\n for (; i < l; i++) {\n elem = this[i] || {}; // Remove element nodes and prevent memory leaks\n\n if (elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem, false));\n elem.innerHTML = value;\n }\n }\n\n elem = 0; // If using innerHTML throws an exception, use the fallback method\n } catch (e) {}\n }\n\n if (elem) {\n this.empty().append(value);\n }\n }, null, value, arguments.length);\n },\n replaceWith: function replaceWith() {\n var ignored = []; // Make the changes, replacing each non-ignored context element with the new content\n\n return domManip(this, arguments, function (elem) {\n var parent = this.parentNode;\n\n if (jQuery.inArray(this, ignored) < 0) {\n jQuery.cleanData(getAll(this));\n\n if (parent) {\n parent.replaceChild(elem, this);\n }\n } // Force callback invocation\n\n }, ignored);\n }\n });\n jQuery.each({\n appendTo: \"append\",\n prependTo: \"prepend\",\n insertBefore: \"before\",\n insertAfter: \"after\",\n replaceAll: \"replaceWith\"\n }, function (name, original) {\n jQuery.fn[name] = function (selector) {\n var elems,\n ret = [],\n insert = jQuery(selector),\n last = insert.length - 1,\n i = 0;\n\n for (; i <= last; i++) {\n elems = i === last ? this : this.clone(true);\n jQuery(insert[i])[original](elems); // Support: Android <=4.0 only, PhantomJS 1 only\n // .get() because push.apply(_, arraylike) throws on ancient WebKit\n\n push.apply(ret, elems.get());\n }\n\n return this.pushStack(ret);\n };\n });\n var rnumnonpx = new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n\n var getStyles = function getStyles(elem) {\n // Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n // IE throws on elements created in popups\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n var view = elem.ownerDocument.defaultView;\n\n if (!view || !view.opener) {\n view = window;\n }\n\n return view.getComputedStyle(elem);\n };\n\n var swap = function swap(elem, options, callback) {\n var ret,\n name,\n old = {}; // Remember the old values, and insert the new ones\n\n for (name in options) {\n old[name] = elem.style[name];\n elem.style[name] = options[name];\n }\n\n ret = callback.call(elem); // Revert the old values\n\n for (name in options) {\n elem.style[name] = old[name];\n }\n\n return ret;\n };\n\n var rboxStyle = new RegExp(cssExpand.join(\"|\"), \"i\");\n\n (function () {\n // Executing both pixelPosition & boxSizingReliable tests require only one layout\n // so they're executed at the same time to save the second computation.\n function computeStyleTests() {\n // This is a singleton, we need to execute it only once\n if (!div) {\n return;\n }\n\n container.style.cssText = \"position:absolute;left:-11111px;width:60px;\" + \"margin-top:1px;padding:0;border:0\";\n div.style.cssText = \"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" + \"margin:auto;border:1px;padding:1px;\" + \"width:60%;top:1%\";\n documentElement.appendChild(container).appendChild(div);\n var divStyle = window.getComputedStyle(div);\n pixelPositionVal = divStyle.top !== \"1%\"; // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\n reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12; // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n // Some styles come back with percentage values, even though they shouldn't\n\n div.style.right = \"60%\";\n pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36; // Support: IE 9 - 11 only\n // Detect misreporting of content dimensions for box-sizing:border-box elements\n\n boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36; // Support: IE 9 only\n // Detect overflow:scroll screwiness (gh-3699)\n // Support: Chrome <=64\n // Don't get tricked when zoom affects offsetWidth (gh-4029)\n\n div.style.position = \"absolute\";\n scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;\n documentElement.removeChild(container); // Nullify the div so it wouldn't be stored in the memory and\n // it will also be a sign that checks already performed\n\n div = null;\n }\n\n function roundPixelMeasures(measure) {\n return Math.round(parseFloat(measure));\n }\n\n var pixelPositionVal,\n boxSizingReliableVal,\n scrollboxSizeVal,\n pixelBoxStylesVal,\n reliableTrDimensionsVal,\n reliableMarginLeftVal,\n container = document.createElement(\"div\"),\n div = document.createElement(\"div\"); // Finish early in limited (non-browser) environments\n\n if (!div.style) {\n return;\n } // Support: IE <=9 - 11 only\n // Style of cloned element affects source element cloned (#8908)\n\n\n div.style.backgroundClip = \"content-box\";\n div.cloneNode(true).style.backgroundClip = \"\";\n support.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n jQuery.extend(support, {\n boxSizingReliable: function boxSizingReliable() {\n computeStyleTests();\n return boxSizingReliableVal;\n },\n pixelBoxStyles: function pixelBoxStyles() {\n computeStyleTests();\n return pixelBoxStylesVal;\n },\n pixelPosition: function pixelPosition() {\n computeStyleTests();\n return pixelPositionVal;\n },\n reliableMarginLeft: function reliableMarginLeft() {\n computeStyleTests();\n return reliableMarginLeftVal;\n },\n scrollboxSize: function scrollboxSize() {\n computeStyleTests();\n return scrollboxSizeVal;\n },\n // Support: IE 9 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Behavior in IE 9 is more subtle than in newer versions & it passes\n // some versions of this test; make sure not to make it pass there!\n reliableTrDimensions: function reliableTrDimensions() {\n var table, tr, trChild, trStyle;\n\n if (reliableTrDimensionsVal == null) {\n table = document.createElement(\"table\");\n tr = document.createElement(\"tr\");\n trChild = document.createElement(\"div\");\n table.style.cssText = \"position:absolute;left:-11111px\";\n tr.style.height = \"1px\";\n trChild.style.height = \"9px\";\n documentElement.appendChild(table).appendChild(tr).appendChild(trChild);\n trStyle = window.getComputedStyle(tr);\n reliableTrDimensionsVal = parseInt(trStyle.height) > 3;\n documentElement.removeChild(table);\n }\n\n return reliableTrDimensionsVal;\n }\n });\n })();\n\n function curCSS(elem, name, computed) {\n var width,\n minWidth,\n maxWidth,\n ret,\n // Support: Firefox 51+\n // Retrieving style before computed somehow\n // fixes an issue with getting wrong values\n // on detached elements\n style = elem.style;\n computed = computed || getStyles(elem); // getPropertyValue is needed for:\n // .css('filter') (IE 9 only, #12537)\n // .css('--customProperty) (#3144)\n\n if (computed) {\n ret = computed.getPropertyValue(name) || computed[name];\n\n if (ret === \"\" && !isAttached(elem)) {\n ret = jQuery.style(elem, name);\n } // A tribute to the \"awesome hack by Dean Edwards\"\n // Android Browser returns percentage for some values,\n // but width seems to be reliably pixels.\n // This is against the CSSOM draft spec:\n // https://drafts.csswg.org/cssom/#resolved-values\n\n\n if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) {\n // Remember the original values\n width = style.width;\n minWidth = style.minWidth;\n maxWidth = style.maxWidth; // Put in the new values to get a computed value out\n\n style.minWidth = style.maxWidth = style.width = ret;\n ret = computed.width; // Revert the changed values\n\n style.width = width;\n style.minWidth = minWidth;\n style.maxWidth = maxWidth;\n }\n }\n\n return ret !== undefined ? // Support: IE <=9 - 11 only\n // IE returns zIndex value as an integer.\n ret + \"\" : ret;\n }\n\n function addGetHookIf(conditionFn, hookFn) {\n // Define the hook, we'll check on the first run if it's really needed.\n return {\n get: function get() {\n if (conditionFn()) {\n // Hook not needed (or it's not possible to use it due\n // to missing dependency), remove it.\n delete this.get;\n return;\n } // Hook needed; redefine it so that the support test is not executed again.\n\n\n return (this.get = hookFn).apply(this, arguments);\n }\n };\n }\n\n var cssPrefixes = [\"Webkit\", \"Moz\", \"ms\"],\n emptyStyle = document.createElement(\"div\").style,\n vendorProps = {}; // Return a vendor-prefixed property or undefined\n\n function vendorPropName(name) {\n // Check for vendor prefixed names\n var capName = name[0].toUpperCase() + name.slice(1),\n i = cssPrefixes.length;\n\n while (i--) {\n name = cssPrefixes[i] + capName;\n\n if (name in emptyStyle) {\n return name;\n }\n }\n } // Return a potentially-mapped jQuery.cssProps or vendor prefixed property\n\n\n function finalPropName(name) {\n var _final = jQuery.cssProps[name] || vendorProps[name];\n\n if (_final) {\n return _final;\n }\n\n if (name in emptyStyle) {\n return name;\n }\n\n return vendorProps[name] = vendorPropName(name) || name;\n }\n\n var // Swappable if display is none or starts with table\n // except \"table\", \"table-cell\", or \"table-caption\"\n // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n rdisplayswap = /^(none|table(?!-c[ea]).+)/,\n rcustomProp = /^--/,\n cssShow = {\n position: \"absolute\",\n visibility: \"hidden\",\n display: \"block\"\n },\n cssNormalTransform = {\n letterSpacing: \"0\",\n fontWeight: \"400\"\n };\n\n function setPositiveNumber(_elem, value, subtract) {\n // Any relative (+/-) values have already been\n // normalized at this point\n var matches = rcssNum.exec(value);\n return matches ? // Guard against undefined \"subtract\", e.g., when used as in cssHooks\n Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || \"px\") : value;\n }\n\n function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {\n var i = dimension === \"width\" ? 1 : 0,\n extra = 0,\n delta = 0; // Adjustment may not be necessary\n\n if (box === (isBorderBox ? \"border\" : \"content\")) {\n return 0;\n }\n\n for (; i < 4; i += 2) {\n // Both box models exclude margin\n if (box === \"margin\") {\n delta += jQuery.css(elem, box + cssExpand[i], true, styles);\n } // If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\n\n if (!isBorderBox) {\n // Add padding\n delta += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles); // For \"border\" or \"margin\", add border\n\n if (box !== \"padding\") {\n delta += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles); // But still keep track of it otherwise\n } else {\n extra += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n } // If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n // \"padding\" or \"margin\"\n\n } else {\n // For \"content\", subtract padding\n if (box === \"content\") {\n delta -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n } // For \"content\" or \"padding\", subtract border\n\n\n if (box !== \"margin\") {\n delta -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n }\n } // Account for positive content-box scroll gutter when requested by providing computedVal\n\n\n if (!isBorderBox && computedVal >= 0) {\n // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n // Assuming integer scroll gutter, subtract the rest and round down\n delta += Math.max(0, Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5 // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n // Use an explicit zero to avoid NaN (gh-3964)\n )) || 0;\n }\n\n return delta;\n }\n\n function getWidthOrHeight(elem, dimension, extra) {\n // Start with computed style\n var styles = getStyles(elem),\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n // Fake content-box until we know it's needed to know the true value.\n boxSizingNeeded = !support.boxSizingReliable() || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n valueIsBorderBox = isBorderBox,\n val = curCSS(elem, dimension, styles),\n offsetProp = \"offset\" + dimension[0].toUpperCase() + dimension.slice(1); // Support: Firefox <=54\n // Return a confounding non-pixel value or feign ignorance, as appropriate.\n\n if (rnumnonpx.test(val)) {\n if (!extra) {\n return val;\n }\n\n val = \"auto\";\n } // Support: IE 9 - 11 only\n // Use offsetWidth/offsetHeight for when box sizing is unreliable.\n // In those cases, the computed value can be trusted to be border-box.\n\n\n if ((!support.boxSizingReliable() && isBorderBox || // Support: IE 10 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Interestingly, in some cases IE 9 doesn't suffer from this issue.\n !support.reliableTrDimensions() && nodeName(elem, \"tr\") || // Fall back to offsetWidth/offsetHeight when value is \"auto\"\n // This happens for inline elements with no explicit setting (gh-3571)\n val === \"auto\" || // Support: Android <=4.1 - 4.3 only\n // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n !parseFloat(val) && jQuery.css(elem, \"display\", false, styles) === \"inline\") && // Make sure the element is visible & connected\n elem.getClientRects().length) {\n isBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\"; // Where available, offsetWidth/offsetHeight approximate border box dimensions.\n // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n // retrieved value as a content box dimension.\n\n valueIsBorderBox = offsetProp in elem;\n\n if (valueIsBorderBox) {\n val = elem[offsetProp];\n }\n } // Normalize \"\" and auto\n\n\n val = parseFloat(val) || 0; // Adjust for the element's box model\n\n return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles, // Provide the current computed size to request scroll gutter calculation (gh-3589)\n val) + \"px\";\n }\n\n jQuery.extend({\n // Add in style property hooks for overriding the default\n // behavior of getting and setting a style property\n cssHooks: {\n opacity: {\n get: function get(elem, computed) {\n if (computed) {\n // We should always get a number back from opacity\n var ret = curCSS(elem, \"opacity\");\n return ret === \"\" ? \"1\" : ret;\n }\n }\n }\n },\n // Don't automatically add \"px\" to these possibly-unitless properties\n cssNumber: {\n \"animationIterationCount\": true,\n \"columnCount\": true,\n \"fillOpacity\": true,\n \"flexGrow\": true,\n \"flexShrink\": true,\n \"fontWeight\": true,\n \"gridArea\": true,\n \"gridColumn\": true,\n \"gridColumnEnd\": true,\n \"gridColumnStart\": true,\n \"gridRow\": true,\n \"gridRowEnd\": true,\n \"gridRowStart\": true,\n \"lineHeight\": true,\n \"opacity\": true,\n \"order\": true,\n \"orphans\": true,\n \"widows\": true,\n \"zIndex\": true,\n \"zoom\": true\n },\n // Add in properties whose names you wish to fix before\n // setting or getting the value\n cssProps: {},\n // Get and set the style property on a DOM Node\n style: function style(elem, name, value, extra) {\n // Don't set styles on text and comment nodes\n if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {\n return;\n } // Make sure that we're working with the right name\n\n\n var ret,\n type,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name),\n style = elem.style; // Make sure that we're working with the right name. We don't\n // want to query the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Gets hook for the prefixed version, then unprefixed version\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // Check if we're setting a value\n\n if (value !== undefined) {\n type = _typeof(value); // Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\n if (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\n value = adjustCSS(elem, name, ret); // Fixes bug #9237\n\n type = \"number\";\n } // Make sure that null and NaN values aren't set (#7116)\n\n\n if (value == null || value !== value) {\n return;\n } // If a number was passed in, add the unit (except for certain CSS properties)\n // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n // \"px\" to a few hardcoded values.\n\n\n if (type === \"number\" && !isCustomProp) {\n value += ret && ret[3] || (jQuery.cssNumber[origName] ? \"\" : \"px\");\n } // background-* props affect original clone's values\n\n\n if (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\n style[name] = \"inherit\";\n } // If a hook was provided, use that value, otherwise just set the specified value\n\n\n if (!hooks || !(\"set\" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) {\n if (isCustomProp) {\n style.setProperty(name, value);\n } else {\n style[name] = value;\n }\n }\n } else {\n // If a hook was provided get the non-computed value from there\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) {\n return ret;\n } // Otherwise just get the value from the style object\n\n\n return style[name];\n }\n },\n css: function css(elem, name, extra, styles) {\n var val,\n num,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name); // Make sure that we're working with the right name. We don't\n // want to modify the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Try prefixed name followed by the unprefixed name\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // If a hook was provided get the computed value from there\n\n if (hooks && \"get\" in hooks) {\n val = hooks.get(elem, true, extra);\n } // Otherwise, if a way to get the computed value exists, use that\n\n\n if (val === undefined) {\n val = curCSS(elem, name, styles);\n } // Convert \"normal\" to computed value\n\n\n if (val === \"normal\" && name in cssNormalTransform) {\n val = cssNormalTransform[name];\n } // Make numeric if forced or a qualifier was provided and val looks numeric\n\n\n if (extra === \"\" || extra) {\n num = parseFloat(val);\n return extra === true || isFinite(num) ? num || 0 : val;\n }\n\n return val;\n }\n });\n jQuery.each([\"height\", \"width\"], function (_i, dimension) {\n jQuery.cssHooks[dimension] = {\n get: function get(elem, computed, extra) {\n if (computed) {\n // Certain elements can have dimension info if we invisibly show them\n // but it must have a current display style that would benefit\n return rdisplayswap.test(jQuery.css(elem, \"display\")) && ( // Support: Safari 8+\n // Table columns in Safari have non-zero offsetWidth & zero\n // getBoundingClientRect().width unless display is changed.\n // Support: IE <=11 only\n // Running getBoundingClientRect on a disconnected node\n // in IE throws an error.\n !elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function () {\n return getWidthOrHeight(elem, dimension, extra);\n }) : getWidthOrHeight(elem, dimension, extra);\n }\n },\n set: function set(elem, value, extra) {\n var matches,\n styles = getStyles(elem),\n // Only read styles.position if the test has a chance to fail\n // to avoid forcing a reflow.\n scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === \"absolute\",\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n boxSizingNeeded = scrollboxSizeBuggy || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n subtract = extra ? boxModelAdjustment(elem, dimension, extra, isBorderBox, styles) : 0; // Account for unreliable border-box dimensions by comparing offset* to computed and\n // faking a content-box to get border and padding (gh-3699)\n\n if (isBorderBox && scrollboxSizeBuggy) {\n subtract -= Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, \"border\", false, styles) - 0.5);\n } // Convert to pixels if value adjustment is needed\n\n\n if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || \"px\") !== \"px\") {\n elem.style[dimension] = value;\n value = jQuery.css(elem, dimension);\n }\n\n return setPositiveNumber(elem, value, subtract);\n }\n };\n });\n jQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, function (elem, computed) {\n if (computed) {\n return (parseFloat(curCSS(elem, \"marginLeft\")) || elem.getBoundingClientRect().left - swap(elem, {\n marginLeft: 0\n }, function () {\n return elem.getBoundingClientRect().left;\n })) + \"px\";\n }\n }); // These hooks are used by animate to expand properties\n\n jQuery.each({\n margin: \"\",\n padding: \"\",\n border: \"Width\"\n }, function (prefix, suffix) {\n jQuery.cssHooks[prefix + suffix] = {\n expand: function expand(value) {\n var i = 0,\n expanded = {},\n // Assumes a single number if not a string\n parts = typeof value === \"string\" ? value.split(\" \") : [value];\n\n for (; i < 4; i++) {\n expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0];\n }\n\n return expanded;\n }\n };\n\n if (prefix !== \"margin\") {\n jQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\n }\n });\n jQuery.fn.extend({\n css: function css(name, value) {\n return access(this, function (elem, name, value) {\n var styles,\n len,\n map = {},\n i = 0;\n\n if (Array.isArray(name)) {\n styles = getStyles(elem);\n len = name.length;\n\n for (; i < len; i++) {\n map[name[i]] = jQuery.css(elem, name[i], false, styles);\n }\n\n return map;\n }\n\n return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name);\n }, name, value, arguments.length > 1);\n }\n });\n\n function Tween(elem, options, prop, end, easing) {\n return new Tween.prototype.init(elem, options, prop, end, easing);\n }\n\n jQuery.Tween = Tween;\n Tween.prototype = {\n constructor: Tween,\n init: function init(elem, options, prop, end, easing, unit) {\n this.elem = elem;\n this.prop = prop;\n this.easing = easing || jQuery.easing._default;\n this.options = options;\n this.start = this.now = this.cur();\n this.end = end;\n this.unit = unit || (jQuery.cssNumber[prop] ? \"\" : \"px\");\n },\n cur: function cur() {\n var hooks = Tween.propHooks[this.prop];\n return hooks && hooks.get ? hooks.get(this) : Tween.propHooks._default.get(this);\n },\n run: function run(percent) {\n var eased,\n hooks = Tween.propHooks[this.prop];\n\n if (this.options.duration) {\n this.pos = eased = jQuery.easing[this.easing](percent, this.options.duration * percent, 0, 1, this.options.duration);\n } else {\n this.pos = eased = percent;\n }\n\n this.now = (this.end - this.start) * eased + this.start;\n\n if (this.options.step) {\n this.options.step.call(this.elem, this.now, this);\n }\n\n if (hooks && hooks.set) {\n hooks.set(this);\n } else {\n Tween.propHooks._default.set(this);\n }\n\n return this;\n }\n };\n Tween.prototype.init.prototype = Tween.prototype;\n Tween.propHooks = {\n _default: {\n get: function get(tween) {\n var result; // Use a property on the element directly when it is not a DOM element,\n // or when there is no matching style property that exists.\n\n if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) {\n return tween.elem[tween.prop];\n } // Passing an empty string as a 3rd parameter to .css will automatically\n // attempt a parseFloat and fallback to a string if the parse fails.\n // Simple values such as \"10px\" are parsed to Float;\n // complex values such as \"rotate(1rad)\" are returned as-is.\n\n\n result = jQuery.css(tween.elem, tween.prop, \"\"); // Empty strings, null, undefined and \"auto\" are converted to 0.\n\n return !result || result === \"auto\" ? 0 : result;\n },\n set: function set(tween) {\n // Use step hook for back compat.\n // Use cssHook if its there.\n // Use .style if available and use plain properties where available.\n if (jQuery.fx.step[tween.prop]) {\n jQuery.fx.step[tween.prop](tween);\n } else if (tween.elem.nodeType === 1 && (jQuery.cssHooks[tween.prop] || tween.elem.style[finalPropName(tween.prop)] != null)) {\n jQuery.style(tween.elem, tween.prop, tween.now + tween.unit);\n } else {\n tween.elem[tween.prop] = tween.now;\n }\n }\n }\n }; // Support: IE <=9 only\n // Panic based approach to setting things on disconnected nodes\n\n Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n set: function set(tween) {\n if (tween.elem.nodeType && tween.elem.parentNode) {\n tween.elem[tween.prop] = tween.now;\n }\n }\n };\n jQuery.easing = {\n linear: function linear(p) {\n return p;\n },\n swing: function swing(p) {\n return 0.5 - Math.cos(p * Math.PI) / 2;\n },\n _default: \"swing\"\n };\n jQuery.fx = Tween.prototype.init; // Back compat <1.8 extension point\n\n jQuery.fx.step = {};\n var fxNow,\n inProgress,\n rfxtypes = /^(?:toggle|show|hide)$/,\n rrun = /queueHooks$/;\n\n function schedule() {\n if (inProgress) {\n if (document.hidden === false && window.requestAnimationFrame) {\n window.requestAnimationFrame(schedule);\n } else {\n window.setTimeout(schedule, jQuery.fx.interval);\n }\n\n jQuery.fx.tick();\n }\n } // Animations created synchronously will run synchronously\n\n\n function createFxNow() {\n window.setTimeout(function () {\n fxNow = undefined;\n });\n return fxNow = Date.now();\n } // Generate parameters to create a standard animation\n\n\n function genFx(type, includeWidth) {\n var which,\n i = 0,\n attrs = {\n height: type\n }; // If we include width, step value is 1 to do all cssExpand values,\n // otherwise step value is 2 to skip over Left and Right\n\n includeWidth = includeWidth ? 1 : 0;\n\n for (; i < 4; i += 2 - includeWidth) {\n which = cssExpand[i];\n attrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\n }\n\n if (includeWidth) {\n attrs.opacity = attrs.width = type;\n }\n\n return attrs;\n }\n\n function createTween(value, prop, animation) {\n var tween,\n collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners[\"*\"]),\n index = 0,\n length = collection.length;\n\n for (; index < length; index++) {\n if (tween = collection[index].call(animation, prop, value)) {\n // We're done with this property\n return tween;\n }\n }\n }\n\n function defaultPrefilter(elem, props, opts) {\n var prop,\n value,\n toggle,\n hooks,\n oldfire,\n propTween,\n restoreDisplay,\n display,\n isBox = \"width\" in props || \"height\" in props,\n anim = this,\n orig = {},\n style = elem.style,\n hidden = elem.nodeType && isHiddenWithinTree(elem),\n dataShow = dataPriv.get(elem, \"fxshow\"); // Queue-skipping animations hijack the fx hooks\n\n if (!opts.queue) {\n hooks = jQuery._queueHooks(elem, \"fx\");\n\n if (hooks.unqueued == null) {\n hooks.unqueued = 0;\n oldfire = hooks.empty.fire;\n\n hooks.empty.fire = function () {\n if (!hooks.unqueued) {\n oldfire();\n }\n };\n }\n\n hooks.unqueued++;\n anim.always(function () {\n // Ensure the complete handler is called before this completes\n anim.always(function () {\n hooks.unqueued--;\n\n if (!jQuery.queue(elem, \"fx\").length) {\n hooks.empty.fire();\n }\n });\n });\n } // Detect show/hide animations\n\n\n for (prop in props) {\n value = props[prop];\n\n if (rfxtypes.test(value)) {\n delete props[prop];\n toggle = toggle || value === \"toggle\";\n\n if (value === (hidden ? \"hide\" : \"show\")) {\n // Pretend to be hidden if this is a \"show\" and\n // there is still data from a stopped show/hide\n if (value === \"show\" && dataShow && dataShow[prop] !== undefined) {\n hidden = true; // Ignore all other no-op show/hide data\n } else {\n continue;\n }\n }\n\n orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\n }\n } // Bail out if this is a no-op like .hide().hide()\n\n\n propTween = !jQuery.isEmptyObject(props);\n\n if (!propTween && jQuery.isEmptyObject(orig)) {\n return;\n } // Restrict \"overflow\" and \"display\" styles during box animations\n\n\n if (isBox && elem.nodeType === 1) {\n // Support: IE <=9 - 11, Edge 12 - 15\n // Record all 3 overflow attributes because IE does not infer the shorthand\n // from identically-valued overflowX and overflowY and Edge just mirrors\n // the overflowX value there.\n opts.overflow = [style.overflow, style.overflowX, style.overflowY]; // Identify a display type, preferring old show/hide data over the CSS cascade\n\n restoreDisplay = dataShow && dataShow.display;\n\n if (restoreDisplay == null) {\n restoreDisplay = dataPriv.get(elem, \"display\");\n }\n\n display = jQuery.css(elem, \"display\");\n\n if (display === \"none\") {\n if (restoreDisplay) {\n display = restoreDisplay;\n } else {\n // Get nonempty value(s) by temporarily forcing visibility\n showHide([elem], true);\n restoreDisplay = elem.style.display || restoreDisplay;\n display = jQuery.css(elem, \"display\");\n showHide([elem]);\n }\n } // Animate inline elements as inline-block\n\n\n if (display === \"inline\" || display === \"inline-block\" && restoreDisplay != null) {\n if (jQuery.css(elem, \"float\") === \"none\") {\n // Restore the original display value at the end of pure show/hide animations\n if (!propTween) {\n anim.done(function () {\n style.display = restoreDisplay;\n });\n\n if (restoreDisplay == null) {\n display = style.display;\n restoreDisplay = display === \"none\" ? \"\" : display;\n }\n }\n\n style.display = \"inline-block\";\n }\n }\n }\n\n if (opts.overflow) {\n style.overflow = \"hidden\";\n anim.always(function () {\n style.overflow = opts.overflow[0];\n style.overflowX = opts.overflow[1];\n style.overflowY = opts.overflow[2];\n });\n } // Implement show/hide animations\n\n\n propTween = false;\n\n for (prop in orig) {\n // General show/hide setup for this element animation\n if (!propTween) {\n if (dataShow) {\n if (\"hidden\" in dataShow) {\n hidden = dataShow.hidden;\n }\n } else {\n dataShow = dataPriv.access(elem, \"fxshow\", {\n display: restoreDisplay\n });\n } // Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\n\n if (toggle) {\n dataShow.hidden = !hidden;\n } // Show elements before animating them\n\n\n if (hidden) {\n showHide([elem], true);\n }\n /* eslint-disable no-loop-func */\n\n\n anim.done(function () {\n /* eslint-enable no-loop-func */\n // The final step of a \"hide\" animation is actually hiding the element\n if (!hidden) {\n showHide([elem]);\n }\n\n dataPriv.remove(elem, \"fxshow\");\n\n for (prop in orig) {\n jQuery.style(elem, prop, orig[prop]);\n }\n });\n } // Per-property setup\n\n\n propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\n\n if (!(prop in dataShow)) {\n dataShow[prop] = propTween.start;\n\n if (hidden) {\n propTween.end = propTween.start;\n propTween.start = 0;\n }\n }\n }\n }\n\n function propFilter(props, specialEasing) {\n var index, name, easing, value, hooks; // camelCase, specialEasing and expand cssHook pass\n\n for (index in props) {\n name = camelCase(index);\n easing = specialEasing[name];\n value = props[index];\n\n if (Array.isArray(value)) {\n easing = value[1];\n value = props[index] = value[0];\n }\n\n if (index !== name) {\n props[name] = value;\n delete props[index];\n }\n\n hooks = jQuery.cssHooks[name];\n\n if (hooks && \"expand\" in hooks) {\n value = hooks.expand(value);\n delete props[name]; // Not quite $.extend, this won't overwrite existing keys.\n // Reusing 'index' because we have the correct \"name\"\n\n for (index in value) {\n if (!(index in props)) {\n props[index] = value[index];\n specialEasing[index] = easing;\n }\n }\n } else {\n specialEasing[name] = easing;\n }\n }\n }\n\n function Animation(elem, properties, options) {\n var result,\n stopped,\n index = 0,\n length = Animation.prefilters.length,\n deferred = jQuery.Deferred().always(function () {\n // Don't match elem in the :animated selector\n delete tick.elem;\n }),\n tick = function tick() {\n if (stopped) {\n return false;\n }\n\n var currentTime = fxNow || createFxNow(),\n remaining = Math.max(0, animation.startTime + animation.duration - currentTime),\n // Support: Android 2.3 only\n // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n temp = remaining / animation.duration || 0,\n percent = 1 - temp,\n index = 0,\n length = animation.tweens.length;\n\n for (; index < length; index++) {\n animation.tweens[index].run(percent);\n }\n\n deferred.notifyWith(elem, [animation, percent, remaining]); // If there's more to do, yield\n\n if (percent < 1 && length) {\n return remaining;\n } // If this was an empty animation, synthesize a final progress notification\n\n\n if (!length) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n } // Resolve the animation and report its conclusion\n\n\n deferred.resolveWith(elem, [animation]);\n return false;\n },\n animation = deferred.promise({\n elem: elem,\n props: jQuery.extend({}, properties),\n opts: jQuery.extend(true, {\n specialEasing: {},\n easing: jQuery.easing._default\n }, options),\n originalProperties: properties,\n originalOptions: options,\n startTime: fxNow || createFxNow(),\n duration: options.duration,\n tweens: [],\n createTween: function createTween(prop, end) {\n var tween = jQuery.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing);\n animation.tweens.push(tween);\n return tween;\n },\n stop: function stop(gotoEnd) {\n var index = 0,\n // If we are going to the end, we want to run all the tweens\n // otherwise we skip this part\n length = gotoEnd ? animation.tweens.length : 0;\n\n if (stopped) {\n return this;\n }\n\n stopped = true;\n\n for (; index < length; index++) {\n animation.tweens[index].run(1);\n } // Resolve when we played the last frame; otherwise, reject\n\n\n if (gotoEnd) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n deferred.resolveWith(elem, [animation, gotoEnd]);\n } else {\n deferred.rejectWith(elem, [animation, gotoEnd]);\n }\n\n return this;\n }\n }),\n props = animation.props;\n\n propFilter(props, animation.opts.specialEasing);\n\n for (; index < length; index++) {\n result = Animation.prefilters[index].call(animation, elem, props, animation.opts);\n\n if (result) {\n if (isFunction(result.stop)) {\n jQuery._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result);\n }\n\n return result;\n }\n }\n\n jQuery.map(props, createTween, animation);\n\n if (isFunction(animation.opts.start)) {\n animation.opts.start.call(elem, animation);\n } // Attach callbacks from options\n\n\n animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);\n jQuery.fx.timer(jQuery.extend(tick, {\n elem: elem,\n anim: animation,\n queue: animation.opts.queue\n }));\n return animation;\n }\n\n jQuery.Animation = jQuery.extend(Animation, {\n tweeners: {\n \"*\": [function (prop, value) {\n var tween = this.createTween(prop, value);\n adjustCSS(tween.elem, prop, rcssNum.exec(value), tween);\n return tween;\n }]\n },\n tweener: function tweener(props, callback) {\n if (isFunction(props)) {\n callback = props;\n props = [\"*\"];\n } else {\n props = props.match(rnothtmlwhite);\n }\n\n var prop,\n index = 0,\n length = props.length;\n\n for (; index < length; index++) {\n prop = props[index];\n Animation.tweeners[prop] = Animation.tweeners[prop] || [];\n Animation.tweeners[prop].unshift(callback);\n }\n },\n prefilters: [defaultPrefilter],\n prefilter: function prefilter(callback, prepend) {\n if (prepend) {\n Animation.prefilters.unshift(callback);\n } else {\n Animation.prefilters.push(callback);\n }\n }\n });\n\n jQuery.speed = function (speed, easing, fn) {\n var opt = speed && _typeof(speed) === \"object\" ? jQuery.extend({}, speed) : {\n complete: fn || !fn && easing || isFunction(speed) && speed,\n duration: speed,\n easing: fn && easing || easing && !isFunction(easing) && easing\n }; // Go to the end state if fx are off\n\n if (jQuery.fx.off) {\n opt.duration = 0;\n } else {\n if (typeof opt.duration !== \"number\") {\n if (opt.duration in jQuery.fx.speeds) {\n opt.duration = jQuery.fx.speeds[opt.duration];\n } else {\n opt.duration = jQuery.fx.speeds._default;\n }\n }\n } // Normalize opt.queue - true/undefined/null -> \"fx\"\n\n\n if (opt.queue == null || opt.queue === true) {\n opt.queue = \"fx\";\n } // Queueing\n\n\n opt.old = opt.complete;\n\n opt.complete = function () {\n if (isFunction(opt.old)) {\n opt.old.call(this);\n }\n\n if (opt.queue) {\n jQuery.dequeue(this, opt.queue);\n }\n };\n\n return opt;\n };\n\n jQuery.fn.extend({\n fadeTo: function fadeTo(speed, to, easing, callback) {\n // Show any hidden elements after setting opacity to 0\n return this.filter(isHiddenWithinTree).css(\"opacity\", 0).show() // Animate to the value specified\n .end().animate({\n opacity: to\n }, speed, easing, callback);\n },\n animate: function animate(prop, speed, easing, callback) {\n var empty = jQuery.isEmptyObject(prop),\n optall = jQuery.speed(speed, easing, callback),\n doAnimation = function doAnimation() {\n // Operate on a copy of prop so per-property easing won't be lost\n var anim = Animation(this, jQuery.extend({}, prop), optall); // Empty animations, or finishing resolves immediately\n\n if (empty || dataPriv.get(this, \"finish\")) {\n anim.stop(true);\n }\n };\n\n doAnimation.finish = doAnimation;\n return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation);\n },\n stop: function stop(type, clearQueue, gotoEnd) {\n var stopQueue = function stopQueue(hooks) {\n var stop = hooks.stop;\n delete hooks.stop;\n stop(gotoEnd);\n };\n\n if (typeof type !== \"string\") {\n gotoEnd = clearQueue;\n clearQueue = type;\n type = undefined;\n }\n\n if (clearQueue) {\n this.queue(type || \"fx\", []);\n }\n\n return this.each(function () {\n var dequeue = true,\n index = type != null && type + \"queueHooks\",\n timers = jQuery.timers,\n data = dataPriv.get(this);\n\n if (index) {\n if (data[index] && data[index].stop) {\n stopQueue(data[index]);\n }\n } else {\n for (index in data) {\n if (data[index] && data[index].stop && rrun.test(index)) {\n stopQueue(data[index]);\n }\n }\n }\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && (type == null || timers[index].queue === type)) {\n timers[index].anim.stop(gotoEnd);\n dequeue = false;\n timers.splice(index, 1);\n }\n } // Start the next in the queue if the last step wasn't forced.\n // Timers currently will call their complete callbacks, which\n // will dequeue but only if they were gotoEnd.\n\n\n if (dequeue || !gotoEnd) {\n jQuery.dequeue(this, type);\n }\n });\n },\n finish: function finish(type) {\n if (type !== false) {\n type = type || \"fx\";\n }\n\n return this.each(function () {\n var index,\n data = dataPriv.get(this),\n queue = data[type + \"queue\"],\n hooks = data[type + \"queueHooks\"],\n timers = jQuery.timers,\n length = queue ? queue.length : 0; // Enable finishing flag on private data\n\n data.finish = true; // Empty the queue first\n\n jQuery.queue(this, type, []);\n\n if (hooks && hooks.stop) {\n hooks.stop.call(this, true);\n } // Look for any active animations, and finish them\n\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && timers[index].queue === type) {\n timers[index].anim.stop(true);\n timers.splice(index, 1);\n }\n } // Look for any animations in the old queue and finish them\n\n\n for (index = 0; index < length; index++) {\n if (queue[index] && queue[index].finish) {\n queue[index].finish.call(this);\n }\n } // Turn off finishing flag\n\n\n delete data.finish;\n });\n }\n });\n jQuery.each([\"toggle\", \"show\", \"hide\"], function (_i, name) {\n var cssFn = jQuery.fn[name];\n\n jQuery.fn[name] = function (speed, easing, callback) {\n return speed == null || typeof speed === \"boolean\" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback);\n };\n }); // Generate shortcuts for custom animations\n\n jQuery.each({\n slideDown: genFx(\"show\"),\n slideUp: genFx(\"hide\"),\n slideToggle: genFx(\"toggle\"),\n fadeIn: {\n opacity: \"show\"\n },\n fadeOut: {\n opacity: \"hide\"\n },\n fadeToggle: {\n opacity: \"toggle\"\n }\n }, function (name, props) {\n jQuery.fn[name] = function (speed, easing, callback) {\n return this.animate(props, speed, easing, callback);\n };\n });\n jQuery.timers = [];\n\n jQuery.fx.tick = function () {\n var timer,\n i = 0,\n timers = jQuery.timers;\n fxNow = Date.now();\n\n for (; i < timers.length; i++) {\n timer = timers[i]; // Run the timer and safely remove it when done (allowing for external removal)\n\n if (!timer() && timers[i] === timer) {\n timers.splice(i--, 1);\n }\n }\n\n if (!timers.length) {\n jQuery.fx.stop();\n }\n\n fxNow = undefined;\n };\n\n jQuery.fx.timer = function (timer) {\n jQuery.timers.push(timer);\n jQuery.fx.start();\n };\n\n jQuery.fx.interval = 13;\n\n jQuery.fx.start = function () {\n if (inProgress) {\n return;\n }\n\n inProgress = true;\n schedule();\n };\n\n jQuery.fx.stop = function () {\n inProgress = null;\n };\n\n jQuery.fx.speeds = {\n slow: 600,\n fast: 200,\n // Default speed\n _default: 400\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/\n\n jQuery.fn.delay = function (time, type) {\n time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;\n type = type || \"fx\";\n return this.queue(type, function (next, hooks) {\n var timeout = window.setTimeout(next, time);\n\n hooks.stop = function () {\n window.clearTimeout(timeout);\n };\n });\n };\n\n (function () {\n var input = document.createElement(\"input\"),\n select = document.createElement(\"select\"),\n opt = select.appendChild(document.createElement(\"option\"));\n input.type = \"checkbox\"; // Support: Android <=4.3 only\n // Default value for a checkbox should be \"on\"\n\n support.checkOn = input.value !== \"\"; // Support: IE <=11 only\n // Must access selectedIndex to make default options select\n\n support.optSelected = opt.selected; // Support: IE <=11 only\n // An input loses its value after becoming a radio\n\n input = document.createElement(\"input\");\n input.value = \"t\";\n input.type = \"radio\";\n support.radioValue = input.value === \"t\";\n })();\n\n var boolHook,\n attrHandle = jQuery.expr.attrHandle;\n jQuery.fn.extend({\n attr: function attr(name, value) {\n return access(this, jQuery.attr, name, value, arguments.length > 1);\n },\n removeAttr: function removeAttr(name) {\n return this.each(function () {\n jQuery.removeAttr(this, name);\n });\n }\n });\n jQuery.extend({\n attr: function attr(elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set attributes on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n } // Fallback to prop when attributes are not supported\n\n\n if (typeof elem.getAttribute === \"undefined\") {\n return jQuery.prop(elem, name, value);\n } // Attribute hooks are determined by the lowercase version\n // Grab necessary hook if one is defined\n\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n hooks = jQuery.attrHooks[name.toLowerCase()] || (jQuery.expr.match.bool.test(name) ? boolHook : undefined);\n }\n\n if (value !== undefined) {\n if (value === null) {\n jQuery.removeAttr(elem, name);\n return;\n }\n\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n elem.setAttribute(name, value + \"\");\n return value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n ret = jQuery.find.attr(elem, name); // Non-existent attributes return null, we normalize to undefined\n\n return ret == null ? undefined : ret;\n },\n attrHooks: {\n type: {\n set: function set(elem, value) {\n if (!support.radioValue && value === \"radio\" && nodeName(elem, \"input\")) {\n var val = elem.value;\n elem.setAttribute(\"type\", value);\n\n if (val) {\n elem.value = val;\n }\n\n return value;\n }\n }\n }\n },\n removeAttr: function removeAttr(elem, value) {\n var name,\n i = 0,\n // Attribute names can contain non-HTML whitespace characters\n // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n attrNames = value && value.match(rnothtmlwhite);\n\n if (attrNames && elem.nodeType === 1) {\n while (name = attrNames[i++]) {\n elem.removeAttribute(name);\n }\n }\n }\n }); // Hooks for boolean attributes\n\n boolHook = {\n set: function set(elem, value, name) {\n if (value === false) {\n // Remove boolean attributes when set to false\n jQuery.removeAttr(elem, name);\n } else {\n elem.setAttribute(name, name);\n }\n\n return name;\n }\n };\n jQuery.each(jQuery.expr.match.bool.source.match(/\\w+/g), function (_i, name) {\n var getter = attrHandle[name] || jQuery.find.attr;\n\n attrHandle[name] = function (elem, name, isXML) {\n var ret,\n handle,\n lowercaseName = name.toLowerCase();\n\n if (!isXML) {\n // Avoid an infinite loop by temporarily removing this function from the getter\n handle = attrHandle[lowercaseName];\n attrHandle[lowercaseName] = ret;\n ret = getter(elem, name, isXML) != null ? lowercaseName : null;\n attrHandle[lowercaseName] = handle;\n }\n\n return ret;\n };\n });\n var rfocusable = /^(?:input|select|textarea|button)$/i,\n rclickable = /^(?:a|area)$/i;\n jQuery.fn.extend({\n prop: function prop(name, value) {\n return access(this, jQuery.prop, name, value, arguments.length > 1);\n },\n removeProp: function removeProp(name) {\n return this.each(function () {\n delete this[jQuery.propFix[name] || name];\n });\n }\n });\n jQuery.extend({\n prop: function prop(elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set properties on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n // Fix name and attach hooks\n name = jQuery.propFix[name] || name;\n hooks = jQuery.propHooks[name];\n }\n\n if (value !== undefined) {\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n return elem[name] = value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n return elem[name];\n },\n propHooks: {\n tabIndex: {\n get: function get(elem) {\n // Support: IE <=9 - 11 only\n // elem.tabIndex doesn't always return the\n // correct value when it hasn't been explicitly set\n // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n // Use proper attribute retrieval(#12072)\n var tabindex = jQuery.find.attr(elem, \"tabindex\");\n\n if (tabindex) {\n return parseInt(tabindex, 10);\n }\n\n if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) {\n return 0;\n }\n\n return -1;\n }\n }\n },\n propFix: {\n \"for\": \"htmlFor\",\n \"class\": \"className\"\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\n\n if (!support.optSelected) {\n jQuery.propHooks.selected = {\n get: function get(elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent && parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n\n return null;\n },\n set: function set(elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent) {\n parent.selectedIndex;\n\n if (parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n }\n }\n };\n }\n\n jQuery.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function () {\n jQuery.propFix[this.toLowerCase()] = this;\n }); // Strip and collapse whitespace according to HTML spec\n // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\n function stripAndCollapse(value) {\n var tokens = value.match(rnothtmlwhite) || [];\n return tokens.join(\" \");\n }\n\n function getClass(elem) {\n return elem.getAttribute && elem.getAttribute(\"class\") || \"\";\n }\n\n function classesToArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n\n if (typeof value === \"string\") {\n return value.match(rnothtmlwhite) || [];\n }\n\n return [];\n }\n\n jQuery.fn.extend({\n addClass: function addClass(value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).addClass(value.call(this, j, getClass(this)));\n });\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem);\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n if (cur.indexOf(\" \" + clazz + \" \") < 0) {\n cur += clazz + \" \";\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n removeClass: function removeClass(value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).removeClass(value.call(this, j, getClass(this)));\n });\n }\n\n if (!arguments.length) {\n return this.attr(\"class\", \"\");\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem); // This expression is here for better compressibility (see addClass)\n\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n // Remove *all* instances\n while (cur.indexOf(\" \" + clazz + \" \") > -1) {\n cur = cur.replace(\" \" + clazz + \" \", \" \");\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n toggleClass: function toggleClass(value, stateVal) {\n var type = _typeof(value),\n isValidValue = type === \"string\" || Array.isArray(value);\n\n if (typeof stateVal === \"boolean\" && isValidValue) {\n return stateVal ? this.addClass(value) : this.removeClass(value);\n }\n\n if (isFunction(value)) {\n return this.each(function (i) {\n jQuery(this).toggleClass(value.call(this, i, getClass(this), stateVal), stateVal);\n });\n }\n\n return this.each(function () {\n var className, i, self, classNames;\n\n if (isValidValue) {\n // Toggle individual class names\n i = 0;\n self = jQuery(this);\n classNames = classesToArray(value);\n\n while (className = classNames[i++]) {\n // Check each className given, space separated list\n if (self.hasClass(className)) {\n self.removeClass(className);\n } else {\n self.addClass(className);\n }\n } // Toggle whole class name\n\n } else if (value === undefined || type === \"boolean\") {\n className = getClass(this);\n\n if (className) {\n // Store className if set\n dataPriv.set(this, \"__className__\", className);\n } // If the element has a class name or if we're passed `false`,\n // then remove the whole classname (if there was one, the above saved it).\n // Otherwise bring back whatever was previously saved (if anything),\n // falling back to the empty string if nothing was stored.\n\n\n if (this.setAttribute) {\n this.setAttribute(\"class\", className || value === false ? \"\" : dataPriv.get(this, \"__className__\") || \"\");\n }\n }\n });\n },\n hasClass: function hasClass(selector) {\n var className,\n elem,\n i = 0;\n className = \" \" + selector + \" \";\n\n while (elem = this[i++]) {\n if (elem.nodeType === 1 && (\" \" + stripAndCollapse(getClass(elem)) + \" \").indexOf(className) > -1) {\n return true;\n }\n }\n\n return false;\n }\n });\n var rreturn = /\\r/g;\n jQuery.fn.extend({\n val: function val(value) {\n var hooks,\n ret,\n valueIsFunction,\n elem = this[0];\n\n if (!arguments.length) {\n if (elem) {\n hooks = jQuery.valHooks[elem.type] || jQuery.valHooks[elem.nodeName.toLowerCase()];\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, \"value\")) !== undefined) {\n return ret;\n }\n\n ret = elem.value; // Handle most common string cases\n\n if (typeof ret === \"string\") {\n return ret.replace(rreturn, \"\");\n } // Handle cases where value is null/undef or number\n\n\n return ret == null ? \"\" : ret;\n }\n\n return;\n }\n\n valueIsFunction = isFunction(value);\n return this.each(function (i) {\n var val;\n\n if (this.nodeType !== 1) {\n return;\n }\n\n if (valueIsFunction) {\n val = value.call(this, i, jQuery(this).val());\n } else {\n val = value;\n } // Treat null/undefined as \"\"; convert numbers to string\n\n\n if (val == null) {\n val = \"\";\n } else if (typeof val === \"number\") {\n val += \"\";\n } else if (Array.isArray(val)) {\n val = jQuery.map(val, function (value) {\n return value == null ? \"\" : value + \"\";\n });\n }\n\n hooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()]; // If set returns undefined, fall back to normal setting\n\n if (!hooks || !(\"set\" in hooks) || hooks.set(this, val, \"value\") === undefined) {\n this.value = val;\n }\n });\n }\n });\n jQuery.extend({\n valHooks: {\n option: {\n get: function get(elem) {\n var val = jQuery.find.attr(elem, \"value\");\n return val != null ? val : // Support: IE <=10 - 11 only\n // option.text throws exceptions (#14686, #14858)\n // Strip and collapse whitespace\n // https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n stripAndCollapse(jQuery.text(elem));\n }\n },\n select: {\n get: function get(elem) {\n var value,\n option,\n i,\n options = elem.options,\n index = elem.selectedIndex,\n one = elem.type === \"select-one\",\n values = one ? null : [],\n max = one ? index + 1 : options.length;\n\n if (index < 0) {\n i = max;\n } else {\n i = one ? index : 0;\n } // Loop through all the selected options\n\n\n for (; i < max; i++) {\n option = options[i]; // Support: IE <=9 only\n // IE8-9 doesn't update selected after form reset (#2551)\n\n if ((option.selected || i === index) && // Don't return options that are disabled or in a disabled optgroup\n !option.disabled && (!option.parentNode.disabled || !nodeName(option.parentNode, \"optgroup\"))) {\n // Get the specific value for the option\n value = jQuery(option).val(); // We don't need an array for one selects\n\n if (one) {\n return value;\n } // Multi-Selects return an array\n\n\n values.push(value);\n }\n }\n\n return values;\n },\n set: function set(elem, value) {\n var optionSet,\n option,\n options = elem.options,\n values = jQuery.makeArray(value),\n i = options.length;\n\n while (i--) {\n option = options[i];\n /* eslint-disable no-cond-assign */\n\n if (option.selected = jQuery.inArray(jQuery.valHooks.option.get(option), values) > -1) {\n optionSet = true;\n }\n /* eslint-enable no-cond-assign */\n\n } // Force browsers to behave consistently when non-matching value is set\n\n\n if (!optionSet) {\n elem.selectedIndex = -1;\n }\n\n return values;\n }\n }\n }\n }); // Radios and checkboxes getter/setter\n\n jQuery.each([\"radio\", \"checkbox\"], function () {\n jQuery.valHooks[this] = {\n set: function set(elem, value) {\n if (Array.isArray(value)) {\n return elem.checked = jQuery.inArray(jQuery(elem).val(), value) > -1;\n }\n }\n };\n\n if (!support.checkOn) {\n jQuery.valHooks[this].get = function (elem) {\n return elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n };\n }\n }); // Return jQuery for attributes-only inclusion\n\n support.focusin = \"onfocusin\" in window;\n\n var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n stopPropagationCallback = function stopPropagationCallback(e) {\n e.stopPropagation();\n };\n\n jQuery.extend(jQuery.event, {\n trigger: function trigger(event, data, elem, onlyHandlers) {\n var i,\n cur,\n tmp,\n bubbleType,\n ontype,\n handle,\n special,\n lastElement,\n eventPath = [elem || document],\n type = hasOwn.call(event, \"type\") ? event.type : event,\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n cur = lastElement = tmp = elem = elem || document; // Don't do events on text and comment nodes\n\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n } // focus/blur morphs to focusin/out; ensure we're not firing them right now\n\n\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\n\n if (type.indexOf(\".\") > -1) {\n // Namespaced trigger; create a regexp to match event type in handle()\n namespaces = type.split(\".\");\n type = namespaces.shift();\n namespaces.sort();\n }\n\n ontype = type.indexOf(\":\") < 0 && \"on\" + type; // Caller can pass in a jQuery.Event object, Object, or just an event type string\n\n event = event[jQuery.expando] ? event : new jQuery.Event(type, _typeof(event) === \"object\" && event); // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null; // Clean up the event in case it is being reused\n\n event.result = undefined;\n\n if (!event.target) {\n event.target = elem;\n } // Clone any incoming data and prepend the event, creating the handler arg list\n\n\n data = data == null ? [event] : jQuery.makeArray(data, [event]); // Allow special events to draw outside the lines\n\n special = jQuery.event.special[type] || {};\n\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\n } // Determine event propagation path in advance, per W3C events spec (#9951)\n // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\n\n if (!onlyHandlers && !special.noBubble && !isWindow(elem)) {\n bubbleType = special.delegateType || type;\n\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n } // Only add window if we got to document (e.g., not plain obj or detached DOM)\n\n\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n } // Fire handlers on the event path\n\n\n i = 0;\n\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n lastElement = cur;\n event.type = i > 1 ? bubbleType : special.bindType || type; // jQuery handler\n\n handle = (dataPriv.get(cur, \"events\") || Object.create(null))[event.type] && dataPriv.get(cur, \"handle\");\n\n if (handle) {\n handle.apply(cur, data);\n } // Native handler\n\n\n handle = ontype && cur[ontype];\n\n if (handle && handle.apply && acceptData(cur)) {\n event.result = handle.apply(cur, data);\n\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n\n event.type = type; // If nobody prevented the default action, do it now\n\n if (!onlyHandlers && !event.isDefaultPrevented()) {\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {\n // Call a native DOM method on the target with the same name as the event.\n // Don't do default actions on window, that's where global variables be (#6170)\n if (ontype && isFunction(elem[type]) && !isWindow(elem)) {\n // Don't re-trigger an onFOO event when we call its FOO() method\n tmp = elem[ontype];\n\n if (tmp) {\n elem[ontype] = null;\n } // Prevent re-triggering of the same event, since we already bubbled it above\n\n\n jQuery.event.triggered = type;\n\n if (event.isPropagationStopped()) {\n lastElement.addEventListener(type, stopPropagationCallback);\n }\n\n elem[type]();\n\n if (event.isPropagationStopped()) {\n lastElement.removeEventListener(type, stopPropagationCallback);\n }\n\n jQuery.event.triggered = undefined;\n\n if (tmp) {\n elem[ontype] = tmp;\n }\n }\n }\n }\n\n return event.result;\n },\n // Piggyback on a donor event to simulate a different one\n // Used only for `focus(in | out)` events\n simulate: function simulate(type, elem, event) {\n var e = jQuery.extend(new jQuery.Event(), event, {\n type: type,\n isSimulated: true\n });\n jQuery.event.trigger(e, null, elem);\n }\n });\n jQuery.fn.extend({\n trigger: function trigger(type, data) {\n return this.each(function () {\n jQuery.event.trigger(type, data, this);\n });\n },\n triggerHandler: function triggerHandler(type, data) {\n var elem = this[0];\n\n if (elem) {\n return jQuery.event.trigger(type, data, elem, true);\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\n\n if (!support.focusin) {\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (orig, fix) {\n // Attach a single capturing handler on the document while someone wants focusin/focusout\n var handler = function handler(event) {\n jQuery.event.simulate(fix, event.target, jQuery.event.fix(event));\n };\n\n jQuery.event.special[fix] = {\n setup: function setup() {\n // Handle: regular nodes (via `this.ownerDocument`), window\n // (via `this.document`) & document (via `this`).\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix);\n\n if (!attaches) {\n doc.addEventListener(orig, handler, true);\n }\n\n dataPriv.access(doc, fix, (attaches || 0) + 1);\n },\n teardown: function teardown() {\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix) - 1;\n\n if (!attaches) {\n doc.removeEventListener(orig, handler, true);\n dataPriv.remove(doc, fix);\n } else {\n dataPriv.access(doc, fix, attaches);\n }\n }\n };\n });\n }\n\n var location = window.location;\n var nonce = {\n guid: Date.now()\n };\n var rquery = /\\?/; // Cross-browser xml parsing\n\n jQuery.parseXML = function (data) {\n var xml;\n\n if (!data || typeof data !== \"string\") {\n return null;\n } // Support: IE 9 - 11 only\n // IE throws on parseFromString with invalid input.\n\n\n try {\n xml = new window.DOMParser().parseFromString(data, \"text/xml\");\n } catch (e) {\n xml = undefined;\n }\n\n if (!xml || xml.getElementsByTagName(\"parsererror\").length) {\n jQuery.error(\"Invalid XML: \" + data);\n }\n\n return xml;\n };\n\n var rbracket = /\\[\\]$/,\n rCRLF = /\\r?\\n/g,\n rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n rsubmittable = /^(?:input|select|textarea|keygen)/i;\n\n function buildParams(prefix, obj, traditional, add) {\n var name;\n\n if (Array.isArray(obj)) {\n // Serialize array item.\n jQuery.each(obj, function (i, v) {\n if (traditional || rbracket.test(prefix)) {\n // Treat each array item as a scalar.\n add(prefix, v);\n } else {\n // Item is non-scalar (array or object), encode its numeric index.\n buildParams(prefix + \"[\" + (_typeof(v) === \"object\" && v != null ? i : \"\") + \"]\", v, traditional, add);\n }\n });\n } else if (!traditional && toType(obj) === \"object\") {\n // Serialize object item.\n for (name in obj) {\n buildParams(prefix + \"[\" + name + \"]\", obj[name], traditional, add);\n }\n } else {\n // Serialize scalar item.\n add(prefix, obj);\n }\n } // Serialize an array of form elements or a set of\n // key/values into a query string\n\n\n jQuery.param = function (a, traditional) {\n var prefix,\n s = [],\n add = function add(key, valueOrFunction) {\n // If value is a function, invoke it and use its return value\n var value = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction;\n s[s.length] = encodeURIComponent(key) + \"=\" + encodeURIComponent(value == null ? \"\" : value);\n };\n\n if (a == null) {\n return \"\";\n } // If an array was passed in, assume that it is an array of form elements.\n\n\n if (Array.isArray(a) || a.jquery && !jQuery.isPlainObject(a)) {\n // Serialize the form elements\n jQuery.each(a, function () {\n add(this.name, this.value);\n });\n } else {\n // If traditional, encode the \"old\" way (the way 1.3.2 or older\n // did it), otherwise encode params recursively.\n for (prefix in a) {\n buildParams(prefix, a[prefix], traditional, add);\n }\n } // Return the resulting serialization\n\n\n return s.join(\"&\");\n };\n\n jQuery.fn.extend({\n serialize: function serialize() {\n return jQuery.param(this.serializeArray());\n },\n serializeArray: function serializeArray() {\n return this.map(function () {\n // Can add propHook for \"elements\" to filter or add form elements\n var elements = jQuery.prop(this, \"elements\");\n return elements ? jQuery.makeArray(elements) : this;\n }).filter(function () {\n var type = this.type; // Use .is( \":disabled\" ) so that fieldset[disabled] works\n\n return this.name && !jQuery(this).is(\":disabled\") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type));\n }).map(function (_i, elem) {\n var val = jQuery(this).val();\n\n if (val == null) {\n return null;\n }\n\n if (Array.isArray(val)) {\n return jQuery.map(val, function (val) {\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n });\n }\n\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n }).get();\n }\n });\n var r20 = /%20/g,\n rhash = /#.*$/,\n rantiCache = /([?&])_=[^&]*/,\n rheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n // #7653, #8125, #8152: local protocol detection\n rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n rnoContent = /^(?:GET|HEAD)$/,\n rprotocol = /^\\/\\//,\n\n /* Prefilters\n * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n * 2) These are called:\n * - BEFORE asking for a transport\n * - AFTER param serialization (s.data is a string if s.processData is true)\n * 3) key is the dataType\n * 4) the catchall symbol \"*\" can be used\n * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n */\n prefilters = {},\n\n /* Transports bindings\n * 1) key is the dataType\n * 2) the catchall symbol \"*\" can be used\n * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n */\n transports = {},\n // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n allTypes = \"*/\".concat(\"*\"),\n // Anchor tag for parsing the document origin\n originAnchor = document.createElement(\"a\");\n originAnchor.href = location.href; // Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n\n function addToPrefiltersOrTransports(structure) {\n // dataTypeExpression is optional and defaults to \"*\"\n return function (dataTypeExpression, func) {\n if (typeof dataTypeExpression !== \"string\") {\n func = dataTypeExpression;\n dataTypeExpression = \"*\";\n }\n\n var dataType,\n i = 0,\n dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\n\n if (isFunction(func)) {\n // For each dataType in the dataTypeExpression\n while (dataType = dataTypes[i++]) {\n // Prepend if requested\n if (dataType[0] === \"+\") {\n dataType = dataType.slice(1) || \"*\";\n (structure[dataType] = structure[dataType] || []).unshift(func); // Otherwise append\n } else {\n (structure[dataType] = structure[dataType] || []).push(func);\n }\n }\n }\n };\n } // Base inspection function for prefilters and transports\n\n\n function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\n var inspected = {},\n seekingTransport = structure === transports;\n\n function inspect(dataType) {\n var selected;\n inspected[dataType] = true;\n jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\n var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\n\n if (typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[dataTypeOrTransport]) {\n options.dataTypes.unshift(dataTypeOrTransport);\n inspect(dataTypeOrTransport);\n return false;\n } else if (seekingTransport) {\n return !(selected = dataTypeOrTransport);\n }\n });\n return selected;\n }\n\n return inspect(options.dataTypes[0]) || !inspected[\"*\"] && inspect(\"*\");\n } // A special extend for ajax options\n // that takes \"flat\" options (not to be deep extended)\n // Fixes #9887\n\n\n function ajaxExtend(target, src) {\n var key,\n deep,\n flatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n for (key in src) {\n if (src[key] !== undefined) {\n (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];\n }\n }\n\n if (deep) {\n jQuery.extend(true, target, deep);\n }\n\n return target;\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 */\n\n\n function ajaxHandleResponses(s, jqXHR, responses) {\n var ct,\n type,\n finalDataType,\n firstDataType,\n contents = s.contents,\n dataTypes = s.dataTypes; // Remove auto dataType and get content-type in the process\n\n while (dataTypes[0] === \"*\") {\n dataTypes.shift();\n\n if (ct === undefined) {\n ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n }\n } // Check if we're dealing with a known content-type\n\n\n if (ct) {\n for (type in contents) {\n if (contents[type] && contents[type].test(ct)) {\n dataTypes.unshift(type);\n break;\n }\n }\n } // Check to see if we have a response for the expected dataType\n\n\n if (dataTypes[0] in responses) {\n finalDataType = dataTypes[0];\n } else {\n // Try convertible dataTypes\n for (type in responses) {\n if (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\n finalDataType = type;\n break;\n }\n\n if (!firstDataType) {\n firstDataType = type;\n }\n } // Or just use first one\n\n\n finalDataType = finalDataType || firstDataType;\n } // If we found a dataType\n // We add the dataType to the list if needed\n // and return the corresponding response\n\n\n if (finalDataType) {\n if (finalDataType !== dataTypes[0]) {\n dataTypes.unshift(finalDataType);\n }\n\n return responses[finalDataType];\n }\n }\n /* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\n\n\n function ajaxConvert(s, response, jqXHR, isSuccess) {\n var conv2,\n current,\n conv,\n tmp,\n prev,\n converters = {},\n // Work with a copy of dataTypes in case we need to modify it for conversion\n dataTypes = s.dataTypes.slice(); // Create converters map with lowercased keys\n\n if (dataTypes[1]) {\n for (conv in s.converters) {\n converters[conv.toLowerCase()] = s.converters[conv];\n }\n }\n\n current = dataTypes.shift(); // Convert to each sequential dataType\n\n while (current) {\n if (s.responseFields[current]) {\n jqXHR[s.responseFields[current]] = response;\n } // Apply the dataFilter if provided\n\n\n if (!prev && isSuccess && s.dataFilter) {\n response = s.dataFilter(response, s.dataType);\n }\n\n prev = current;\n current = dataTypes.shift();\n\n if (current) {\n // There's only work to do if current dataType is non-auto\n if (current === \"*\") {\n current = prev; // Convert response if prev dataType is non-auto and differs from current\n } else if (prev !== \"*\" && prev !== current) {\n // Seek a direct converter\n conv = converters[prev + \" \" + current] || converters[\"* \" + current]; // If none found, seek a pair\n\n if (!conv) {\n for (conv2 in converters) {\n // If conv2 outputs current\n tmp = conv2.split(\" \");\n\n if (tmp[1] === current) {\n // If prev can be converted to accepted input\n conv = converters[prev + \" \" + tmp[0]] || converters[\"* \" + tmp[0]];\n\n if (conv) {\n // Condense equivalence converters\n if (conv === true) {\n conv = converters[conv2]; // Otherwise, insert the intermediate dataType\n } else if (converters[conv2] !== true) {\n current = tmp[0];\n dataTypes.unshift(tmp[1]);\n }\n\n break;\n }\n }\n }\n } // Apply converter (if not an equivalence)\n\n\n if (conv !== true) {\n // Unless errors are allowed to bubble, catch and return them\n if (conv && s[\"throws\"]) {\n response = conv(response);\n } else {\n try {\n response = conv(response);\n } catch (e) {\n return {\n state: \"parsererror\",\n error: conv ? e : \"No conversion from \" + prev + \" to \" + current\n };\n }\n }\n }\n }\n }\n }\n\n return {\n state: \"success\",\n data: response\n };\n }\n\n jQuery.extend({\n // Counter for holding the number of active queries\n active: 0,\n // Last-Modified header cache for next request\n lastModified: {},\n etag: {},\n ajaxSettings: {\n url: location.href,\n type: \"GET\",\n isLocal: rlocalProtocol.test(location.protocol),\n global: true,\n processData: true,\n async: true,\n contentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n /*\n timeout: 0,\n data: null,\n dataType: null,\n username: null,\n password: null,\n cache: null,\n throws: false,\n traditional: false,\n headers: {},\n */\n accepts: {\n \"*\": allTypes,\n text: \"text/plain\",\n html: \"text/html\",\n xml: \"application/xml, text/xml\",\n json: \"application/json, text/javascript\"\n },\n contents: {\n xml: /\\bxml\\b/,\n html: /\\bhtml/,\n json: /\\bjson\\b/\n },\n responseFields: {\n xml: \"responseXML\",\n text: \"responseText\",\n json: \"responseJSON\"\n },\n // Data converters\n // Keys separate source (or catchall \"*\") and destination types with a single space\n converters: {\n // Convert anything to text\n \"* text\": String,\n // Text to html (true = no transformation)\n \"text html\": true,\n // Evaluate text as a json expression\n \"text json\": JSON.parse,\n // Parse text as xml\n \"text xml\": jQuery.parseXML\n },\n // For options that shouldn't be deep extended:\n // you can add your own custom options here if\n // and when you create one that shouldn't be\n // deep extended (see ajaxExtend)\n flatOptions: {\n url: true,\n context: true\n }\n },\n // Creates a full fledged settings object into target\n // with both ajaxSettings and settings fields.\n // If target is omitted, writes into ajaxSettings.\n ajaxSetup: function ajaxSetup(target, settings) {\n return settings ? // Building a settings object\n ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) : // Extending ajaxSettings\n ajaxExtend(jQuery.ajaxSettings, target);\n },\n ajaxPrefilter: addToPrefiltersOrTransports(prefilters),\n ajaxTransport: addToPrefiltersOrTransports(transports),\n // Main method\n ajax: function ajax(url, options) {\n // If url is an object, simulate pre-1.5 signature\n if (_typeof(url) === \"object\") {\n options = url;\n url = undefined;\n } // Force options to be an object\n\n\n options = options || {};\n\n var transport,\n // URL without anti-cache param\n cacheURL,\n // Response headers\n responseHeadersString,\n responseHeaders,\n // timeout handle\n timeoutTimer,\n // Url cleanup var\n urlAnchor,\n // Request state (becomes false upon send and true upon completion)\n completed,\n // To know if global events are to be dispatched\n fireGlobals,\n // Loop variable\n i,\n // uncached part of the url\n uncached,\n // Create the final options object\n s = jQuery.ajaxSetup({}, options),\n // Callbacks context\n callbackContext = s.context || s,\n // Context for global events is callbackContext if it is a DOM node or jQuery collection\n globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery(callbackContext) : jQuery.event,\n // Deferreds\n deferred = jQuery.Deferred(),\n completeDeferred = jQuery.Callbacks(\"once memory\"),\n // Status-dependent callbacks\n _statusCode = s.statusCode || {},\n // Headers (they are sent all at once)\n requestHeaders = {},\n requestHeadersNames = {},\n // Default abort message\n strAbort = \"canceled\",\n // Fake xhr\n jqXHR = {\n readyState: 0,\n // Builds headers hashtable if needed\n getResponseHeader: function getResponseHeader(key) {\n var match;\n\n if (completed) {\n if (!responseHeaders) {\n responseHeaders = {};\n\n while (match = rheaders.exec(responseHeadersString)) {\n responseHeaders[match[1].toLowerCase() + \" \"] = (responseHeaders[match[1].toLowerCase() + \" \"] || []).concat(match[2]);\n }\n }\n\n match = responseHeaders[key.toLowerCase() + \" \"];\n }\n\n return match == null ? null : match.join(\", \");\n },\n // Raw string\n getAllResponseHeaders: function getAllResponseHeaders() {\n return completed ? responseHeadersString : null;\n },\n // Caches the header\n setRequestHeader: function setRequestHeader(name, value) {\n if (completed == null) {\n name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name;\n requestHeaders[name] = value;\n }\n\n return this;\n },\n // Overrides response content-type header\n overrideMimeType: function overrideMimeType(type) {\n if (completed == null) {\n s.mimeType = type;\n }\n\n return this;\n },\n // Status-dependent callbacks\n statusCode: function statusCode(map) {\n var code;\n\n if (map) {\n if (completed) {\n // Execute the appropriate callbacks\n jqXHR.always(map[jqXHR.status]);\n } else {\n // Lazy-add the new callbacks in a way that preserves old ones\n for (code in map) {\n _statusCode[code] = [_statusCode[code], map[code]];\n }\n }\n }\n\n return this;\n },\n // Cancel the request\n abort: function abort(statusText) {\n var finalText = statusText || strAbort;\n\n if (transport) {\n transport.abort(finalText);\n }\n\n done(0, finalText);\n return this;\n }\n }; // Attach deferreds\n\n\n deferred.promise(jqXHR); // Add protocol if not provided (prefilters might expect it)\n // Handle falsy url in the settings object (#10093: consistency with old signature)\n // We also use the url parameter if available\n\n s.url = ((url || s.url || location.href) + \"\").replace(rprotocol, location.protocol + \"//\"); // Alias method option to type as per ticket #12004\n\n s.type = options.method || options.type || s.method || s.type; // Extract dataTypes list\n\n s.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"]; // A cross-domain request is in order when the origin doesn't match the current origin.\n\n if (s.crossDomain == null) {\n urlAnchor = document.createElement(\"a\"); // Support: IE <=8 - 11, Edge 12 - 15\n // IE throws exception on accessing the href property if url is malformed,\n // e.g. http://example.com:80x/\n\n try {\n urlAnchor.href = s.url; // Support: IE <=8 - 11 only\n // Anchor's host property isn't correctly set when s.url is relative\n\n urlAnchor.href = urlAnchor.href;\n s.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host;\n } catch (e) {\n // If there is an error parsing the URL, assume it is crossDomain,\n // it can be rejected by the transport if it is invalid\n s.crossDomain = true;\n }\n } // Convert data if not already a string\n\n\n if (s.data && s.processData && typeof s.data !== \"string\") {\n s.data = jQuery.param(s.data, s.traditional);\n } // Apply prefilters\n\n\n inspectPrefiltersOrTransports(prefilters, s, options, jqXHR); // If request was aborted inside a prefilter, stop there\n\n if (completed) {\n return jqXHR;\n } // We can fire global events as of now if asked to\n // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\n\n fireGlobals = jQuery.event && s.global; // Watch for a new set of requests\n\n if (fireGlobals && jQuery.active++ === 0) {\n jQuery.event.trigger(\"ajaxStart\");\n } // Uppercase the type\n\n\n s.type = s.type.toUpperCase(); // Determine if request has content\n\n s.hasContent = !rnoContent.test(s.type); // Save the URL in case we're toying with the If-Modified-Since\n // and/or If-None-Match header later on\n // Remove hash to simplify url manipulation\n\n cacheURL = s.url.replace(rhash, \"\"); // More options handling for requests with no content\n\n if (!s.hasContent) {\n // Remember the hash so we can put it back\n uncached = s.url.slice(cacheURL.length); // If data is available and should be processed, append data to url\n\n if (s.data && (s.processData || typeof s.data === \"string\")) {\n cacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data; // #9682: remove data so that it's not used in an eventual retry\n\n delete s.data;\n } // Add or update anti-cache param if needed\n\n\n if (s.cache === false) {\n cacheURL = cacheURL.replace(rantiCache, \"$1\");\n uncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + nonce.guid++ + uncached;\n } // Put hash and anti-cache on the URL that will be requested (gh-1732)\n\n\n s.url = cacheURL + uncached; // Change '%20' to '+' if this is encoded form body content (gh-2658)\n } else if (s.data && s.processData && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0) {\n s.data = s.data.replace(r20, \"+\");\n } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\n\n if (s.ifModified) {\n if (jQuery.lastModified[cacheURL]) {\n jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\n }\n\n if (jQuery.etag[cacheURL]) {\n jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\n }\n } // Set the correct header, if data is being sent\n\n\n if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\n jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\n } // Set the Accepts header for the server, depending on the dataType\n\n\n jqXHR.setRequestHeader(\"Accept\", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\") : s.accepts[\"*\"]); // Check for headers option\n\n for (i in s.headers) {\n jqXHR.setRequestHeader(i, s.headers[i]);\n } // Allow custom headers/mimetypes and early abort\n\n\n if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) {\n // Abort if not done already and return\n return jqXHR.abort();\n } // Aborting is no longer a cancellation\n\n\n strAbort = \"abort\"; // Install callbacks on deferreds\n\n completeDeferred.add(s.complete);\n jqXHR.done(s.success);\n jqXHR.fail(s.error); // Get transport\n\n transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR); // If no transport, we auto-abort\n\n if (!transport) {\n done(-1, \"No Transport\");\n } else {\n jqXHR.readyState = 1; // Send global event\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\n } // If request was aborted inside ajaxSend, stop there\n\n\n if (completed) {\n return jqXHR;\n } // Timeout\n\n\n if (s.async && s.timeout > 0) {\n timeoutTimer = window.setTimeout(function () {\n jqXHR.abort(\"timeout\");\n }, s.timeout);\n }\n\n try {\n completed = false;\n transport.send(requestHeaders, done);\n } catch (e) {\n // Rethrow post-completion exceptions\n if (completed) {\n throw e;\n } // Propagate others as results\n\n\n done(-1, e);\n }\n } // Callback for when everything is done\n\n\n function done(status, nativeStatusText, responses, headers) {\n var isSuccess,\n success,\n error,\n response,\n modified,\n statusText = nativeStatusText; // Ignore repeat invocations\n\n if (completed) {\n return;\n }\n\n completed = true; // Clear timeout if it exists\n\n if (timeoutTimer) {\n window.clearTimeout(timeoutTimer);\n } // Dereference transport for early garbage collection\n // (no matter how long the jqXHR object will be used)\n\n\n transport = undefined; // Cache response headers\n\n responseHeadersString = headers || \"\"; // Set readyState\n\n jqXHR.readyState = status > 0 ? 4 : 0; // Determine if successful\n\n isSuccess = status >= 200 && status < 300 || status === 304; // Get response data\n\n if (responses) {\n response = ajaxHandleResponses(s, jqXHR, responses);\n } // Use a noop converter for missing script\n\n\n if (!isSuccess && jQuery.inArray(\"script\", s.dataTypes) > -1) {\n s.converters[\"text script\"] = function () {};\n } // Convert no matter what (that way responseXXX fields are always set)\n\n\n response = ajaxConvert(s, response, jqXHR, isSuccess); // If successful, handle type chaining\n\n if (isSuccess) {\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n modified = jqXHR.getResponseHeader(\"Last-Modified\");\n\n if (modified) {\n jQuery.lastModified[cacheURL] = modified;\n }\n\n modified = jqXHR.getResponseHeader(\"etag\");\n\n if (modified) {\n jQuery.etag[cacheURL] = modified;\n }\n } // if no content\n\n\n if (status === 204 || s.type === \"HEAD\") {\n statusText = \"nocontent\"; // if not modified\n } else if (status === 304) {\n statusText = \"notmodified\"; // If we have data, let's convert it\n } else {\n statusText = response.state;\n success = response.data;\n error = response.error;\n isSuccess = !error;\n }\n } else {\n // Extract error from statusText and normalize for non-aborts\n error = statusText;\n\n if (status || !statusText) {\n statusText = \"error\";\n\n if (status < 0) {\n status = 0;\n }\n }\n } // Set data for the fake xhr object\n\n\n jqXHR.status = status;\n jqXHR.statusText = (nativeStatusText || statusText) + \"\"; // Success/Error\n\n if (isSuccess) {\n deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\n } else {\n deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\n } // Status-dependent callbacks\n\n\n jqXHR.statusCode(_statusCode);\n _statusCode = undefined;\n\n if (fireGlobals) {\n globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\", [jqXHR, s, isSuccess ? success : error]);\n } // Complete\n\n\n completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]); // Handle the global AJAX counter\n\n if (! --jQuery.active) {\n jQuery.event.trigger(\"ajaxStop\");\n }\n }\n }\n\n return jqXHR;\n },\n getJSON: function getJSON(url, data, callback) {\n return jQuery.get(url, data, callback, \"json\");\n },\n getScript: function getScript(url, callback) {\n return jQuery.get(url, undefined, callback, \"script\");\n }\n });\n jQuery.each([\"get\", \"post\"], function (_i, method) {\n jQuery[method] = function (url, data, callback, type) {\n // Shift arguments if data argument was omitted\n if (isFunction(data)) {\n type = type || callback;\n callback = data;\n data = undefined;\n } // The url can be an options object (which then must have .url)\n\n\n return jQuery.ajax(jQuery.extend({\n url: url,\n type: method,\n dataType: type,\n data: data,\n success: callback\n }, jQuery.isPlainObject(url) && url));\n };\n });\n jQuery.ajaxPrefilter(function (s) {\n var i;\n\n for (i in s.headers) {\n if (i.toLowerCase() === \"content-type\") {\n s.contentType = s.headers[i] || \"\";\n }\n }\n });\n\n jQuery._evalUrl = function (url, options, doc) {\n return jQuery.ajax({\n url: url,\n // Make this explicit, since user can override this through ajaxSetup (#11264)\n type: \"GET\",\n dataType: \"script\",\n cache: true,\n async: false,\n global: false,\n // Only evaluate the response if it is successful (gh-4126)\n // dataFilter is not invoked for failure responses, so using it instead\n // of the default converter is kludgy but it works.\n converters: {\n \"text script\": function textScript() {}\n },\n dataFilter: function dataFilter(response) {\n jQuery.globalEval(response, options, doc);\n }\n });\n };\n\n jQuery.fn.extend({\n wrapAll: function wrapAll(html) {\n var wrap;\n\n if (this[0]) {\n if (isFunction(html)) {\n html = html.call(this[0]);\n } // The elements to wrap the target around\n\n\n wrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true);\n\n if (this[0].parentNode) {\n wrap.insertBefore(this[0]);\n }\n\n wrap.map(function () {\n var elem = this;\n\n while (elem.firstElementChild) {\n elem = elem.firstElementChild;\n }\n\n return elem;\n }).append(this);\n }\n\n return this;\n },\n wrapInner: function wrapInner(html) {\n if (isFunction(html)) {\n return this.each(function (i) {\n jQuery(this).wrapInner(html.call(this, i));\n });\n }\n\n return this.each(function () {\n var self = jQuery(this),\n contents = self.contents();\n\n if (contents.length) {\n contents.wrapAll(html);\n } else {\n self.append(html);\n }\n });\n },\n wrap: function wrap(html) {\n var htmlIsFunction = isFunction(html);\n return this.each(function (i) {\n jQuery(this).wrapAll(htmlIsFunction ? html.call(this, i) : html);\n });\n },\n unwrap: function unwrap(selector) {\n this.parent(selector).not(\"body\").each(function () {\n jQuery(this).replaceWith(this.childNodes);\n });\n return this;\n }\n });\n\n jQuery.expr.pseudos.hidden = function (elem) {\n return !jQuery.expr.pseudos.visible(elem);\n };\n\n jQuery.expr.pseudos.visible = function (elem) {\n return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\n };\n\n jQuery.ajaxSettings.xhr = function () {\n try {\n return new window.XMLHttpRequest();\n } catch (e) {}\n };\n\n var xhrSuccessStatus = {\n // File protocol always yields status code 0, assume 200\n 0: 200,\n // Support: IE <=9 only\n // #1450: sometimes IE returns 1223 when it should be 204\n 1223: 204\n },\n xhrSupported = jQuery.ajaxSettings.xhr();\n support.cors = !!xhrSupported && \"withCredentials\" in xhrSupported;\n support.ajax = xhrSupported = !!xhrSupported;\n jQuery.ajaxTransport(function (options) {\n var _callback, errorCallback; // Cross domain only allowed if supported through XMLHttpRequest\n\n\n if (support.cors || xhrSupported && !options.crossDomain) {\n return {\n send: function send(headers, complete) {\n var i,\n xhr = options.xhr();\n xhr.open(options.type, options.url, options.async, options.username, options.password); // Apply custom fields if provided\n\n if (options.xhrFields) {\n for (i in options.xhrFields) {\n xhr[i] = options.xhrFields[i];\n }\n } // Override mime type if needed\n\n\n if (options.mimeType && xhr.overrideMimeType) {\n xhr.overrideMimeType(options.mimeType);\n } // X-Requested-With header\n // For cross-domain requests, seeing as conditions for a preflight are\n // akin to a jigsaw puzzle, we simply never set it to be sure.\n // (it can always be set on a per-request basis or even using ajaxSetup)\n // For same-domain requests, won't change header if already provided.\n\n\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\";\n } // Set headers\n\n\n for (i in headers) {\n xhr.setRequestHeader(i, headers[i]);\n } // Callback\n\n\n _callback = function callback(type) {\n return function () {\n if (_callback) {\n _callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null;\n\n if (type === \"abort\") {\n xhr.abort();\n } else if (type === \"error\") {\n // Support: IE <=9 only\n // On a manual native abort, IE9 throws\n // errors on any property access that is not readyState\n if (typeof xhr.status !== \"number\") {\n complete(0, \"error\");\n } else {\n complete( // File: protocol always yields status 0; see #8605, #14207\n xhr.status, xhr.statusText);\n }\n } else {\n complete(xhrSuccessStatus[xhr.status] || xhr.status, xhr.statusText, // Support: IE <=9 only\n // IE9 has no XHR2 but throws on binary (trac-11426)\n // For XHR2 non-text, let the caller handle it (gh-2498)\n (xhr.responseType || \"text\") !== \"text\" || typeof xhr.responseText !== \"string\" ? {\n binary: xhr.response\n } : {\n text: xhr.responseText\n }, xhr.getAllResponseHeaders());\n }\n }\n };\n }; // Listen to events\n\n\n xhr.onload = _callback();\n errorCallback = xhr.onerror = xhr.ontimeout = _callback(\"error\"); // Support: IE 9 only\n // Use onreadystatechange to replace onabort\n // to handle uncaught aborts\n\n if (xhr.onabort !== undefined) {\n xhr.onabort = errorCallback;\n } else {\n xhr.onreadystatechange = function () {\n // Check readyState before timeout as it changes\n if (xhr.readyState === 4) {\n // Allow onerror to be called first,\n // but that will not handle a native abort\n // Also, save errorCallback to a variable\n // as xhr.onerror cannot be accessed\n window.setTimeout(function () {\n if (_callback) {\n errorCallback();\n }\n });\n }\n };\n } // Create the abort callback\n\n\n _callback = _callback(\"abort\");\n\n try {\n // Do send the request (this may raise an exception)\n xhr.send(options.hasContent && options.data || null);\n } catch (e) {\n // #14683: Only rethrow if this hasn't been notified as an error yet\n if (_callback) {\n throw e;\n }\n }\n },\n abort: function abort() {\n if (_callback) {\n _callback();\n }\n }\n };\n }\n }); // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\n\n jQuery.ajaxPrefilter(function (s) {\n if (s.crossDomain) {\n s.contents.script = false;\n }\n }); // Install script dataType\n\n jQuery.ajaxSetup({\n accepts: {\n script: \"text/javascript, application/javascript, \" + \"application/ecmascript, application/x-ecmascript\"\n },\n contents: {\n script: /\\b(?:java|ecma)script\\b/\n },\n converters: {\n \"text script\": function textScript(text) {\n jQuery.globalEval(text);\n return text;\n }\n }\n }); // Handle cache's special case and crossDomain\n\n jQuery.ajaxPrefilter(\"script\", function (s) {\n if (s.cache === undefined) {\n s.cache = false;\n }\n\n if (s.crossDomain) {\n s.type = \"GET\";\n }\n }); // Bind script tag hack transport\n\n jQuery.ajaxTransport(\"script\", function (s) {\n // This transport only deals with cross domain or forced-by-attrs requests\n if (s.crossDomain || s.scriptAttrs) {\n var script, _callback2;\n\n return {\n send: function send(_, complete) {\n script = jQuery(\"