{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/axios/lib/cancel/CanceledError.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/macy/dist/macy.js","webpack:///./node_modules/axios/lib/helpers/toFormData.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./assets/js/vendors/animate-on-scroll.js","webpack:///./node_modules/foundation-sites/js/foundation.core.utils.js","webpack:///./node_modules/foundation-sites/js/foundation.util.mediaQuery.js","webpack:///./node_modules/foundation-sites/js/foundation.core.js","webpack:///./node_modules/foundation-sites/js/foundation.core.plugin.js","webpack:///./node_modules/foundation-sites/js/foundation.util.keyboard.js","webpack:///./node_modules/foundation-sites/js/foundation.accordion.js","webpack:///./node_modules/foundation-sites/js/foundation.util.nest.js","webpack:///./node_modules/foundation-sites/js/foundation.accordionMenu.js","webpack:///./node_modules/foundation-sites/js/foundation.util.box.js","webpack:///./node_modules/foundation-sites/js/foundation.positionable.js","webpack:///./node_modules/foundation-sites/js/foundation.util.motion.js","webpack:///./node_modules/foundation-sites/js/foundation.util.triggers.js","webpack:///./node_modules/foundation-sites/js/foundation.util.touch.js","webpack:///./node_modules/foundation-sites/js/foundation.dropdown.js","webpack:///./node_modules/foundation-sites/js/foundation.dropdownMenu.js","webpack:///./node_modules/foundation-sites/js/foundation.util.imageLoader.js","webpack:///./node_modules/foundation-sites/js/foundation.equalizer.js","webpack:///./node_modules/foundation-sites/js/foundation.drilldown.js","webpack:///./node_modules/foundation-sites/js/foundation.responsiveMenu.js","webpack:///./node_modules/foundation-sites/js/foundation.responsiveToggle.js","webpack:///./node_modules/foundation-sites/js/foundation.reveal.js","webpack:///./node_modules/foundation-sites/js/foundation.slider.js","webpack:///./node_modules/foundation-sites/js/foundation.smoothScroll.js","webpack:///./node_modules/foundation-sites/js/foundation.sticky.js","webpack:///./node_modules/foundation-sites/js/foundation.tabs.js","webpack:///./node_modules/foundation-sites/js/foundation.toggler.js","webpack:///./node_modules/foundation-sites/js/foundation.tooltip.js","webpack:///./node_modules/foundation-sites/js/foundation.responsiveAccordionTabs.js","webpack:///./assets/js/vendors/foundation.js","webpack:///./assets/js/vendors/macy.js","webpack:///./assets/js/vendors/object-fit-images.js","webpack:///./node_modules/countup.js/dist/countUp.min.js","webpack:///./assets/js/scripts/count-on-scroll.js","webpack:///./assets/js/scripts/favorites.js","webpack:///./assets/js/scripts/images.js","webpack:///./assets/js/scripts/menu.js","webpack:///./assets/js/scripts/woocommerce.js","webpack:///./assets/js/scripts/wp-admin.js","webpack:///./src/Core/Blocks/Content/common/related_pages/script.js","webpack:///./src/Core/Blocks/Content/common/tag_filter/script.js","webpack:///./src/Core/Blocks/Marginals/header/thin_topbar_menu/script.js","webpack:////srv/www/d/dctaleninstituut.nl/vhosts/www/htdocs/content/themes/taleninstituut/assets/js/script.js","webpack:///./node_modules/process/browser.js","webpack:///./assets/js/scripts/cookies.js","webpack:///./node_modules/aos/dist/aos.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/object-fit-images/dist/ofi.common-js.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./assets/js/scripts/ie11.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./assets/js/scripts/resizes.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./assets/js/vendors/mobile.js","webpack:///./node_modules/axios/lib/helpers/null.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./src/Core/Blocks/Content/common/reviews/script.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/axios/lib/defaults/index.js","webpack:///./node_modules/ssr-window/ssr-window.esm.js","webpack:///./node_modules/dom7/node_modules/ssr-window/ssr-window.esm.js","webpack:///./node_modules/dom7/dom7.esm.js","webpack:///./node_modules/swiper/shared/dom.js","webpack:///./node_modules/swiper/shared/get-support.js","webpack:///./node_modules/swiper/shared/get-device.js","webpack:///./node_modules/swiper/shared/get-browser.js","webpack:///./node_modules/swiper/shared/utils.js","webpack:///./node_modules/swiper/core/transition/transitionEmit.js","webpack:///./node_modules/swiper/core/events/onTouchStart.js","webpack:///./node_modules/swiper/core/events/onTouchMove.js","webpack:///./node_modules/swiper/core/events/onTouchEnd.js","webpack:///./node_modules/swiper/core/events/onResize.js","webpack:///./node_modules/swiper/core/events/onClick.js","webpack:///./node_modules/swiper/core/events/onScroll.js","webpack:///./node_modules/swiper/core/events/index.js","webpack:///./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack:///./node_modules/swiper/core/check-overflow/index.js","webpack:///./node_modules/swiper/core/defaults.js","webpack:///./node_modules/swiper/core/moduleExtendParams.js","webpack:///./node_modules/swiper/core/core.js","webpack:///./node_modules/swiper/core/events-emitter.js","webpack:///./node_modules/swiper/core/update/index.js","webpack:///./node_modules/swiper/core/update/updateSize.js","webpack:///./node_modules/swiper/core/update/updateSlides.js","webpack:///./node_modules/swiper/core/update/updateAutoHeight.js","webpack:///./node_modules/swiper/core/update/updateSlidesOffset.js","webpack:///./node_modules/swiper/core/update/updateSlidesProgress.js","webpack:///./node_modules/swiper/core/update/updateProgress.js","webpack:///./node_modules/swiper/core/update/updateSlidesClasses.js","webpack:///./node_modules/swiper/core/update/updateActiveIndex.js","webpack:///./node_modules/swiper/core/update/updateClickedSlide.js","webpack:///./node_modules/swiper/core/translate/index.js","webpack:///./node_modules/swiper/core/translate/getTranslate.js","webpack:///./node_modules/swiper/core/translate/setTranslate.js","webpack:///./node_modules/swiper/core/translate/minTranslate.js","webpack:///./node_modules/swiper/core/translate/maxTranslate.js","webpack:///./node_modules/swiper/core/translate/translateTo.js","webpack:///./node_modules/swiper/core/transition/index.js","webpack:///./node_modules/swiper/core/transition/setTransition.js","webpack:///./node_modules/swiper/core/transition/transitionStart.js","webpack:///./node_modules/swiper/core/transition/transitionEnd.js","webpack:///./node_modules/swiper/core/slide/index.js","webpack:///./node_modules/swiper/core/slide/slideTo.js","webpack:///./node_modules/swiper/core/slide/slideToLoop.js","webpack:///./node_modules/swiper/core/slide/slideNext.js","webpack:///./node_modules/swiper/core/slide/slidePrev.js","webpack:///./node_modules/swiper/core/slide/slideReset.js","webpack:///./node_modules/swiper/core/slide/slideToClosest.js","webpack:///./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack:///./node_modules/swiper/core/loop/index.js","webpack:///./node_modules/swiper/core/loop/loopCreate.js","webpack:///./node_modules/swiper/core/loop/loopFix.js","webpack:///./node_modules/swiper/core/loop/loopDestroy.js","webpack:///./node_modules/swiper/core/grab-cursor/index.js","webpack:///./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack:///./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack:///./node_modules/swiper/core/breakpoints/index.js","webpack:///./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack:///./node_modules/swiper/core/classes/index.js","webpack:///./node_modules/swiper/core/classes/addClasses.js","webpack:///./node_modules/swiper/core/classes/removeClasses.js","webpack:///./node_modules/swiper/core/images/index.js","webpack:///./node_modules/swiper/core/images/loadImage.js","webpack:///./node_modules/swiper/core/images/preloadImages.js","webpack:///./node_modules/swiper/core/modules/resize/resize.js","webpack:///./node_modules/swiper/core/modules/observer/observer.js","webpack:///./node_modules/swiper/shared/create-element-if-not-defined.js","webpack:///./node_modules/swiper/modules/navigation/navigation.js","webpack:///./node_modules/swiper/shared/classes-to-selector.js","webpack:///./node_modules/swiper/modules/pagination/pagination.js","webpack:///./node_modules/swiper/modules/scrollbar/scrollbar.js","webpack:///./node_modules/swiper/modules/controller/controller.js","webpack:///./node_modules/swiper/modules/autoplay/autoplay.js","webpack:///./node_modules/swiper/modules/thumbs/thumbs.js","webpack:///./node_modules/swiper/shared/effect-init.js","webpack:///./node_modules/swiper/shared/effect-target.js","webpack:///./node_modules/swiper/shared/create-shadow.js","webpack:///./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/axios/lib/env/data.js","webpack:///./node_modules/axios/lib/helpers/isAxiosError.js","webpack:///./src/Core/Blocks/Content/common/featured_menu_items/script.js","webpack:///./assets/js/vendors/parallax.js","webpack:///./assets/js/vendors/clamp.js","webpack:///./assets/js/scripts/buddypress.js","webpack:///./node_modules/axios/lib/core/AxiosError.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./assets/js/scripts/scroll-to-top.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/axios/lib/helpers/validator.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/what-input/dist/what-input.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/axios/lib/helpers/parseProtocol.js","webpack:///./assets/js/scripts/blocks.js","webpack:///./node_modules/axios/index.js","webpack:///./src/Core/Blocks/Content/common/pricing/script.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///external \"jQuery\"","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/axios/lib/defaults/transitional.js","webpack:///./node_modules/axios/lib/axios.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","AxiosError","CanceledError","message","this","ERR_CANCELED","inherits","__CANCEL__","url","test","toString","Array","isArray","arr","e","length","push","arguments","window","Promise","A","recalculate","useContainerForBreakpoints","container","clientWidth","innerWidth","columns","b","margin","x","y","keys","breakAt","mobileFirst","options","responsiveOptions","docWidth","a","parseInt","O","parseFloat","replace","u","rows","v","style","height","M","offsetHeight","isNaN","forEach","position","top","left","cols","dataset","macyComplete","tmpRows","f","lastcol","C","h","nodeName","byCss","selectors","split","RegExp","document","querySelectorAll","getElementsByClassName","substring","getElementsByTagName","getElementById","running","events","add","run","shift","clear","instance","data","on","emit","g","naturalHeight","naturalWidth","width","E","complete","addEventListener","then","constants","EVENT_IMAGE_LOAD","img","catch","EVENT_IMAGE_ERROR","w","all","EVENT_IMAGE_COMPLETE","I","clearTimeout","setTimeout","EVENT_RESIZE","queue","_","debug","console","error","N","resizer","T","useOwnImageLoader","waitForImages","EVENT_INITIALIZED","L","getComputedStyle","getPropertyValue","V","children","from","filter","offsetParent","trueOrder","EVENT_RECALCULATED","R","assign","k","useImageLoader","onInit","cancelLegacy","createElement","querySelector","getAttribute","id","Math","floor","random","apply","removeAttribute","Element","q","init","warn","recalculateOnImageLoad","runOnImageLoad","remove","removeEventListener","reInit","utils","obj","formData","FormData","stack","convertValue","isDate","toISOString","isArrayBuffer","isTypedArray","Blob","Buffer","build","parentKey","isPlainObject","indexOf","Error","isUndefined","fullKey","endsWith","JSON","stringify","toArray","el","append","pop","baseURL","relativeURL","AOS","rtl","$","attr","GetYoDigits","namespace","str","chars","charsLength","transitionend","$elem","end","transitions","elem","transition","triggerHandler","onLoad","handler","didLoad","readyState","eventType","cb","one","ignoreMousedisappear","ignoreLeaveWindow","ignoreReappear","eLeave","rest","callback","relatedTarget","hasFocus","eReenter","currentTarget","has","target","matchMedia","styleMedia","media","info","script","type","parentNode","insertBefore","head","appendChild","currentStyle","matchMedium","text","styleSheet","cssText","textContent","matches","MediaQuery","queries","current","_init","isInitialized","appendTo","namedQueries","extractedStyles","css","styleObject","trim","slice","reduce","ret","param","parts","val","decodeURIComponent","parseStyleToObject","_getCurrentSize","_watcher","_reInit","atLeast","size","query","only","upTo","nextSize","next","is","bpSize","bpModifier","queryIndex","findIndex","_getQueryName","nextQuery","TypeError","matched","newSize","currentSize","trigger","Foundation","version","_plugins","_uuids","plugin","className","functionName","attrName","hyphenate","registerPlugin","pluginName","constructor","toLowerCase","uuid","$element","unregisterPlugin","prop","splice","removeAttr","removeData","plugins","isJQ","each","_this","plgs","foundation","err","reflow","find","addBack","$el","opts","option","opt","map","parseValue","er","getFnName","addToJquery","fn","method","$noJS","removeClass","args","plugClass","ReferenceError","Function","results","exec","util","throttle","func","delay","timer","context","Date","now","getTime","vendors","requestAnimationFrame","vp","cancelAnimationFrame","navigator","userAgent","lastTime","nextTime","max","performance","start","oThis","aArgs","fToBind","fNOP","fBound","concat","Plugin","element","_setup","getPluginName","_destroy","keyCodes","9","13","27","32","35","36","37","38","39","40","commands","findFocusable","sort","aTabIndex","bTabIndex","parseKey","event","which","keyCode","String","fromCharCode","toUpperCase","shiftKey","ctrlKey","altKey","Keyboard","kcs","kc","getKeyCodes","handleKey","component","functions","commandList","zfIsKeyHandled","ltr","Rtl","extend","returnValue","handled","unhandled","register","componentName","cmds","trapFocus","$focusable","$firstFocusable","eq","$lastFocusable","preventDefault","focus","releaseFocus","off","Accordion","defaults","_isInitializing","$tabs","idx","$content","linkId","$initActive","_initialAnchor","prev","_openSingleTab","_checkDeepLink","anchor","location","hash","$anchor","$link","parent","hasClass","_closeAllTabs","deepLinkSmudge","offset","animate","scrollTop","deepLinkSmudgeOffset","deepLinkSmudgeDelay","deepLink","_events","$tabContent","toggle","$a","multiExpand","previous","first","last","$target","closest","up","down","updateHistory","history","pushState","replaceState","_openTab","$targetItem","$othersItems","siblings","allowAllClosed","_closeTab","$activeContents","not","targetContentId","addClass","finish","slideDown","slideSpeed","slideUp","$activeTabs","stop","Nest","menu","items","subMenuClass","subItemClass","hasSubClass","applyAria","$item","$sub","firstItem","AccordionMenu","multiOpen","$menuLinks","subId","isActive","parentLink","clone","prependTo","wrap","submenuToggle","after","submenuToggleText","initPanes","$submenu","$prevElement","$nextElement","$elements","min","parents","open","close","closeAll","hideAll","$targetBranch","parentsUntil","$othersActiveSubmenus","$submenus","$allmenus","detach","Box","ImNotTouchingYou","lrOnly","tbOnly","ignoreBottom","OverlapArea","GetDimensions","GetExplicitOffsets","alignment","vOffset","hOffset","isOverflow","topVal","leftVal","$eleDims","$anchorDims","topOver","bottomOver","leftOver","rightOver","eleDims","parDims","windowDims","sqrt","rect","getBoundingClientRect","parRect","winRect","body","winY","pageYOffset","winX","pageXOffset","parentDims","POSITIONS","VERTICAL_ALIGNMENTS","HORIZONTAL_ALIGNMENTS","ALIGNMENTS","nextItem","item","array","currentIdx","Positionable","triedPositions","_getDefaultPosition","_getDefaultAlignment","originalPosition","originalAlignment","_alignmentsExhausted","_realign","_addTriedPosition","isExhausted","$parent","allowOverlap","_getVOffset","_getHOffset","minOverlap","minCoordinates","_positionsExhausted","overlap","allowBottomOverlap","_reposition","initClasses","activeClasses","Motion","animation","isIn","initClass","activeClass","reset","show","offsetWidth","hide","transitionDuration","MutationObserver","prefixes","triggers","Triggers","Listeners","Basic","Global","Initializers","debounceGlobalListener","debounce","listener","openListener","closeListener","toggleListener","closeableListener","stopPropagation","fadeOut","toggleFocusListener","addOpenListener","addCloseListener","addToggleListener","addCloseableListener","addToggleFocusListener","resizeListener","$nodes","scrollListener","closeMeListener","pluginId","addClosemeListener","yetiBoxes","plugNames","listeners","join","addResizeListener","addScrollListener","addMutationEventsListener","listeningElementsMutation","mutationRecordsList","attributeName","observe","attributes","childList","characterData","subtree","attributeFilter","addSimpleListeners","$document","addGlobalListeners","__","triggersInitialized","IHearYou","startPosX","startTime","elapsedTime","startEvent","Touch","isMoving","didMoved","onTouchEnd","onTouchMove","tapEvent","Event","spotSwipe","dir","touches","pageX","dx","abs","moveThreshold","timeThreshold","onTouchStart","passive","SpotSwipe","enabled","documentElement","special","swipe","setup","tap","noop","setupSpotSwipe","setupTouchHandler","addTouch","handleTouch","simulatedEvent","changedTouches","touchstart","touchmove","touchend","MouseEvent","screenX","screenY","clientX","clientY","createEvent","initMouseEvent","dispatchEvent","Dropdown","$id","$anchors","_setCurrentAnchor","parentClass","$currentAnchor","match","horizontalPosition","hasTouch","ontouchstart","_setPosition","forceFollow","hover","bodyData","whatinput","timeout","hoverDelay","hoverPane","$body","autoFocus","closeOnClick","_addBodyHandler","DropdownMenu","subs","$menuItems","verticalClass","rightClass","changed","parClass","clickOpen","hasSub","hasClicked","stopImmediatePropagation","_hide","_show","closeOnClickInside","disableHoverOnTouch","disableHover","autoclose","closingTime","isTab","index","nextSibling","prevSibling","openSub","closeSub","_isVertical","_isRtl","_removeBodyHandler","$sibs","oldClass","$parentLi","$toClose","$activeItem","onImagesLoaded","images","unloaded","singleImageLoaded","image","Image","me","src","Equalizer","eqId","$watched","hasNested","isNested","isOn","_bindHandler","onResizeMeBound","_onResizeMe","onPostEqualizedBound","_onPostEqualized","tooSmall","imgs","equalizeOn","_checkMQ","_reflow","_pauseEvents","equalizeOnStack","_isStacked","equalizeByRow","getHeightsByRow","applyHeightByRow","getHeights","applyHeight","heights","len","lastElTopOffset","groups","group","elOffsetTop","j","ln","groupsILength","lenJ","Drilldown","autoApplyClass","$submenuAnchors","$currentMenu","_prepareMenu","_registerEvents","_keyboardEvents","$menu","backButtonPosition","backButton","prepend","_back","autoHeight","$wrapper","wrapper","animateHeight","_getMaxDims","ev","contains","_hideAll","_scrollTop","_resize","$scrollTopElement","scrollTopElement","scrollPos","scrollTopOffset","animationDuration","animationEasing","calcHeight","parentSubMenu","_setHideSubMenuClasses","isLastChild","_setShowSubMenuClasses","blur","maxHeight","result","unwrap","MenuPlugins","dropdown","cssClass","drilldown","accordion","ResponsiveMenu","rules","currentMq","currentPlugin","rulesTree","rule","ruleSize","rulePlugin","isEmptyObject","_checkMediaQueries","matchedMq","destroy","ResponsiveToggle","targetID","$targetMenu","$toggler","input","animationIn","animationOut","_update","_updateMqHandler","toggleMenu","hideFor","Reveal","cached","mq","fullScreen","overlay","$overlay","_makeOverlay","onLoadListener","additionalOverlayClasses","outerWidth","outerHeight","_updatePosition","_handleState","$activeAnchor","activeElement","multipleOpened","_disableScroll","focusableElements","_addGlobalClasses","showDelay","_addGlobalListeners","updateScrollbarClass","toggleClass","closeOnEsc","finishUp","_removeGlobalClasses","_enableScroll","hideDelay","resetOnClose","html","urlWithoutHash","pathname","search","title","Slider","initialized","inputs","handles","$handle","$input","$fill","vertical","disabled","disabledClass","binding","_setInitAttr","doubleSided","$handle2","$input2","setHandles","_setHandlePos","pctOfBar","percent","positionValueFunction","_logTransform","_powTransform","toFixed","base","log","baseLog","nonLinearBase","pow","$hndl","isDbl","h2Val","step","h1Val","vert","hOrW","lOrT","handleDim","elemDim","_pctOfBar","movement","decimal","_setValues","dim","isLeftHndl","handlePct","handlePos","initialStart","duration","anim","prog","move","ts","Move","moveTime","changedDelay","initVal","initialEnd","_adjustValue","direction","eventOffset","pageY","barDim","windowScroll","scrollLeft","elemOffset","barXY","eventFromBar","offsetPct","_value","absPosition","previousVal","div","_eventsForHandle","curHandle","handleChangeEvent","_handleEvent","clickSelect","draggable","newValue","_$handle","oldValue","decrease","increase","decreaseFast","increaseFast","frac","num","clickPos","invertVertical","SmoothScroll","loc","$loc","round","threshold","_linkClickListener","_handleLinkClick","arrival","_inTransition","scrollToLoc","Sticky","$container","wasWrapped","containerClass","stickyClass","scrollCount","checkEvery","isStuck","containerHeight","elemHeight","_parsePoints","_setSizes","scroll","_calc","_removeSticky","topPoint","reverse","pts","topAnchor","btmAnchor","scrollHeight","breaks","pt","place","points","canStick","_eventsHandler","_pauseListeners","checkSizes","bottomPoint","_setSticky","stickTo","mrgn","notStuckTo","isTop","stickToTop","anchorPt","anchorHeight","topOrBottom","bottom","stickyOn","newElemWidth","comp","pdngl","pdngr","dynamicHeight","newContainerHeight","_setBreakPoints","mTop","emCalc","marginTop","mBtm","marginBottom","winHeight","innerHeight","em","fontSize","Tabs","$tabTitles","linkClass","linkActiveClass","matchHeight","$images","_setHeight","anchorNoHash","selectTab","_collapse","_addKeyHandler","_addClickHandler","_setHeightMqHandler","_handleTabChange","wrapOnKeys","historyHandled","activeCollapse","$oldTab","$tabLink","$targetContent","_collapseTab","panelActiveClass","$targetAnchor","$activeTab","idStr","hashIdStr","panelClass","panel","temp","Toggler","$triggers","toggler","$trigger","controls","_updateARIA","undefined","Tooltip","isClick","elemId","tipText","template","_buildTemplate","allowHtml","triggerClass","elementClassName","SVGElement","baseVal","tooltipWidth","tooltipHeight","templateClasses","tooltipClass","showOn","fadeIn","fadeInDuration","fadeOutDuration","isFocus","disableForTouch","touchCloseText","tabs","ResponsiveAccordionTabs","storezfData","currentRule","_getAllOptions","allOptions","dummyPlugin","tmpPlugin","keyKey","objObj","_changedZfMediaQueryHandler","_handleMarkup","toSet","fromString","$panels","tabsTitle","tabsPanel","$liHeads","$liHeadsA","display","visibility","$tabsContent","$placeholder","insertAfter","tempValue","masonryGrids","Macy","640","1024","objectFitImages","__assign","CountUp","endVal","startVal","decimalPlaces","useEasing","useGrouping","smartEasingThreshold","smartEasingAmount","separator","prefix","suffix","enableScrollSpy","scrollSpyDelay","scrollSpyOnce","finalEndVal","countDown","paused","once","count","remaining","frameVal","easingFn","Number","printValue","rAF","update","formatNumber","numerals","easeOutExpo","formattingFn","validateValue","resetDuration","onScrollFns","handleScroll","onscroll","scrollY","determineDirectionAndSmartEasing","pauseResume","tagName","innerHTML","ensureNumber","bubbles","cancelable","composed","registerEventListeners","elements","intersectionObserver","IntersectionObserver","animateModern","root","rootMargin","animateLegacy","elementIsInView","animateElement","countUp","counterDecimal","button","postID","action","themosis","axios","response","addToFavorites","removeFromFavorites","directions","column","containerId","LazyLoad","randomID","submenu","logo","logoMobile","language","overlayItems","li","toggleArrow","submenuTogglesCheckInterval","setInterval","submenuToggles","clearInterval","searchBlockButton","searchFormBlock","galleryThumbs","slidesPerView","freeMode","watchSlidesVisibility","watchSlidesProgress","scrollbar","navigation","nextEl","prevEl","thumbs","swiper","select","wp","gutenbergLoadCheck","anchors","editPost","fields","initialOffset","masonry","slider","textLoadMore","textLoading","textLoadFailed","cards","cardSliders","$hiddenInput","$emptyInput","$smartTag","cache","smart_tag","success","$select","selectedOption","selectedSmartTagLabel","ga","analyticsGTMID","resolve","hero","background","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","nextTick","browser","env","argv","versions","addListener","removeListener","removeAllListeners","prependListener","prependOnceListener","cwd","chdir","umask","translationNotice","cname","cvalue","exdays","expires","setCookie","loaded","default","easing","disable","throttleDelay","debounceDelay","disableMutationObserver","atob","mobile","phone","tablet","S","node","isSupported","setAttribute","ready","refresh","refreshHard","leading","maxWait","trailing","cancel","flush","valueOf","iterator","NaN","self","WebKitMutationObserver","MozMutationObserver","addedNodes","removedNodes","aos","vendor","opera","configurable","writable","substr","classList","anchorPlacement","offsetLeft","offsetTop","InterceptorManager","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","OFI","propRegex","testImg","supportsObjectFit","supportsObjectPosition","supportsOFI","supportsCurrentSrc","currentSrc","nativeGetAttribute","nativeSetAttribute","autoModeEnabled","setPlaceholder","placeholder","onImageReady","fixOne","parsed","fontFamily","props","getStyle","ofi","skipTest","srcset","descriptors","set","ss","keepSrcUsable","picturefill","pf","evaled","fillImg","reselect","curSrc","supported","polyfillCurrentSrc","backgroundImage","backgroundPosition","backgroundRepeat","backgroundOrigin","backgroundSize","fix","startAutoMode","watchMQ","getOfiImageMaybe","HTMLImageElement","hijackAttributes","buildURL","dispatchRequest","mergeConfig","buildFullPath","validator","validators","Axios","instanceConfig","interceptors","request","configOrUrl","config","transitional","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","clarifyTimeoutError","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","promise","responseInterceptorChain","chain","newConfig","onFulfilled","onRejected","reject","getUri","fullPath","params","paramsSerializer","generateHTTPMethod","isForm","headers","flexBasis","isMargin","global","factory","noGlobal","getProto","getPrototypeOf","flat","class2type","hasOwn","fnToString","ObjectFunctionString","support","isFunction","nodeType","isWindow","preservedScriptAttributes","nonce","noModule","DOMEval","code","doc","removeChild","toType","jQuery","selector","isArrayLike","jquery","pushStack","elems","merge","prevObject","even","grep","_elem","odd","copy","copyIsArray","deep","expando","isReady","msg","proto","Ctor","globalEval","makeArray","inArray","second","invert","callbackExpect","arg","guid","_i","Sizzle","Expr","getText","isXML","tokenize","compile","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","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","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","childNodes","els","seed","nid","newSelector","newContext","ownerDocument","qsa","testContext","scope","toSelector","qsaError","cacheLength","markFunction","assert","addHandle","attrs","attrHandle","siblingCheck","cur","diff","sourceIndex","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespaceURI","hasCompare","subWindow","defaultView","attachEvent","createComment","getById","getElementsByName","attrId","getAttributeNode","tag","tmp","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","firstChild","nodeValue","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","what","_argument","simple","forward","ofType","_context","xml","uniqueCache","outerCache","nodeIndex","useCache","lastChild","uniqueID","pseudo","setFilters","matcher","unmatched","lang","elemLang","href","tabIndex","checked","selected","selectedIndex","_matchIndexes","radio","checkbox","file","password","submit","tokens","combinator","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","token","compiled","_name","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","rneedsContext","needsContext","rsingleTag","winnow","qualifier","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","contents","sibling","targets","prevAll","nextAll","nextUntil","prevUntil","contentDocument","content","rnothtmlwhite","Identity","Thrower","ex","adoptValue","noValue","fail","Callbacks","flag","createOptions","firing","memory","fired","locked","firingIndex","fire","stopOnFalse","empty","lock","fireWith","Deferred","tuples","state","always","deferred","pipe","fns","newDefer","tuple","returned","progress","notify","onProgress","maxDepth","depth","that","mightThrow","notifyWith","resolveWith","exceptionHook","stackTrace","rejectWith","getStackHook","stateString","when","singleValue","resolveContexts","resolveValues","primary","updateFunc","rerrorNames","readyException","readyList","completed","readyWait","wait","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","camelCase","string","acceptData","owner","Data","uid","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","parse","getData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","setter","clearQueue","defer","pnum","source","rcssNum","cssExpand","isAttached","getRootNode","isHiddenWithinTree","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","values","rcheckableType","rtagName","rscriptType","createDocumentFragment","checkClone","cloneNode","noCloneChecked","wrapMap","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","buildFragment","scripts","selection","ignored","attached","fragment","nodes","htmlPrefilter","createTextNode","rtypenamespace","returnTrue","returnFalse","expectSync","safeActiveElement","types","origFn","leverageNative","notAsync","saved","isTrigger","delegateType","handleObjIn","eventHandle","handleObj","namespaces","origType","elemData","handle","triggered","dispatch","bindType","delegateCount","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","delegateTarget","preDispatch","isPropagationStopped","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","originalEvent","load","noBubble","click","beforeunload","isDefaultPrevented","defaultPrevented","timeStamp","isSimulated","detail","eventPhase","metaKey","view","charCode","buttons","offsetX","offsetY","pointerId","pointerType","targetTouches","toElement","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","before","replaceWith","replaceChild","replaceAll","original","insert","rnumnonpx","rcustomProp","getStyles","opener","swap","old","rboxStyle","rtrimCSS","curCSS","computed","minWidth","maxWidth","isCustomProp","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","measure","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","borderTopWidth","borderBottomWidth","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","cssProps","capName","vendorPropName","rdisplayswap","cssShow","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","ceil","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","cssHooks","opacity","origName","setProperty","isFinite","scrollboxSizeBuggy","padding","border","expand","expanded","propHooks","eased","pos","fx","linear","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","interval","tick","createFxNow","genFx","includeWidth","createTween","Animation","tweeners","properties","stopped","prefilters","currentTime","tweens","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","speeds","fadeTo","to","optall","doAnimation","stopQueue","timers","cssFn","slideToggle","fadeToggle","slow","fast","time","checkOn","optSelected","radioValue","boolHook","nType","attrHooks","bool","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","classNames","curValue","finalValue","stateVal","isValidValue","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","attaches","rquery","parseXML","parserErrorElem","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","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","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","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","status","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","beforeSend","send","nativeStatusText","responses","isSuccess","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","conv","dataFilter","throws","ajaxConvert","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","visible","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","win","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","delegate","undelegate","fnOver","fnOut","proxy","holdReady","hold","parseJSON","isNumeric","_jQuery","_$","noConflict","byteLength","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","Arr","_byteLength","curByte","revLookup","fromByteArray","uint8","extraBytes","len2","encodeChunk","lookup","Uint8Array","output","thisArg","encode","serializedParams","isURLSearchParams","isObject","hashmarkIndex","scrollbox","scrollBarWidth","setScrollbarSize","epve","getEditorWidth","isStandardBrowserEnv","originURL","msie","urlParsingNode","resolveURL","hostname","port","charAt","requestURL","isString","containers","validateStatus","ERR_BAD_REQUEST","ERR_BAD_RESPONSE","msInitializeReviewSlider","Swiper","acf","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","normalizeHeaderName","transitionalDefaults","toFormData","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","adapter","transformRequest","isFormData","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isFileList","isObjectPayload","_FormData","rawValue","parser","encoder","stringifySafely","transformResponse","strictJSONParsing","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","common","ssrDocument","createElementNS","importNode","origin","getDocument","ssrWindow","CustomEvent","screen","getWindow","Dom7","__proto__","arrayFlat","res","arrayFilter","toCreate","tempParent","uniqueArray","arrayUnique","noTrigger","shortcut","Methods","classes","transform","targetSelector","capture","handleLiveEvent","eventData","dom7EventData","handleEvent","dom7LiveListeners","proxyListener","dom7Listeners","dom7proxy","dataIndex","transitionEnd","dom","fireCallBack","includeMargins","clientTop","clientLeft","scrollX","compareWith","child","previousSibling","returnIndex","newChild","tempDiv","nextElementSibling","nextEls","previousElementSibling","prevEls","foundElements","found","methodName","deviceCached","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","m41","m42","isNode","HTMLElement","noExtend","nextSource","keysArray","nextIndex","nextKey","desc","getOwnPropertyDescriptor","__swiper__","setCSSProperty","varName","varValue","animateCSSModeScroll","_ref","targetPosition","side","startPosition","translate","wrapperEl","scrollSnapType","cssModeFrameID","isOutOfBound","easeProgress","currentPosition","getSupport","smoothScroll","touch","DocumentTouch","passiveListener","supportsPassive","gestures","calcSupport","getDevice","overrides","_temp","platform","ua","device","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","isSafari","isWebView","calcBrowser","transitionEmit","runCallbacks","activeIndex","previousIndex","touchEventsData","animating","preventInteractionOnTransition","cssMode","loop","loopFix","$targetEl","touchEventsTarget","isTouchEvent","isTouched","isMoved","noSwipingClass","shadowRoot","path","noSwipingSelector","isTargetShadow","noSwiping","__closestFrom","assignedSlot","closestElement","allowClick","swipeHandler","currentX","currentY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","updateSize","swipeDirection","allowThresholdMove","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","rtlTranslate","targetTouch","preventedByNestedSwiper","touchReleaseOnEdges","isVertical","maxTranslate","minTranslate","diffX","diffY","touchAngle","isHorizontal","atan2","touchMoveStopPropagation","nested","startTranslate","setTransition","$wrapperEl","allowMomentumBounce","grabCursor","allowSlideNext","allowSlidePrev","setGrabCursor","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","updateActiveIndex","updateSlidesClasses","updateProgress","setTranslate","slidesGrid","currentPos","touchEndTime","timeDiff","pathTree","composedPath","updateClickedSlide","lastClickTime","destroyed","stopIndex","groupSize","slidesSizesGrid","slidesPerGroupSkip","slidesPerGroup","increment","rewindFirstIndex","rewindLastIndex","rewind","isBeginning","virtual","slides","isEnd","ratio","longSwipesMs","longSwipes","slideTo","longSwipesRatio","shortSwipes","onResize","breakpoints","setBreakpoint","snapGrid","updateSlides","centeredSlides","autoplay","watchOverflow","checkOverflow","onClick","preventClicks","preventClicksPropagation","onScroll","previousTranslate","translatesDiff","dummyEventAttached","dummyEventListener","touchEvents","domMethod","swiperMethod","passiveListeners","updateOnWindowResize","isGridEnabled","grid","initialSlide","resizeObserver","createElements","setWrapperSize","virtualTranslate","effect","breakpointsBase","spaceBetween","slidesPerGroupAuto","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","uniqueNavElements","slideToClickedSlide","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopedSlides","loopFillGroupWithBlank","loopPreventsSlide","maxBackfaceHiddenSlides","containerModifierClass","slideClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","priority","eventsListeners","onceHandler","__emitterProxy","_len","onAny","eventsAnyListeners","offAny","eventHandler","_len2","_key2","eventsArray","clientHeight","getDirectionLabel","getDirectionPropertyValue","label","swiperSize","wrongRTL","isVirtual","previousSlidesLength","slidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","virtualSize","marginRight","slideSize","gridEnabled","initSlides","shouldResetSlideSize","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","paddingLeft","paddingRight","boxSizing","swiperSlideSize","updateWrapperSize","newSlidesGrid","slidesGridItem","slideIndex","allSlidesSize","slideSizeValue","maxSnap","snap","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","updateSlidesOffset","backFaceHiddenClass","hasClassBackfaceClassAdded","updateAutoHeight","activeSlides","newHeight","getSlideByIndex","visibleSlides","swiperSlideOffset","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideOffset","slideProgress","originalSlideProgress","slideBefore","slideAfter","originalProgress","multiplier","wasBeginning","wasEnd","activeSlide","realIndex","nextSlide","prevSlide","emitSlidesClasses","newActiveIndex","previousRealIndex","previousSnapIndex","slideFound","clickedSlide","clickedIndex","byController","translateTo","translateBounds","internal","newTranslate","isH","onTranslateToWrapperTransitionEnd","transitionStart","indexAsNumber","normalizedTranslate","normalizedGrid","normalizedGridNext","_immediateVirtual","_swiperImmediateVirtual","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","perGroup","slidesPerViewDynamic","_clientLeft","slidePrev","normalize","prevSnapIndex","normalizedSnapGrid","prevSnap","prevIndex","lastIndex","slideReset","slideToClosest","currentSnap","slideToIndex","loopCreate","$selector","blankSlidesNum","blankNode","prependSlides","appendSlides","loopDestroy","moving","isLocked","cursor","unsetGrabCursor","attachEvents","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","fill","wasModuleEnabled","isModuleEnabled","enable","directionChanged","needsReLoop","changeDirection","isEnabled","containerEl","currentHeight","point","minRatio","wasLocked","lastSlideIndex","lastSlideRightEdge","addClasses","entries","resultClasses","suffixes","removeClasses","loadImage","imageEl","sizes","checkForComplete","onReady","imagesLoaded","imagesToLoad","extendedDefaults","swipers","newParams","__modules__","mod","extendParams","desktop","swiperParams","passedParams","eventName","velocity","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","newDefaults","installModule","cls","slideEl","updates","getSlideClasses","exact","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","mounted","getWrapperSelector","getWrapper","mount","deleteInstance","cleanStyles","prototypeGroup","protoMethod","observer","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","_ref2","contentBoxSize","contentRect","inlineSize","blockSize","unobserve","observers","attach","WebkitMutationObserver","mutations","observerUpdate","observeParents","observeSlideChildren","containerParents","disconnect","createElementIfNotDefined","checkProps","Navigation","getEl","toggleEl","lockClass","$nextEl","$prevEl","onPrevClick","onNextClick","hideOnClick","hiddenClass","navigationDisabledClass","_s","targetEl","pagination","clickable","isHidden","classesToSelector","Pagination","bulletSize","pfx","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","paginationDisabledClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","$bulletEl","total","paginationType","firstIndex","midIndex","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","progressbarDirection","scaleX","scaleY","render","paginationHTML","numberOfBullets","Scrollbar","dragStartPos","dragSize","trackSize","divider","dragTimeout","$dragEl","newPos","getPointerPosition","setDragPosition","positionRatio","onDragStart","onDragMove","onDragEnd","snapOnRelease","activeListener","eventMethod","$swiperEl","dragClass","dragEl","scrollbarDisabledClass","Controller","LinearSpline","maxIndex","minIndex","guess","i1","i3","binarySearch","interpolate","x2","removeSpline","controller","control","spline","inverse","by","_t","controlledTranslate","controlled","setControlledTranslate","getInterpolateFunction","setControlledTransition","Autoplay","$activeSlideEl","autoplayResult","reverseDirection","stopOnLastSlide","pause","waitForTransition","onTransitionEnd","onVisibilityChange","visibilityState","onMouseEnter","disableOnInteraction","onMouseLeave","pauseOnMouseEnter","Thumb","multipleActiveThumbs","autoScrollOffset","slideThumbActiveClass","thumbsContainerClass","swiperCreated","onThumbClick","thumbsSwiper","currentIndex","thumbsParams","SwiperClass","thumbsSwiperParams","useOffset","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","effectInit","requireUpdateOnVirtual","overwriteParams","perspective","recreateShadows","getEffectParams","overwriteParamsResult","slideShadows","effectTarget","effectParams","$slideEl","transformEl","createShadow","shadowClass","$shadowContainer","$shadowEl","EffectCoverflow","coverflowEffect","rotate","stretch","modifier","swiperWidth","swiperHeight","center","centerOffset","offsetMultiplier","rotateY","rotateX","translateZ","translateY","translateX","slideTransform","zIndex","$shadowBeforeEl","$shadowAfterEl","transformData","isCancel","throwIfCancellationRequested","cancelToken","throwIfRequested","signal","aborted","reason","payload","isAxiosError","previews","link","preview","positions","positionX","positionY","imageSrc","sliderExisted","$slider","Parallax","currTime","timeToCall","bleed","iosFix","androidFix","overScrollFix","mirrorContainer","boxOffsetTop","docHeight","maxOffset","minOffset","imageHeightMin","boxHeight","imageOffsetMin","imageWidth","boxWidth","imageHeight","overScroll","scrollBottom","boxOffsetBottom","boxOffsetLeft","offsetBaseTop","mirrorTop","winWidth","sliders","isFresh","isBusy","$doc","$win","loadDimensions","loadScrollPosition","winScrollTop","scrollTopMax","scrollLeftMax","lastPosition","frameLoop","configure","requestRender","parallaxElement","$this","clamp","useNativeClamp","splitOnChars","truncationChar","truncationHTML","sty","originalText","supportsNativeClamp","clampValue","isCSSValue","re","availHeight","lineHeight","getLineHeight","lh","computeStyle","truncationHTMLContainer","splitChar","getLastChild","getMaxLines","clampedText","chunks","lastChunk","applyEllipsis","clamped","changeOption","field","toJSON","description","fileName","lineNumber","columnNumber","defineProperties","customProps","axiosError","toFlatObject","write","domain","secure","cookie","isNumber","toGMTString","read","backTop","checkBackToTop","windowTop","scrollElement","scrolling","scrollEl","animateScroll","timestamp","dataElement","scrollDuration","scrollOffset","moveFocus","isAbsoluteURL","combineURLs","requestedURL","VERSION","thing","deprecatedWarnings","formatMessage","ERR_DEPRECATED","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","subscribe","unsubscribe","ask","ignoreKeys","specificKeys","registerOnChange","unRegisterOnChange","currentElement","currentInput","currentIntent","currentTimestamp","shouldPersist","formInputs","functionList","ignoreMap","specificMap","inputMap","keydown","keyup","mousedown","mousemove","MSPointerDown","MSPointerMove","pointerdown","pointermove","mousePos","pointerMap","2","3","4","addListeners","setPersist","PointerEvent","setInput","setIntent","MSPointerEvent","detectWheel","setElement","clearElement","sessionStorage","getItem","doUpdate","eventKey","ignoreMatch","specificMatch","shouldUpdate","validateTouch","persistInput","activeElem","checkClosest","fireFunctions","detectScrolling","setItem","touchIsValid","onmousewheel","ElementPrototype","parentElement","objPos","clearStorage","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","Infinity","rt","LN2","settle","cookies","parseHeaders","isURLSameOrigin","parseProtocol","onCanceled","requestData","auth","unescape","Authorization","btoa","onloadend","responseURL","ECONNABORTED","ERR_NETWORK","timeoutErrorMessage","ETIMEDOUT","xsrfValue","withCredentials","onDownloadProgress","onUploadProgress","upload","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","RangeError","encodingOrOffset","allocUnsafe","ArrayBuffer","byteOffset","fromArrayLike","fromArrayBuffer","encoding","isEncoding","actual","fromObject","assertSize","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","bidirectionalIndexOf","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","buf","readUInt16BE","foundIndex","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","subarray","typedArraySupport","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","equals","thisStart","thisEnd","thisCopy","targetCopy","includes","_arr","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","stringtrim","base64clean","dst","wpSoupGetBlocksOnPage","blocks","wpSoupGetBlocksFromBlock","block","blockType","notDefined","wp_soup_deprecated_blocks","available_blocks","blocks_in_page","priceToggle","priceContent","extraPriceContent","priceBlock","priceBlocks","buttonWC","buttonWCHref","buttonHref","extraOptions","selectedOptionsID","selectedOptions","optionName","optionID","firstPriceNode","secondPriceNode","optionPrice","optionPrice2","firstPrice","newFirstPriceHTML","secondPrice","secondPriceHTML","optionsString","ignoreDuplicateOf","line","kindOf","kindOfTest","TypedArray","product","assignValue","stripBOM","superConstructor","sourceObj","destObj","merged","getOwnPropertyNames","searchString","normalizedName","createInstance","defaultConfig","Cancel","promises","spread"],"mappings":"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","file":"/dist/js/site/taleninstituut.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 3);\n","'use strict';\n\nvar AxiosError = require('../core/AxiosError');\nvar utils = require('../utils');\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction CanceledError(message) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nmodule.exports = CanceledError;\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):t.Macy=n()}(this,function(){\"use strict\";function t(t,n){var e=void 0;return function(){e&&clearTimeout(e),e=setTimeout(t,n)}}function n(t,n){for(var e=t.length,r=e,o=[];e--;)o.push(n(t[r-e-1]));return o}function e(t,n){var e=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(window.Promise)return A(t,n,e);t.recalculate(!0,!0)}function r(t){for(var n=t.options,e=t.responsiveOptions,r=t.keys,o=t.docWidth,i=void 0,s=0;s=a&&(i=n.breakAt[a],O(i,e))}return e}function o(t){for(var n=t.options,e=t.responsiveOptions,r=t.keys,o=t.docWidth,i=void 0,s=r.length-1;s>=0;s--){var a=parseInt(r[s],10);o<=a&&(i=n.breakAt[a],O(i,e))}return e}function i(t){var n=t.useContainerForBreakpoints?t.container.clientWidth:window.innerWidth,e={columns:t.columns};b(t.margin)?e.margin={x:t.margin.x,y:t.margin.y}:e.margin={x:t.margin,y:t.margin};var i=Object.keys(t.breakAt);return t.mobileFirst?r({options:t,responsiveOptions:e,keys:i,docWidth:n}):o({options:t,responsiveOptions:e,keys:i,docWidth:n})}function s(t){return i(t).columns}function a(t){return i(t).margin}function c(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],e=s(t),r=a(t).x,o=100/e;if(!n)return o;if(1===e)return\"100%\";var i=\"px\";if(\"string\"==typeof r){var c=parseFloat(r);i=r.replace(c,\"\"),r=c}return r=(e-1)*r/e,\"%\"===i?o-r+\"%\":\"calc(\"+o+\"% - \"+r+i+\")\"}function u(t,n){var e=s(t.options),r=0,o=void 0,i=void 0;if(1===++n)return 0;i=a(t.options).x;var u=\"px\";if(\"string\"==typeof i){var l=parseFloat(i,10);u=i.replace(l,\"\"),i=l}return o=(i-(e-1)*i/e)*(n-1),r+=c(t.options,!1)*(n-1),\"%\"===u?r+o+\"%\":\"calc(\"+r+\"% + \"+o+u+\")\"}function l(t){var n=0,e=t.container,r=t.rows;v(r,function(t){n=t>n?t:n}),e.style.height=n+\"px\"}function p(t,n){var e=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=s(t.options),i=a(t.options).y;M(t,o,e),v(n,function(n){var e=0,o=parseInt(n.offsetHeight,10);isNaN(o)||(t.rows.forEach(function(n,r){n2&&void 0!==arguments[2]&&arguments[2],r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=s(t.options),i=a(t.options).y;M(t,o,e),v(n,function(n){t.lastcol===o&&(t.lastcol=0);var e=C(n,\"height\");e=parseInt(n.offsetHeight,10),isNaN(e)||(n.style.position=\"absolute\",n.style.top=t.rows[t.lastcol]+\"px\",n.style.left=\"\"+t.cols[t.lastcol],t.rows[t.lastcol]+=isNaN(e)?0:e+i,t.lastcol+=1,r&&(n.dataset.macyComplete=1))}),r&&(t.tmpRows=null),l(t)}var h=function t(n,e){if(!(this instanceof t))return new t(n,e);if(n&&n.nodeName)return n;if(n=n.replace(/^\\s*/,\"\").replace(/\\s*$/,\"\"),e)return this.byCss(n,e);for(var r in this.selectors)if(e=r.split(\"/\"),new RegExp(e[1],e[2]).test(n))return this.selectors[r](n);return this.byCss(n)};h.prototype.byCss=function(t,n){return(n||document).querySelectorAll(t)},h.prototype.selectors={},h.prototype.selectors[/^\\.[\\w\\-]+$/]=function(t){return document.getElementsByClassName(t.substring(1))},h.prototype.selectors[/^\\w+$/]=function(t){return document.getElementsByTagName(t)},h.prototype.selectors[/^\\#[\\w\\-]+$/]=function(t){return document.getElementById(t.substring(1))};var v=function(t,n){for(var e=t.length,r=e;e--;)n(t[r-e-1])},m=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.running=!1,this.events=[],this.add(t)};m.prototype.run=function(){if(!this.running&&this.events.length>0){var t=this.events.shift();this.running=!0,t(),this.running=!1,this.run()}},m.prototype.add=function(){var t=this,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return!!n&&(Array.isArray(n)?v(n,function(n){return t.add(n)}):(this.events.push(n),void this.run()))},m.prototype.clear=function(){this.events=[]};var d=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.instance=t,this.data=n,this},y=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.events={},this.instance=t};y.prototype.on=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return!(!t||!n)&&(Array.isArray(this.events[t])||(this.events[t]=[]),this.events[t].push(n))},y.prototype.emit=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!t||!Array.isArray(this.events[t]))return!1;var e=new d(this.instance,n);v(this.events[t],function(t){return t(e)})};var g=function(t){return!(\"naturalHeight\"in t&&t.naturalHeight+t.naturalWidth===0)||t.width+t.height!==0},E=function(t,n){var e=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return new Promise(function(t,e){if(n.complete)return g(n)?t(n):e(n);n.addEventListener(\"load\",function(){return g(n)?t(n):e(n)}),n.addEventListener(\"error\",function(){return e(n)})}).then(function(n){e&&t.emit(t.constants.EVENT_IMAGE_LOAD,{img:n})}).catch(function(n){return t.emit(t.constants.EVENT_IMAGE_ERROR,{img:n})})},w=function(t,e){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return n(e,function(n){return E(t,n,r)})},A=function(t,n){var e=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return Promise.all(w(t,n,e)).then(function(){t.emit(t.constants.EVENT_IMAGE_COMPLETE)})},I=function(n){return t(function(){n.emit(n.constants.EVENT_RESIZE),n.queue.add(function(){return n.recalculate(!0,!0)})},100)},N=function(t){if(t.container=h(t.options.container),t.container instanceof h||!t.container)return!!t.options.debug&&console.error(\"Error: Container not found\");t.container.length&&(t.container=t.container[0]),t.options.container=t.container,t.container.style.position=\"relative\"},T=function(t){t.queue=new m,t.events=new y(t),t.rows=[],t.resizer=I(t)},L=function(t){var n=h(\"img\",t.container);window.addEventListener(\"resize\",t.resizer),t.on(t.constants.EVENT_IMAGE_LOAD,function(){return t.recalculate(!1,!1)}),t.on(t.constants.EVENT_IMAGE_COMPLETE,function(){return t.recalculate(!0,!0)}),t.options.useOwnImageLoader||e(t,n,!t.options.waitForImages),t.emit(t.constants.EVENT_INITIALIZED)},_=function(t){N(t),T(t),L(t)},b=function(t){return t===Object(t)&&\"[object Array]\"!==Object.prototype.toString.call(t)},O=function(t,n){b(t)||(n.columns=t),b(t)&&t.columns&&(n.columns=t.columns),b(t)&&t.margin&&!b(t.margin)&&(n.margin={x:t.margin,y:t.margin}),b(t)&&t.margin&&b(t.margin)&&t.margin.x&&(n.margin.x=t.margin.x),b(t)&&t.margin&&b(t.margin)&&t.margin.y&&(n.margin.y=t.margin.y)},C=function(t,n){return window.getComputedStyle(t,null).getPropertyValue(n)},M=function(t,n){var e=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(t.lastcol||(t.lastcol=0),t.rows.length<1&&(e=!0),e){t.rows=[],t.cols=[],t.lastcol=0;for(var r=n-1;r>=0;r--)t.rows[r]=0,t.cols[r]=u(t,r)}else if(t.tmpRows){t.rows=[];for(var r=n-1;r>=0;r--)t.rows[r]=t.tmpRows[r]}else{t.tmpRows=[];for(var r=n-1;r>=0;r--)t.tmpRows[r]=t.rows[r]}},V=function(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],e=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=n?t.container.children:h(':scope > *:not([data-macy-complete=\"1\"])',t.container);r=Array.from(r).filter(function(t){return null!==t.offsetParent});var o=c(t.options);return v(r,function(t){n&&(t.dataset.macyComplete=0),t.style.width=o}),t.options.trueOrder?(f(t,r,n,e),t.emit(t.constants.EVENT_RECALCULATED)):(p(t,r,n,e),t.emit(t.constants.EVENT_RECALCULATED))},R=function(){return!!window.Promise},x=Object.assign||function(t){for(var n=1;n0&&void 0!==arguments[0]?arguments[0]:k;if(!(this instanceof t))return new t(n);this.options={},x(this.options,k,n),this.options.cancelLegacy&&!R()||_(this)};return q.init=function(t){return console.warn(\"Depreciated: Macy.init will be removed in v3.0.0 opt to use Macy directly like so Macy({ /*options here*/ }) \"),new q(t)},q.prototype.recalculateOnImageLoad=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return e(this,h(\"img\",this.container),!t)},q.prototype.runOnImageLoad=function(t){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=h(\"img\",this.container);return this.on(this.constants.EVENT_IMAGE_COMPLETE,t),n&&this.on(this.constants.EVENT_IMAGE_LOAD,t),e(this,r,n)},q.prototype.recalculate=function(){var t=this,n=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e&&this.queue.clear(),this.queue.add(function(){return V(t,n,e)})},q.prototype.remove=function(){window.removeEventListener(\"resize\",this.resizer),v(this.container.children,function(t){t.removeAttribute(\"data-macy-complete\"),t.removeAttribute(\"style\")}),this.container.removeAttribute(\"style\")},q.prototype.reInit=function(){this.recalculate(!0,!0),this.emit(this.constants.EVENT_INITIALIZED),window.addEventListener(\"resize\",this.resizer),this.container.style.position=\"relative\"},q.prototype.on=function(t,n){this.events.on(t,n)},q.prototype.emit=function(t,n){this.events.emit(t,n)},q.constants={EVENT_INITIALIZED:\"macy.initialized\",EVENT_RECALCULATED:\"macy.recalculated\",EVENT_IMAGE_LOAD:\"macy.image.load\",EVENT_IMAGE_ERROR:\"macy.image.error\",EVENT_IMAGE_COMPLETE:\"macy.images.complete\",EVENT_RESIZE:\"macy.resize\"},q.prototype.constants=q.constants,q});\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Convert a data object to FormData\n * @param {Object} obj\n * @param {?Object} [formData]\n * @returns {Object}\n **/\n\nfunction toFormData(obj, formData) {\n // eslint-disable-next-line no-param-reassign\n formData = formData || new FormData();\n\n var stack = [];\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n function build(data, parentKey) {\n if (utils.isPlainObject(data) || utils.isArray(data)) {\n if (stack.indexOf(data) !== -1) {\n throw Error('Circular reference detected in ' + parentKey);\n }\n\n stack.push(data);\n\n utils.forEach(data, function each(value, key) {\n if (utils.isUndefined(value)) return;\n var fullKey = parentKey ? parentKey + '.' + key : key;\n var arr;\n\n if (value && !parentKey && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) {\n // eslint-disable-next-line func-names\n arr.forEach(function(el) {\n !utils.isUndefined(el) && formData.append(fullKey, convertValue(el));\n });\n return;\n }\n }\n\n build(value, fullKey);\n });\n\n stack.pop();\n } else {\n formData.append(parentKey, convertValue(data));\n }\n }\n\n build(obj);\n\n return formData;\n}\n\nmodule.exports = toFormData;\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","import AOS from 'aos'\nAOS.init()\n","import $ from 'jquery';\n\n// Core Foundation Utilities, utilized in a number of places.\n\n /**\n * Returns a boolean for RTL support\n */\nfunction rtl() {\n return $('html').attr('dir') === 'rtl';\n}\n\n/**\n * returns a random base-36 uid with namespacing\n * @function\n * @param {Number} length - number of random base-36 digits desired. Increase for more random strings.\n * @param {String} namespace - name of plugin to be incorporated in uid, optional.\n * @default {String} '' - if no plugin name is provided, nothing is appended to the uid.\n * @returns {String} - unique id\n */\nfunction GetYoDigits(length = 6, namespace){\n let str = '';\n const chars = '0123456789abcdefghijklmnopqrstuvwxyz';\n const charsLength = chars.length;\n for (let i = 0; i < length; i++) {\n str += chars[Math.floor(Math.random() * charsLength)];\n }\n return namespace ? `${str}-${namespace}` : str;\n}\n\n/**\n * Escape a string so it can be used as a regexp pattern\n * @function\n * @see https://stackoverflow.com/a/9310752/4317384\n *\n * @param {String} str - string to escape.\n * @returns {String} - escaped string\n */\nfunction RegExpEscape(str){\n return str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n\nfunction transitionend($elem){\n var transitions = {\n 'transition': 'transitionend',\n 'WebkitTransition': 'webkitTransitionEnd',\n 'MozTransition': 'transitionend',\n 'OTransition': 'otransitionend'\n };\n var elem = document.createElement('div'),\n end;\n\n for (let transition in transitions){\n if (typeof elem.style[transition] !== 'undefined'){\n end = transitions[transition];\n }\n }\n if (end) {\n return end;\n } else {\n setTimeout(function(){\n $elem.triggerHandler('transitionend', [$elem]);\n }, 1);\n return 'transitionend';\n }\n}\n\n/**\n * Return an event type to listen for window load.\n *\n * If `$elem` is passed, an event will be triggered on `$elem`. If window is already loaded, the event will still be triggered.\n * If `handler` is passed, attach it to the event on `$elem`.\n * Calling `onLoad` without handler allows you to get the event type that will be triggered before attaching the handler by yourself.\n * @function\n *\n * @param {Object} [] $elem - jQuery element on which the event will be triggered if passed.\n * @param {Function} [] handler - function to attach to the event.\n * @returns {String} - event type that should or will be triggered.\n */\nfunction onLoad($elem, handler) {\n const didLoad = document.readyState === 'complete';\n const eventType = (didLoad ? '_didLoad' : 'load') + '.zf.util.onLoad';\n const cb = () => $elem.triggerHandler(eventType);\n\n if ($elem) {\n if (handler) $elem.one(eventType, handler);\n\n if (didLoad)\n setTimeout(cb);\n else\n $(window).one('load', cb);\n }\n\n return eventType;\n}\n\n/**\n * Retuns an handler for the `mouseleave` that ignore disappeared mouses.\n *\n * If the mouse \"disappeared\" from the document (like when going on a browser UI element, See https://git.io/zf-11410),\n * the event is ignored.\n * - If the `ignoreLeaveWindow` is `true`, the event is ignored when the user actually left the window\n * (like by switching to an other window with [Alt]+[Tab]).\n * - If the `ignoreReappear` is `true`, the event will be ignored when the mouse will reappear later on the document\n * outside of the element it left.\n *\n * @function\n *\n * @param {Function} [] handler - handler for the filtered `mouseleave` event to watch.\n * @param {Object} [] options - object of options:\n * - {Boolean} [false] ignoreLeaveWindow - also ignore when the user switched windows.\n * - {Boolean} [false] ignoreReappear - also ignore when the mouse reappeared outside of the element it left.\n * @returns {Function} - filtered handler to use to listen on the `mouseleave` event.\n */\nfunction ignoreMousedisappear(handler, { ignoreLeaveWindow = false, ignoreReappear = false } = {}) {\n return function leaveEventHandler(eLeave, ...rest) {\n const callback = handler.bind(this, eLeave, ...rest);\n\n // The mouse left: call the given callback if the mouse entered elsewhere\n if (eLeave.relatedTarget !== null) {\n return callback();\n }\n\n // Otherwise, check if the mouse actually left the window.\n // In firefox if the user switched between windows, the window sill have the focus by the time\n // the event is triggered. We have to debounce the event to test this case.\n setTimeout(function leaveEventDebouncer() {\n if (!ignoreLeaveWindow && document.hasFocus && !document.hasFocus()) {\n return callback();\n }\n\n // Otherwise, wait for the mouse to reeapear outside of the element,\n if (!ignoreReappear) {\n $(document).one('mouseenter', function reenterEventHandler(eReenter) {\n if (!$(eLeave.currentTarget).has(eReenter.target).length) {\n // Fill where the mouse finally entered.\n eLeave.relatedTarget = eReenter.target;\n callback();\n }\n });\n }\n\n }, 0);\n };\n}\n\n\nexport { rtl, GetYoDigits, RegExpEscape, transitionend, onLoad, ignoreMousedisappear };\n","import $ from 'jquery';\n\n// Default set of media queries\n// const defaultQueries = {\n// 'default' : 'only screen',\n// landscape : 'only screen and (orientation: landscape)',\n// portrait : 'only screen and (orientation: portrait)',\n// retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +\n// 'only screen and (min--moz-device-pixel-ratio: 2),' +\n// 'only screen and (-o-min-device-pixel-ratio: 2/1),' +\n// 'only screen and (min-device-pixel-ratio: 2),' +\n// 'only screen and (min-resolution: 192dpi),' +\n// 'only screen and (min-resolution: 2dppx)'\n// };\n\n\n// matchMedia() polyfill - Test a CSS media type/query in JS.\n// Authors & copyright © 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n/* eslint-disable */\nwindow.matchMedia || (window.matchMedia = (function () {\n \"use strict\";\n\n // For browsers that support matchMedium api such as IE 9 and webkit\n var styleMedia = (window.styleMedia || window.media);\n\n // For those that don't support matchMedium\n if (!styleMedia) {\n var style = document.createElement('style'),\n script = document.getElementsByTagName('script')[0],\n info = null;\n\n style.type = 'text/css';\n style.id = 'matchmediajs-test';\n\n if (!script) {\n document.head.appendChild(style);\n } else {\n script.parentNode.insertBefore(style, script);\n }\n\n // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;\n\n styleMedia = {\n matchMedium: function (media) {\n var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';\n\n // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n if (style.styleSheet) {\n style.styleSheet.cssText = text;\n } else {\n style.textContent = text;\n }\n\n // Test if media query is true or false\n return info.width === '1px';\n }\n };\n }\n\n return function(media) {\n return {\n matches: styleMedia.matchMedium(media || 'all'),\n media: media || 'all'\n };\n };\n})());\n/* eslint-enable */\n\nvar MediaQuery = {\n queries: [],\n\n current: '',\n\n /**\n * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n * @function\n * @private\n */\n _init() {\n\n // make sure the initialization is only done once when calling _init() several times\n if (this.isInitialized === true) {\n return this;\n } else {\n this.isInitialized = true;\n }\n\n var self = this;\n var $meta = $('meta.foundation-mq');\n if(!$meta.length){\n $('').appendTo(document.head);\n }\n\n var extractedStyles = $('.foundation-mq').css('font-family');\n var namedQueries;\n\n namedQueries = parseStyleToObject(extractedStyles);\n\n self.queries = []; // reset\n\n for (var key in namedQueries) {\n if(namedQueries.hasOwnProperty(key)) {\n self.queries.push({\n name: key,\n value: `only screen and (min-width: ${namedQueries[key]})`\n });\n }\n }\n\n this.current = this._getCurrentSize();\n\n this._watcher();\n },\n\n /**\n * Reinitializes the media query helper.\n * Useful if your CSS breakpoint configuration has just been loaded or has changed since the initialization.\n * @function\n * @private\n */\n _reInit() {\n this.isInitialized = false;\n this._init();\n },\n\n /**\n * Checks if the screen is at least as wide as a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n */\n atLeast(size) {\n var query = this.get(size);\n\n if (query) {\n return window.matchMedia(query).matches;\n }\n\n return false;\n },\n\n /**\n * Checks if the screen is within the given breakpoint.\n * If smaller than the breakpoint of larger than its upper limit it returns false.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` otherwise.\n */\n only(size) {\n return size === this._getCurrentSize();\n },\n\n /**\n * Checks if the screen is within a breakpoint or smaller.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it's larger.\n */\n upTo(size) {\n const nextSize = this.next(size);\n\n // If the next breakpoint does not match, the screen is smaller than\n // the upper limit of this breakpoint.\n if (nextSize) {\n return !this.atLeast(nextSize);\n }\n\n // If there is no next breakpoint, the \"size\" breakpoint does not have\n // an upper limit and the screen will always be within it or smaller.\n return true;\n },\n\n /**\n * Checks if the screen matches to a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n */\n is(size) {\n const parts = size.trim().split(' ').filter(p => !!p.length);\n const [bpSize, bpModifier = ''] = parts;\n\n // Only the breakpont\n if (bpModifier === 'only') {\n return this.only(bpSize);\n }\n // At least the breakpoint (included)\n if (!bpModifier || bpModifier === 'up') {\n return this.atLeast(bpSize);\n }\n // Up to the breakpoint (included)\n if (bpModifier === 'down') {\n return this.upTo(bpSize);\n }\n\n throw new Error(`\n Invalid breakpoint passed to MediaQuery.is().\n Expected a breakpoint name formatted like \" \", got \"${size}\".\n `);\n },\n\n /**\n * Gets the media query of a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to get.\n * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n */\n get(size) {\n for (var i in this.queries) {\n if(this.queries.hasOwnProperty(i)) {\n var query = this.queries[i];\n if (size === query.name) return query.value;\n }\n }\n\n return null;\n },\n\n /**\n * Get the breakpoint following the given breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint.\n * @returns {String|null} - The name of the following breakpoint, or `null` if the passed breakpoint was the last one.\n */\n next(size) {\n const queryIndex = this.queries.findIndex((q) => this._getQueryName(q) === size);\n if (queryIndex === -1) {\n throw new Error(`\n Unknown breakpoint \"${size}\" passed to MediaQuery.next().\n Ensure it is present in your Sass \"$breakpoints\" setting.\n `);\n }\n\n const nextQuery = this.queries[queryIndex + 1];\n return nextQuery ? nextQuery.name : null;\n },\n\n /**\n * Returns the name of the breakpoint related to the given value.\n * @function\n * @private\n * @param {String|Object} value - Breakpoint name or query object.\n * @returns {String} Name of the breakpoint.\n */\n _getQueryName(value) {\n if (typeof value === 'string')\n return value;\n if (typeof value === 'object')\n return value.name;\n throw new TypeError(`\n Invalid value passed to MediaQuery._getQueryName().\n Expected a breakpoint name (String) or a breakpoint query (Object), got \"${value}\" (${typeof value})\n `);\n },\n\n /**\n * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n * @function\n * @private\n * @returns {String} Name of the current breakpoint.\n */\n _getCurrentSize() {\n var matched;\n\n for (var i = 0; i < this.queries.length; i++) {\n var query = this.queries[i];\n\n if (window.matchMedia(query.value).matches) {\n matched = query;\n }\n }\n\n return matched && this._getQueryName(matched);\n },\n\n /**\n * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n * @function\n * @private\n */\n _watcher() {\n $(window).on('resize.zf.trigger', () => {\n var newSize = this._getCurrentSize(), currentSize = this.current;\n\n if (newSize !== currentSize) {\n // Change the current media query\n this.current = newSize;\n\n // Broadcast the media query change on the window\n $(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n }\n });\n }\n};\n\n\n\n// Thank you: https://github.com/sindresorhus/query-string\nfunction parseStyleToObject(str) {\n var styleObject = {};\n\n if (typeof str !== 'string') {\n return styleObject;\n }\n\n str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n if (!str) {\n return styleObject;\n }\n\n styleObject = str.split('&').reduce(function(ret, param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = parts[0];\n var val = parts[1];\n key = decodeURIComponent(key);\n\n // missing `=` should be `null`:\n // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n if (!ret.hasOwnProperty(key)) {\n ret[key] = val;\n } else if (Array.isArray(ret[key])) {\n ret[key].push(val);\n } else {\n ret[key] = [ret[key], val];\n }\n return ret;\n }, {});\n\n return styleObject;\n}\n\nexport {MediaQuery};\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nvar FOUNDATION_VERSION = '6.7.5';\n\n// Global Foundation object\n// This is attached to the window, or used as a module for AMD/Browserify\nvar Foundation = {\n version: FOUNDATION_VERSION,\n\n /**\n * Stores initialized plugins.\n */\n _plugins: {},\n\n /**\n * Stores generated unique ids for plugin instances\n */\n _uuids: [],\n\n /**\n * Defines a Foundation plugin, adding it to the `Foundation` namespace and the list of plugins to initialize when reflowing.\n * @param {Object} plugin - The constructor of the plugin.\n */\n plugin: function(plugin, name) {\n // Object key to use when adding to global Foundation object\n // Examples: Foundation.Reveal, Foundation.OffCanvas\n var className = (name || functionName(plugin));\n // Object key to use when storing the plugin, also used to create the identifying data attribute for the plugin\n // Examples: data-reveal, data-off-canvas\n var attrName = hyphenate(className);\n\n // Add to the Foundation object and the plugins list (for reflowing)\n this._plugins[attrName] = this[className] = plugin;\n },\n /**\n * @function\n * Populates the _uuids array with pointers to each individual plugin instance.\n * Adds the `zfPlugin` data-attribute to programmatically created plugins to allow use of $(selector).foundation(method) calls.\n * Also fires the initialization event for each plugin, consolidating repetitive code.\n * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n * @param {String} name - the name of the plugin, passed as a camelCased string.\n * @fires Plugin#init\n */\n registerPlugin: function(plugin, name){\n var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();\n plugin.uuid = GetYoDigits(6, pluginName);\n\n if(!plugin.$element.attr(`data-${pluginName}`)){ plugin.$element.attr(`data-${pluginName}`, plugin.uuid); }\n if(!plugin.$element.data('zfPlugin')){ plugin.$element.data('zfPlugin', plugin); }\n /**\n * Fires when the plugin has initialized.\n * @event Plugin#init\n */\n plugin.$element.trigger(`init.zf.${pluginName}`);\n\n this._uuids.push(plugin.uuid);\n\n return;\n },\n /**\n * @function\n * Removes the plugins uuid from the _uuids array.\n * Removes the zfPlugin data attribute, as well as the data-plugin-name attribute.\n * Also fires the destroyed event for the plugin, consolidating repetitive code.\n * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n * @fires Plugin#destroyed\n */\n unregisterPlugin: function(plugin){\n var pluginName = hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));\n\n this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);\n plugin.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n /**\n * Fires when the plugin has been destroyed.\n * @event Plugin#destroyed\n */\n .trigger(`destroyed.zf.${pluginName}`);\n for(var prop in plugin){\n if(typeof plugin[prop] === 'function'){\n plugin[prop] = null; //clean up script to prep for garbage collection.\n }\n }\n return;\n },\n\n /**\n * @function\n * Causes one or more active plugins to re-initialize, resetting event listeners, recalculating positions, etc.\n * @param {String} plugins - optional string of an individual plugin key, attained by calling `$(element).data('pluginName')`, or string of a plugin class i.e. `'dropdown'`\n * @default If no argument is passed, reflow all currently active plugins.\n */\n reInit: function(plugins){\n var isJQ = plugins instanceof $;\n try{\n if(isJQ){\n plugins.each(function(){\n $(this).data('zfPlugin')._init();\n });\n }else{\n var type = typeof plugins,\n _this = this,\n fns = {\n 'object': function(plgs){\n plgs.forEach(function(p){\n p = hyphenate(p);\n $('[data-'+ p +']').foundation('_init');\n });\n },\n 'string': function(){\n plugins = hyphenate(plugins);\n $('[data-'+ plugins +']').foundation('_init');\n },\n 'undefined': function(){\n this.object(Object.keys(_this._plugins));\n }\n };\n fns[type](plugins);\n }\n }catch(err){\n console.error(err);\n }finally{\n return plugins;\n }\n },\n\n /**\n * Initialize plugins on any elements within `elem` (and `elem` itself) that aren't already initialized.\n * @param {Object} elem - jQuery object containing the element to check inside. Also checks the element itself, unless it's the `document` object.\n * @param {String|Array} plugins - A list of plugins to initialize. Leave this out to initialize everything.\n */\n reflow: function(elem, plugins) {\n\n // If plugins is undefined, just grab everything\n if (typeof plugins === 'undefined') {\n plugins = Object.keys(this._plugins);\n }\n // If plugins is a string, convert it to an array with one item\n else if (typeof plugins === 'string') {\n plugins = [plugins];\n }\n\n var _this = this;\n\n // Iterate through each plugin\n $.each(plugins, function(i, name) {\n // Get the current plugin\n var plugin = _this._plugins[name];\n\n // Localize the search to all elements inside elem, as well as elem itself, unless elem === document\n var $elem = $(elem).find('[data-'+name+']').addBack('[data-'+name+']').filter(function () {\n return typeof $(this).data(\"zfPlugin\") === 'undefined';\n });\n\n // For each plugin found, initialize it\n $elem.each(function() {\n var $el = $(this),\n opts = { reflow: true };\n\n if($el.attr('data-options')){\n $el.attr('data-options').split(';').forEach(function(option){\n var opt = option.split(':').map(function(el){ return el.trim(); });\n if(opt[0]) opts[opt[0]] = parseValue(opt[1]);\n });\n }\n try{\n $el.data('zfPlugin', new plugin($(this), opts));\n }catch(er){\n console.error(er);\n }finally{\n return;\n }\n });\n });\n },\n getFnName: functionName,\n\n addToJquery: function() {\n // TODO: consider not making this a jQuery function\n // TODO: need way to reflow vs. re-initialize\n /**\n * The Foundation jQuery method.\n * @param {String|Array} method - An action to perform on the current jQuery object.\n */\n var foundation = function(method) {\n var type = typeof method,\n $noJS = $('.no-js');\n\n if($noJS.length){\n $noJS.removeClass('no-js');\n }\n\n if(type === 'undefined'){//needs to initialize the Foundation object, or an individual plugin.\n MediaQuery._init();\n Foundation.reflow(this);\n }else if(type === 'string'){//an individual method to invoke on a plugin or group of plugins\n var args = Array.prototype.slice.call(arguments, 1);//collect all the arguments, if necessary\n var plugClass = this.data('zfPlugin');//determine the class of plugin\n\n if(typeof plugClass !== 'undefined' && typeof plugClass[method] !== 'undefined'){//make sure both the class and method exist\n if(this.length === 1){//if there's only one, call it directly.\n plugClass[method].apply(plugClass, args);\n }else{\n this.each(function(i, el){//otherwise loop through the jQuery collection and invoke the method on each\n plugClass[method].apply($(el).data('zfPlugin'), args);\n });\n }\n }else{//error for no class or no method\n throw new ReferenceError(\"We're sorry, '\" + method + \"' is not an available method for \" + (plugClass ? functionName(plugClass) : 'this element') + '.');\n }\n }else{//error for invalid argument type\n throw new TypeError(`We're sorry, ${type} is not a valid parameter. You must use a string representing the method you wish to invoke.`);\n }\n return this;\n };\n $.fn.foundation = foundation;\n return $;\n }\n};\n\nFoundation.util = {\n /**\n * Function for applying a debounce effect to a function call.\n * @function\n * @param {Function} func - Function to be called at end of timeout.\n * @param {Number} delay - Time in ms to delay the call of `func`.\n * @returns function\n */\n throttle: function (func, delay) {\n var timer = null;\n\n return function () {\n var context = this, args = arguments;\n\n if (timer === null) {\n timer = setTimeout(function () {\n func.apply(context, args);\n timer = null;\n }, delay);\n }\n };\n }\n};\n\nwindow.Foundation = Foundation;\n\n// Polyfill for requestAnimationFrame\n(function() {\n if (!Date.now || !window.Date.now)\n window.Date.now = Date.now = function() { return new Date().getTime(); };\n\n var vendors = ['webkit', 'moz'];\n for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {\n var vp = vendors[i];\n window.requestAnimationFrame = window[vp+'RequestAnimationFrame'];\n window.cancelAnimationFrame = (window[vp+'CancelAnimationFrame']\n || window[vp+'CancelRequestAnimationFrame']);\n }\n if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)\n || !window.requestAnimationFrame || !window.cancelAnimationFrame) {\n var lastTime = 0;\n window.requestAnimationFrame = function(callback) {\n var now = Date.now();\n var nextTime = Math.max(lastTime + 16, now);\n return setTimeout(function() { callback(lastTime = nextTime); },\n nextTime - now);\n };\n window.cancelAnimationFrame = clearTimeout;\n }\n /**\n * Polyfill for performance.now, required by rAF\n */\n if(!window.performance || !window.performance.now){\n window.performance = {\n start: Date.now(),\n now: function(){ return Date.now() - this.start; }\n };\n }\n})();\nif (!Function.prototype.bind) {\n /* eslint-disable no-extend-native */\n Function.prototype.bind = function(oThis) {\n if (typeof this !== 'function') {\n // closest thing possible to the ECMAScript 5\n // internal IsCallable function\n throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n }\n\n var aArgs = Array.prototype.slice.call(arguments, 1),\n fToBind = this,\n fNOP = function() {},\n fBound = function() {\n return fToBind.apply(this instanceof fNOP\n ? this\n : oThis,\n aArgs.concat(Array.prototype.slice.call(arguments)));\n };\n\n if (this.prototype) {\n // native functions don't have a prototype\n fNOP.prototype = this.prototype;\n }\n fBound.prototype = new fNOP();\n\n return fBound;\n };\n}\n// Polyfill to get the name of a function in IE9\nfunction functionName(fn) {\n if (typeof Function.prototype.name === 'undefined') {\n var funcNameRegex = /function\\s([^(]{1,})\\(/;\n var results = (funcNameRegex).exec((fn).toString());\n return (results && results.length > 1) ? results[1].trim() : \"\";\n }\n else if (typeof fn.prototype === 'undefined') {\n return fn.constructor.name;\n }\n else {\n return fn.prototype.constructor.name;\n }\n}\nfunction parseValue(str){\n if ('true' === str) return true;\n else if ('false' === str) return false;\n else if (!isNaN(str * 1)) return parseFloat(str);\n return str;\n}\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport {Foundation};\n","import { GetYoDigits } from './foundation.core.utils';\n\n// Abstract class for providing lifecycle hooks. Expect plugins to define AT LEAST\n// {function} _setup (replaces previous constructor),\n// {function} _destroy (replaces previous destroy)\nclass Plugin {\n\n constructor(element, options) {\n this._setup(element, options);\n var pluginName = getPluginName(this);\n this.uuid = GetYoDigits(6, pluginName);\n\n if(!this.$element.attr(`data-${pluginName}`)){ this.$element.attr(`data-${pluginName}`, this.uuid); }\n if(!this.$element.data('zfPlugin')){ this.$element.data('zfPlugin', this); }\n /**\n * Fires when the plugin has initialized.\n * @event Plugin#init\n */\n this.$element.trigger(`init.zf.${pluginName}`);\n }\n\n destroy() {\n this._destroy();\n var pluginName = getPluginName(this);\n this.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n /**\n * Fires when the plugin has been destroyed.\n * @event Plugin#destroyed\n */\n .trigger(`destroyed.zf.${pluginName}`);\n for(var prop in this){\n if (this.hasOwnProperty(prop)) {\n this[prop] = null; //clean up script to prep for garbage collection.\n }\n }\n }\n}\n\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nfunction getPluginName(obj) {\n return hyphenate(obj.className);\n}\n\nexport {Plugin};\n","/*******************************************\n * *\n * This util was created by Marius Olbertz *\n * Please thank Marius on GitHub /owlbertz *\n * or the web http://www.mariusolbertz.de/ *\n * *\n ******************************************/\n\nimport $ from 'jquery';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst keyCodes = {\n 9: 'TAB',\n 13: 'ENTER',\n 27: 'ESCAPE',\n 32: 'SPACE',\n 35: 'END',\n 36: 'HOME',\n 37: 'ARROW_LEFT',\n 38: 'ARROW_UP',\n 39: 'ARROW_RIGHT',\n 40: 'ARROW_DOWN'\n}\n\nvar commands = {}\n\n// Functions pulled out to be referenceable from internals\nfunction findFocusable($element) {\n if(!$element) {return false; }\n return $element.find('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]').filter(function() {\n if (!$(this).is(':visible') || $(this).attr('tabindex') < 0) { return false; } //only have visible elements and those that have a tabindex greater or equal 0\n return true;\n })\n .sort( function( a, b ) {\n if ($(a).attr('tabindex') === $(b).attr('tabindex')) {\n return 0;\n }\n let aTabIndex = parseInt($(a).attr('tabindex'), 10),\n bTabIndex = parseInt($(b).attr('tabindex'), 10);\n // Undefined is treated the same as 0\n if (typeof $(a).attr('tabindex') === 'undefined' && bTabIndex > 0) {\n return 1;\n }\n if (typeof $(b).attr('tabindex') === 'undefined' && aTabIndex > 0) {\n return -1;\n }\n if (aTabIndex === 0 && bTabIndex > 0) {\n return 1;\n }\n if (bTabIndex === 0 && aTabIndex > 0) {\n return -1;\n }\n if (aTabIndex < bTabIndex) {\n return -1;\n }\n if (aTabIndex > bTabIndex) {\n return 1;\n }\n });\n}\n\nfunction parseKey(event) {\n var key = keyCodes[event.which || event.keyCode] || String.fromCharCode(event.which).toUpperCase();\n\n // Remove un-printable characters, e.g. for `fromCharCode` calls for CTRL only events\n key = key.replace(/\\W+/, '');\n\n if (event.shiftKey) key = `SHIFT_${key}`;\n if (event.ctrlKey) key = `CTRL_${key}`;\n if (event.altKey) key = `ALT_${key}`;\n\n // Remove trailing underscore, in case only modifiers were used (e.g. only `CTRL_ALT`)\n key = key.replace(/_$/, '');\n\n return key;\n}\n\nvar Keyboard = {\n keys: getKeyCodes(keyCodes),\n\n /**\n * Parses the (keyboard) event and returns a String that represents its key\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n * @param {Event} event - the event generated by the event handler\n * @return String key - String that represents the key pressed\n */\n parseKey: parseKey,\n\n /**\n * Handles the given (keyboard) event\n * @param {Event} event - the event generated by the event handler\n * @param {String} component - Foundation component's name, e.g. Slider or Reveal\n * @param {Objects} functions - collection of functions that are to be executed\n */\n handleKey(event, component, functions) {\n var commandList = commands[component],\n keyCode = this.parseKey(event),\n cmds,\n command,\n fn;\n\n if (!commandList) return console.warn('Component not defined!');\n\n // Ignore the event if it was already handled\n if (event.zfIsKeyHandled === true) return;\n\n // This component does not differentiate between ltr and rtl\n if (typeof commandList.ltr === 'undefined') {\n cmds = commandList; // use plain list\n } else { // merge ltr and rtl: if document is rtl, rtl overwrites ltr and vice versa\n if (Rtl()) cmds = $.extend({}, commandList.ltr, commandList.rtl);\n\n else cmds = $.extend({}, commandList.rtl, commandList.ltr);\n }\n command = cmds[keyCode];\n\n fn = functions[command];\n // Execute the handler if found\n if (fn && typeof fn === 'function') {\n var returnValue = fn.apply();\n\n // Mark the event as \"handled\" to prevent future handlings\n event.zfIsKeyHandled = true;\n\n // Execute function when event was handled\n if (functions.handled || typeof functions.handled === 'function') {\n functions.handled(returnValue);\n }\n } else {\n // Execute function when event was not handled\n if (functions.unhandled || typeof functions.unhandled === 'function') {\n functions.unhandled();\n }\n }\n },\n\n /**\n * Finds all focusable elements within the given `$element`\n * @param {jQuery} $element - jQuery object to search within\n * @return {jQuery} $focusable - all focusable elements within `$element`\n */\n\n findFocusable: findFocusable,\n\n /**\n * Returns the component name name\n * @param {Object} component - Foundation component, e.g. Slider or Reveal\n * @return String componentName\n */\n\n register(componentName, cmds) {\n commands[componentName] = cmds;\n },\n\n\n // TODO9438: These references to Keyboard need to not require global. Will 'this' work in this context?\n //\n /**\n * Traps the focus in the given element.\n * @param {jQuery} $element jQuery object to trap the foucs into.\n */\n trapFocus($element) {\n var $focusable = findFocusable($element),\n $firstFocusable = $focusable.eq(0),\n $lastFocusable = $focusable.eq(-1);\n\n $element.on('keydown.zf.trapfocus', function(event) {\n if (event.target === $lastFocusable[0] && parseKey(event) === 'TAB') {\n event.preventDefault();\n $firstFocusable.focus();\n }\n else if (event.target === $firstFocusable[0] && parseKey(event) === 'SHIFT_TAB') {\n event.preventDefault();\n $lastFocusable.focus();\n }\n });\n },\n /**\n * Releases the trapped focus from the given element.\n * @param {jQuery} $element jQuery object to release the focus for.\n */\n releaseFocus($element) {\n $element.off('keydown.zf.trapfocus');\n }\n}\n\n/*\n * Constants for easier comparing.\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n */\nfunction getKeyCodes(kcs) {\n var k = {};\n for (var kc in kcs) {\n if (kcs.hasOwnProperty(kc)) k[kcs[kc]] = kcs[kc];\n }\n return k;\n}\n\nexport {Keyboard};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\n\n/**\n * Accordion module.\n * @module foundation.accordion\n * @requires foundation.util.keyboard\n */\n\nclass Accordion extends Plugin {\n /**\n * Creates a new instance of an accordion.\n * @class\n * @name Accordion\n * @fires Accordion#init\n * @param {jQuery} element - jQuery object to make into an accordion.\n * @param {Object} options - a plain object with settings to override the default options.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, Accordion.defaults, this.$element.data(), options);\n\n this.className = 'Accordion'; // ie9 back compat\n this._init();\n\n Keyboard.register('Accordion', {\n 'ENTER': 'toggle',\n 'SPACE': 'toggle',\n 'ARROW_DOWN': 'next',\n 'ARROW_UP': 'previous',\n 'HOME': 'first',\n 'END': 'last',\n });\n }\n\n /**\n * Initializes the accordion by animating the preset active pane(s).\n * @private\n */\n _init() {\n this._isInitializing = true;\n\n this.$tabs = this.$element.children('[data-accordion-item]');\n\n\n this.$tabs.each(function(idx, el) {\n var $el = $(el),\n $content = $el.children('[data-tab-content]'),\n id = $content[0].id || GetYoDigits(6, 'accordion'),\n linkId = (el.id) ? `${el.id}-label` : `${id}-label`;\n\n $el.find('a:first').attr({\n 'aria-controls': id,\n 'id': linkId,\n 'aria-expanded': false\n });\n\n $content.attr({'role': 'region', 'aria-labelledby': linkId, 'aria-hidden': true, 'id': id});\n });\n\n var $initActive = this.$element.find('.is-active').children('[data-tab-content]');\n if ($initActive.length) {\n // Save up the initial hash to return to it later when going back in history\n this._initialAnchor = $initActive.prev('a').attr('href');\n this._openSingleTab($initActive);\n }\n\n this._checkDeepLink = () => {\n var anchor = window.location.hash;\n\n if (!anchor.length) {\n // If we are still initializing and there is no anchor, then there is nothing to do\n if (this._isInitializing) return;\n // Otherwise, move to the initial anchor\n if (this._initialAnchor) anchor = this._initialAnchor;\n }\n\n var $anchor = anchor && $(anchor);\n var $link = anchor && this.$element.find(`[href$=\"${anchor}\"]`);\n // Whether the anchor element that has been found is part of this element\n var isOwnAnchor = !!($anchor.length && $link.length);\n\n if (isOwnAnchor) {\n // If there is an anchor for the hash, open it (if not already active)\n if ($anchor && $link && $link.length) {\n if (!$link.parent('[data-accordion-item]').hasClass('is-active')) {\n this._openSingleTab($anchor);\n }\n }\n // Otherwise, close everything\n else {\n this._closeAllTabs();\n }\n\n // Roll up a little to show the titles\n if (this.options.deepLinkSmudge) {\n onLoad($(window), () => {\n var offset = this.$element.offset();\n $('html, body').animate({ scrollTop: offset.top - this.options.deepLinkSmudgeOffset }, this.options.deepLinkSmudgeDelay);\n });\n }\n\n /**\n * Fires when the plugin has deeplinked at pageload\n * @event Accordion#deeplink\n */\n this.$element.trigger('deeplink.zf.accordion', [$link, $anchor]);\n }\n }\n\n //use browser to open a tab, if it exists in this tabset\n if (this.options.deepLink) {\n this._checkDeepLink();\n }\n\n this._events();\n\n this._isInitializing = false;\n }\n\n /**\n * Adds event handlers for items within the accordion.\n * @private\n */\n _events() {\n var _this = this;\n\n this.$tabs.each(function() {\n var $elem = $(this);\n var $tabContent = $elem.children('[data-tab-content]');\n if ($tabContent.length) {\n $elem.children('a').off('click.zf.accordion keydown.zf.accordion')\n .on('click.zf.accordion', function(e) {\n e.preventDefault();\n _this.toggle($tabContent);\n }).on('keydown.zf.accordion', function(e) {\n Keyboard.handleKey(e, 'Accordion', {\n toggle: function() {\n _this.toggle($tabContent);\n },\n next: function() {\n var $a = $elem.next().find('a').focus();\n if (!_this.options.multiExpand) {\n $a.trigger('click.zf.accordion')\n }\n },\n previous: function() {\n var $a = $elem.prev().find('a').focus();\n if (!_this.options.multiExpand) {\n $a.trigger('click.zf.accordion')\n }\n },\n first: function() {\n var $a = _this.$tabs.first().find('.accordion-title').focus();\n if (!_this.options.multiExpand) {\n $a.trigger('click.zf.accordion');\n }\n },\n last: function() {\n var $a = _this.$tabs.last().find('.accordion-title').focus();\n if (!_this.options.multiExpand) {\n $a.trigger('click.zf.accordion');\n }\n },\n handled: function() {\n e.preventDefault();\n }\n });\n });\n }\n });\n if (this.options.deepLink) {\n $(window).on('hashchange', this._checkDeepLink);\n }\n }\n\n /**\n * Toggles the selected content pane's open/close state.\n * @param {jQuery} $target - jQuery object of the pane to toggle (`.accordion-content`).\n * @function\n */\n toggle($target) {\n if ($target.closest('[data-accordion]').is('[disabled]')) {\n console.info('Cannot toggle an accordion that is disabled.');\n return;\n }\n if ($target.parent().hasClass('is-active')) {\n this.up($target);\n } else {\n this.down($target);\n }\n //either replace or update browser history\n if (this.options.deepLink) {\n var anchor = $target.prev('a').attr('href');\n\n if (this.options.updateHistory) {\n history.pushState({}, '', anchor);\n } else {\n history.replaceState({}, '', anchor);\n }\n }\n }\n\n /**\n * Opens the accordion tab defined by `$target`.\n * @param {jQuery} $target - Accordion pane to open (`.accordion-content`).\n * @fires Accordion#down\n * @function\n */\n down($target) {\n if ($target.closest('[data-accordion]').is('[disabled]')) {\n console.info('Cannot call down on an accordion that is disabled.');\n return;\n }\n\n if (this.options.multiExpand)\n this._openTab($target);\n else\n this._openSingleTab($target);\n }\n\n /**\n * Closes the tab defined by `$target`.\n * It may be ignored if the Accordion options don't allow it.\n *\n * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n * @fires Accordion#up\n * @function\n */\n up($target) {\n if (this.$element.is('[disabled]')) {\n console.info('Cannot call up on an accordion that is disabled.');\n return;\n }\n\n // Don't close the item if it is already closed\n const $targetItem = $target.parent();\n if (!$targetItem.hasClass('is-active')) return;\n\n // Don't close the item if there is no other active item (unless with `allowAllClosed`)\n const $othersItems = $targetItem.siblings();\n if (!this.options.allowAllClosed && !$othersItems.hasClass('is-active')) return;\n\n this._closeTab($target);\n }\n\n /**\n * Make the tab defined by `$target` the only opened tab, closing all others tabs.\n * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n * @function\n * @private\n */\n _openSingleTab($target) {\n // Close all the others active tabs.\n const $activeContents = this.$element.children('.is-active').children('[data-tab-content]');\n if ($activeContents.length) {\n this._closeTab($activeContents.not($target));\n }\n\n // Then open the target.\n this._openTab($target);\n }\n\n /**\n * Opens the tab defined by `$target`.\n * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n * @fires Accordion#down\n * @function\n * @private\n */\n _openTab($target) {\n const $targetItem = $target.parent();\n const targetContentId = $target.attr('aria-labelledby');\n\n $target.attr('aria-hidden', false);\n $targetItem.addClass('is-active');\n\n $(`#${targetContentId}`).attr({\n 'aria-expanded': true\n });\n\n $target.finish().slideDown(this.options.slideSpeed, () => {\n /**\n * Fires when the tab is done opening.\n * @event Accordion#down\n */\n this.$element.trigger('down.zf.accordion', [$target]);\n });\n }\n\n /**\n * Closes the tab defined by `$target`.\n * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n * @fires Accordion#up\n * @function\n * @private\n */\n _closeTab($target) {\n const $targetItem = $target.parent();\n const targetContentId = $target.attr('aria-labelledby');\n\n $target.attr('aria-hidden', true)\n $targetItem.removeClass('is-active');\n\n $(`#${targetContentId}`).attr({\n 'aria-expanded': false\n });\n\n $target.finish().slideUp(this.options.slideSpeed, () => {\n /**\n * Fires when the tab is done collapsing up.\n * @event Accordion#up\n */\n this.$element.trigger('up.zf.accordion', [$target]);\n });\n }\n\n /**\n * Closes all active tabs\n * @fires Accordion#up\n * @function\n * @private\n */\n _closeAllTabs() {\n var $activeTabs = this.$element.children('.is-active').children('[data-tab-content]');\n if ($activeTabs.length) {\n this._closeTab($activeTabs);\n }\n }\n\n /**\n * Destroys an instance of an accordion.\n * @fires Accordion#destroyed\n * @function\n */\n _destroy() {\n this.$element.find('[data-tab-content]').stop(true).slideUp(0).css('display', '');\n this.$element.find('a').off('.zf.accordion');\n if (this.options.deepLink) {\n $(window).off('hashchange', this._checkDeepLink);\n }\n\n }\n}\n\nAccordion.defaults = {\n /**\n * Amount of time to animate the opening of an accordion pane.\n * @option\n * @type {number}\n * @default 250\n */\n slideSpeed: 250,\n /**\n * Allow the accordion to have multiple open panes.\n * @option\n * @type {boolean}\n * @default false\n */\n multiExpand: false,\n /**\n * Allow the accordion to close all panes.\n * @option\n * @type {boolean}\n * @default false\n */\n allowAllClosed: false,\n /**\n * Link the location hash to the open pane.\n * Set the location hash when the opened pane changes, and open and scroll to the corresponding pane when the location changes.\n * @option\n * @type {boolean}\n * @default false\n */\n deepLink: false,\n /**\n * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the accordion panel is visible\n * @option\n * @type {boolean}\n * @default false\n */\n deepLinkSmudge: false,\n /**\n * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n * @option\n * @type {number}\n * @default 300\n */\n deepLinkSmudgeDelay: 300,\n /**\n * If `deepLinkSmudge` is enabled, the offset for scrollToTtop to prevent overlap by a sticky element at the top of the page\n * @option\n * @type {number}\n * @default 0\n */\n deepLinkSmudgeOffset: 0,\n /**\n * If `deepLink` is enabled, update the browser history with the open accordion\n * @option\n * @type {boolean}\n * @default false\n */\n updateHistory: false\n};\n\nexport { Accordion };\n","import $ from 'jquery';\n\nconst Nest = {\n Feather(menu, type = 'zf') {\n menu.attr('role', 'menubar');\n menu.find('a').attr({'role': 'menuitem'});\n\n var items = menu.find('li').attr({'role': 'none'}),\n subMenuClass = `is-${type}-submenu`,\n subItemClass = `${subMenuClass}-item`,\n hasSubClass = `is-${type}-submenu-parent`,\n applyAria = (type !== 'accordion'); // Accordions handle their own ARIA attriutes.\n\n items.each(function() {\n var $item = $(this),\n $sub = $item.children('ul');\n\n if ($sub.length) {\n $item.addClass(hasSubClass);\n if(applyAria) {\n const firstItem = $item.children('a:first');\n firstItem.attr({\n 'aria-haspopup': true,\n 'aria-label': firstItem.attr('aria-label') || firstItem.text()\n });\n // Note: Drilldowns behave differently in how they hide, and so need\n // additional attributes. We should look if this possibly over-generalized\n // utility (Nest) is appropriate when we rework menus in 6.4\n if(type === 'drilldown') {\n $item.attr({'aria-expanded': false});\n }\n }\n $sub\n .addClass(`submenu ${subMenuClass}`)\n .attr({\n 'data-submenu': '',\n 'role': 'menubar'\n });\n if(type === 'drilldown') {\n $sub.attr({'aria-hidden': true});\n }\n }\n\n if ($item.parent('[data-submenu]').length) {\n $item.addClass(`is-submenu-item ${subItemClass}`);\n }\n });\n\n return;\n },\n\n Burn(menu, type) {\n var //items = menu.find('li'),\n subMenuClass = `is-${type}-submenu`,\n subItemClass = `${subMenuClass}-item`,\n hasSubClass = `is-${type}-submenu-parent`;\n\n menu\n .find('>li, > li > ul, .menu, .menu > li, [data-submenu] > li')\n .removeClass(`${subMenuClass} ${subItemClass} ${hasSubClass} is-submenu-item submenu is-active`)\n .removeAttr('data-submenu').css('display', '');\n\n }\n}\n\nexport {Nest};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * AccordionMenu module.\n * @module foundation.accordionMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n */\n\nclass AccordionMenu extends Plugin {\n /**\n * Creates a new instance of an accordion menu.\n * @class\n * @name AccordionMenu\n * @fires AccordionMenu#init\n * @param {jQuery} element - jQuery object to make into an accordion menu.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, AccordionMenu.defaults, this.$element.data(), options);\n this.className = 'AccordionMenu'; // ie9 back compat\n\n this._init();\n\n Keyboard.register('AccordionMenu', {\n 'ENTER': 'toggle',\n 'SPACE': 'toggle',\n 'ARROW_RIGHT': 'open',\n 'ARROW_UP': 'up',\n 'ARROW_DOWN': 'down',\n 'ARROW_LEFT': 'close',\n 'ESCAPE': 'closeAll'\n });\n }\n\n\n\n /**\n * Initializes the accordion menu by hiding all nested menus.\n * @private\n */\n _init() {\n Nest.Feather(this.$element, 'accordion');\n\n var _this = this;\n\n this.$element.find('[data-submenu]').not('.is-active').slideUp(0);//.find('a').css('padding-left', '1rem');\n this.$element.attr({\n 'aria-multiselectable': this.options.multiOpen\n });\n\n this.$menuLinks = this.$element.find('.is-accordion-submenu-parent');\n this.$menuLinks.each(function() {\n var linkId = this.id || GetYoDigits(6, 'acc-menu-link'),\n $elem = $(this),\n $sub = $elem.children('[data-submenu]'),\n subId = $sub[0].id || GetYoDigits(6, 'acc-menu'),\n isActive = $sub.hasClass('is-active');\n\n if (_this.options.parentLink) {\n let $anchor = $elem.children('a');\n $anchor.clone().prependTo($sub).wrap('
  • ');\n }\n\n if (_this.options.submenuToggle) {\n $elem.addClass('has-submenu-toggle');\n $elem.children('a').after('');\n } else {\n $elem.attr({\n 'aria-controls': subId,\n 'aria-expanded': isActive,\n 'id': linkId\n });\n }\n $sub.attr({\n 'aria-labelledby': linkId,\n 'aria-hidden': !isActive,\n 'role': 'group',\n 'id': subId\n });\n });\n var initPanes = this.$element.find('.is-active');\n if (initPanes.length) {\n initPanes.each(function() {\n _this.down($(this));\n });\n }\n this._events();\n }\n\n /**\n * Adds event handlers for items within the menu.\n * @private\n */\n _events() {\n var _this = this;\n\n this.$element.find('li').each(function() {\n var $submenu = $(this).children('[data-submenu]');\n\n if ($submenu.length) {\n if (_this.options.submenuToggle) {\n $(this).children('.submenu-toggle').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function() {\n _this.toggle($submenu);\n });\n } else {\n $(this).children('a').off('click.zf.accordionMenu').on('click.zf.accordionMenu', function(e) {\n e.preventDefault();\n _this.toggle($submenu);\n });\n }\n }\n }).on('keydown.zf.accordionMenu', function(e) {\n var $element = $(this),\n $elements = $element.parent('ul').children('li'),\n $prevElement,\n $nextElement,\n $target = $element.children('[data-submenu]');\n\n $elements.each(function(i) {\n if ($(this).is($element)) {\n $prevElement = $elements.eq(Math.max(0, i-1)).find('a').first();\n $nextElement = $elements.eq(Math.min(i+1, $elements.length-1)).find('a').first();\n\n if ($(this).children('[data-submenu]:visible').length) { // has open sub menu\n $nextElement = $element.find('li:first-child').find('a').first();\n }\n if ($(this).is(':first-child')) { // is first element of sub menu\n $prevElement = $element.parents('li').first().find('a').first();\n } else if ($prevElement.parents('li').first().children('[data-submenu]:visible').length) { // if previous element has open sub menu\n $prevElement = $prevElement.parents('li').find('li:last-child').find('a').first();\n }\n if ($(this).is(':last-child')) { // is last element of sub menu\n $nextElement = $element.parents('li').first().next('li').find('a').first();\n }\n\n return;\n }\n });\n\n Keyboard.handleKey(e, 'AccordionMenu', {\n open: function() {\n if ($target.is(':hidden')) {\n _this.down($target);\n $target.find('li').first().find('a').first().focus();\n }\n },\n close: function() {\n if ($target.length && !$target.is(':hidden')) { // close active sub of this item\n _this.up($target);\n } else if ($element.parent('[data-submenu]').length) { // close currently open sub\n _this.up($element.parent('[data-submenu]'));\n $element.parents('li').first().find('a').first().focus();\n }\n },\n up: function() {\n $prevElement.focus();\n return true;\n },\n down: function() {\n $nextElement.focus();\n return true;\n },\n toggle: function() {\n if (_this.options.submenuToggle) {\n return false;\n }\n if ($element.children('[data-submenu]').length) {\n _this.toggle($element.children('[data-submenu]'));\n return true;\n }\n },\n closeAll: function() {\n _this.hideAll();\n },\n handled: function(preventDefault) {\n if (preventDefault) {\n e.preventDefault();\n }\n }\n });\n });//.attr('tabindex', 0);\n }\n\n /**\n * Closes all panes of the menu.\n * @function\n */\n hideAll() {\n this.up(this.$element.find('[data-submenu]'));\n }\n\n /**\n * Opens all panes of the menu.\n * @function\n */\n showAll() {\n this.down(this.$element.find('[data-submenu]'));\n }\n\n /**\n * Toggles the open/close state of a submenu.\n * @function\n * @param {jQuery} $target - the submenu to toggle\n */\n toggle($target) {\n if (!$target.is(':animated')) {\n if (!$target.is(':hidden')) {\n this.up($target);\n }\n else {\n this.down($target);\n }\n }\n }\n\n /**\n * Opens the sub-menu defined by `$target`.\n * @param {jQuery} $target - Sub-menu to open.\n * @fires AccordionMenu#down\n */\n down($target) {\n // If having multiple submenus active is disabled, close all the submenus\n // that are not parents or children of the targeted submenu.\n if (!this.options.multiOpen) {\n // The \"branch\" of the targetted submenu, from the component root to\n // the active submenus nested in it.\n const $targetBranch = $target.parentsUntil(this.$element)\n .add($target)\n .add($target.find('.is-active'));\n // All the active submenus that are not in the branch.\n const $othersActiveSubmenus = this.$element.find('.is-active').not($targetBranch);\n\n this.up($othersActiveSubmenus);\n }\n\n $target\n .addClass('is-active')\n .attr({ 'aria-hidden': false });\n\n if (this.options.submenuToggle) {\n $target.prev('.submenu-toggle').attr({'aria-expanded': true});\n }\n else {\n $target.parent('.is-accordion-submenu-parent').attr({'aria-expanded': true});\n }\n\n $target.slideDown(this.options.slideSpeed, () => {\n /**\n * Fires when the menu is done opening.\n * @event AccordionMenu#down\n */\n this.$element.trigger('down.zf.accordionMenu', [$target]);\n });\n }\n\n /**\n * Closes the sub-menu defined by `$target`. All sub-menus inside the target will be closed as well.\n * @param {jQuery} $target - Sub-menu to close.\n * @fires AccordionMenu#up\n */\n up($target) {\n const $submenus = $target.find('[data-submenu]');\n const $allmenus = $target.add($submenus);\n\n $submenus.slideUp(0);\n $allmenus\n .removeClass('is-active')\n .attr('aria-hidden', true);\n\n if (this.options.submenuToggle) {\n $allmenus.prev('.submenu-toggle').attr('aria-expanded', false);\n }\n else {\n $allmenus.parent('.is-accordion-submenu-parent').attr('aria-expanded', false);\n }\n\n $target.slideUp(this.options.slideSpeed, () => {\n /**\n * Fires when the menu is done collapsing up.\n * @event AccordionMenu#up\n */\n this.$element.trigger('up.zf.accordionMenu', [$target]);\n });\n }\n\n /**\n * Destroys an instance of accordion menu.\n * @fires AccordionMenu#destroyed\n */\n _destroy() {\n this.$element.find('[data-submenu]').slideDown(0).css('display', '');\n this.$element.find('a').off('click.zf.accordionMenu');\n this.$element.find('[data-is-parent-link]').detach();\n\n if (this.options.submenuToggle) {\n this.$element.find('.has-submenu-toggle').removeClass('has-submenu-toggle');\n this.$element.find('.submenu-toggle').remove();\n }\n\n Nest.Burn(this.$element, 'accordion');\n }\n}\n\nAccordionMenu.defaults = {\n /**\n * Adds the parent link to the submenu.\n * @option\n * @type {boolean}\n * @default false\n */\n parentLink: false,\n /**\n * Amount of time to animate the opening of a submenu in ms.\n * @option\n * @type {number}\n * @default 250\n */\n slideSpeed: 250,\n /**\n * Adds a separate submenu toggle button. This allows the parent item to have a link.\n * @option\n * @example true\n */\n submenuToggle: false,\n /**\n * The text used for the submenu toggle if enabled. This is used for screen readers only.\n * @option\n * @example true\n */\n submenuToggleText: 'Toggle menu',\n /**\n * Allow the menu to have multiple open panes.\n * @option\n * @type {boolean}\n * @default true\n */\n multiOpen: true\n};\n\nexport { AccordionMenu };\n","var Box = {\n ImNotTouchingYou: ImNotTouchingYou,\n OverlapArea: OverlapArea,\n GetDimensions: GetDimensions,\n GetExplicitOffsets: GetExplicitOffsets\n}\n\n/**\n * Compares the dimensions of an element to a container and determines collision events with container.\n * @function\n * @param {jQuery} element - jQuery object to test for collisions.\n * @param {jQuery} parent - jQuery object to use as bounding container.\n * @param {Boolean} lrOnly - set to true to check left and right values only.\n * @param {Boolean} tbOnly - set to true to check top and bottom values only.\n * @default if no parent object passed, detects collisions with `window`.\n * @returns {Boolean} - true if collision free, false if a collision in any direction.\n */\nfunction ImNotTouchingYou(element, parent, lrOnly, tbOnly, ignoreBottom) {\n return OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) === 0;\n}\n\nfunction OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) {\n var eleDims = GetDimensions(element),\n topOver, bottomOver, leftOver, rightOver;\n if (parent) {\n var parDims = GetDimensions(parent);\n\n bottomOver = (parDims.height + parDims.offset.top) - (eleDims.offset.top + eleDims.height);\n topOver = eleDims.offset.top - parDims.offset.top;\n leftOver = eleDims.offset.left - parDims.offset.left;\n rightOver = (parDims.width + parDims.offset.left) - (eleDims.offset.left + eleDims.width);\n }\n else {\n bottomOver = (eleDims.windowDims.height + eleDims.windowDims.offset.top) - (eleDims.offset.top + eleDims.height);\n topOver = eleDims.offset.top - eleDims.windowDims.offset.top;\n leftOver = eleDims.offset.left - eleDims.windowDims.offset.left;\n rightOver = eleDims.windowDims.width - (eleDims.offset.left + eleDims.width);\n }\n\n bottomOver = ignoreBottom ? 0 : Math.min(bottomOver, 0);\n topOver = Math.min(topOver, 0);\n leftOver = Math.min(leftOver, 0);\n rightOver = Math.min(rightOver, 0);\n\n if (lrOnly) {\n return leftOver + rightOver;\n }\n if (tbOnly) {\n return topOver + bottomOver;\n }\n\n // use sum of squares b/c we care about overlap area.\n return Math.sqrt((topOver * topOver) + (bottomOver * bottomOver) + (leftOver * leftOver) + (rightOver * rightOver));\n}\n\n/**\n * Uses native methods to return an object of dimension values.\n * @function\n * @param {jQuery || HTML} element - jQuery object or DOM element for which to get the dimensions. Can be any element other that document or window.\n * @returns {Object} - nested object of integer pixel values\n * TODO - if element is window, return only those values.\n */\nfunction GetDimensions(elem){\n elem = elem.length ? elem[0] : elem;\n\n if (elem === window || elem === document) {\n throw new Error(\"I'm sorry, Dave. I'm afraid I can't do that.\");\n }\n\n var rect = elem.getBoundingClientRect(),\n parRect = elem.parentNode.getBoundingClientRect(),\n winRect = document.body.getBoundingClientRect(),\n winY = window.pageYOffset,\n winX = window.pageXOffset;\n\n return {\n width: rect.width,\n height: rect.height,\n offset: {\n top: rect.top + winY,\n left: rect.left + winX\n },\n parentDims: {\n width: parRect.width,\n height: parRect.height,\n offset: {\n top: parRect.top + winY,\n left: parRect.left + winX\n }\n },\n windowDims: {\n width: winRect.width,\n height: winRect.height,\n offset: {\n top: winY,\n left: winX\n }\n }\n }\n}\n\n/**\n * Returns an object of top and left integer pixel values for dynamically rendered elements,\n * such as: Tooltip, Reveal, and Dropdown. Maintained for backwards compatibility, and where\n * you don't know alignment, but generally from\n * 6.4 forward you should use GetExplicitOffsets, as GetOffsets conflates position and alignment.\n * @function\n * @param {jQuery} element - jQuery object for the element being positioned.\n * @param {jQuery} anchor - jQuery object for the element's anchor point.\n * @param {String} position - a string relating to the desired position of the element, relative to it's anchor\n * @param {Number} vOffset - integer pixel value of desired vertical separation between anchor and element.\n * @param {Number} hOffset - integer pixel value of desired horizontal separation between anchor and element.\n * @param {Boolean} isOverflow - if a collision event is detected, sets to true to default the element to full width - any desired offset.\n * TODO alter/rewrite to work with `em` values as well/instead of pixels\n */\nfunction GetExplicitOffsets(element, anchor, position, alignment, vOffset, hOffset, isOverflow) {\n var $eleDims = GetDimensions(element),\n $anchorDims = anchor ? GetDimensions(anchor) : null;\n\n var topVal, leftVal;\n\n if ($anchorDims !== null) {\n // set position related attribute\n switch (position) {\n case 'top':\n topVal = $anchorDims.offset.top - ($eleDims.height + vOffset);\n break;\n case 'bottom':\n topVal = $anchorDims.offset.top + $anchorDims.height + vOffset;\n break;\n case 'left':\n leftVal = $anchorDims.offset.left - ($eleDims.width + hOffset);\n break;\n case 'right':\n leftVal = $anchorDims.offset.left + $anchorDims.width + hOffset;\n break;\n }\n\n // set alignment related attribute\n switch (position) {\n case 'top':\n case 'bottom':\n switch (alignment) {\n case 'left':\n leftVal = $anchorDims.offset.left + hOffset;\n break;\n case 'right':\n leftVal = $anchorDims.offset.left - $eleDims.width + $anchorDims.width - hOffset;\n break;\n case 'center':\n leftVal = isOverflow ? hOffset : (($anchorDims.offset.left + ($anchorDims.width / 2)) - ($eleDims.width / 2)) + hOffset;\n break;\n }\n break;\n case 'right':\n case 'left':\n switch (alignment) {\n case 'bottom':\n topVal = $anchorDims.offset.top - vOffset + $anchorDims.height - $eleDims.height;\n break;\n case 'top':\n topVal = $anchorDims.offset.top + vOffset\n break;\n case 'center':\n topVal = ($anchorDims.offset.top + vOffset + ($anchorDims.height / 2)) - ($eleDims.height / 2)\n break;\n }\n break;\n }\n }\n\n return {top: topVal, left: leftVal};\n}\n\nexport {Box};\n","import { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl } from './foundation.core.utils';\n\nconst POSITIONS = ['left', 'right', 'top', 'bottom'];\nconst VERTICAL_ALIGNMENTS = ['top', 'bottom', 'center'];\nconst HORIZONTAL_ALIGNMENTS = ['left', 'right', 'center'];\n\nconst ALIGNMENTS = {\n 'left': VERTICAL_ALIGNMENTS,\n 'right': VERTICAL_ALIGNMENTS,\n 'top': HORIZONTAL_ALIGNMENTS,\n 'bottom': HORIZONTAL_ALIGNMENTS\n}\n\nfunction nextItem(item, array) {\n var currentIdx = array.indexOf(item);\n if(currentIdx === array.length - 1) {\n return array[0];\n } else {\n return array[currentIdx + 1];\n }\n}\n\n\nclass Positionable extends Plugin {\n /**\n * Abstract class encapsulating the tether-like explicit positioning logic\n * including repositioning based on overlap.\n * Expects classes to define defaults for vOffset, hOffset, position,\n * alignment, allowOverlap, and allowBottomOverlap. They can do this by\n * extending the defaults, or (for now recommended due to the way docs are\n * generated) by explicitly declaring them.\n *\n **/\n\n _init() {\n this.triedPositions = {};\n this.position = this.options.position === 'auto' ? this._getDefaultPosition() : this.options.position;\n this.alignment = this.options.alignment === 'auto' ? this._getDefaultAlignment() : this.options.alignment;\n this.originalPosition = this.position;\n this.originalAlignment = this.alignment;\n }\n\n _getDefaultPosition () {\n return 'bottom';\n }\n\n _getDefaultAlignment() {\n switch(this.position) {\n case 'bottom':\n case 'top':\n return Rtl() ? 'right' : 'left';\n case 'left':\n case 'right':\n return 'bottom';\n }\n }\n\n /**\n * Adjusts the positionable possible positions by iterating through alignments\n * and positions.\n * @function\n * @private\n */\n _reposition() {\n if(this._alignmentsExhausted(this.position)) {\n this.position = nextItem(this.position, POSITIONS);\n this.alignment = ALIGNMENTS[this.position][0];\n } else {\n this._realign();\n }\n }\n\n /**\n * Adjusts the dropdown pane possible positions by iterating through alignments\n * on the current position.\n * @function\n * @private\n */\n _realign() {\n this._addTriedPosition(this.position, this.alignment)\n this.alignment = nextItem(this.alignment, ALIGNMENTS[this.position])\n }\n\n _addTriedPosition(position, alignment) {\n this.triedPositions[position] = this.triedPositions[position] || []\n this.triedPositions[position].push(alignment);\n }\n\n _positionsExhausted() {\n var isExhausted = true;\n for(var i = 0; i < POSITIONS.length; i++) {\n isExhausted = isExhausted && this._alignmentsExhausted(POSITIONS[i]);\n }\n return isExhausted;\n }\n\n _alignmentsExhausted(position) {\n return this.triedPositions[position] && this.triedPositions[position].length === ALIGNMENTS[position].length;\n }\n\n\n // When we're trying to center, we don't want to apply offset that's going to\n // take us just off center, so wrap around to return 0 for the appropriate\n // offset in those alignments. TODO: Figure out if we want to make this\n // configurable behavior... it feels more intuitive, especially for tooltips, but\n // it's possible someone might actually want to start from center and then nudge\n // slightly off.\n _getVOffset() {\n return this.options.vOffset;\n }\n\n _getHOffset() {\n return this.options.hOffset;\n }\n\n _setPosition($anchor, $element, $parent) {\n if($anchor.attr('aria-expanded') === 'false'){ return false; }\n\n if (!this.options.allowOverlap) {\n // restore original position & alignment before checking overlap\n this.position = this.originalPosition;\n this.alignment = this.originalAlignment;\n }\n\n $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n\n if(!this.options.allowOverlap) {\n var minOverlap = 100000000;\n // default coordinates to how we start, in case we can't figure out better\n var minCoordinates = {position: this.position, alignment: this.alignment};\n while(!this._positionsExhausted()) {\n let overlap = Box.OverlapArea($element, $parent, false, false, this.options.allowBottomOverlap);\n if(overlap === 0) {\n return;\n }\n\n if(overlap < minOverlap) {\n minOverlap = overlap;\n minCoordinates = {position: this.position, alignment: this.alignment};\n }\n\n this._reposition();\n\n $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n }\n // If we get through the entire loop, there was no non-overlapping\n // position available. Pick the version with least overlap.\n this.position = minCoordinates.position;\n this.alignment = minCoordinates.alignment;\n $element.offset(Box.GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));\n }\n }\n\n}\n\nPositionable.defaults = {\n /**\n * Position of positionable relative to anchor. Can be left, right, bottom, top, or auto.\n * @option\n * @type {string}\n * @default 'auto'\n */\n position: 'auto',\n /**\n * Alignment of positionable relative to anchor. Can be left, right, bottom, top, center, or auto.\n * @option\n * @type {string}\n * @default 'auto'\n */\n alignment: 'auto',\n /**\n * Allow overlap of container/window. If false, dropdown positionable first\n * try to position as defined by data-position and data-alignment, but\n * reposition if it would cause an overflow.\n * @option\n * @type {boolean}\n * @default false\n */\n allowOverlap: false,\n /**\n * Allow overlap of only the bottom of the container. This is the most common\n * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n * screen but not otherwise influence or break out of the container.\n * @option\n * @type {boolean}\n * @default true\n */\n allowBottomOverlap: true,\n /**\n * Number of pixels the positionable should be separated vertically from anchor\n * @option\n * @type {number}\n * @default 0\n */\n vOffset: 0,\n /**\n * Number of pixels the positionable should be separated horizontally from anchor\n * @option\n * @type {number}\n * @default 0\n */\n hOffset: 0,\n}\n\nexport {Positionable};\n","import $ from 'jquery';\nimport { transitionend } from './foundation.core.utils';\n\n/**\n * Motion module.\n * @module foundation.motion\n */\n\nconst initClasses = ['mui-enter', 'mui-leave'];\nconst activeClasses = ['mui-enter-active', 'mui-leave-active'];\n\nconst Motion = {\n animateIn: function(element, animation, cb) {\n animate(true, element, animation, cb);\n },\n\n animateOut: function(element, animation, cb) {\n animate(false, element, animation, cb);\n }\n}\n\nfunction Move(duration, elem, fn){\n var anim, prog, start = null;\n\n if (duration === 0) {\n fn.apply(elem);\n elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n return;\n }\n\n function move(ts){\n if(!start) start = ts;\n prog = ts - start;\n fn.apply(elem);\n\n if(prog < duration){ anim = window.requestAnimationFrame(move, elem); }\n else{\n window.cancelAnimationFrame(anim);\n elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n }\n }\n anim = window.requestAnimationFrame(move);\n}\n\n/**\n * Animates an element in or out using a CSS transition class.\n * @function\n * @private\n * @param {Boolean} isIn - Defines if the animation is in or out.\n * @param {Object} element - jQuery or HTML object to animate.\n * @param {String} animation - CSS class to use.\n * @param {Function} cb - Callback to run when animation is finished.\n */\nfunction animate(isIn, element, animation, cb) {\n element = $(element).eq(0);\n\n if (!element.length) return;\n\n var initClass = isIn ? initClasses[0] : initClasses[1];\n var activeClass = isIn ? activeClasses[0] : activeClasses[1];\n\n // Set up the animation\n reset();\n\n element\n .addClass(animation)\n .css('transition', 'none');\n\n requestAnimationFrame(() => {\n element.addClass(initClass);\n if (isIn) element.show();\n });\n\n // Start the animation\n requestAnimationFrame(() => {\n // will trigger the browser to synchronously calculate the style and layout\n // also called reflow or layout thrashing\n // see https://gist.github.com/paulirish/5d52fb081b3570c81e3a\n element[0].offsetWidth;\n element\n .css('transition', '')\n .addClass(activeClass);\n });\n\n // Clean up the animation when it finishes\n element.one(transitionend(element), finish);\n\n // Hides the element (for out animations), resets the element, and runs a callback\n function finish() {\n if (!isIn) element.hide();\n reset();\n if (cb) cb.apply(element);\n }\n\n // Resets transitions and removes motion-specific classes\n function reset() {\n element[0].style.transitionDuration = 0;\n element.removeClass(`${initClass} ${activeClass} ${animation}`);\n }\n}\n\nexport { Move, Motion };\n\n","import $ from 'jquery';\nimport { onLoad } from './foundation.core.utils';\nimport { Motion } from './foundation.util.motion';\n\nconst MutationObserver = (function () {\n var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n for (var i=0; i < prefixes.length; i++) {\n if (`${prefixes[i]}MutationObserver` in window) {\n return window[`${prefixes[i]}MutationObserver`];\n }\n }\n return false;\n})();\n\nconst triggers = (el, type) => {\n el.data(type).split(' ').forEach(id => {\n $(`#${id}`)[ type === 'close' ? 'trigger' : 'triggerHandler'](`${type}.zf.trigger`, [el]);\n });\n};\n\nvar Triggers = {\n Listeners: {\n Basic: {},\n Global: {}\n },\n Initializers: {}\n}\n\nTriggers.Listeners.Basic = {\n openListener: function() {\n triggers($(this), 'open');\n },\n closeListener: function() {\n let id = $(this).data('close');\n if (id) {\n triggers($(this), 'close');\n }\n else {\n $(this).trigger('close.zf.trigger');\n }\n },\n toggleListener: function() {\n let id = $(this).data('toggle');\n if (id) {\n triggers($(this), 'toggle');\n } else {\n $(this).trigger('toggle.zf.trigger');\n }\n },\n closeableListener: function(e) {\n let animation = $(this).data('closable');\n\n // Only close the first closable element. See https://git.io/zf-7833\n e.stopPropagation();\n\n if(animation !== ''){\n Motion.animateOut($(this), animation, function() {\n $(this).trigger('closed.zf');\n });\n }else{\n $(this).fadeOut().trigger('closed.zf');\n }\n },\n toggleFocusListener: function() {\n let id = $(this).data('toggle-focus');\n $(`#${id}`).triggerHandler('toggle.zf.trigger', [$(this)]);\n }\n};\n\n// Elements with [data-open] will reveal a plugin that supports it when clicked.\nTriggers.Initializers.addOpenListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n}\n\n// Elements with [data-close] will close a plugin that supports it when clicked.\n// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\nTriggers.Initializers.addCloseListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n}\n\n// Elements with [data-toggle] will toggle a plugin that supports it when clicked.\nTriggers.Initializers.addToggleListener = ($elem) => {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n}\n\n// Elements with [data-closable] will respond to close.zf.trigger events.\nTriggers.Initializers.addCloseableListener = ($elem) => {\n $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n}\n\n// Elements with [data-toggle-focus] will respond to coming in and out of focus\nTriggers.Initializers.addToggleFocusListener = ($elem) => {\n $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n}\n\n\n\n// More Global/complex listeners and triggers\nTriggers.Listeners.Global = {\n resizeListener: function($nodes) {\n if(!MutationObserver){//fallback for IE 9\n $nodes.each(function(){\n $(this).triggerHandler('resizeme.zf.trigger');\n });\n }\n //trigger all listening elements and signal a resize event\n $nodes.attr('data-events', \"resize\");\n },\n scrollListener: function($nodes) {\n if(!MutationObserver){//fallback for IE 9\n $nodes.each(function(){\n $(this).triggerHandler('scrollme.zf.trigger');\n });\n }\n //trigger all listening elements and signal a scroll event\n $nodes.attr('data-events', \"scroll\");\n },\n closeMeListener: function(e, pluginId){\n let plugin = e.namespace.split('.')[0];\n let plugins = $(`[data-${plugin}]`).not(`[data-yeti-box=\"${pluginId}\"]`);\n\n plugins.each(function(){\n let _this = $(this);\n _this.triggerHandler('close.zf.trigger', [_this]);\n });\n }\n}\n\n// Global, parses whole document.\nTriggers.Initializers.addClosemeListener = function(pluginName) {\n var yetiBoxes = $('[data-yeti-box]'),\n plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n if(pluginName){\n if(typeof pluginName === 'string'){\n plugNames.push(pluginName);\n }else if(typeof pluginName === 'object' && typeof pluginName[0] === 'string'){\n plugNames = plugNames.concat(pluginName);\n }else{\n console.error('Plugin names must be strings');\n }\n }\n if(yetiBoxes.length){\n let listeners = plugNames.map((name) => {\n return `closeme.zf.${name}`;\n }).join(' ');\n\n $(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n }\n}\n\nfunction debounceGlobalListener(debounce, trigger, listener) {\n let timer, args = Array.prototype.slice.call(arguments, 3);\n $(window).on(trigger, function() {\n if (timer) { clearTimeout(timer); }\n timer = setTimeout(function(){\n listener.apply(null, args);\n }, debounce || 10); //default time to emit scroll event\n });\n}\n\nTriggers.Initializers.addResizeListener = function(debounce){\n let $nodes = $('[data-resize]');\n if($nodes.length){\n debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n }\n}\n\nTriggers.Initializers.addScrollListener = function(debounce){\n let $nodes = $('[data-scroll]');\n if($nodes.length){\n debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n }\n}\n\nTriggers.Initializers.addMutationEventsListener = function($elem) {\n if(!MutationObserver){ return false; }\n let $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]');\n\n //element callback\n var listeningElementsMutation = function (mutationRecordsList) {\n var $target = $(mutationRecordsList[0].target);\n\n //trigger the event handler for the element depending on type\n switch (mutationRecordsList[0].type) {\n case \"attributes\":\n if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n }\n if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('resizeme.zf.trigger', [$target]);\n }\n if (mutationRecordsList[0].attributeName === \"style\") {\n $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n }\n break;\n\n case \"childList\":\n $target.closest(\"[data-mutate]\").attr(\"data-events\",\"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n break;\n\n default:\n return false;\n //nothing\n }\n };\n\n if ($nodes.length) {\n //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n for (var i = 0; i <= $nodes.length - 1; i++) {\n var elementObserver = new MutationObserver(listeningElementsMutation);\n elementObserver.observe($nodes[i], { attributes: true, childList: true, characterData: false, subtree: true, attributeFilter: [\"data-events\", \"style\"] });\n }\n }\n}\n\nTriggers.Initializers.addSimpleListeners = function() {\n let $document = $(document);\n\n Triggers.Initializers.addOpenListener($document);\n Triggers.Initializers.addCloseListener($document);\n Triggers.Initializers.addToggleListener($document);\n Triggers.Initializers.addCloseableListener($document);\n Triggers.Initializers.addToggleFocusListener($document);\n\n}\n\nTriggers.Initializers.addGlobalListeners = function() {\n let $document = $(document);\n Triggers.Initializers.addMutationEventsListener($document);\n Triggers.Initializers.addResizeListener(250);\n Triggers.Initializers.addScrollListener();\n Triggers.Initializers.addClosemeListener();\n}\n\n\nTriggers.init = function (__, Foundation) {\n onLoad($(window), function () {\n if ($.triggersInitialized !== true) {\n Triggers.Initializers.addSimpleListeners();\n Triggers.Initializers.addGlobalListeners();\n $.triggersInitialized = true;\n }\n });\n\n if(Foundation) {\n Foundation.Triggers = Triggers;\n // Legacy included to be backwards compatible for now.\n Foundation.IHearYou = Triggers.Initializers.addGlobalListeners\n }\n}\n\nexport {Triggers};\n","//**************************************************\n//**Work inspired by multiple jquery swipe plugins**\n//**Done by Yohai Ararat ***************************\n//**************************************************\n\nimport $ from 'jquery';\n\nvar Touch = {};\n\nvar startPosX,\n startTime,\n elapsedTime,\n startEvent,\n isMoving = false,\n didMoved = false;\n\nfunction onTouchEnd(e) {\n this.removeEventListener('touchmove', onTouchMove);\n this.removeEventListener('touchend', onTouchEnd);\n\n // If the touch did not move, consider it as a \"tap\"\n if (!didMoved) {\n var tapEvent = $.Event('tap', startEvent || e);\n $(this).trigger(tapEvent);\n }\n\n startEvent = null;\n isMoving = false;\n didMoved = false;\n}\n\nfunction onTouchMove(e) {\n if (true === $.spotSwipe.preventDefault) { e.preventDefault(); }\n\n if(isMoving) {\n var x = e.touches[0].pageX;\n // var y = e.touches[0].pageY;\n var dx = startPosX - x;\n // var dy = startPosY - y;\n var dir;\n didMoved = true;\n elapsedTime = new Date().getTime() - startTime;\n if(Math.abs(dx) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n dir = dx > 0 ? 'left' : 'right';\n }\n // else if(Math.abs(dy) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n // dir = dy > 0 ? 'down' : 'up';\n // }\n if(dir) {\n e.preventDefault();\n onTouchEnd.apply(this, arguments);\n $(this)\n .trigger($.Event('swipe', Object.assign({}, e)), dir)\n .trigger($.Event(`swipe${dir}`, Object.assign({}, e)));\n }\n }\n\n}\n\nfunction onTouchStart(e) {\n\n if (e.touches.length === 1) {\n startPosX = e.touches[0].pageX;\n startEvent = e;\n isMoving = true;\n didMoved = false;\n startTime = new Date().getTime();\n this.addEventListener('touchmove', onTouchMove, { passive : true === $.spotSwipe.preventDefault });\n this.addEventListener('touchend', onTouchEnd, false);\n }\n}\n\nfunction init() {\n this.addEventListener && this.addEventListener('touchstart', onTouchStart, { passive : true });\n}\n\n// function teardown() {\n// this.removeEventListener('touchstart', onTouchStart);\n// }\n\nclass SpotSwipe {\n constructor() {\n this.version = '1.0.0';\n this.enabled = 'ontouchstart' in document.documentElement;\n this.preventDefault = false;\n this.moveThreshold = 75;\n this.timeThreshold = 200;\n this._init();\n }\n\n _init() {\n $.event.special.swipe = { setup: init };\n $.event.special.tap = { setup: init };\n\n $.each(['left', 'up', 'down', 'right'], function () {\n $.event.special[`swipe${this}`] = { setup: function(){\n $(this).on('swipe', $.noop);\n } };\n });\n }\n}\n\n/****************************************************\n * As far as I can tell, both setupSpotSwipe and *\n * setupTouchHandler should be idempotent, *\n * because they directly replace functions & *\n * values, and do not add event handlers directly. *\n ****************************************************/\n\nTouch.setupSpotSwipe = function() {\n $.spotSwipe = new SpotSwipe($);\n};\n\n/****************************************************\n * Method for adding pseudo drag events to elements *\n ***************************************************/\nTouch.setupTouchHandler = function() {\n $.fn.addTouch = function(){\n this.each(function(i, el){\n $(el).bind('touchstart touchmove touchend touchcancel', function(event) {\n //we pass the original event object because the jQuery event\n //object is normalized to w3c specs and does not provide the TouchList\n handleTouch(event);\n });\n });\n\n var handleTouch = function(event) {\n var touches = event.changedTouches,\n first = touches[0],\n eventTypes = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup'\n },\n type = eventTypes[event.type],\n simulatedEvent\n ;\n\n if('MouseEvent' in window && typeof window.MouseEvent === 'function') {\n simulatedEvent = new window.MouseEvent(type, {\n 'bubbles': true,\n 'cancelable': true,\n 'screenX': first.screenX,\n 'screenY': first.screenY,\n 'clientX': first.clientX,\n 'clientY': first.clientY\n });\n } else {\n simulatedEvent = document.createEvent('MouseEvent');\n simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0/*left*/, null);\n }\n first.target.dispatchEvent(simulatedEvent);\n };\n };\n};\n\nTouch.init = function () {\n if(typeof($.spotSwipe) === 'undefined') {\n Touch.setupSpotSwipe($);\n Touch.setupTouchHandler($);\n }\n};\n\nexport {Touch};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils';\nimport { Positionable } from './foundation.positionable';\n\nimport { Triggers } from './foundation.util.triggers';\nimport { Touch } from './foundation.util.touch'\n\n/**\n * Dropdown module.\n * @module foundation.dropdown\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n */\nclass Dropdown extends Positionable {\n /**\n * Creates a new instance of a dropdown.\n * @class\n * @name Dropdown\n * @param {jQuery} element - jQuery object to make into a dropdown.\n * Object should be of the dropdown panel, rather than its anchor.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, Dropdown.defaults, this.$element.data(), options);\n this.className = 'Dropdown'; // ie9 back compat\n\n // Touch and Triggers init are idempotent, just need to make sure they are initialized\n Touch.init($);\n Triggers.init($);\n\n this._init();\n\n Keyboard.register('Dropdown', {\n 'ENTER': 'toggle',\n 'SPACE': 'toggle',\n 'ESCAPE': 'close'\n });\n }\n\n /**\n * Initializes the plugin by setting/checking options and attributes, adding helper variables, and saving the anchor.\n * @function\n * @private\n */\n _init() {\n var $id = this.$element.attr('id');\n\n this.$anchors = $(`[data-toggle=\"${$id}\"]`).length ? $(`[data-toggle=\"${$id}\"]`) : $(`[data-open=\"${$id}\"]`);\n this.$anchors.attr({\n 'aria-controls': $id,\n 'data-is-focus': false,\n 'data-yeti-box': $id,\n 'aria-haspopup': true,\n 'aria-expanded': false\n });\n\n this._setCurrentAnchor(this.$anchors.first());\n\n if(this.options.parentClass){\n this.$parent = this.$element.parents('.' + this.options.parentClass);\n }else{\n this.$parent = null;\n }\n\n // Set [aria-labelledby] on the Dropdown if it is not set\n if (typeof this.$element.attr('aria-labelledby') === 'undefined') {\n // Get the anchor ID or create one\n if (typeof this.$currentAnchor.attr('id') === 'undefined') {\n this.$currentAnchor.attr('id', GetYoDigits(6, 'dd-anchor'));\n }\n\n this.$element.attr('aria-labelledby', this.$currentAnchor.attr('id'));\n }\n\n this.$element.attr({\n 'aria-hidden': 'true',\n 'data-yeti-box': $id,\n 'data-resize': $id,\n });\n\n super._init();\n this._events();\n }\n\n _getDefaultPosition() {\n // handle legacy classnames\n var position = this.$element[0].className.match(/(top|left|right|bottom)/g);\n if(position) {\n return position[0];\n } else {\n return 'bottom'\n }\n }\n\n _getDefaultAlignment() {\n // handle legacy float approach\n var horizontalPosition = /float-(\\S+)/.exec(this.$currentAnchor.attr('class'));\n if(horizontalPosition) {\n return horizontalPosition[1];\n }\n\n return super._getDefaultAlignment();\n }\n\n\n\n /**\n * Sets the position and orientation of the dropdown pane, checks for collisions if allow-overlap is not true.\n * Recursively calls itself if a collision is detected, with a new position class.\n * @function\n * @private\n */\n _setPosition() {\n this.$element.removeClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n super._setPosition(this.$currentAnchor, this.$element, this.$parent);\n this.$element.addClass(`has-position-${this.position} has-alignment-${this.alignment}`);\n }\n\n /**\n * Make it a current anchor.\n * Current anchor as the reference for the position of Dropdown panes.\n * @param {HTML} el - DOM element of the anchor.\n * @function\n * @private\n */\n _setCurrentAnchor(el) {\n this.$currentAnchor = $(el);\n }\n\n /**\n * Adds event listeners to the element utilizing the triggers utility library.\n * @function\n * @private\n */\n _events() {\n var _this = this,\n hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined');\n\n this.$element.on({\n 'open.zf.trigger': this.open.bind(this),\n 'close.zf.trigger': this.close.bind(this),\n 'toggle.zf.trigger': this.toggle.bind(this),\n 'resizeme.zf.trigger': this._setPosition.bind(this)\n });\n\n this.$anchors.off('click.zf.trigger')\n .on('click.zf.trigger', function(e) {\n _this._setCurrentAnchor(this);\n\n if (\n // if forceFollow false, always prevent default action\n (_this.options.forceFollow === false) ||\n // if forceFollow true and hover option true, only prevent default action on 1st click\n // on 2nd click (dropown opened) the default action (e.g. follow a href) gets executed\n (hasTouch && _this.options.hover && _this.$element.hasClass('is-open') === false)\n ) {\n e.preventDefault();\n }\n });\n\n if(this.options.hover){\n this.$anchors.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n .on('mouseenter.zf.dropdown', function(){\n _this._setCurrentAnchor(this);\n\n var bodyData = $('body').data();\n if(typeof(bodyData.whatinput) === 'undefined' || bodyData.whatinput === 'mouse') {\n clearTimeout(_this.timeout);\n _this.timeout = setTimeout(function(){\n _this.open();\n _this.$anchors.data('hover', true);\n }, _this.options.hoverDelay);\n }\n }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n clearTimeout(_this.timeout);\n _this.timeout = setTimeout(function(){\n _this.close();\n _this.$anchors.data('hover', false);\n }, _this.options.hoverDelay);\n }));\n if(this.options.hoverPane){\n this.$element.off('mouseenter.zf.dropdown mouseleave.zf.dropdown')\n .on('mouseenter.zf.dropdown', function(){\n clearTimeout(_this.timeout);\n }).on('mouseleave.zf.dropdown', ignoreMousedisappear(function(){\n clearTimeout(_this.timeout);\n _this.timeout = setTimeout(function(){\n _this.close();\n _this.$anchors.data('hover', false);\n }, _this.options.hoverDelay);\n }));\n }\n }\n this.$anchors.add(this.$element).on('keydown.zf.dropdown', function(e) {\n\n var $target = $(this);\n\n Keyboard.handleKey(e, 'Dropdown', {\n open: function() {\n if ($target.is(_this.$anchors) && !$target.is('input, textarea')) {\n _this.open();\n _this.$element.attr('tabindex', -1).focus();\n e.preventDefault();\n }\n },\n close: function() {\n _this.close();\n _this.$anchors.focus();\n }\n });\n });\n }\n\n /**\n * Adds an event handler to the body to close any dropdowns on a click.\n * @function\n * @private\n */\n _addBodyHandler() {\n var $body = $(document.body).not(this.$element),\n _this = this;\n $body.off('click.zf.dropdown tap.zf.dropdown')\n .on('click.zf.dropdown tap.zf.dropdown', function (e) {\n if(_this.$anchors.is(e.target) || _this.$anchors.find(e.target).length) {\n return;\n }\n if(_this.$element.is(e.target) || _this.$element.find(e.target).length) {\n return;\n }\n _this.close();\n $body.off('click.zf.dropdown tap.zf.dropdown');\n });\n }\n\n /**\n * Opens the dropdown pane, and fires a bubbling event to close other dropdowns.\n * @function\n * @fires Dropdown#closeme\n * @fires Dropdown#show\n */\n open() {\n // var _this = this;\n /**\n * Fires to close other open dropdowns, typically when dropdown is opening\n * @event Dropdown#closeme\n */\n this.$element.trigger('closeme.zf.dropdown', this.$element.attr('id'));\n this.$anchors.addClass('hover')\n .attr({'aria-expanded': true});\n // this.$element/*.show()*/;\n\n this.$element.addClass('is-opening');\n this._setPosition();\n this.$element.removeClass('is-opening').addClass('is-open')\n .attr({'aria-hidden': false});\n\n if(this.options.autoFocus){\n var $focusable = Keyboard.findFocusable(this.$element);\n if($focusable.length){\n $focusable.eq(0).focus();\n }\n }\n\n if(this.options.closeOnClick){ this._addBodyHandler(); }\n\n if (this.options.trapFocus) {\n Keyboard.trapFocus(this.$element);\n }\n\n /**\n * Fires once the dropdown is visible.\n * @event Dropdown#show\n */\n this.$element.trigger('show.zf.dropdown', [this.$element]);\n }\n\n /**\n * Closes the open dropdown pane.\n * @function\n * @fires Dropdown#hide\n */\n close() {\n if(!this.$element.hasClass('is-open')){\n return false;\n }\n this.$element.removeClass('is-open')\n .attr({'aria-hidden': true});\n\n this.$anchors.removeClass('hover')\n .attr('aria-expanded', false);\n\n /**\n * Fires once the dropdown is no longer visible.\n * @event Dropdown#hide\n */\n this.$element.trigger('hide.zf.dropdown', [this.$element]);\n\n if (this.options.trapFocus) {\n Keyboard.releaseFocus(this.$element);\n }\n }\n\n /**\n * Toggles the dropdown pane's visibility.\n * @function\n */\n toggle() {\n if(this.$element.hasClass('is-open')){\n if(this.$anchors.data('hover')) return;\n this.close();\n }else{\n this.open();\n }\n }\n\n /**\n * Destroys the dropdown.\n * @function\n */\n _destroy() {\n this.$element.off('.zf.trigger').hide();\n this.$anchors.off('.zf.dropdown');\n $(document.body).off('click.zf.dropdown tap.zf.dropdown');\n\n }\n}\n\nDropdown.defaults = {\n /**\n * Class that designates bounding container of Dropdown (default: window)\n * @option\n * @type {?string}\n * @default null\n */\n parentClass: null,\n /**\n * Amount of time to delay opening a submenu on hover event.\n * @option\n * @type {number}\n * @default 250\n */\n hoverDelay: 250,\n /**\n * Allow submenus to open on hover events\n * @option\n * @type {boolean}\n * @default false\n */\n hover: false,\n /**\n * Don't close dropdown when hovering over dropdown pane\n * @option\n * @type {boolean}\n * @default false\n */\n hoverPane: false,\n /**\n * Number of pixels between the dropdown pane and the triggering element on open.\n * @option\n * @type {number}\n * @default 0\n */\n vOffset: 0,\n /**\n * Number of pixels between the dropdown pane and the triggering element on open.\n * @option\n * @type {number}\n * @default 0\n */\n hOffset: 0,\n /**\n * Position of dropdown. Can be left, right, bottom, top, or auto.\n * @option\n * @type {string}\n * @default 'auto'\n */\n position: 'auto',\n /**\n * Alignment of dropdown relative to anchor. Can be left, right, bottom, top, center, or auto.\n * @option\n * @type {string}\n * @default 'auto'\n */\n alignment: 'auto',\n /**\n * Allow overlap of container/window. If false, dropdown will first try to position as defined by data-position and data-alignment, but reposition if it would cause an overflow.\n * @option\n * @type {boolean}\n * @default false\n */\n allowOverlap: false,\n /**\n * Allow overlap of only the bottom of the container. This is the most common\n * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n * screen but not otherwise influence or break out of the container.\n * @option\n * @type {boolean}\n * @default true\n */\n allowBottomOverlap: true,\n /**\n * Allow the plugin to trap focus to the dropdown pane if opened with keyboard commands.\n * @option\n * @type {boolean}\n * @default false\n */\n trapFocus: false,\n /**\n * Allow the plugin to set focus to the first focusable element within the pane, regardless of method of opening.\n * @option\n * @type {boolean}\n * @default false\n */\n autoFocus: false,\n /**\n * Allows a click on the body to close the dropdown.\n * @option\n * @type {boolean}\n * @default false\n */\n closeOnClick: false,\n /**\n * If true the default action of the toggle (e.g. follow a link with href) gets executed on click. If hover option is also true the default action gets prevented on first click for mobile / touch devices and executed on second click.\n * @option\n * @type {boolean}\n * @default true\n */\n forceFollow: true\n};\n\nexport {Dropdown};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { rtl as Rtl, ignoreMousedisappear } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { Box } from './foundation.util.box';\nimport { Touch } from './foundation.util.touch'\n\n\n/**\n * DropdownMenu module.\n * @module foundation.dropdownMenu\n * @requires foundation.util.keyboard\n * @requires foundation.util.box\n * @requires foundation.util.nest\n * @requires foundation.util.touch\n */\n\nclass DropdownMenu extends Plugin {\n /**\n * Creates a new instance of DropdownMenu.\n * @class\n * @name DropdownMenu\n * @fires DropdownMenu#init\n * @param {jQuery} element - jQuery object to make into a dropdown menu.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, DropdownMenu.defaults, this.$element.data(), options);\n this.className = 'DropdownMenu'; // ie9 back compat\n\n Touch.init($); // Touch init is idempotent, we just need to make sure it's initialied.\n\n this._init();\n\n Keyboard.register('DropdownMenu', {\n 'ENTER': 'open',\n 'SPACE': 'open',\n 'ARROW_RIGHT': 'next',\n 'ARROW_UP': 'up',\n 'ARROW_DOWN': 'down',\n 'ARROW_LEFT': 'previous',\n 'ESCAPE': 'close'\n });\n }\n\n /**\n * Initializes the plugin, and calls _prepareMenu\n * @private\n * @function\n */\n _init() {\n Nest.Feather(this.$element, 'dropdown');\n\n var subs = this.$element.find('li.is-dropdown-submenu-parent');\n this.$element.children('.is-dropdown-submenu-parent').children('.is-dropdown-submenu').addClass('first-sub');\n\n this.$menuItems = this.$element.find('li[role=\"none\"]');\n this.$tabs = this.$element.children('li[role=\"none\"]');\n this.$tabs.find('ul.is-dropdown-submenu').addClass(this.options.verticalClass);\n\n if (this.options.alignment === 'auto') {\n if (this.$element.hasClass(this.options.rightClass) || Rtl() || this.$element.parents('.top-bar-right').is('*')) {\n this.options.alignment = 'right';\n subs.addClass('opens-left');\n } else {\n this.options.alignment = 'left';\n subs.addClass('opens-right');\n }\n } else {\n if (this.options.alignment === 'right') {\n subs.addClass('opens-left');\n } else {\n subs.addClass('opens-right');\n }\n }\n this.changed = false;\n this._events();\n };\n\n _isVertical() {\n return this.$tabs.css('display') === 'block' || this.$element.css('flex-direction') === 'column';\n }\n\n _isRtl() {\n return this.$element.hasClass('align-right') || (Rtl() && !this.$element.hasClass('align-left'));\n }\n\n /**\n * Adds event listeners to elements within the menu\n * @private\n * @function\n */\n _events() {\n var _this = this,\n hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined'),\n parClass = 'is-dropdown-submenu-parent';\n\n // used for onClick and in the keyboard handlers\n var handleClickFn = function(e) {\n var $elem = $(e.target).parentsUntil('ul', `.${parClass}`),\n hasSub = $elem.hasClass(parClass),\n hasClicked = $elem.attr('data-is-click') === 'true',\n $sub = $elem.children('.is-dropdown-submenu');\n\n if (hasSub) {\n if (hasClicked) {\n if (!_this.options.closeOnClick\n || (!_this.options.clickOpen && !hasTouch)\n || (_this.options.forceFollow && hasTouch)) {\n return;\n }\n e.stopImmediatePropagation();\n e.preventDefault();\n _this._hide($elem);\n }\n else {\n e.stopImmediatePropagation();\n e.preventDefault();\n _this._show($sub);\n $elem.add($elem.parentsUntil(_this.$element, `.${parClass}`)).attr('data-is-click', true);\n }\n }\n };\n\n if (this.options.clickOpen || hasTouch) {\n this.$menuItems.on('click.zf.dropdownMenu touchstart.zf.dropdownMenu', handleClickFn);\n }\n\n // Handle Leaf element Clicks\n if(_this.options.closeOnClickInside){\n this.$menuItems.on('click.zf.dropdownMenu', function() {\n var $elem = $(this),\n hasSub = $elem.hasClass(parClass);\n if(!hasSub){\n _this._hide();\n }\n });\n }\n\n if (hasTouch && this.options.disableHoverOnTouch) this.options.disableHover = true;\n\n if (!this.options.disableHover) {\n this.$menuItems.on('mouseenter.zf.dropdownMenu', function () {\n var $elem = $(this),\n hasSub = $elem.hasClass(parClass);\n\n if (hasSub) {\n clearTimeout($elem.data('_delay'));\n $elem.data('_delay', setTimeout(function () {\n _this._show($elem.children('.is-dropdown-submenu'));\n }, _this.options.hoverDelay));\n }\n }).on('mouseleave.zf.dropdownMenu', ignoreMousedisappear(function () {\n var $elem = $(this),\n hasSub = $elem.hasClass(parClass);\n if (hasSub && _this.options.autoclose) {\n if ($elem.attr('data-is-click') === 'true' && _this.options.clickOpen) { return false; }\n\n clearTimeout($elem.data('_delay'));\n $elem.data('_delay', setTimeout(function () {\n _this._hide($elem);\n }, _this.options.closingTime));\n }\n }));\n }\n this.$menuItems.on('keydown.zf.dropdownMenu', function(e) {\n var $element = $(e.target).parentsUntil('ul', '[role=\"none\"]'),\n isTab = _this.$tabs.index($element) > -1,\n $elements = isTab ? _this.$tabs : $element.siblings('li').add($element),\n $prevElement,\n $nextElement;\n\n $elements.each(function(i) {\n if ($(this).is($element)) {\n $prevElement = $elements.eq(i-1);\n $nextElement = $elements.eq(i+1);\n return;\n }\n });\n\n var nextSibling = function() {\n $nextElement.children('a:first').focus();\n e.preventDefault();\n }, prevSibling = function() {\n $prevElement.children('a:first').focus();\n e.preventDefault();\n }, openSub = function() {\n var $sub = $element.children('ul.is-dropdown-submenu');\n if ($sub.length) {\n _this._show($sub);\n $element.find('li > a:first').focus();\n e.preventDefault();\n } else { return; }\n }, closeSub = function() {\n //if ($element.is(':first-child')) {\n var close = $element.parent('ul').parent('li');\n close.children('a:first').focus();\n _this._hide(close);\n e.preventDefault();\n //}\n };\n var functions = {\n open: openSub,\n close: function() {\n _this._hide(_this.$element);\n _this.$menuItems.eq(0).children('a').focus(); // focus to first element\n e.preventDefault();\n }\n };\n\n if (isTab) {\n if (_this._isVertical()) { // vertical menu\n if (_this._isRtl()) { // right aligned\n $.extend(functions, {\n down: nextSibling,\n up: prevSibling,\n next: closeSub,\n previous: openSub\n });\n } else { // left aligned\n $.extend(functions, {\n down: nextSibling,\n up: prevSibling,\n next: openSub,\n previous: closeSub\n });\n }\n } else { // horizontal menu\n if (_this._isRtl()) { // right aligned\n $.extend(functions, {\n next: prevSibling,\n previous: nextSibling,\n down: openSub,\n up: closeSub\n });\n } else { // left aligned\n $.extend(functions, {\n next: nextSibling,\n previous: prevSibling,\n down: openSub,\n up: closeSub\n });\n }\n }\n } else { // not tabs -> one sub\n if (_this._isRtl()) { // right aligned\n $.extend(functions, {\n next: closeSub,\n previous: openSub,\n down: nextSibling,\n up: prevSibling\n });\n } else { // left aligned\n $.extend(functions, {\n next: openSub,\n previous: closeSub,\n down: nextSibling,\n up: prevSibling\n });\n }\n }\n Keyboard.handleKey(e, 'DropdownMenu', functions);\n\n });\n }\n\n /**\n * Adds an event handler to the body to close any dropdowns on a click.\n * @function\n * @private\n */\n _addBodyHandler() {\n const $body = $(document.body);\n this._removeBodyHandler();\n $body.on('click.zf.dropdownMenu tap.zf.dropdownMenu', (e) => {\n var isItself = !!$(e.target).closest(this.$element).length;\n if (isItself) return;\n\n this._hide();\n this._removeBodyHandler();\n });\n }\n\n /**\n * Remove the body event handler. See `_addBodyHandler`.\n * @function\n * @private\n */\n _removeBodyHandler() {\n $(document.body).off('click.zf.dropdownMenu tap.zf.dropdownMenu');\n }\n\n /**\n * Opens a dropdown pane, and checks for collisions first.\n * @param {jQuery} $sub - ul element that is a submenu to show\n * @function\n * @private\n * @fires DropdownMenu#show\n */\n _show($sub) {\n var idx = this.$tabs.index(this.$tabs.filter(function(i, el) {\n return $(el).find($sub).length > 0;\n }));\n var $sibs = $sub.parent('li.is-dropdown-submenu-parent').siblings('li.is-dropdown-submenu-parent');\n this._hide($sibs, idx);\n $sub.css('visibility', 'hidden').addClass('js-dropdown-active')\n .parent('li.is-dropdown-submenu-parent').addClass('is-active');\n var clear = Box.ImNotTouchingYou($sub, null, true);\n if (!clear) {\n var oldClass = this.options.alignment === 'left' ? '-right' : '-left',\n $parentLi = $sub.parent('.is-dropdown-submenu-parent');\n $parentLi.removeClass(`opens${oldClass}`).addClass(`opens-${this.options.alignment}`);\n clear = Box.ImNotTouchingYou($sub, null, true);\n if (!clear) {\n $parentLi.removeClass(`opens-${this.options.alignment}`).addClass('opens-inner');\n }\n this.changed = true;\n }\n $sub.css('visibility', '');\n if (this.options.closeOnClick) { this._addBodyHandler(); }\n /**\n * Fires when the new dropdown pane is visible.\n * @event DropdownMenu#show\n */\n this.$element.trigger('show.zf.dropdownMenu', [$sub]);\n }\n\n /**\n * Hides a single, currently open dropdown pane, if passed a parameter, otherwise, hides everything.\n * @function\n * @param {jQuery} $elem - element with a submenu to hide\n * @param {Number} idx - index of the $tabs collection to hide\n * @fires DropdownMenu#hide\n * @private\n */\n _hide($elem, idx) {\n var $toClose;\n if ($elem && $elem.length) {\n $toClose = $elem;\n } else if (typeof idx !== 'undefined') {\n $toClose = this.$tabs.not(function(i) {\n return i === idx;\n });\n }\n else {\n $toClose = this.$element;\n }\n var somethingToClose = $toClose.hasClass('is-active') || $toClose.find('.is-active').length > 0;\n\n if (somethingToClose) {\n var $activeItem = $toClose.find('li.is-active');\n $activeItem.add($toClose).attr({\n 'data-is-click': false\n }).removeClass('is-active');\n\n $toClose.find('ul.js-dropdown-active').removeClass('js-dropdown-active');\n\n if (this.changed || $toClose.find('opens-inner').length) {\n var oldClass = this.options.alignment === 'left' ? 'right' : 'left';\n $toClose.find('li.is-dropdown-submenu-parent').add($toClose)\n .removeClass(`opens-inner opens-${this.options.alignment}`)\n .addClass(`opens-${oldClass}`);\n this.changed = false;\n }\n\n clearTimeout($activeItem.data('_delay'));\n this._removeBodyHandler();\n\n /**\n * Fires when the open menus are closed.\n * @event DropdownMenu#hide\n */\n this.$element.trigger('hide.zf.dropdownMenu', [$toClose]);\n }\n }\n\n /**\n * Destroys the plugin.\n * @function\n */\n _destroy() {\n this.$menuItems.off('.zf.dropdownMenu').removeAttr('data-is-click')\n .removeClass('is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner');\n $(document.body).off('.zf.dropdownMenu');\n Nest.Burn(this.$element, 'dropdown');\n }\n}\n\n/**\n * Default settings for plugin\n */\nDropdownMenu.defaults = {\n /**\n * Disallows hover events from opening submenus\n * @option\n * @type {boolean}\n * @default false\n */\n disableHover: false,\n /**\n * Disallows hover on touch devices\n * @option\n * @type {boolean}\n * @default true\n */\n disableHoverOnTouch: true,\n /**\n * Allow a submenu to automatically close on a mouseleave event, if not clicked open.\n * @option\n * @type {boolean}\n * @default true\n */\n autoclose: true,\n /**\n * Amount of time to delay opening a submenu on hover event.\n * @option\n * @type {number}\n * @default 50\n */\n hoverDelay: 50,\n /**\n * Allow a submenu to open/remain open on parent click event. Allows cursor to move away from menu.\n * @option\n * @type {boolean}\n * @default false\n */\n clickOpen: false,\n /**\n * Amount of time to delay closing a submenu on a mouseleave event.\n * @option\n * @type {number}\n * @default 500\n */\n\n closingTime: 500,\n /**\n * Position of the menu relative to what direction the submenus should open. Handled by JS. Can be `'auto'`, `'left'` or `'right'`.\n * @option\n * @type {string}\n * @default 'auto'\n */\n alignment: 'auto',\n /**\n * Allow clicks on the body to close any open submenus.\n * @option\n * @type {boolean}\n * @default true\n */\n closeOnClick: true,\n /**\n * Allow clicks on leaf anchor links to close any open submenus.\n * @option\n * @type {boolean}\n * @default true\n */\n closeOnClickInside: true,\n /**\n * Class applied to vertical oriented menus, Foundation default is `vertical`. Update this if using your own class.\n * @option\n * @type {string}\n * @default 'vertical'\n */\n verticalClass: 'vertical',\n /**\n * Class applied to right-side oriented menus, Foundation default is `align-right`. Update this if using your own class.\n * @option\n * @type {string}\n * @default 'align-right'\n */\n rightClass: 'align-right',\n /**\n * Boolean to force overide the clicking of links to perform default action, on second touch event for mobile.\n * @option\n * @type {boolean}\n * @default true\n */\n forceFollow: true\n};\n\nexport {DropdownMenu};\n","import $ from 'jquery';\n\n/**\n * Runs a callback function when images are fully loaded.\n * @param {Object} images - Image(s) to check if loaded.\n * @param {Func} callback - Function to execute when image is fully loaded.\n */\nfunction onImagesLoaded(images, callback){\n var unloaded = images.length;\n\n if (unloaded === 0) {\n callback();\n }\n\n images.each(function(){\n // Check if image is loaded\n if (this.complete && typeof this.naturalWidth !== 'undefined') {\n singleImageLoaded();\n }\n else {\n // If the above check failed, simulate loading on detached element.\n var image = new Image();\n // Still count image as loaded if it finalizes with an error.\n var events = \"load.zf.images error.zf.images\";\n $(image).one(events, function me(){\n // Unbind the event listeners. We're using 'one' but only one of the two events will have fired.\n $(this).off(events, me);\n singleImageLoaded();\n });\n image.src = $(this).attr('src');\n }\n });\n\n function singleImageLoaded() {\n unloaded--;\n if (unloaded === 0) {\n callback();\n }\n }\n}\n\nexport { onImagesLoaded };\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Equalizer module.\n * @module foundation.equalizer\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.imageLoader if equalizer contains images\n */\n\nclass Equalizer extends Plugin {\n /**\n * Creates a new instance of Equalizer.\n * @class\n * @name Equalizer\n * @fires Equalizer#init\n * @param {Object} element - jQuery object to add the trigger to.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options){\n this.$element = element;\n this.options = $.extend({}, Equalizer.defaults, this.$element.data(), options);\n this.className = 'Equalizer'; // ie9 back compat\n\n this._init();\n }\n\n /**\n * Initializes the Equalizer plugin and calls functions to get equalizer functioning on load.\n * @private\n */\n _init() {\n var eqId = this.$element.attr('data-equalizer') || '';\n var $watched = this.$element.find(`[data-equalizer-watch=\"${eqId}\"]`);\n\n MediaQuery._init();\n\n this.$watched = $watched.length ? $watched : this.$element.find('[data-equalizer-watch]');\n this.$element.attr('data-resize', (eqId || GetYoDigits(6, 'eq')));\n this.$element.attr('data-mutate', (eqId || GetYoDigits(6, 'eq')));\n\n this.hasNested = this.$element.find('[data-equalizer]').length > 0;\n this.isNested = this.$element.parentsUntil(document.body, '[data-equalizer]').length > 0;\n this.isOn = false;\n this._bindHandler = {\n onResizeMeBound: this._onResizeMe.bind(this),\n onPostEqualizedBound: this._onPostEqualized.bind(this)\n };\n\n var imgs = this.$element.find('img');\n var tooSmall;\n if(this.options.equalizeOn){\n tooSmall = this._checkMQ();\n $(window).on('changed.zf.mediaquery', this._checkMQ.bind(this));\n }else{\n this._events();\n }\n if((typeof tooSmall !== 'undefined' && tooSmall === false) || typeof tooSmall === 'undefined'){\n if(imgs.length){\n onImagesLoaded(imgs, this._reflow.bind(this));\n }else{\n this._reflow();\n }\n }\n }\n\n /**\n * Removes event listeners if the breakpoint is too small.\n * @private\n */\n _pauseEvents() {\n this.isOn = false;\n this.$element.off({\n '.zf.equalizer': this._bindHandler.onPostEqualizedBound,\n 'resizeme.zf.trigger': this._bindHandler.onResizeMeBound,\n\t 'mutateme.zf.trigger': this._bindHandler.onResizeMeBound\n });\n }\n\n /**\n * function to handle $elements resizeme.zf.trigger, with bound this on _bindHandler.onResizeMeBound\n * @private\n */\n _onResizeMe() {\n this._reflow();\n }\n\n /**\n * function to handle $elements postequalized.zf.equalizer, with bound this on _bindHandler.onPostEqualizedBound\n * @private\n */\n _onPostEqualized(e) {\n if(e.target !== this.$element[0]){ this._reflow(); }\n }\n\n /**\n * Initializes events for Equalizer.\n * @private\n */\n _events() {\n this._pauseEvents();\n if(this.hasNested){\n this.$element.on('postequalized.zf.equalizer', this._bindHandler.onPostEqualizedBound);\n }else{\n this.$element.on('resizeme.zf.trigger', this._bindHandler.onResizeMeBound);\n\t this.$element.on('mutateme.zf.trigger', this._bindHandler.onResizeMeBound);\n }\n this.isOn = true;\n }\n\n /**\n * Checks the current breakpoint to the minimum required size.\n * @private\n */\n _checkMQ() {\n var tooSmall = !MediaQuery.is(this.options.equalizeOn);\n if(tooSmall){\n if(this.isOn){\n this._pauseEvents();\n this.$watched.css('height', 'auto');\n }\n }else{\n if(!this.isOn){\n this._events();\n }\n }\n return tooSmall;\n }\n\n /**\n * A noop version for the plugin\n * @private\n */\n _killswitch() {\n return;\n }\n\n /**\n * Calls necessary functions to update Equalizer upon DOM change\n * @private\n */\n _reflow() {\n if(!this.options.equalizeOnStack){\n if(this._isStacked()){\n this.$watched.css('height', 'auto');\n return false;\n }\n }\n if (this.options.equalizeByRow) {\n this.getHeightsByRow(this.applyHeightByRow.bind(this));\n }else{\n this.getHeights(this.applyHeight.bind(this));\n }\n }\n\n /**\n * Manually determines if the first 2 elements are *NOT* stacked.\n * @private\n */\n _isStacked() {\n if (!this.$watched[0] || !this.$watched[1]) {\n return true;\n }\n return this.$watched[0].getBoundingClientRect().top !== this.$watched[1].getBoundingClientRect().top;\n }\n\n /**\n * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n * @param {Function} cb - A non-optional callback to return the heights array to.\n * @returns {Array} heights - An array of heights of children within Equalizer container\n */\n getHeights(cb) {\n var heights = [];\n for(var i = 0, len = this.$watched.length; i < len; i++){\n this.$watched[i].style.height = 'auto';\n heights.push(this.$watched[i].offsetHeight);\n }\n cb(heights);\n }\n\n /**\n * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n * @param {Function} cb - A non-optional callback to return the heights array to.\n * @returns {Array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n */\n getHeightsByRow(cb) {\n var lastElTopOffset = (this.$watched.length ? this.$watched.first().offset().top : 0),\n groups = [],\n group = 0;\n //group by Row\n groups[group] = [];\n for(var i = 0, len = this.$watched.length; i < len; i++){\n this.$watched[i].style.height = 'auto';\n //maybe could use this.$watched[i].offsetTop\n var elOffsetTop = $(this.$watched[i]).offset().top;\n if (elOffsetTop !== lastElTopOffset) {\n group++;\n groups[group] = [];\n lastElTopOffset=elOffsetTop;\n }\n groups[group].push([this.$watched[i],this.$watched[i].offsetHeight]);\n }\n\n for (var j = 0, ln = groups.length; j < ln; j++) {\n var heights = $(groups[j]).map(function(){ return this[1]; }).get();\n var max = Math.max.apply(null, heights);\n groups[j].push(max);\n }\n cb(groups);\n }\n\n /**\n * Changes the CSS height property of each child in an Equalizer parent to match the tallest\n * @param {array} heights - An array of heights of children within Equalizer container\n * @fires Equalizer#preequalized\n * @fires Equalizer#postequalized\n */\n applyHeight(heights) {\n var max = Math.max.apply(null, heights);\n /**\n * Fires before the heights are applied\n * @event Equalizer#preequalized\n */\n this.$element.trigger('preequalized.zf.equalizer');\n\n this.$watched.css('height', max);\n\n /**\n * Fires when the heights have been applied\n * @event Equalizer#postequalized\n */\n this.$element.trigger('postequalized.zf.equalizer');\n }\n\n /**\n * Changes the CSS height property of each child in an Equalizer parent to match the tallest by row\n * @param {array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n * @fires Equalizer#preequalized\n * @fires Equalizer#preequalizedrow\n * @fires Equalizer#postequalizedrow\n * @fires Equalizer#postequalized\n */\n applyHeightByRow(groups) {\n /**\n * Fires before the heights are applied\n */\n this.$element.trigger('preequalized.zf.equalizer');\n for (var i = 0, len = groups.length; i < len ; i++) {\n var groupsILength = groups[i].length,\n max = groups[i][groupsILength - 1];\n if (groupsILength<=2) {\n $(groups[i][0][0]).css({'height':'auto'});\n continue;\n }\n /**\n * Fires before the heights per row are applied\n * @event Equalizer#preequalizedrow\n */\n this.$element.trigger('preequalizedrow.zf.equalizer');\n for (var j = 0, lenJ = (groupsILength-1); j < lenJ ; j++) {\n $(groups[i][j][0]).css({'height':max});\n }\n /**\n * Fires when the heights per row have been applied\n * @event Equalizer#postequalizedrow\n */\n this.$element.trigger('postequalizedrow.zf.equalizer');\n }\n /**\n * Fires when the heights have been applied\n */\n this.$element.trigger('postequalized.zf.equalizer');\n }\n\n /**\n * Destroys an instance of Equalizer.\n * @function\n */\n _destroy() {\n this._pauseEvents();\n this.$watched.css('height', 'auto');\n }\n}\n\n/**\n * Default settings for plugin\n */\nEqualizer.defaults = {\n /**\n * Enable height equalization when stacked on smaller screens.\n * @option\n * @type {boolean}\n * @default false\n */\n equalizeOnStack: false,\n /**\n * Enable height equalization row by row.\n * @option\n * @type {boolean}\n * @default false\n */\n equalizeByRow: false,\n /**\n * String representing the minimum breakpoint size the plugin should equalize heights on.\n * @option\n * @type {string}\n * @default ''\n */\n equalizeOn: ''\n};\n\nexport {Equalizer};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits, transitionend } from './foundation.core.utils';\nimport { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Drilldown module.\n * @module foundation.drilldown\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n * @requires foundation.util.box\n */\n\nclass Drilldown extends Plugin {\n /**\n * Creates a new instance of a drilldown menu.\n * @class\n * @name Drilldown\n * @param {jQuery} element - jQuery object to make into an accordion menu.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, Drilldown.defaults, this.$element.data(), options);\n this.className = 'Drilldown'; // ie9 back compat\n\n this._init();\n\n Keyboard.register('Drilldown', {\n 'ENTER': 'open',\n 'SPACE': 'open',\n 'ARROW_RIGHT': 'next',\n 'ARROW_UP': 'up',\n 'ARROW_DOWN': 'down',\n 'ARROW_LEFT': 'previous',\n 'ESCAPE': 'close',\n });\n }\n\n /**\n * Initializes the drilldown by creating jQuery collections of elements\n * @private\n */\n _init() {\n Nest.Feather(this.$element, 'drilldown');\n\n if(this.options.autoApplyClass) {\n this.$element.addClass('drilldown');\n }\n\n this.$element.attr({\n 'aria-multiselectable': false\n });\n this.$submenuAnchors = this.$element.find('li.is-drilldown-submenu-parent').children('a');\n this.$submenus = this.$submenuAnchors.parent('li').children('[data-submenu]').attr('role', 'group');\n this.$menuItems = this.$element.find('li').not('.js-drilldown-back').find('a');\n\n // Set the main menu as current by default (unless a submenu is selected)\n // Used to set the wrapper height when the drilldown is closed/reopened from any (sub)menu\n this.$currentMenu = this.$element;\n\n this.$element.attr('data-mutate', (this.$element.attr('data-drilldown') || GetYoDigits(6, 'drilldown')));\n\n this._prepareMenu();\n this._registerEvents();\n\n this._keyboardEvents();\n }\n\n /**\n * prepares drilldown menu by setting attributes to links and elements\n * sets a min height to prevent content jumping\n * wraps the element if not already wrapped\n * @private\n * @function\n */\n _prepareMenu() {\n var _this = this;\n // if(!this.options.holdOpen){\n // this._menuLinkEvents();\n // }\n this.$submenuAnchors.each(function(){\n var $link = $(this);\n var $sub = $link.parent();\n if(_this.options.parentLink){\n $link.clone().prependTo($sub.children('[data-submenu]')).wrap('
  • ');\n }\n $link.data('savedHref', $link.attr('href')).removeAttr('href').attr('tabindex', 0);\n $link.children('[data-submenu]')\n .attr({\n 'aria-hidden': true,\n 'tabindex': 0,\n 'role': 'group'\n });\n _this._events($link);\n });\n this.$submenus.each(function(){\n var $menu = $(this),\n $back = $menu.find('.js-drilldown-back');\n if(!$back.length) {\n switch (_this.options.backButtonPosition) {\n case \"bottom\":\n $menu.append(_this.options.backButton);\n break;\n case \"top\":\n $menu.prepend(_this.options.backButton);\n break;\n default:\n console.error(\"Unsupported backButtonPosition value '\" + _this.options.backButtonPosition + \"'\");\n }\n }\n _this._back($menu);\n });\n\n this.$submenus.addClass('invisible');\n if(!this.options.autoHeight) {\n this.$submenus.addClass('drilldown-submenu-cover-previous');\n }\n\n // create a wrapper on element if it doesn't exist.\n if(!this.$element.parent().hasClass('is-drilldown')){\n this.$wrapper = $(this.options.wrapper).addClass('is-drilldown');\n if(this.options.animateHeight) this.$wrapper.addClass('animate-height');\n this.$element.wrap(this.$wrapper);\n }\n // set wrapper\n this.$wrapper = this.$element.parent();\n this.$wrapper.css(this._getMaxDims());\n }\n\n _resize() {\n this.$wrapper.css({'max-width': 'none', 'min-height': 'none'});\n // _getMaxDims has side effects (boo) but calling it should update all other necessary heights & widths\n this.$wrapper.css(this._getMaxDims());\n }\n\n /**\n * Adds event handlers to elements in the menu.\n * @function\n * @private\n * @param {jQuery} $elem - the current menu item to add handlers to.\n */\n _events($elem) {\n var _this = this;\n\n $elem.off('click.zf.drilldown')\n .on('click.zf.drilldown', function(e) {\n if($(e.target).parentsUntil('ul', 'li').hasClass('is-drilldown-submenu-parent')){\n e.preventDefault();\n }\n\n // if(e.target !== e.currentTarget.firstElementChild){\n // return false;\n // }\n _this._show($elem.parent('li'));\n\n if(_this.options.closeOnClick){\n var $body = $('body');\n $body.off('.zf.drilldown').on('click.zf.drilldown', function(ev) {\n if (ev.target === _this.$element[0] || $.contains(_this.$element[0], ev.target)) { return; }\n ev.preventDefault();\n _this._hideAll();\n $body.off('.zf.drilldown');\n });\n }\n });\n }\n\n /**\n * Adds event handlers to the menu element.\n * @function\n * @private\n */\n _registerEvents() {\n if(this.options.scrollTop){\n this._bindHandler = this._scrollTop.bind(this);\n this.$element.on('open.zf.drilldown hide.zf.drilldown close.zf.drilldown closed.zf.drilldown',this._bindHandler);\n }\n this.$element.on('mutateme.zf.trigger', this._resize.bind(this));\n }\n\n /**\n * Scroll to Top of Element or data-scroll-top-element\n * @function\n * @fires Drilldown#scrollme\n */\n _scrollTop() {\n var _this = this;\n var $scrollTopElement = _this.options.scrollTopElement !== ''?$(_this.options.scrollTopElement):_this.$element,\n scrollPos = parseInt($scrollTopElement.offset().top+_this.options.scrollTopOffset, 10);\n $('html, body').stop(true).animate({ scrollTop: scrollPos }, _this.options.animationDuration, _this.options.animationEasing,function(){\n /**\n * Fires after the menu has scrolled\n * @event Drilldown#scrollme\n */\n if(this===$('html')[0])_this.$element.trigger('scrollme.zf.drilldown');\n });\n }\n\n /**\n * Adds keydown event listener to `li`'s in the menu.\n * @private\n */\n _keyboardEvents() {\n var _this = this;\n\n this.$menuItems.add(this.$element.find('.js-drilldown-back > a, .is-submenu-parent-item > a')).on('keydown.zf.drilldown', function(e){\n var $element = $(this),\n $elements = $element.parent('li').parent('ul').children('li').children('a'),\n $prevElement,\n $nextElement;\n\n $elements.each(function(i) {\n if ($(this).is($element)) {\n $prevElement = $elements.eq(Math.max(0, i-1));\n $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n return;\n }\n });\n\n Keyboard.handleKey(e, 'Drilldown', {\n next: function() {\n if ($element.is(_this.$submenuAnchors)) {\n _this._show($element.parent('li'));\n $element.parent('li').one(transitionend($element), function(){\n $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n });\n return true;\n }\n },\n previous: function() {\n _this._hide($element.parent('li').parent('ul'));\n $element.parent('li').parent('ul').one(transitionend($element), function(){\n setTimeout(function() {\n $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n }, 1);\n });\n return true;\n },\n up: function() {\n $prevElement.focus();\n // Don't tap focus on first element in root ul\n return !$element.is(_this.$element.find('> li:first-child > a'));\n },\n down: function() {\n $nextElement.focus();\n // Don't tap focus on last element in root ul\n return !$element.is(_this.$element.find('> li:last-child > a'));\n },\n close: function() {\n // Don't close on element in root ul\n if (!$element.is(_this.$element.find('> li > a'))) {\n _this._hide($element.parent().parent());\n $element.parent().parent().siblings('a').focus();\n }\n },\n open: function() {\n if (_this.options.parentLink && $element.attr('href')) { // Link with href\n return false;\n } else if (!$element.is(_this.$menuItems)) { // not menu item means back button\n _this._hide($element.parent('li').parent('ul'));\n $element.parent('li').parent('ul').one(transitionend($element), function(){\n setTimeout(function() {\n $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n }, 1);\n });\n return true;\n } else if ($element.is(_this.$submenuAnchors)) { // Sub menu item\n _this._show($element.parent('li'));\n $element.parent('li').one(transitionend($element), function(){\n $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n });\n return true;\n }\n },\n handled: function(preventDefault) {\n if (preventDefault) {\n e.preventDefault();\n }\n }\n });\n }); // end keyboardAccess\n }\n\n /**\n * Closes all open elements, and returns to root menu.\n * @function\n * @fires Drilldown#close\n * @fires Drilldown#closed\n */\n _hideAll() {\n var $elem = this.$element.find('.is-drilldown-submenu.is-active')\n $elem.addClass('is-closing');\n $elem.parent().closest('ul').removeClass('invisible');\n\n if (this.options.autoHeight) {\n const calcHeight = $elem.parent().closest('ul').data('calcHeight');\n this.$wrapper.css({ height: calcHeight });\n }\n\n /**\n * Fires when the menu is closing.\n * @event Drilldown#close\n */\n this.$element.trigger('close.zf.drilldown');\n\n $elem.one(transitionend($elem), () => {\n $elem.removeClass('is-active is-closing');\n\n /**\n * Fires when the menu is fully closed.\n * @event Drilldown#closed\n */\n this.$element.trigger('closed.zf.drilldown');\n });\n }\n\n /**\n * Adds event listener for each `back` button, and closes open menus.\n * @function\n * @fires Drilldown#back\n * @param {jQuery} $elem - the current sub-menu to add `back` event.\n */\n _back($elem) {\n var _this = this;\n $elem.off('click.zf.drilldown');\n $elem.children('.js-drilldown-back')\n .on('click.zf.drilldown', function() {\n _this._hide($elem);\n\n // If there is a parent submenu, call show\n let parentSubMenu = $elem.parent('li').parent('ul').parent('li');\n if (parentSubMenu.length) {\n _this._show(parentSubMenu);\n }\n else {\n _this.$currentMenu = _this.$element;\n }\n });\n }\n\n /**\n * Adds event listener to menu items w/o submenus to close open menus on click.\n * @function\n * @private\n */\n _menuLinkEvents() {\n var _this = this;\n this.$menuItems.not('.is-drilldown-submenu-parent')\n .off('click.zf.drilldown')\n .on('click.zf.drilldown', function() {\n setTimeout(function() {\n _this._hideAll();\n }, 0);\n });\n }\n\n /**\n * Sets the CSS classes for submenu to show it.\n * @function\n * @private\n * @param {jQuery} $elem - the target submenu (`ul` tag)\n * @param {boolean} trigger - trigger drilldown event\n */\n _setShowSubMenuClasses($elem, trigger) {\n $elem.addClass('is-active').removeClass('invisible').attr('aria-hidden', false);\n $elem.parent('li').attr('aria-expanded', true);\n if (trigger === true) {\n this.$element.trigger('open.zf.drilldown', [$elem]);\n }\n }\n\n /**\n * Sets the CSS classes for submenu to hide it.\n * @function\n * @private\n * @param {jQuery} $elem - the target submenu (`ul` tag)\n * @param {boolean} trigger - trigger drilldown event\n */\n _setHideSubMenuClasses($elem, trigger) {\n $elem.removeClass('is-active').addClass('invisible').attr('aria-hidden', true);\n $elem.parent('li').attr('aria-expanded', false);\n if (trigger === true) {\n $elem.trigger('hide.zf.drilldown', [$elem]);\n }\n }\n\n /**\n * Opens a specific drilldown (sub)menu no matter which (sub)menu in it is currently visible.\n * Compared to _show() this lets you jump into any submenu without clicking through every submenu on the way to it.\n * @function\n * @fires Drilldown#open\n * @param {jQuery} $elem - the target (sub)menu (`ul` tag)\n * @param {boolean} autoFocus - if true the first link in the target (sub)menu gets auto focused\n */\n _showMenu($elem, autoFocus) {\n\n var _this = this;\n\n // Reset drilldown\n var $expandedSubmenus = this.$element.find('li[aria-expanded=\"true\"] > ul[data-submenu]');\n $expandedSubmenus.each(function() {\n _this._setHideSubMenuClasses($(this));\n });\n\n // Save the menu as the currently displayed one.\n this.$currentMenu = $elem;\n\n // If target menu is root, focus first link & exit\n if ($elem.is('[data-drilldown]')) {\n if (autoFocus === true) $elem.find('li > a').first().focus();\n if (this.options.autoHeight) this.$wrapper.css('height', $elem.data('calcHeight'));\n return;\n }\n\n // Find all submenus on way to root incl. the element itself\n var $submenus = $elem.children().first().parentsUntil('[data-drilldown]', '[data-submenu]');\n\n // Open target menu and all submenus on its way to root\n $submenus.each(function(index) {\n\n // Update height of first child (target menu) if autoHeight option true\n if (index === 0 && _this.options.autoHeight) {\n _this.$wrapper.css('height', $(this).data('calcHeight'));\n }\n\n var isLastChild = index === $submenus.length - 1;\n\n // Add transitionsend listener to last child (root due to reverse order) to open target menu's first link\n // Last child makes sure the event gets always triggered even if going through several menus\n if (isLastChild === true) {\n $(this).one(transitionend($(this)), () => {\n if (autoFocus === true) {\n $elem.find('li > a').first().focus();\n }\n });\n }\n\n _this._setShowSubMenuClasses($(this), isLastChild);\n });\n }\n\n /**\n * Opens a submenu.\n * @function\n * @fires Drilldown#open\n * @param {jQuery} $elem - the current element with a submenu to open, i.e. the `li` tag.\n */\n _show($elem) {\n const $submenu = $elem.children('[data-submenu]');\n\n $elem.attr('aria-expanded', true);\n\n this.$currentMenu = $submenu;\n\n //hide drilldown parent menu when submenu is open\n // this removes it from the dom so that the tab key will take the user to the next visible element\n $elem.parent().closest('ul').addClass('invisible');\n\n // add visible class to submenu to override invisible class above\n $submenu.addClass('is-active visible').removeClass('invisible').attr('aria-hidden', false);\n\n if (this.options.autoHeight) {\n this.$wrapper.css({ height: $submenu.data('calcHeight') });\n }\n\n /**\n * Fires when the submenu has opened.\n * @event Drilldown#open\n */\n this.$element.trigger('open.zf.drilldown', [$elem]);\n }\n\n /**\n * Hides a submenu\n * @function\n * @fires Drilldown#hide\n * @param {jQuery} $elem - the current sub-menu to hide, i.e. the `ul` tag.\n */\n _hide($elem) {\n if(this.options.autoHeight) this.$wrapper.css({height:$elem.parent().closest('ul').data('calcHeight')});\n $elem.parent().closest('ul').removeClass('invisible');\n $elem.parent('li').attr('aria-expanded', false);\n $elem.attr('aria-hidden', true);\n $elem.addClass('is-closing')\n .one(transitionend($elem), function(){\n $elem.removeClass('is-active is-closing visible');\n $elem.blur().addClass('invisible');\n });\n /**\n * Fires when the submenu has closed.\n * @event Drilldown#hide\n */\n $elem.trigger('hide.zf.drilldown', [$elem]);\n }\n\n /**\n * Iterates through the nested menus to calculate the min-height, and max-width for the menu.\n * Prevents content jumping.\n * @function\n * @private\n */\n _getMaxDims() {\n var maxHeight = 0, result = {}, _this = this;\n\n // Recalculate menu heights and total max height\n this.$submenus.add(this.$element).each(function(){\n var height = Box.GetDimensions(this).height;\n\n maxHeight = height > maxHeight ? height : maxHeight;\n\n if(_this.options.autoHeight) {\n $(this).data('calcHeight',height);\n }\n });\n\n if (this.options.autoHeight)\n result.height = this.$currentMenu.data('calcHeight');\n else\n result['min-height'] = `${maxHeight}px`;\n\n result['max-width'] = `${this.$element[0].getBoundingClientRect().width}px`;\n\n return result;\n }\n\n /**\n * Destroys the Drilldown Menu\n * @function\n */\n _destroy() {\n $('body').off('.zf.drilldown');\n if(this.options.scrollTop) this.$element.off('.zf.drilldown',this._bindHandler);\n this._hideAll();\n\t this.$element.off('mutateme.zf.trigger');\n Nest.Burn(this.$element, 'drilldown');\n this.$element.unwrap()\n .find('.js-drilldown-back, .is-submenu-parent-item').remove()\n .end().find('.is-active, .is-closing, .is-drilldown-submenu').removeClass('is-active is-closing is-drilldown-submenu').off('transitionend otransitionend webkitTransitionEnd')\n .end().find('[data-submenu]').removeAttr('aria-hidden tabindex role');\n this.$submenuAnchors.each(function() {\n $(this).off('.zf.drilldown');\n });\n\n this.$element.find('[data-is-parent-link]').detach();\n this.$submenus.removeClass('drilldown-submenu-cover-previous invisible');\n\n this.$element.find('a').each(function(){\n var $link = $(this);\n $link.removeAttr('tabindex');\n if($link.data('savedHref')){\n $link.attr('href', $link.data('savedHref')).removeData('savedHref');\n }else{ return; }\n });\n };\n}\n\nDrilldown.defaults = {\n /**\n * Drilldowns depend on styles in order to function properly; in the default build of Foundation these are\n * on the `drilldown` class. This option auto-applies this class to the drilldown upon initialization.\n * @option\n * @type {boolean}\n * @default true\n */\n autoApplyClass: true,\n /**\n * Markup used for JS generated back button. Prepended or appended (see backButtonPosition) to submenu lists and deleted on `destroy` method, 'js-drilldown-back' class required. Remove the backslash (`\\`) if copy and pasting.\n * @option\n * @type {string}\n * @default '
  • Back
  • '\n */\n backButton: '
  • Back
  • ',\n /**\n * Position the back button either at the top or bottom of drilldown submenus. Can be `'left'` or `'bottom'`.\n * @option\n * @type {string}\n * @default top\n */\n backButtonPosition: 'top',\n /**\n * Markup used to wrap drilldown menu. Use a class name for independent styling; the JS applied class: `is-drilldown` is required. Remove the backslash (`\\`) if copy and pasting.\n * @option\n * @type {string}\n * @default '
    '\n */\n wrapper: '
    ',\n /**\n * Adds the parent link to the submenu.\n * @option\n * @type {boolean}\n * @default false\n */\n parentLink: false,\n /**\n * Allow the menu to return to root list on body click.\n * @option\n * @type {boolean}\n * @default false\n */\n closeOnClick: false,\n /**\n * Allow the menu to auto adjust height.\n * @option\n * @type {boolean}\n * @default false\n */\n autoHeight: false,\n /**\n * Animate the auto adjust height.\n * @option\n * @type {boolean}\n * @default false\n */\n animateHeight: false,\n /**\n * Scroll to the top of the menu after opening a submenu or navigating back using the menu back button\n * @option\n * @type {boolean}\n * @default false\n */\n scrollTop: false,\n /**\n * String jquery selector (for example 'body') of element to take offset().top from, if empty string the drilldown menu offset().top is taken\n * @option\n * @type {string}\n * @default ''\n */\n scrollTopElement: '',\n /**\n * ScrollTop offset\n * @option\n * @type {number}\n * @default 0\n */\n scrollTopOffset: 0,\n /**\n * Scroll animation duration\n * @option\n * @type {number}\n * @default 500\n */\n animationDuration: 500,\n /**\n * Scroll animation easing. Can be `'swing'` or `'linear'`.\n * @option\n * @type {string}\n * @see {@link https://api.jquery.com/animate|JQuery animate}\n * @default 'swing'\n */\n animationEasing: 'swing'\n // holdOpen: false\n};\n\nexport {Drilldown};\n","import $ from 'jquery';\n\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\nimport { DropdownMenu } from './foundation.dropdownMenu';\nimport { Drilldown } from './foundation.drilldown';\nimport { AccordionMenu } from './foundation.accordionMenu';\n\nlet MenuPlugins = {\n dropdown: {\n cssClass: 'dropdown',\n plugin: DropdownMenu\n },\n drilldown: {\n cssClass: 'drilldown',\n plugin: Drilldown\n },\n accordion: {\n cssClass: 'accordion-menu',\n plugin: AccordionMenu\n }\n};\n\n // import \"foundation.util.triggers.js\";\n\n\n/**\n * ResponsiveMenu module.\n * @module foundation.responsiveMenu\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nclass ResponsiveMenu extends Plugin {\n /**\n * Creates a new instance of a responsive menu.\n * @class\n * @name ResponsiveMenu\n * @fires ResponsiveMenu#init\n * @param {jQuery} element - jQuery object to make into a dropdown menu.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element) {\n this.$element = $(element);\n this.rules = this.$element.data('responsive-menu');\n this.currentMq = null;\n this.currentPlugin = null;\n this.className = 'ResponsiveMenu'; // ie9 back compat\n\n this._init();\n this._events();\n }\n\n /**\n * Initializes the Menu by parsing the classes from the 'data-ResponsiveMenu' attribute on the element.\n * @function\n * @private\n */\n _init() {\n\n MediaQuery._init();\n // The first time an Interchange plugin is initialized, this.rules is converted from a string of \"classes\" to an object of rules\n if (typeof this.rules === 'string') {\n let rulesTree = {};\n\n // Parse rules from \"classes\" pulled from data attribute\n let rules = this.rules.split(' ');\n\n // Iterate through every rule found\n for (let i = 0; i < rules.length; i++) {\n let rule = rules[i].split('-');\n let ruleSize = rule.length > 1 ? rule[0] : 'small';\n let rulePlugin = rule.length > 1 ? rule[1] : rule[0];\n\n if (MenuPlugins[rulePlugin] !== null) {\n rulesTree[ruleSize] = MenuPlugins[rulePlugin];\n }\n }\n\n this.rules = rulesTree;\n }\n\n if (!$.isEmptyObject(this.rules)) {\n this._checkMediaQueries();\n }\n // Add data-mutate since children may need it.\n this.$element.attr('data-mutate', (this.$element.attr('data-mutate') || GetYoDigits(6, 'responsive-menu')));\n }\n\n /**\n * Initializes events for the Menu.\n * @function\n * @private\n */\n _events() {\n var _this = this;\n\n $(window).on('changed.zf.mediaquery', function() {\n _this._checkMediaQueries();\n });\n // $(window).on('resize.zf.ResponsiveMenu', function() {\n // _this._checkMediaQueries();\n // });\n }\n\n /**\n * Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.\n * @function\n * @private\n */\n _checkMediaQueries() {\n var matchedMq, _this = this;\n // Iterate through each rule and find the last matching rule\n $.each(this.rules, function(key) {\n if (MediaQuery.atLeast(key)) {\n matchedMq = key;\n }\n });\n\n // No match? No dice\n if (!matchedMq) return;\n\n // Plugin already initialized? We good\n if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return;\n\n // Remove existing plugin-specific CSS classes\n $.each(MenuPlugins, function(key, value) {\n _this.$element.removeClass(value.cssClass);\n });\n\n // Add the CSS class for the new plugin\n this.$element.addClass(this.rules[matchedMq].cssClass);\n\n // Create an instance of the new plugin\n if (this.currentPlugin) this.currentPlugin.destroy();\n this.currentPlugin = new this.rules[matchedMq].plugin(this.$element, {});\n }\n\n /**\n * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.\n * @function\n */\n _destroy() {\n this.currentPlugin.destroy();\n $(window).off('.zf.ResponsiveMenu');\n }\n}\n\nResponsiveMenu.defaults = {};\n\nexport {ResponsiveMenu};\n","import $ from 'jquery';\n\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Motion } from './foundation.util.motion';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * ResponsiveToggle module.\n * @module foundation.responsiveToggle\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion\n */\n\nclass ResponsiveToggle extends Plugin {\n /**\n * Creates a new instance of Tab Bar.\n * @class\n * @name ResponsiveToggle\n * @fires ResponsiveToggle#init\n * @param {jQuery} element - jQuery object to attach tab bar functionality to.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.$element = $(element);\n this.options = $.extend({}, ResponsiveToggle.defaults, this.$element.data(), options);\n this.className = 'ResponsiveToggle'; // ie9 back compat\n\n this._init();\n this._events();\n }\n\n /**\n * Initializes the tab bar by finding the target element, toggling element, and running update().\n * @function\n * @private\n */\n _init() {\n MediaQuery._init();\n var targetID = this.$element.data('responsive-toggle');\n if (!targetID) {\n console.error('Your tab bar needs an ID of a Menu as the value of data-tab-bar.');\n }\n\n this.$targetMenu = $(`#${targetID}`);\n this.$toggler = this.$element.find('[data-toggle]').filter(function() {\n var target = $(this).data('toggle');\n return (target === targetID || target === \"\");\n });\n this.options = $.extend({}, this.options, this.$targetMenu.data());\n\n // If they were set, parse the animation classes\n if(this.options.animate) {\n let input = this.options.animate.split(' ');\n\n this.animationIn = input[0];\n this.animationOut = input[1] || null;\n }\n\n this._update();\n }\n\n /**\n * Adds necessary event handlers for the tab bar to work.\n * @function\n * @private\n */\n _events() {\n this._updateMqHandler = this._update.bind(this);\n\n $(window).on('changed.zf.mediaquery', this._updateMqHandler);\n\n this.$toggler.on('click.zf.responsiveToggle', this.toggleMenu.bind(this));\n }\n\n /**\n * Checks the current media query to determine if the tab bar should be visible or hidden.\n * @function\n * @private\n */\n _update() {\n // Mobile\n if (!MediaQuery.atLeast(this.options.hideFor)) {\n this.$element.show();\n this.$targetMenu.hide();\n }\n\n // Desktop\n else {\n this.$element.hide();\n this.$targetMenu.show();\n }\n }\n\n /**\n * Toggles the element attached to the tab bar. The toggle only happens if the screen is small enough to allow it.\n * @function\n * @fires ResponsiveToggle#toggled\n */\n toggleMenu() {\n if (!MediaQuery.atLeast(this.options.hideFor)) {\n /**\n * Fires when the element attached to the tab bar toggles.\n * @event ResponsiveToggle#toggled\n */\n if(this.options.animate) {\n if (this.$targetMenu.is(':hidden')) {\n Motion.animateIn(this.$targetMenu, this.animationIn, () => {\n this.$element.trigger('toggled.zf.responsiveToggle');\n this.$targetMenu.find('[data-mutate]').triggerHandler('mutateme.zf.trigger');\n });\n }\n else {\n Motion.animateOut(this.$targetMenu, this.animationOut, () => {\n this.$element.trigger('toggled.zf.responsiveToggle');\n });\n }\n }\n else {\n this.$targetMenu.toggle(0);\n this.$targetMenu.find('[data-mutate]').trigger('mutateme.zf.trigger');\n this.$element.trigger('toggled.zf.responsiveToggle');\n }\n }\n };\n\n _destroy() {\n this.$element.off('.zf.responsiveToggle');\n this.$toggler.off('.zf.responsiveToggle');\n\n $(window).off('changed.zf.mediaquery', this._updateMqHandler);\n }\n}\n\nResponsiveToggle.defaults = {\n /**\n * The breakpoint after which the menu is always shown, and the tab bar is hidden.\n * @option\n * @type {string}\n * @default 'medium'\n */\n hideFor: 'medium',\n\n /**\n * To decide if the toggle should be animated or not.\n * @option\n * @type {boolean}\n * @default false\n */\n animate: false\n};\n\nexport { ResponsiveToggle };\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Motion } from './foundation.util.motion';\nimport { Triggers } from './foundation.util.triggers';\nimport { Touch } from './foundation.util.touch'\n\n/**\n * Reveal module.\n * @module foundation.reveal\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion if using animations\n */\n\nclass Reveal extends Plugin {\n /**\n * Creates a new instance of Reveal.\n * @class\n * @name Reveal\n * @param {jQuery} element - jQuery object to use for the modal.\n * @param {Object} options - optional parameters.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, Reveal.defaults, this.$element.data(), options);\n this.className = 'Reveal'; // ie9 back compat\n this._init();\n\n // Touch and Triggers init are idempotent, just need to make sure they are initialized\n Touch.init($);\n Triggers.init($);\n\n Keyboard.register('Reveal', {\n 'ESCAPE': 'close',\n });\n }\n\n /**\n * Initializes the modal by adding the overlay and close buttons, (if selected).\n * @private\n */\n _init() {\n MediaQuery._init();\n this.id = this.$element.attr('id');\n this.isActive = false;\n this.cached = {mq: MediaQuery.current};\n\n this.$anchor = $(`[data-open=\"${this.id}\"]`).length ? $(`[data-open=\"${this.id}\"]`) : $(`[data-toggle=\"${this.id}\"]`);\n this.$anchor.attr({\n 'aria-controls': this.id,\n 'aria-haspopup': 'dialog',\n 'tabindex': 0\n });\n\n if (this.options.fullScreen || this.$element.hasClass('full')) {\n this.options.fullScreen = true;\n this.options.overlay = false;\n }\n if (this.options.overlay && !this.$overlay) {\n this.$overlay = this._makeOverlay(this.id);\n }\n\n this.$element.attr({\n 'role': 'dialog',\n 'aria-hidden': true,\n 'data-yeti-box': this.id,\n 'data-resize': this.id\n });\n\n if(this.$overlay) {\n this.$element.detach().appendTo(this.$overlay);\n } else {\n this.$element.detach().appendTo($(this.options.appendTo));\n this.$element.addClass('without-overlay');\n }\n this._events();\n if (this.options.deepLink && window.location.hash === ( `#${this.id}`)) {\n this.onLoadListener = onLoad($(window), () => this.open());\n }\n }\n\n /**\n * Creates an overlay div to display behind the modal.\n * @private\n */\n _makeOverlay() {\n var additionalOverlayClasses = '';\n\n if (this.options.additionalOverlayClasses) {\n additionalOverlayClasses = ' ' + this.options.additionalOverlayClasses;\n }\n\n return $('
    ')\n .addClass('reveal-overlay' + additionalOverlayClasses)\n .appendTo(this.options.appendTo);\n }\n\n /**\n * Updates position of modal\n * TODO: Figure out if we actually need to cache these values or if it doesn't matter\n * @private\n */\n _updatePosition() {\n var width = this.$element.outerWidth();\n var outerWidth = $(window).width();\n var height = this.$element.outerHeight();\n var outerHeight = $(window).height();\n var left, top = null;\n if (this.options.hOffset === 'auto') {\n left = parseInt((outerWidth - width) / 2, 10);\n } else {\n left = parseInt(this.options.hOffset, 10);\n }\n if (this.options.vOffset === 'auto') {\n if (height > outerHeight) {\n top = parseInt(Math.min(100, outerHeight / 10), 10);\n } else {\n top = parseInt((outerHeight - height) / 4, 10);\n }\n } else if (this.options.vOffset !== null) {\n top = parseInt(this.options.vOffset, 10);\n }\n\n if (top !== null) {\n this.$element.css({top: top + 'px'});\n }\n\n // only worry about left if we don't have an overlay or we have a horizontal offset,\n // otherwise we're perfectly in the middle\n if (!this.$overlay || (this.options.hOffset !== 'auto')) {\n this.$element.css({left: left + 'px'});\n this.$element.css({margin: '0px'});\n }\n\n }\n\n /**\n * Adds event handlers for the modal.\n * @private\n */\n _events() {\n var _this = this;\n\n this.$element.on({\n 'open.zf.trigger': this.open.bind(this),\n 'close.zf.trigger': (event, $element) => {\n if ((event.target === _this.$element[0]) ||\n ($(event.target).parents('[data-closable]')[0] === $element)) { // only close reveal when it's explicitly called\n return this.close.apply(this);\n }\n },\n 'toggle.zf.trigger': this.toggle.bind(this),\n 'resizeme.zf.trigger': function() {\n _this._updatePosition();\n }\n });\n\n if (this.options.closeOnClick && this.options.overlay) {\n this.$overlay.off('.zf.reveal').on('click.zf.dropdown tap.zf.dropdown', function(e) {\n if (e.target === _this.$element[0] ||\n $.contains(_this.$element[0], e.target) ||\n !$.contains(document, e.target)) {\n return;\n }\n _this.close();\n });\n }\n if (this.options.deepLink) {\n $(window).on(`hashchange.zf.reveal:${this.id}`, this._handleState.bind(this));\n }\n }\n\n /**\n * Handles modal methods on back/forward button clicks or any other event that triggers hashchange.\n * @private\n */\n _handleState() {\n if(window.location.hash === ( '#' + this.id) && !this.isActive){ this.open(); }\n else{ this.close(); }\n }\n\n /**\n * Disables the scroll when Reveal is shown to prevent the background from shifting\n * @param {number} scrollTop - Scroll to visually apply, window current scroll by default\n */\n _disableScroll(scrollTop) {\n scrollTop = scrollTop || $(window).scrollTop();\n if ($(document).height() > $(window).height()) {\n $(\"html\")\n .css(\"top\", -scrollTop);\n }\n }\n\n /**\n * Reenables the scroll when Reveal closes\n * @param {number} scrollTop - Scroll to restore, html \"top\" property by default (as set by `_disableScroll`)\n */\n _enableScroll(scrollTop) {\n scrollTop = scrollTop || parseInt($(\"html\").css(\"top\"), 10);\n if ($(document).height() > $(window).height()) {\n $(\"html\")\n .css(\"top\", \"\");\n $(window).scrollTop(-scrollTop);\n }\n }\n\n\n /**\n * Opens the modal controlled by `this.$anchor`, and closes all others by default.\n * @function\n * @fires Reveal#closeme\n * @fires Reveal#open\n */\n open() {\n // either update or replace browser history\n const hash = `#${this.id}`;\n if (this.options.deepLink && window.location.hash !== hash) {\n\n if (window.history.pushState) {\n if (this.options.updateHistory) {\n window.history.pushState({}, '', hash);\n } else {\n window.history.replaceState({}, '', hash);\n }\n } else {\n window.location.hash = hash;\n }\n }\n\n // Remember anchor that opened it to set focus back later, have general anchors as fallback\n this.$activeAnchor = $(document.activeElement).is(this.$anchor) ? $(document.activeElement) : this.$anchor;\n\n this.isActive = true;\n\n // Make elements invisible, but remove display: none so we can get size and positioning\n this.$element\n .css({ 'visibility': 'hidden' })\n .show()\n .scrollTop(0);\n if (this.options.overlay) {\n this.$overlay.css({'visibility': 'hidden'}).show();\n }\n\n this._updatePosition();\n\n this.$element\n .hide()\n .css({ 'visibility': '' });\n\n if(this.$overlay) {\n this.$overlay.css({'visibility': ''}).hide();\n if(this.$element.hasClass('fast')) {\n this.$overlay.addClass('fast');\n } else if (this.$element.hasClass('slow')) {\n this.$overlay.addClass('slow');\n }\n }\n\n\n if (!this.options.multipleOpened) {\n /**\n * Fires immediately before the modal opens.\n * Closes any other modals that are currently open\n * @event Reveal#closeme\n */\n this.$element.trigger('closeme.zf.reveal', this.id);\n }\n\n if ($('.reveal:visible').length === 0) {\n this._disableScroll();\n }\n\n var _this = this;\n\n // Motion UI method of reveal\n if (this.options.animationIn) {\n function afterAnimation(){\n _this.$element\n .attr({\n 'aria-hidden': false,\n 'tabindex': -1\n })\n .focus();\n _this._addGlobalClasses();\n Keyboard.trapFocus(_this.$element);\n }\n if (this.options.overlay) {\n Motion.animateIn(this.$overlay, 'fade-in');\n }\n Motion.animateIn(this.$element, this.options.animationIn, () => {\n if(this.$element) { // protect against object having been removed\n this.focusableElements = Keyboard.findFocusable(this.$element);\n afterAnimation();\n }\n });\n }\n // jQuery method of reveal\n else {\n if (this.options.overlay) {\n this.$overlay.show(0);\n }\n this.$element.show(this.options.showDelay);\n }\n\n // handle accessibility\n this.$element\n .attr({\n 'aria-hidden': false,\n 'tabindex': -1\n })\n .focus();\n Keyboard.trapFocus(this.$element);\n\n this._addGlobalClasses();\n\n this._addGlobalListeners();\n\n /**\n * Fires when the modal has successfully opened.\n * @event Reveal#open\n */\n this.$element.trigger('open.zf.reveal');\n }\n\n /**\n * Adds classes and listeners on document required by open modals.\n *\n * The following classes are added and updated:\n * - `.is-reveal-open` - Prevents the scroll on document\n * - `.zf-has-scroll` - Displays a disabled scrollbar on document if required like if the\n * scroll was not disabled. This prevent a \"shift\" of the page content due\n * the scrollbar disappearing when the modal opens.\n *\n * @private\n */\n _addGlobalClasses() {\n const updateScrollbarClass = () => {\n $('html').toggleClass('zf-has-scroll', !!($(document).height() > $(window).height()));\n };\n\n this.$element.on('resizeme.zf.trigger.revealScrollbarListener', () => updateScrollbarClass());\n updateScrollbarClass();\n $('html').addClass('is-reveal-open');\n }\n\n /**\n * Removes classes and listeners on document that were required by open modals.\n * @private\n */\n _removeGlobalClasses() {\n this.$element.off('resizeme.zf.trigger.revealScrollbarListener');\n $('html').removeClass('is-reveal-open');\n $('html').removeClass('zf-has-scroll');\n }\n\n /**\n * Adds extra event handlers for the body and window if necessary.\n * @private\n */\n _addGlobalListeners() {\n var _this = this;\n if(!this.$element) { return; } // If we're in the middle of cleanup, don't freak out\n this.focusableElements = Keyboard.findFocusable(this.$element);\n\n if (!this.options.overlay && this.options.closeOnClick && !this.options.fullScreen) {\n $('body').on('click.zf.dropdown tap.zf.dropdown', function(e) {\n if (e.target === _this.$element[0] ||\n $.contains(_this.$element[0], e.target) ||\n !$.contains(document, e.target)) { return; }\n _this.close();\n });\n }\n\n if (this.options.closeOnEsc) {\n $(window).on('keydown.zf.reveal', function(e) {\n Keyboard.handleKey(e, 'Reveal', {\n close: function() {\n if (_this.options.closeOnEsc) {\n _this.close();\n }\n }\n });\n });\n }\n }\n\n /**\n * Closes the modal.\n * @function\n * @fires Reveal#closed\n */\n close() {\n if (!this.isActive || !this.$element.is(':visible')) {\n return false;\n }\n var _this = this;\n\n // Motion UI method of hiding\n if (this.options.animationOut) {\n if (this.options.overlay) {\n Motion.animateOut(this.$overlay, 'fade-out');\n }\n\n Motion.animateOut(this.$element, this.options.animationOut, finishUp);\n }\n // jQuery method of hiding\n else {\n this.$element.hide(this.options.hideDelay);\n\n if (this.options.overlay) {\n this.$overlay.hide(0, finishUp);\n }\n else {\n finishUp();\n }\n }\n\n // Conditionals to remove extra event listeners added on open\n if (this.options.closeOnEsc) {\n $(window).off('keydown.zf.reveal');\n }\n\n if (!this.options.overlay && this.options.closeOnClick) {\n $('body').off('click.zf.dropdown tap.zf.dropdown');\n }\n\n this.$element.off('keydown.zf.reveal');\n\n function finishUp() {\n\n // Get the current top before the modal is closed and restore the scroll after.\n // TODO: use component properties instead of HTML properties\n // See https://github.com/foundation/foundation-sites/pull/10786\n var scrollTop = parseInt($(\"html\").css(\"top\"), 10);\n\n if ($('.reveal:visible').length === 0) {\n _this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n }\n\n Keyboard.releaseFocus(_this.$element);\n\n _this.$element.attr('aria-hidden', true);\n\n if ($('.reveal:visible').length === 0) {\n _this._enableScroll(scrollTop);\n }\n\n /**\n * Fires when the modal is done closing.\n * @event Reveal#closed\n */\n _this.$element.trigger('closed.zf.reveal');\n }\n\n /**\n * Resets the modal content\n * This prevents a running video to keep going in the background\n */\n if (this.options.resetOnClose) {\n this.$element.html(this.$element.html());\n }\n\n this.isActive = false;\n // If deepLink and we did not switched to an other modal...\n if (_this.options.deepLink && window.location.hash === `#${this.id}`) {\n // Remove the history hash\n if (window.history.replaceState) {\n const urlWithoutHash = window.location.pathname + window.location.search;\n if (this.options.updateHistory) {\n window.history.pushState({}, '', urlWithoutHash); // remove the hash\n } else {\n window.history.replaceState('', document.title, urlWithoutHash);\n }\n } else {\n window.location.hash = '';\n }\n }\n\n this.$activeAnchor.focus();\n }\n\n /**\n * Toggles the open/closed state of a modal.\n * @function\n */\n toggle() {\n if (this.isActive) {\n this.close();\n } else {\n this.open();\n }\n };\n\n /**\n * Destroys an instance of a modal.\n * @function\n */\n _destroy() {\n if (this.options.overlay) {\n this.$element.appendTo($(this.options.appendTo)); // move $element outside of $overlay to prevent error unregisterPlugin()\n this.$overlay.hide().off().remove();\n }\n this.$element.hide().off();\n this.$anchor.off('.zf');\n $(window).off(`.zf.reveal:${this.id}`)\n if (this.onLoadListener) $(window).off(this.onLoadListener);\n\n if ($('.reveal:visible').length === 0) {\n this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n }\n };\n}\n\nReveal.defaults = {\n /**\n * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n * @option\n * @type {string}\n * @default ''\n */\n animationIn: '',\n /**\n * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n * @option\n * @type {string}\n * @default ''\n */\n animationOut: '',\n /**\n * Time, in ms, to delay the opening of a modal after a click if no animation used.\n * @option\n * @type {number}\n * @default 0\n */\n showDelay: 0,\n /**\n * Time, in ms, to delay the closing of a modal after a click if no animation used.\n * @option\n * @type {number}\n * @default 0\n */\n hideDelay: 0,\n /**\n * Allows a click on the body/overlay to close the modal.\n * @option\n * @type {boolean}\n * @default true\n */\n closeOnClick: true,\n /**\n * Allows the modal to close if the user presses the `ESCAPE` key.\n * @option\n * @type {boolean}\n * @default true\n */\n closeOnEsc: true,\n /**\n * If true, allows multiple modals to be displayed at once.\n * @option\n * @type {boolean}\n * @default false\n */\n multipleOpened: false,\n /**\n * Distance, in pixels, the modal should push down from the top of the screen.\n * @option\n * @type {number|string}\n * @default auto\n */\n vOffset: 'auto',\n /**\n * Distance, in pixels, the modal should push in from the side of the screen.\n * @option\n * @type {number|string}\n * @default auto\n */\n hOffset: 'auto',\n /**\n * Allows the modal to be fullscreen, completely blocking out the rest of the view. JS checks for this as well.\n * @option\n * @type {boolean}\n * @default false\n */\n fullScreen: false,\n /**\n * Allows the modal to generate an overlay div, which will cover the view when modal opens.\n * @option\n * @type {boolean}\n * @default true\n */\n overlay: true,\n /**\n * Allows the modal to remove and reinject markup on close. Should be true if using video elements w/o using provider's api, otherwise, videos will continue to play in the background.\n * @option\n * @type {boolean}\n * @default false\n */\n resetOnClose: false,\n /**\n * Link the location hash to the modal.\n * Set the location hash when the modal is opened/closed, and open/close the modal when the location changes.\n * @option\n * @type {boolean}\n * @default false\n */\n deepLink: false,\n /**\n * If `deepLink` is enabled, update the browser history with the open modal\n * @option\n * @default false\n */\n updateHistory: false,\n /**\n * Allows the modal to append to custom div.\n * @option\n * @type {string}\n * @default \"body\"\n */\n appendTo: \"body\",\n /**\n * Allows adding additional class names to the reveal overlay.\n * @option\n * @type {string}\n * @default ''\n */\n additionalOverlayClasses: ''\n};\n\nexport {Reveal};\n","import $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Move } from './foundation.util.motion';\nimport { GetYoDigits, rtl as Rtl } from './foundation.core.utils';\n\nimport { Plugin } from './foundation.core.plugin';\n\nimport { Touch } from './foundation.util.touch';\n\nimport { Triggers } from './foundation.util.triggers';\n/**\n * Slider module.\n * @module foundation.slider\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n */\n\nclass Slider extends Plugin {\n /**\n * Creates a new instance of a slider control.\n * @class\n * @name Slider\n * @param {jQuery} element - jQuery object to make into a slider control.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, Slider.defaults, this.$element.data(), options);\n this.className = 'Slider'; // ie9 back compat\n this.initialized = false;\n\n // Touch and Triggers inits are idempotent, we just need to make sure it's initialied.\n Touch.init($);\n Triggers.init($);\n\n this._init();\n\n Keyboard.register('Slider', {\n 'ltr': {\n 'ARROW_RIGHT': 'increase',\n 'ARROW_UP': 'increase',\n 'ARROW_DOWN': 'decrease',\n 'ARROW_LEFT': 'decrease',\n 'SHIFT_ARROW_RIGHT': 'increaseFast',\n 'SHIFT_ARROW_UP': 'increaseFast',\n 'SHIFT_ARROW_DOWN': 'decreaseFast',\n 'SHIFT_ARROW_LEFT': 'decreaseFast',\n 'HOME': 'min',\n 'END': 'max'\n },\n 'rtl': {\n 'ARROW_LEFT': 'increase',\n 'ARROW_RIGHT': 'decrease',\n 'SHIFT_ARROW_LEFT': 'increaseFast',\n 'SHIFT_ARROW_RIGHT': 'decreaseFast'\n }\n });\n }\n\n /**\n * Initilizes the plugin by reading/setting attributes, creating collections and setting the initial position of the handle(s).\n * @function\n * @private\n */\n _init() {\n this.inputs = this.$element.find('input');\n this.handles = this.$element.find('[data-slider-handle]');\n\n this.$handle = this.handles.eq(0);\n this.$input = this.inputs.length ? this.inputs.eq(0) : $(`#${this.$handle.attr('aria-controls')}`);\n this.$fill = this.$element.find('[data-slider-fill]').css(this.options.vertical ? 'height' : 'width', 0);\n\n if (this.options.disabled || this.$element.hasClass(this.options.disabledClass)) {\n this.options.disabled = true;\n this.$element.addClass(this.options.disabledClass);\n }\n if (!this.inputs.length) {\n this.inputs = $().add(this.$input);\n this.options.binding = true;\n }\n\n this._setInitAttr(0);\n\n if (this.handles[1]) {\n this.options.doubleSided = true;\n this.$handle2 = this.handles.eq(1);\n this.$input2 = this.inputs.length > 1 ? this.inputs.eq(1) : $(`#${this.$handle2.attr('aria-controls')}`);\n\n if (!this.inputs[1]) {\n this.inputs = this.inputs.add(this.$input2);\n }\n\n // this.$handle.triggerHandler('click.zf.slider');\n this._setInitAttr(1);\n }\n\n // Set handle positions\n this.setHandles();\n\n this._events();\n this.initialized = true;\n }\n\n setHandles() {\n if(this.handles[1]) {\n this._setHandlePos(this.$handle, this.inputs.eq(0).val(), () => {\n this._setHandlePos(this.$handle2, this.inputs.eq(1).val());\n });\n } else {\n this._setHandlePos(this.$handle, this.inputs.eq(0).val());\n }\n }\n\n _reflow() {\n this.setHandles();\n }\n /**\n * @function\n * @private\n * @param {Number} value - floating point (the value) to be transformed using to a relative position on the slider (the inverse of _value)\n */\n _pctOfBar(value) {\n var pctOfBar = percent(value - this.options.start, this.options.end - this.options.start)\n\n switch(this.options.positionValueFunction) {\n case \"pow\":\n pctOfBar = this._logTransform(pctOfBar);\n break;\n case \"log\":\n pctOfBar = this._powTransform(pctOfBar);\n break;\n }\n\n return pctOfBar.toFixed(2)\n }\n\n /**\n * @function\n * @private\n * @param {Number} pctOfBar - floating point, the relative position of the slider (typically between 0-1) to be transformed to a value\n */\n _value(pctOfBar) {\n switch(this.options.positionValueFunction) {\n case \"pow\":\n pctOfBar = this._powTransform(pctOfBar);\n break;\n case \"log\":\n pctOfBar = this._logTransform(pctOfBar);\n break;\n }\n\n var value\n if (this.options.vertical) {\n // linear interpolation which is working with negative values for start\n // https://math.stackexchange.com/a/1019084\n value = parseFloat(this.options.end) + pctOfBar * (this.options.start - this.options.end)\n } else {\n value = (this.options.end - this.options.start) * pctOfBar + parseFloat(this.options.start);\n }\n\n return value\n }\n\n /**\n * @function\n * @private\n * @param {Number} value - floating point (typically between 0-1) to be transformed using the log function\n */\n _logTransform(value) {\n return baseLog(this.options.nonLinearBase, ((value*(this.options.nonLinearBase-1))+1))\n }\n\n /**\n * @function\n * @private\n * @param {Number} value - floating point (typically between 0-1) to be transformed using the power function\n */\n _powTransform(value) {\n return (Math.pow(this.options.nonLinearBase, value) - 1) / (this.options.nonLinearBase - 1)\n }\n\n /**\n * Sets the position of the selected handle and fill bar.\n * @function\n * @private\n * @param {jQuery} $hndl - the selected handle to move.\n * @param {Number} location - floating point between the start and end values of the slider bar.\n * @param {Function} cb - callback function to fire on completion.\n * @fires Slider#moved\n * @fires Slider#changed\n */\n _setHandlePos($hndl, location, cb) {\n // don't move if the slider has been disabled since its initialization\n if (this.$element.hasClass(this.options.disabledClass)) {\n return;\n }\n //might need to alter that slightly for bars that will have odd number selections.\n location = parseFloat(location);//on input change events, convert string to number...grumble.\n\n // prevent slider from running out of bounds, if value exceeds the limits set through options, override the value to min/max\n if (location < this.options.start) { location = this.options.start; }\n else if (location > this.options.end) { location = this.options.end; }\n\n var isDbl = this.options.doubleSided;\n\n if (isDbl) { //this block is to prevent 2 handles from crossing eachother. Could/should be improved.\n if (this.handles.index($hndl) === 0) {\n var h2Val = parseFloat(this.$handle2.attr('aria-valuenow'));\n location = location >= h2Val ? h2Val - this.options.step : location;\n } else {\n var h1Val = parseFloat(this.$handle.attr('aria-valuenow'));\n location = location <= h1Val ? h1Val + this.options.step : location;\n }\n }\n\n var _this = this,\n vert = this.options.vertical,\n hOrW = vert ? 'height' : 'width',\n lOrT = vert ? 'top' : 'left',\n handleDim = $hndl[0].getBoundingClientRect()[hOrW],\n elemDim = this.$element[0].getBoundingClientRect()[hOrW],\n //percentage of bar min/max value based on click or drag point\n pctOfBar = this._pctOfBar(location),\n //number of actual pixels to shift the handle, based on the percentage obtained above\n pxToMove = (elemDim - handleDim) * pctOfBar,\n //percentage of bar to shift the handle\n movement = (percent(pxToMove, elemDim) * 100).toFixed(this.options.decimal);\n //fixing the decimal value for the location number, is passed to other methods as a fixed floating-point value\n location = parseFloat(location.toFixed(this.options.decimal));\n // declare empty object for css adjustments, only used with 2 handled-sliders\n var css = {};\n\n this._setValues($hndl, location);\n\n // TODO update to calculate based on values set to respective inputs??\n if (isDbl) {\n var isLeftHndl = this.handles.index($hndl) === 0,\n //empty variable, will be used for min-height/width for fill bar\n dim,\n //percentage w/h of the handle compared to the slider bar\n handlePct = Math.floor(percent(handleDim, elemDim) * 100);\n //if left handle, the math is slightly different than if it's the right handle, and the left/top property needs to be changed for the fill bar\n if (isLeftHndl) {\n //left or top percentage value to apply to the fill bar.\n css[lOrT] = `${movement}%`;\n //calculate the new min-height/width for the fill bar.\n dim = parseFloat(this.$handle2[0].style[lOrT]) - movement + handlePct;\n //this callback is necessary to prevent errors and allow the proper placement and initialization of a 2-handled slider\n //plus, it means we don't care if 'dim' isNaN on init, it won't be in the future.\n if (cb && typeof cb === 'function') { cb(); }//this is only needed for the initialization of 2 handled sliders\n } else {\n //just caching the value of the left/bottom handle's left/top property\n var handlePos = parseFloat(this.$handle[0].style[lOrT]);\n //calculate the new min-height/width for the fill bar. Use isNaN to prevent false positives for numbers <= 0\n //based on the percentage of movement of the handle being manipulated, less the opposing handle's left/top position, plus the percentage w/h of the handle itself\n dim = movement - (isNaN(handlePos) ? (this.options.initialStart - this.options.start)/((this.options.end-this.options.start)/100) : handlePos) + handlePct;\n }\n // assign the min-height/width to our css object\n css[`min-${hOrW}`] = `${dim}%`;\n }\n\n //because we don't know exactly how the handle will be moved, check the amount of time it should take to move.\n var moveTime = this.$element.data('dragging') ? 1000/60 : this.options.moveTime;\n\n Move(moveTime, $hndl, function() {\n // adjusting the left/top property of the handle, based on the percentage calculated above\n // if movement isNaN, that is because the slider is hidden and we cannot determine handle width,\n // fall back to next best guess.\n if (isNaN(movement)) {\n $hndl.css(lOrT, `${pctOfBar * 100}%`);\n }\n else {\n $hndl.css(lOrT, `${movement}%`);\n }\n\n if (!_this.options.doubleSided) {\n //if single-handled, a simple method to expand the fill bar\n _this.$fill.css(hOrW, `${pctOfBar * 100}%`);\n } else {\n //otherwise, use the css object we created above\n _this.$fill.css(css);\n }\n });\n\n if (this.initialized) {\n this.$element.one('finished.zf.animate', function() {\n /**\n * Fires when the handle is done moving.\n * @event Slider#moved\n */\n _this.$element.trigger('moved.zf.slider', [$hndl]);\n });\n /**\n * Fires when the value has not been change for a given time.\n * @event Slider#changed\n */\n clearTimeout(_this.timeout);\n _this.timeout = setTimeout(function(){\n _this.$element.trigger('changed.zf.slider', [$hndl]);\n }, _this.options.changedDelay);\n }\n }\n\n /**\n * Sets the initial attribute for the slider element.\n * @function\n * @private\n * @param {Number} idx - index of the current handle/input to use.\n */\n _setInitAttr(idx) {\n var initVal = (idx === 0 ? this.options.initialStart : this.options.initialEnd)\n var id = this.inputs.eq(idx).attr('id') || GetYoDigits(6, 'slider');\n this.inputs.eq(idx).attr({\n 'id': id,\n 'max': this.options.end,\n 'min': this.options.start,\n 'step': this.options.step\n });\n this.inputs.eq(idx).val(initVal);\n this.handles.eq(idx).attr({\n 'role': 'slider',\n 'aria-controls': id,\n 'aria-valuemax': this.options.end,\n 'aria-valuemin': this.options.start,\n 'aria-valuenow': initVal,\n 'aria-orientation': this.options.vertical ? 'vertical' : 'horizontal',\n 'tabindex': 0\n });\n }\n\n /**\n * Sets the input and `aria-valuenow` values for the slider element.\n * @function\n * @private\n * @param {jQuery} $handle - the currently selected handle.\n * @param {Number} val - floating point of the new value.\n */\n _setValues($handle, val) {\n var idx = this.options.doubleSided ? this.handles.index($handle) : 0;\n this.inputs.eq(idx).val(val);\n $handle.attr('aria-valuenow', val);\n }\n\n /**\n * Handles events on the slider element.\n * Calculates the new location of the current handle.\n * If there are two handles and the bar was clicked, it determines which handle to move.\n * @function\n * @private\n * @param {Object} e - the `event` object passed from the listener.\n * @param {jQuery} $handle - the current handle to calculate for, if selected.\n * @param {Number} val - floating point number for the new value of the slider.\n * TODO clean this up, there's a lot of repeated code between this and the _setHandlePos fn.\n */\n _handleEvent(e, $handle, val) {\n var value;\n if (!val) {//click or drag events\n e.preventDefault();\n var _this = this,\n vertical = this.options.vertical,\n param = vertical ? 'height' : 'width',\n direction = vertical ? 'top' : 'left',\n eventOffset = vertical ? e.pageY : e.pageX,\n barDim = this.$element[0].getBoundingClientRect()[param],\n windowScroll = vertical ? $(window).scrollTop() : $(window).scrollLeft();\n\n var elemOffset = this.$element.offset()[direction];\n\n // touch events emulated by the touch util give position relative to screen, add window.scroll to event coordinates...\n // best way to guess this is simulated is if clientY == pageY\n if (e.clientY === e.pageY) { eventOffset = eventOffset + windowScroll; }\n var eventFromBar = eventOffset - elemOffset;\n var barXY;\n if (eventFromBar < 0) {\n barXY = 0;\n } else if (eventFromBar > barDim) {\n barXY = barDim;\n } else {\n barXY = eventFromBar;\n }\n var offsetPct = percent(barXY, barDim);\n\n value = this._value(offsetPct);\n\n // turn everything around for RTL, yay math!\n if (Rtl() && !this.options.vertical) {value = this.options.end - value;}\n\n value = _this._adjustValue(null, value);\n\n if (!$handle) {//figure out which handle it is, pass it to the next function.\n var firstHndlPos = absPosition(this.$handle, direction, barXY, param),\n secndHndlPos = absPosition(this.$handle2, direction, barXY, param);\n $handle = firstHndlPos <= secndHndlPos ? this.$handle : this.$handle2;\n }\n\n } else {//change event on input\n value = this._adjustValue(null, val);\n }\n\n this._setHandlePos($handle, value);\n }\n\n /**\n * Adjustes value for handle in regard to step value. returns adjusted value\n * @function\n * @private\n * @param {jQuery} $handle - the selected handle.\n * @param {Number} value - value to adjust. used if $handle is falsy\n */\n _adjustValue($handle, value) {\n var val,\n step = this.options.step,\n div = parseFloat(step/2),\n left, previousVal, nextVal;\n if (!!$handle) {\n val = parseFloat($handle.attr('aria-valuenow'));\n }\n else {\n val = value;\n }\n if (val >= 0) {\n left = val % step;\n } else {\n left = step + (val % step);\n }\n previousVal = val - left;\n nextVal = previousVal + step;\n if (left === 0) {\n return val;\n }\n val = val >= previousVal + div ? nextVal : previousVal;\n return val;\n }\n\n /**\n * Adds event listeners to the slider elements.\n * @function\n * @private\n */\n _events() {\n this._eventsForHandle(this.$handle);\n if(this.handles[1]) {\n this._eventsForHandle(this.$handle2);\n }\n }\n\n\n /**\n * Adds event listeners a particular handle\n * @function\n * @private\n * @param {jQuery} $handle - the current handle to apply listeners to.\n */\n _eventsForHandle($handle) {\n var _this = this,\n curHandle;\n\n const handleChangeEvent = function(e) {\n const idx = _this.inputs.index($(this));\n _this._handleEvent(e, _this.handles.eq(idx), $(this).val());\n };\n\n // IE only triggers the change event when the input loses focus which strictly follows the HTML specification\n // listen for the enter key and trigger a change\n // @see https://html.spec.whatwg.org/multipage/input.html#common-input-element-events\n this.inputs.off('keyup.zf.slider').on('keyup.zf.slider', function (e) {\n if(e.keyCode === 13) handleChangeEvent.call(this, e);\n });\n\n this.inputs.off('change.zf.slider').on('change.zf.slider', handleChangeEvent);\n\n if (this.options.clickSelect) {\n this.$element.off('click.zf.slider').on('click.zf.slider', function(e) {\n if (_this.$element.data('dragging')) { return false; }\n\n if (!$(e.target).is('[data-slider-handle]')) {\n if (_this.options.doubleSided) {\n _this._handleEvent(e);\n } else {\n _this._handleEvent(e, _this.$handle);\n }\n }\n });\n }\n\n if (this.options.draggable) {\n this.handles.addTouch();\n\n var $body = $('body');\n $handle\n .off('mousedown.zf.slider')\n .on('mousedown.zf.slider', function(e) {\n $handle.addClass('is-dragging');\n _this.$fill.addClass('is-dragging');//\n _this.$element.data('dragging', true);\n\n curHandle = $(e.currentTarget);\n\n $body.on('mousemove.zf.slider', function(ev) {\n ev.preventDefault();\n _this._handleEvent(ev, curHandle);\n\n }).on('mouseup.zf.slider', function(ev) {\n _this._handleEvent(ev, curHandle);\n\n $handle.removeClass('is-dragging');\n _this.$fill.removeClass('is-dragging');\n _this.$element.data('dragging', false);\n\n $body.off('mousemove.zf.slider mouseup.zf.slider');\n });\n })\n // prevent events triggered by touch\n .on('selectstart.zf.slider touchmove.zf.slider', function(e) {\n e.preventDefault();\n });\n }\n\n $handle.off('keydown.zf.slider').on('keydown.zf.slider', function(e) {\n var _$handle = $(this),\n idx = _this.options.doubleSided ? _this.handles.index(_$handle) : 0,\n oldValue = parseFloat($handle.attr('aria-valuenow')),\n newValue;\n\n // handle keyboard event with keyboard util\n Keyboard.handleKey(e, 'Slider', {\n decrease: function() {\n newValue = oldValue - _this.options.step;\n },\n increase: function() {\n newValue = oldValue + _this.options.step;\n },\n decreaseFast: function() {\n newValue = oldValue - _this.options.step * 10;\n },\n increaseFast: function() {\n newValue = oldValue + _this.options.step * 10;\n },\n min: function() {\n newValue = _this.options.start;\n },\n max: function() {\n newValue = _this.options.end;\n },\n handled: function() { // only set handle pos when event was handled specially\n e.preventDefault();\n _this._setHandlePos(_$handle, newValue);\n }\n });\n /*if (newValue) { // if pressed key has special function, update value\n e.preventDefault();\n _this._setHandlePos(_$handle, newValue);\n }*/\n });\n }\n\n /**\n * Destroys the slider plugin.\n */\n _destroy() {\n this.handles.off('.zf.slider');\n this.inputs.off('.zf.slider');\n this.$element.off('.zf.slider');\n\n clearTimeout(this.timeout);\n }\n}\n\nSlider.defaults = {\n /**\n * Minimum value for the slider scale.\n * @option\n * @type {number}\n * @default 0\n */\n start: 0,\n /**\n * Maximum value for the slider scale.\n * @option\n * @type {number}\n * @default 100\n */\n end: 100,\n /**\n * Minimum value change per change event.\n * @option\n * @type {number}\n * @default 1\n */\n step: 1,\n /**\n * Value at which the handle/input *(left handle/first input)* should be set to on initialization.\n * @option\n * @type {number}\n * @default 0\n */\n initialStart: 0,\n /**\n * Value at which the right handle/second input should be set to on initialization.\n * @option\n * @type {number}\n * @default 100\n */\n initialEnd: 100,\n /**\n * Allows the input to be located outside the container and visible. Set to by the JS\n * @option\n * @type {boolean}\n * @default false\n */\n binding: false,\n /**\n * Allows the user to click/tap on the slider bar to select a value.\n * @option\n * @type {boolean}\n * @default true\n */\n clickSelect: true,\n /**\n * Set to true and use the `vertical` class to change alignment to vertical.\n * @option\n * @type {boolean}\n * @default false\n */\n vertical: false,\n /**\n * Allows the user to drag the slider handle(s) to select a value.\n * @option\n * @type {boolean}\n * @default true\n */\n draggable: true,\n /**\n * Disables the slider and prevents event listeners from being applied. Double checked by JS with `disabledClass`.\n * @option\n * @type {boolean}\n * @default false\n */\n disabled: false,\n /**\n * Allows the use of two handles. Double checked by the JS. Changes some logic handling.\n * @option\n * @type {boolean}\n * @default false\n */\n doubleSided: false,\n /**\n * Potential future feature.\n */\n // steps: 100,\n /**\n * Number of decimal places the plugin should go to for floating point precision.\n * @option\n * @type {number}\n * @default 2\n */\n decimal: 2,\n /**\n * Time delay for dragged elements.\n */\n // dragDelay: 0,\n /**\n * Time, in ms, to animate the movement of a slider handle if user clicks/taps on the bar. Needs to be manually set if updating the transition time in the Sass settings.\n * @option\n * @type {number}\n * @default 200\n */\n moveTime: 200,//update this if changing the transition time in the sass\n /**\n * Class applied to disabled sliders.\n * @option\n * @type {string}\n * @default 'disabled'\n */\n disabledClass: 'disabled',\n /**\n * Will invert the default layout for a vertical slider.\n * @option\n * @type {boolean}\n * @default false\n */\n invertVertical: false,\n /**\n * Milliseconds before the `changed.zf-slider` event is triggered after value change.\n * @option\n * @type {number}\n * @default 500\n */\n changedDelay: 500,\n /**\n * Basevalue for non-linear sliders\n * @option\n * @type {number}\n * @default 5\n */\n nonLinearBase: 5,\n /**\n * Basevalue for non-linear sliders, possible values are: `'linear'`, `'pow'` & `'log'`. Pow and Log use the nonLinearBase setting.\n * @option\n * @type {string}\n * @default 'linear'\n */\n positionValueFunction: 'linear',\n};\n\nfunction percent(frac, num) {\n return (frac / num);\n}\nfunction absPosition($handle, dir, clickPos, param) {\n return Math.abs(($handle.position()[dir] + ($handle[param]() / 2)) - clickPos);\n}\nfunction baseLog(base, value) {\n return Math.log(value)/Math.log(base)\n}\n\nexport {Slider};\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * SmoothScroll module.\n * @module foundation.smoothScroll\n */\nclass SmoothScroll extends Plugin {\n /**\n * Creates a new instance of SmoothScroll.\n * @class\n * @name SmoothScroll\n * @fires SmoothScroll#init\n * @param {Object} element - jQuery object to add the trigger to.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, SmoothScroll.defaults, this.$element.data(), options);\n this.className = 'SmoothScroll'; // ie9 back compat\n\n this._init();\n }\n\n /**\n * Initialize the SmoothScroll plugin\n * @private\n */\n _init() {\n const id = this.$element[0].id || GetYoDigits(6, 'smooth-scroll');\n this.$element.attr({ id });\n\n this._events();\n }\n\n /**\n * Initializes events for SmoothScroll.\n * @private\n */\n _events() {\n this._linkClickListener = this._handleLinkClick.bind(this);\n this.$element.on('click.zf.smoothScroll', this._linkClickListener);\n this.$element.on('click.zf.smoothScroll', 'a[href^=\"#\"]', this._linkClickListener);\n }\n\n /**\n * Handle the given event to smoothly scroll to the anchor pointed by the event target.\n * @param {*} e - event\n * @function\n * @private\n */\n _handleLinkClick(e) {\n // Follow the link if it does not point to an anchor.\n if (!$(e.currentTarget).is('a[href^=\"#\"]')) return;\n\n const arrival = e.currentTarget.getAttribute('href');\n\n this._inTransition = true;\n\n SmoothScroll.scrollToLoc(arrival, this.options, () => {\n this._inTransition = false;\n });\n\n e.preventDefault();\n };\n\n /**\n * Function to scroll to a given location on the page.\n * @param {String} loc - A properly formatted jQuery id selector. Example: '#foo'\n * @param {Object} options - The options to use.\n * @param {Function} callback - The callback function.\n * @static\n * @function\n */\n static scrollToLoc(loc, options = SmoothScroll.defaults, callback) {\n const $loc = $(loc);\n\n // Do nothing if target does not exist to prevent errors\n if (!$loc.length) return false;\n\n var scrollPos = Math.round($loc.offset().top - options.threshold / 2 - options.offset);\n\n $('html, body').stop(true).animate(\n { scrollTop: scrollPos },\n options.animationDuration,\n options.animationEasing,\n () => {\n if (typeof callback === 'function'){\n callback();\n }\n }\n );\n }\n\n /**\n * Destroys the SmoothScroll instance.\n * @function\n */\n _destroy() {\n this.$element.off('click.zf.smoothScroll', this._linkClickListener)\n this.$element.off('click.zf.smoothScroll', 'a[href^=\"#\"]', this._linkClickListener);\n }\n}\n\n/**\n * Default settings for plugin.\n */\nSmoothScroll.defaults = {\n /**\n * Amount of time, in ms, the animated scrolling should take between locations.\n * @option\n * @type {number}\n * @default 500\n */\n animationDuration: 500,\n /**\n * Animation style to use when scrolling between locations. Can be `'swing'` or `'linear'`.\n * @option\n * @type {string}\n * @default 'linear'\n * @see {@link https://api.jquery.com/animate|Jquery animate}\n */\n animationEasing: 'linear',\n /**\n * Number of pixels to use as a marker for location changes.\n * @option\n * @type {number}\n * @default 50\n */\n threshold: 50,\n /**\n * Number of pixels to offset the scroll of the page on item click if using a sticky nav bar.\n * @option\n * @type {number}\n * @default 0\n */\n offset: 0\n}\n\nexport {SmoothScroll}\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Sticky module.\n * @module foundation.sticky\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n */\n\nclass Sticky extends Plugin {\n /**\n * Creates a new instance of a sticky thing.\n * @class\n * @name Sticky\n * @param {jQuery} element - jQuery object to make sticky.\n * @param {Object} options - options object passed when creating the element programmatically.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, Sticky.defaults, this.$element.data(), options);\n this.className = 'Sticky'; // ie9 back compat\n\n // Triggers init is idempotent, just need to make sure it is initialized\n Triggers.init($);\n\n this._init();\n }\n\n /**\n * Initializes the sticky element by adding classes, getting/setting dimensions, breakpoints and attributes\n * @function\n * @private\n */\n _init() {\n MediaQuery._init();\n\n var $parent = this.$element.parent('[data-sticky-container]'),\n id = this.$element[0].id || GetYoDigits(6, 'sticky'),\n _this = this;\n\n if($parent.length){\n this.$container = $parent;\n } else {\n this.wasWrapped = true;\n this.$element.wrap(this.options.container);\n this.$container = this.$element.parent();\n }\n this.$container.addClass(this.options.containerClass);\n\n this.$element.addClass(this.options.stickyClass).attr({ 'data-resize': id, 'data-mutate': id });\n if (this.options.anchor !== '') {\n $('#' + _this.options.anchor).attr({ 'data-mutate': id });\n }\n\n this.scrollCount = this.options.checkEvery;\n this.isStuck = false;\n this.onLoadListener = onLoad($(window), function () {\n //We calculate the container height to have correct values for anchor points offset calculation.\n _this.containerHeight = _this.$element.css(\"display\") === \"none\" ? 0 : _this.$element[0].getBoundingClientRect().height;\n _this.$container.css('height', _this.containerHeight);\n _this.elemHeight = _this.containerHeight;\n if (_this.options.anchor !== '') {\n _this.$anchor = $('#' + _this.options.anchor);\n } else {\n _this._parsePoints();\n }\n\n _this._setSizes(function () {\n var scroll = window.pageYOffset;\n _this._calc(false, scroll);\n //Unstick the element will ensure that proper classes are set.\n if (!_this.isStuck) {\n _this._removeSticky((scroll >= _this.topPoint) ? false : true);\n }\n });\n _this._events(id.split('-').reverse().join('-'));\n });\n }\n\n /**\n * If using multiple elements as anchors, calculates the top and bottom pixel values the sticky thing should stick and unstick on.\n * @function\n * @private\n */\n _parsePoints() {\n var top = this.options.topAnchor === \"\" ? 1 : this.options.topAnchor,\n btm = this.options.btmAnchor === \"\" ? document.documentElement.scrollHeight : this.options.btmAnchor,\n pts = [top, btm],\n breaks = {};\n for (var i = 0, len = pts.length; i < len && pts[i]; i++) {\n var pt;\n if (typeof pts[i] === 'number') {\n pt = pts[i];\n } else {\n var place = pts[i].split(':'),\n anchor = $(`#${place[0]}`);\n\n pt = anchor.offset().top;\n if (place[1] && place[1].toLowerCase() === 'bottom') {\n pt += anchor[0].getBoundingClientRect().height;\n }\n }\n breaks[i] = pt;\n }\n\n\n this.points = breaks;\n return;\n }\n\n /**\n * Adds event handlers for the scrolling element.\n * @private\n * @param {String} id - pseudo-random id for unique scroll event listener.\n */\n _events(id) {\n var _this = this,\n scrollListener = this.scrollListener = `scroll.zf.${id}`;\n if (this.isOn) { return; }\n if (this.canStick) {\n this.isOn = true;\n $(window).off(scrollListener)\n .on(scrollListener, function() {\n if (_this.scrollCount === 0) {\n _this.scrollCount = _this.options.checkEvery;\n _this._setSizes(function() {\n _this._calc(false, window.pageYOffset);\n });\n } else {\n _this.scrollCount--;\n _this._calc(false, window.pageYOffset);\n }\n });\n }\n\n this.$element.off('resizeme.zf.trigger')\n .on('resizeme.zf.trigger', function() {\n _this._eventsHandler(id);\n });\n\n this.$element.on('mutateme.zf.trigger', function () {\n _this._eventsHandler(id);\n });\n\n if(this.$anchor) {\n this.$anchor.on('mutateme.zf.trigger', function () {\n _this._eventsHandler(id);\n });\n }\n }\n\n /**\n * Handler for events.\n * @private\n * @param {String} id - pseudo-random id for unique scroll event listener.\n */\n _eventsHandler(id) {\n var _this = this,\n scrollListener = this.scrollListener = `scroll.zf.${id}`;\n\n _this._setSizes(function() {\n _this._calc(false);\n if (_this.canStick) {\n if (!_this.isOn) {\n _this._events(id);\n }\n } else if (_this.isOn) {\n _this._pauseListeners(scrollListener);\n }\n });\n }\n\n /**\n * Removes event handlers for scroll and change events on anchor.\n * @fires Sticky#pause\n * @param {String} scrollListener - unique, namespaced scroll listener attached to `window`\n */\n _pauseListeners(scrollListener) {\n this.isOn = false;\n $(window).off(scrollListener);\n\n /**\n * Fires when the plugin is paused due to resize event shrinking the view.\n * @event Sticky#pause\n * @private\n */\n this.$element.trigger('pause.zf.sticky');\n }\n\n /**\n * Called on every `scroll` event and on `_init`\n * fires functions based on booleans and cached values\n * @param {Boolean} checkSizes - true if plugin should recalculate sizes and breakpoints.\n * @param {Number} scroll - current scroll position passed from scroll event cb function. If not passed, defaults to `window.pageYOffset`.\n */\n _calc(checkSizes, scroll) {\n if (checkSizes) { this._setSizes(); }\n\n if (!this.canStick) {\n if (this.isStuck) {\n this._removeSticky(true);\n }\n return false;\n }\n\n if (!scroll) { scroll = window.pageYOffset; }\n\n if (scroll >= this.topPoint) {\n if (scroll <= this.bottomPoint) {\n if (!this.isStuck) {\n this._setSticky();\n }\n } else {\n if (this.isStuck) {\n this._removeSticky(false);\n }\n }\n } else {\n if (this.isStuck) {\n this._removeSticky(true);\n }\n }\n }\n\n /**\n * Causes the $element to become stuck.\n * Adds `position: fixed;`, and helper classes.\n * @fires Sticky#stuckto\n * @function\n * @private\n */\n _setSticky() {\n var _this = this,\n stickTo = this.options.stickTo,\n mrgn = stickTo === 'top' ? 'marginTop' : 'marginBottom',\n notStuckTo = stickTo === 'top' ? 'bottom' : 'top',\n css = {};\n\n css[mrgn] = `${this.options[mrgn]}em`;\n css[stickTo] = 0;\n css[notStuckTo] = 'auto';\n this.isStuck = true;\n this.$element.removeClass(`is-anchored is-at-${notStuckTo}`)\n .addClass(`is-stuck is-at-${stickTo}`)\n .css(css)\n /**\n * Fires when the $element has become `position: fixed;`\n * Namespaced to `top` or `bottom`, e.g. `sticky.zf.stuckto:top`\n * @event Sticky#stuckto\n */\n .trigger(`sticky.zf.stuckto:${stickTo}`);\n this.$element.on(\"transitionend webkitTransitionEnd oTransitionEnd otransitionend MSTransitionEnd\", function() {\n _this._setSizes();\n });\n }\n\n /**\n * Causes the $element to become unstuck.\n * Removes `position: fixed;`, and helper classes.\n * Adds other helper classes.\n * @param {Boolean} isTop - tells the function if the $element should anchor to the top or bottom of its $anchor element.\n * @fires Sticky#unstuckfrom\n * @private\n */\n _removeSticky(isTop) {\n var stickTo = this.options.stickTo,\n stickToTop = stickTo === 'top',\n css = {},\n anchorPt = (this.points ? this.points[1] - this.points[0] : this.anchorHeight) - this.elemHeight,\n mrgn = stickToTop ? 'marginTop' : 'marginBottom',\n topOrBottom = isTop ? 'top' : 'bottom';\n\n css[mrgn] = 0;\n\n css.bottom = 'auto';\n if(isTop) {\n css.top = 0;\n } else {\n css.top = anchorPt;\n }\n\n this.isStuck = false;\n this.$element.removeClass(`is-stuck is-at-${stickTo}`)\n .addClass(`is-anchored is-at-${topOrBottom}`)\n .css(css)\n /**\n * Fires when the $element has become anchored.\n * Namespaced to `top` or `bottom`, e.g. `sticky.zf.unstuckfrom:bottom`\n * @event Sticky#unstuckfrom\n */\n .trigger(`sticky.zf.unstuckfrom:${topOrBottom}`);\n }\n\n /**\n * Sets the $element and $container sizes for plugin.\n * Calls `_setBreakPoints`.\n * @param {Function} cb - optional callback function to fire on completion of `_setBreakPoints`.\n * @private\n */\n _setSizes(cb) {\n this.canStick = MediaQuery.is(this.options.stickyOn);\n if (!this.canStick) {\n if (cb && typeof cb === 'function') { cb(); }\n }\n\n var newElemWidth = this.$container[0].getBoundingClientRect().width,\n comp = window.getComputedStyle(this.$container[0]),\n pdngl = parseInt(comp['padding-left'], 10),\n pdngr = parseInt(comp['padding-right'], 10);\n\n if (this.$anchor && this.$anchor.length) {\n this.anchorHeight = this.$anchor[0].getBoundingClientRect().height;\n } else {\n this._parsePoints();\n }\n\n this.$element.css({\n 'max-width': `${newElemWidth - pdngl - pdngr}px`\n });\n\n // Recalculate the height only if it is \"dynamic\"\n if (this.options.dynamicHeight || !this.containerHeight) {\n // Get the sticked element height and apply it to the container to \"hold the place\"\n var newContainerHeight = this.$element[0].getBoundingClientRect().height || this.containerHeight;\n newContainerHeight = this.$element.css(\"display\") === \"none\" ? 0 : newContainerHeight;\n this.$container.css('height', newContainerHeight);\n this.containerHeight = newContainerHeight;\n }\n this.elemHeight = this.containerHeight;\n\n if (!this.isStuck) {\n if (this.$element.hasClass('is-at-bottom')) {\n var anchorPt = (this.points ? this.points[1] - this.$container.offset().top : this.anchorHeight) - this.elemHeight;\n this.$element.css('top', anchorPt);\n }\n }\n\n this._setBreakPoints(this.containerHeight, function() {\n if (cb && typeof cb === 'function') { cb(); }\n });\n }\n\n /**\n * Sets the upper and lower breakpoints for the element to become sticky/unsticky.\n * @param {Number} elemHeight - px value for sticky.$element height, calculated by `_setSizes`.\n * @param {Function} cb - optional callback function to be called on completion.\n * @private\n */\n _setBreakPoints(elemHeight, cb) {\n if (!this.canStick) {\n if (cb && typeof cb === 'function') { cb(); }\n else { return false; }\n }\n var mTop = emCalc(this.options.marginTop),\n mBtm = emCalc(this.options.marginBottom),\n topPoint = this.points ? this.points[0] : this.$anchor.offset().top,\n bottomPoint = this.points ? this.points[1] : topPoint + this.anchorHeight,\n // topPoint = this.$anchor.offset().top || this.points[0],\n // bottomPoint = topPoint + this.anchorHeight || this.points[1],\n winHeight = window.innerHeight;\n\n if (this.options.stickTo === 'top') {\n topPoint -= mTop;\n bottomPoint -= (elemHeight + mTop);\n } else if (this.options.stickTo === 'bottom') {\n topPoint -= (winHeight - (elemHeight + mBtm));\n bottomPoint -= (winHeight - mBtm);\n } else {\n //this would be the stickTo: both option... tricky\n }\n\n this.topPoint = topPoint;\n this.bottomPoint = bottomPoint;\n\n if (cb && typeof cb === 'function') { cb(); }\n }\n\n /**\n * Destroys the current sticky element.\n * Resets the element to the top position first.\n * Removes event listeners, JS-added css properties and classes, and unwraps the $element if the JS added the $container.\n * @function\n */\n _destroy() {\n this._removeSticky(true);\n\n this.$element.removeClass(`${this.options.stickyClass} is-anchored is-at-top`)\n .css({\n height: '',\n top: '',\n bottom: '',\n 'max-width': ''\n })\n .off('resizeme.zf.trigger')\n .off('mutateme.zf.trigger');\n if (this.$anchor && this.$anchor.length) {\n this.$anchor.off('change.zf.sticky');\n }\n if (this.scrollListener) $(window).off(this.scrollListener)\n if (this.onLoadListener) $(window).off(this.onLoadListener)\n\n if (this.wasWrapped) {\n this.$element.unwrap();\n } else {\n this.$container.removeClass(this.options.containerClass)\n .css({\n height: ''\n });\n }\n }\n}\n\nSticky.defaults = {\n /**\n * Customizable container template. Add your own classes for styling and sizing.\n * @option\n * @type {string}\n * @default '<div data-sticky-container></div>'\n */\n container: '
    ',\n /**\n * Location in the view the element sticks to. Can be `'top'` or `'bottom'`.\n * @option\n * @type {string}\n * @default 'top'\n */\n stickTo: 'top',\n /**\n * If anchored to a single element, the id of that element.\n * @option\n * @type {string}\n * @default ''\n */\n anchor: '',\n /**\n * If using more than one element as anchor points, the id of the top anchor.\n * @option\n * @type {string}\n * @default ''\n */\n topAnchor: '',\n /**\n * If using more than one element as anchor points, the id of the bottom anchor.\n * @option\n * @type {string}\n * @default ''\n */\n btmAnchor: '',\n /**\n * Margin, in `em`'s to apply to the top of the element when it becomes sticky.\n * @option\n * @type {number}\n * @default 1\n */\n marginTop: 1,\n /**\n * Margin, in `em`'s to apply to the bottom of the element when it becomes sticky.\n * @option\n * @type {number}\n * @default 1\n */\n marginBottom: 1,\n /**\n * Breakpoint string that is the minimum screen size an element should become sticky.\n * @option\n * @type {string}\n * @default 'medium'\n */\n stickyOn: 'medium',\n /**\n * Class applied to sticky element, and removed on destruction. Foundation defaults to `sticky`.\n * @option\n * @type {string}\n * @default 'sticky'\n */\n stickyClass: 'sticky',\n /**\n * Class applied to sticky container. Foundation defaults to `sticky-container`.\n * @option\n * @type {string}\n * @default 'sticky-container'\n */\n containerClass: 'sticky-container',\n /**\n * If true (by default), keep the sticky container the same height as the element. Otherwise, the container height is set once and does not change.\n * @option\n * @type {boolean}\n * @default true\n */\n dynamicHeight: true,\n /**\n * Number of scroll events between the plugin's recalculating sticky points. Setting it to `0` will cause it to recalc every scroll event, setting it to `-1` will prevent recalc on scroll.\n * @option\n * @type {number}\n * @default -1\n */\n checkEvery: -1\n};\n\n/**\n * Helper function to calculate em values\n * @param Number {em} - number of em's to calculate into pixels\n */\nfunction emCalc(em) {\n return parseInt(window.getComputedStyle(document.body, null).fontSize, 10) * em;\n}\n\nexport {Sticky};\n","import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { onImagesLoaded } from './foundation.util.imageLoader';\n/**\n * Tabs module.\n * @module foundation.tabs\n * @requires foundation.util.keyboard\n * @requires foundation.util.imageLoader if tabs contain images\n */\n\nclass Tabs extends Plugin {\n /**\n * Creates a new instance of tabs.\n * @class\n * @name Tabs\n * @fires Tabs#init\n * @param {jQuery} element - jQuery object to make into tabs.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, Tabs.defaults, this.$element.data(), options);\n this.className = 'Tabs'; // ie9 back compat\n\n this._init();\n Keyboard.register('Tabs', {\n 'ENTER': 'open',\n 'SPACE': 'open',\n 'ARROW_RIGHT': 'next',\n 'ARROW_UP': 'previous',\n 'ARROW_DOWN': 'next',\n 'ARROW_LEFT': 'previous'\n // 'TAB': 'next',\n // 'SHIFT_TAB': 'previous'\n });\n }\n\n /**\n * Initializes the tabs by showing and focusing (if autoFocus=true) the preset active tab.\n * @private\n */\n _init() {\n var _this = this;\n this._isInitializing = true;\n\n this.$element.attr({'role': 'tablist'});\n this.$tabTitles = this.$element.find(`.${this.options.linkClass}`);\n this.$tabContent = $(`[data-tabs-content=\"${this.$element[0].id}\"]`);\n\n this.$tabTitles.each(function(){\n var $elem = $(this),\n $link = $elem.find('a'),\n isActive = $elem.hasClass(`${_this.options.linkActiveClass}`),\n hash = $link.attr('data-tabs-target') || $link[0].hash.slice(1),\n linkId = $link[0].id ? $link[0].id : `${hash}-label`,\n $tabContent = $(`#${hash}`);\n\n $elem.attr({'role': 'presentation'});\n\n $link.attr({\n 'role': 'tab',\n 'aria-controls': hash,\n 'aria-selected': isActive,\n 'id': linkId,\n 'tabindex': isActive ? '0' : '-1'\n });\n\n $tabContent.attr({\n 'role': 'tabpanel',\n 'aria-labelledby': linkId\n });\n\n // Save up the initial hash to return to it later when going back in history\n if (isActive) {\n _this._initialAnchor = `#${hash}`;\n }\n\n if(!isActive) {\n $tabContent.attr('aria-hidden', 'true');\n }\n\n if(isActive && _this.options.autoFocus){\n _this.onLoadListener = onLoad($(window), function() {\n $('html, body').animate({ scrollTop: $elem.offset().top }, _this.options.deepLinkSmudgeDelay, () => {\n $link.focus();\n });\n });\n }\n });\n\n if(this.options.matchHeight) {\n var $images = this.$tabContent.find('img');\n\n if ($images.length) {\n onImagesLoaded($images, this._setHeight.bind(this));\n } else {\n this._setHeight();\n }\n }\n\n // Current context-bound function to open tabs on page load or history hashchange\n this._checkDeepLink = () => {\n var anchor = window.location.hash;\n\n if (!anchor.length) {\n // If we are still initializing and there is no anchor, then there is nothing to do\n if (this._isInitializing) return;\n // Otherwise, move to the initial anchor\n if (this._initialAnchor) anchor = this._initialAnchor;\n }\n\n var anchorNoHash = anchor.indexOf('#') >= 0 ? anchor.slice(1) : anchor;\n var $anchor = anchorNoHash && $(`#${anchorNoHash}`);\n var $link = anchor && this.$element.find(`[href$=\"${anchor}\"],[data-tabs-target=\"${anchorNoHash}\"]`).first();\n // Whether the anchor element that has been found is part of this element\n var isOwnAnchor = !!($anchor.length && $link.length);\n\n if (isOwnAnchor) {\n // If there is an anchor for the hash, select it\n if ($anchor && $anchor.length && $link && $link.length) {\n this.selectTab($anchor, true);\n }\n // Otherwise, collapse everything\n else {\n this._collapse();\n }\n\n // Roll up a little to show the titles\n if (this.options.deepLinkSmudge) {\n var offset = this.$element.offset();\n $('html, body').animate({ scrollTop: offset.top - this.options.deepLinkSmudgeOffset}, this.options.deepLinkSmudgeDelay);\n }\n\n /**\n * Fires when the plugin has deeplinked at pageload\n * @event Tabs#deeplink\n */\n this.$element.trigger('deeplink.zf.tabs', [$link, $anchor]);\n }\n }\n\n //use browser to open a tab, if it exists in this tabset\n if (this.options.deepLink) {\n this._checkDeepLink();\n }\n\n this._events();\n\n this._isInitializing = false;\n }\n\n /**\n * Adds event handlers for items within the tabs.\n * @private\n */\n _events() {\n this._addKeyHandler();\n this._addClickHandler();\n this._setHeightMqHandler = null;\n\n if (this.options.matchHeight) {\n this._setHeightMqHandler = this._setHeight.bind(this);\n\n $(window).on('changed.zf.mediaquery', this._setHeightMqHandler);\n }\n\n if(this.options.deepLink) {\n $(window).on('hashchange', this._checkDeepLink);\n }\n }\n\n /**\n * Adds click handlers for items within the tabs.\n * @private\n */\n _addClickHandler() {\n var _this = this;\n\n this.$element\n .off('click.zf.tabs')\n .on('click.zf.tabs', `.${this.options.linkClass}`, function(e){\n e.preventDefault();\n _this._handleTabChange($(this));\n });\n }\n\n /**\n * Adds keyboard event handlers for items within the tabs.\n * @private\n */\n _addKeyHandler() {\n var _this = this;\n\n this.$tabTitles.off('keydown.zf.tabs').on('keydown.zf.tabs', function(e){\n if (e.which === 9) return;\n\n\n var $element = $(this),\n $elements = $element.parent('ul').children('li'),\n $prevElement,\n $nextElement;\n\n $elements.each(function(i) {\n if ($(this).is($element)) {\n if (_this.options.wrapOnKeys) {\n $prevElement = i === 0 ? $elements.last() : $elements.eq(i-1);\n $nextElement = i === $elements.length -1 ? $elements.first() : $elements.eq(i+1);\n } else {\n $prevElement = $elements.eq(Math.max(0, i-1));\n $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n }\n return;\n }\n });\n\n // handle keyboard event with keyboard util\n Keyboard.handleKey(e, 'Tabs', {\n open: function() {\n $element.find('[role=\"tab\"]').focus();\n _this._handleTabChange($element);\n },\n previous: function() {\n $prevElement.find('[role=\"tab\"]').focus();\n _this._handleTabChange($prevElement);\n },\n next: function() {\n $nextElement.find('[role=\"tab\"]').focus();\n _this._handleTabChange($nextElement);\n },\n handled: function() {\n e.preventDefault();\n }\n });\n });\n }\n\n /**\n * Opens the tab `$targetContent` defined by `$target`. Collapses active tab.\n * @param {jQuery} $target - Tab to open.\n * @param {boolean} historyHandled - browser has already handled a history update\n * @fires Tabs#change\n * @function\n */\n _handleTabChange($target, historyHandled) {\n\n // With `activeCollapse`, if the target is the active Tab, collapse it.\n if ($target.hasClass(`${this.options.linkActiveClass}`)) {\n if(this.options.activeCollapse) {\n this._collapse();\n }\n return;\n }\n\n var $oldTab = this.$element.\n find(`.${this.options.linkClass}.${this.options.linkActiveClass}`),\n $tabLink = $target.find('[role=\"tab\"]'),\n target = $tabLink.attr('data-tabs-target'),\n anchor = target && target.length ? `#${target}` : $tabLink[0].hash,\n $targetContent = this.$tabContent.find(anchor);\n\n //close old tab\n this._collapseTab($oldTab);\n\n //open new tab\n this._openTab($target);\n\n //either replace or update browser history\n if (this.options.deepLink && !historyHandled) {\n if (this.options.updateHistory) {\n history.pushState({}, '', anchor);\n } else {\n history.replaceState({}, '', anchor);\n }\n }\n\n /**\n * Fires when the plugin has successfully changed tabs.\n * @event Tabs#change\n */\n this.$element.trigger('change.zf.tabs', [$target, $targetContent]);\n\n //fire to children a mutation event\n $targetContent.find(\"[data-mutate]\").trigger(\"mutateme.zf.trigger\");\n }\n\n /**\n * Opens the tab `$targetContent` defined by `$target`.\n * @param {jQuery} $target - Tab to open.\n * @function\n */\n _openTab($target) {\n var $tabLink = $target.find('[role=\"tab\"]'),\n hash = $tabLink.attr('data-tabs-target') || $tabLink[0].hash.slice(1),\n $targetContent = this.$tabContent.find(`#${hash}`);\n\n $target.addClass(`${this.options.linkActiveClass}`);\n\n $tabLink.attr({\n 'aria-selected': 'true',\n 'tabindex': '0'\n });\n\n $targetContent\n .addClass(`${this.options.panelActiveClass}`).removeAttr('aria-hidden');\n }\n\n /**\n * Collapses `$targetContent` defined by `$target`.\n * @param {jQuery} $target - Tab to collapse.\n * @function\n */\n _collapseTab($target) {\n var $targetAnchor = $target\n .removeClass(`${this.options.linkActiveClass}`)\n .find('[role=\"tab\"]')\n .attr({\n 'aria-selected': 'false',\n 'tabindex': -1\n });\n\n $(`#${$targetAnchor.attr('aria-controls')}`)\n .removeClass(`${this.options.panelActiveClass}`)\n .attr({ 'aria-hidden': 'true' })\n }\n\n /**\n * Collapses the active Tab.\n * @fires Tabs#collapse\n * @function\n */\n _collapse() {\n var $activeTab = this.$element.find(`.${this.options.linkClass}.${this.options.linkActiveClass}`);\n\n if ($activeTab.length) {\n this._collapseTab($activeTab);\n\n /**\n * Fires when the plugin has successfully collapsed tabs.\n * @event Tabs#collapse\n */\n this.$element.trigger('collapse.zf.tabs', [$activeTab]);\n }\n }\n\n /**\n * Public method for selecting a content pane to display.\n * @param {jQuery | String} elem - jQuery object or string of the id of the pane to display.\n * @param {boolean} historyHandled - browser has already handled a history update\n * @function\n */\n selectTab(elem, historyHandled) {\n var idStr, hashIdStr;\n\n if (typeof elem === 'object') {\n idStr = elem[0].id;\n } else {\n idStr = elem;\n }\n\n if (idStr.indexOf('#') < 0) {\n hashIdStr = `#${idStr}`;\n } else {\n hashIdStr = idStr;\n idStr = idStr.slice(1);\n }\n\n var $target = this.$tabTitles.has(`[href$=\"${hashIdStr}\"],[data-tabs-target=\"${idStr}\"]`).first();\n\n this._handleTabChange($target, historyHandled);\n };\n\n /**\n * Sets the height of each panel to the height of the tallest panel.\n * If enabled in options, gets called on media query change.\n * If loading content via external source, can be called directly or with _reflow.\n * If enabled with `data-match-height=\"true\"`, tabs sets to equal height\n * @function\n * @private\n */\n _setHeight() {\n var max = 0,\n _this = this; // Lock down the `this` value for the root tabs object\n\n if (!this.$tabContent) {\n return;\n }\n\n this.$tabContent\n .find(`.${this.options.panelClass}`)\n .css('min-height', '')\n .each(function() {\n\n var panel = $(this),\n isActive = panel.hasClass(`${_this.options.panelActiveClass}`); // get the options from the parent instead of trying to get them from the child\n\n if (!isActive) {\n panel.css({'visibility': 'hidden', 'display': 'block'});\n }\n\n var temp = this.getBoundingClientRect().height;\n\n if (!isActive) {\n panel.css({\n 'visibility': '',\n 'display': ''\n });\n }\n\n max = temp > max ? temp : max;\n })\n .css('min-height', `${max}px`);\n }\n\n /**\n * Destroys an instance of tabs.\n * @fires Tabs#destroyed\n */\n _destroy() {\n this.$element\n .find(`.${this.options.linkClass}`)\n .off('.zf.tabs').hide().end()\n .find(`.${this.options.panelClass}`)\n .hide();\n\n if (this.options.matchHeight) {\n if (this._setHeightMqHandler != null) {\n $(window).off('changed.zf.mediaquery', this._setHeightMqHandler);\n }\n }\n\n if (this.options.deepLink) {\n $(window).off('hashchange', this._checkDeepLink);\n }\n\n if (this.onLoadListener) {\n $(window).off(this.onLoadListener);\n }\n }\n}\n\nTabs.defaults = {\n /**\n * Link the location hash to the active pane.\n * Set the location hash when the active pane changes, and open the corresponding pane when the location changes.\n * @option\n * @type {boolean}\n * @default false\n */\n deepLink: false,\n\n /**\n * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the tab panel is visible\n * @option\n * @type {boolean}\n * @default false\n */\n deepLinkSmudge: false,\n\n /**\n * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n * @option\n * @type {number}\n * @default 300\n */\n deepLinkSmudgeDelay: 300,\n\n /**\n * If `deepLinkSmudge` is enabled, animation offset from the top for the deep link adjustment\n * @option\n * @type {number}\n * @default 0\n */\n deepLinkSmudgeOffset: 0,\n\n /**\n * If `deepLink` is enabled, update the browser history with the open tab\n * @option\n * @type {boolean}\n * @default false\n */\n updateHistory: false,\n\n /**\n * Allows the window to scroll to content of active pane on load.\n * Not recommended if more than one tab panel per page.\n * @option\n * @type {boolean}\n * @default false\n */\n autoFocus: false,\n\n /**\n * Allows keyboard input to 'wrap' around the tab links.\n * @option\n * @type {boolean}\n * @default true\n */\n wrapOnKeys: true,\n\n /**\n * Allows the tab content panes to match heights if set to true.\n * @option\n * @type {boolean}\n * @default false\n */\n matchHeight: false,\n\n /**\n * Allows active tabs to collapse when clicked.\n * @option\n * @type {boolean}\n * @default false\n */\n activeCollapse: false,\n\n /**\n * Class applied to `li`'s in tab link list.\n * @option\n * @type {string}\n * @default 'tabs-title'\n */\n linkClass: 'tabs-title',\n\n /**\n * Class applied to the active `li` in tab link list.\n * @option\n * @type {string}\n * @default 'is-active'\n */\n linkActiveClass: 'is-active',\n\n /**\n * Class applied to the content containers.\n * @option\n * @type {string}\n * @default 'tabs-panel'\n */\n panelClass: 'tabs-panel',\n\n /**\n * Class applied to the active content container.\n * @option\n * @type {string}\n * @default 'is-active'\n */\n panelActiveClass: 'is-active'\n};\n\nexport {Tabs};\n","import $ from 'jquery';\nimport { Motion } from './foundation.util.motion';\nimport { Plugin } from './foundation.core.plugin';\nimport { RegExpEscape } from './foundation.core.utils';\nimport { Triggers } from './foundation.util.triggers';\n\n/**\n * Toggler module.\n * @module foundation.toggler\n * @requires foundation.util.motion\n * @requires foundation.util.triggers\n */\n\nclass Toggler extends Plugin {\n /**\n * Creates a new instance of Toggler.\n * @class\n * @name Toggler\n * @fires Toggler#init\n * @param {Object} element - jQuery object to add the trigger to.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, Toggler.defaults, element.data(), options);\n this.className = '';\n this.className = 'Toggler'; // ie9 back compat\n\n // Triggers init is idempotent, just need to make sure it is initialized\n Triggers.init($);\n\n this._init();\n this._events();\n }\n\n /**\n * Initializes the Toggler plugin by parsing the toggle class from data-toggler, or animation classes from data-animate.\n * @function\n * @private\n */\n _init() {\n // Collect triggers to set ARIA attributes to\n var id = this.$element[0].id,\n $triggers = $(`[data-open~=\"${id}\"], [data-close~=\"${id}\"], [data-toggle~=\"${id}\"]`);\n\n var input;\n // Parse animation classes if they were set\n if (this.options.animate) {\n input = this.options.animate.split(' ');\n\n this.animationIn = input[0];\n this.animationOut = input[1] || null;\n\n // - aria-expanded: according to the element visibility.\n $triggers.attr('aria-expanded', !this.$element.is(':hidden'));\n }\n // Otherwise, parse toggle class\n else {\n input = this.options.toggler;\n if (typeof input !== 'string' || !input.length) {\n throw new Error(`The 'toggler' option containing the target class is required, got \"${input}\"`);\n }\n // Allow for a . at the beginning of the string\n this.className = input[0] === '.' ? input.slice(1) : input;\n\n // - aria-expanded: according to the elements class set.\n $triggers.attr('aria-expanded', this.$element.hasClass(this.className));\n }\n\n // - aria-controls: adding the element id to it if not already in it.\n $triggers.each((index, trigger) => {\n const $trigger = $(trigger);\n const controls = $trigger.attr('aria-controls') || '';\n\n const containsId = new RegExp(`\\\\b${RegExpEscape(id)}\\\\b`).test(controls);\n if (!containsId) $trigger.attr('aria-controls', controls ? `${controls} ${id}` : id);\n });\n }\n\n /**\n * Initializes events for the toggle trigger.\n * @function\n * @private\n */\n _events() {\n this.$element.off('toggle.zf.trigger').on('toggle.zf.trigger', this.toggle.bind(this));\n }\n\n /**\n * Toggles the target class on the target element. An event is fired from the original trigger depending on if the resultant state was \"on\" or \"off\".\n * @function\n * @fires Toggler#on\n * @fires Toggler#off\n */\n toggle() {\n this[ this.options.animate ? '_toggleAnimate' : '_toggleClass']();\n }\n\n _toggleClass() {\n this.$element.toggleClass(this.className);\n\n var isOn = this.$element.hasClass(this.className);\n if (isOn) {\n /**\n * Fires if the target element has the class after a toggle.\n * @event Toggler#on\n */\n this.$element.trigger('on.zf.toggler');\n }\n else {\n /**\n * Fires if the target element does not have the class after a toggle.\n * @event Toggler#off\n */\n this.$element.trigger('off.zf.toggler');\n }\n\n this._updateARIA(isOn);\n this.$element.find('[data-mutate]').trigger('mutateme.zf.trigger');\n }\n\n _toggleAnimate() {\n var _this = this;\n\n if (this.$element.is(':hidden')) {\n Motion.animateIn(this.$element, this.animationIn, function() {\n _this._updateARIA(true);\n this.trigger('on.zf.toggler');\n this.find('[data-mutate]').trigger('mutateme.zf.trigger');\n });\n }\n else {\n Motion.animateOut(this.$element, this.animationOut, function() {\n _this._updateARIA(false);\n this.trigger('off.zf.toggler');\n this.find('[data-mutate]').trigger('mutateme.zf.trigger');\n });\n }\n }\n\n _updateARIA(isOn) {\n var id = this.$element[0].id;\n $(`[data-open=\"${id}\"], [data-close=\"${id}\"], [data-toggle=\"${id}\"]`)\n .attr({\n 'aria-expanded': isOn ? true : false\n });\n }\n\n /**\n * Destroys the instance of Toggler on the element.\n * @function\n */\n _destroy() {\n this.$element.off('.zf.toggler');\n }\n}\n\nToggler.defaults = {\n /**\n * Class of the element to toggle. It can be provided with or without \".\"\n * @option\n * @type {string}\n */\n toggler: undefined,\n /**\n * Tells the plugin if the element should animated when toggled.\n * @option\n * @type {boolean}\n * @default false\n */\n animate: false\n};\n\nexport {Toggler};\n","import $ from 'jquery';\nimport { GetYoDigits, ignoreMousedisappear } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { Triggers } from './foundation.util.triggers';\nimport { Positionable } from './foundation.positionable';\n\n/**\n * Tooltip module.\n * @module foundation.tooltip\n * @requires foundation.util.box\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.triggers\n */\n\nclass Tooltip extends Positionable {\n /**\n * Creates a new instance of a Tooltip.\n * @class\n * @name Tooltip\n * @fires Tooltip#init\n * @param {jQuery} element - jQuery object to attach a tooltip to.\n * @param {Object} options - object to extend the default configuration.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, Tooltip.defaults, this.$element.data(), options);\n this.className = 'Tooltip'; // ie9 back compat\n\n this.isActive = false;\n this.isClick = false;\n\n // Triggers init is idempotent, just need to make sure it is initialized\n Triggers.init($);\n\n this._init();\n }\n\n /**\n * Initializes the tooltip by setting the creating the tip element, adding it's text, setting private variables and setting attributes on the anchor.\n * @private\n */\n _init() {\n MediaQuery._init();\n var elemId = this.$element.attr('aria-describedby') || GetYoDigits(6, 'tooltip');\n\n this.options.tipText = this.options.tipText || this.$element.attr('title');\n this.template = this.options.template ? $(this.options.template) : this._buildTemplate(elemId);\n\n if (this.options.allowHtml) {\n this.template.appendTo(document.body)\n .html(this.options.tipText)\n .hide();\n } else {\n this.template.appendTo(document.body)\n .text(this.options.tipText)\n .hide();\n }\n\n this.$element.attr({\n 'title': '',\n 'aria-describedby': elemId,\n 'data-yeti-box': elemId,\n 'data-toggle': elemId,\n 'data-resize': elemId\n }).addClass(this.options.triggerClass);\n\n super._init();\n this._events();\n }\n\n _getDefaultPosition() {\n // handle legacy classnames\n var elementClassName = this.$element[0].className;\n if (this.$element[0] instanceof SVGElement) {\n elementClassName = elementClassName.baseVal;\n }\n var position = elementClassName.match(/\\b(top|left|right|bottom)\\b/g);\n return position ? position[0] : 'top';\n }\n\n _getDefaultAlignment() {\n return 'center';\n }\n\n _getHOffset() {\n if(this.position === 'left' || this.position === 'right') {\n return this.options.hOffset + this.options.tooltipWidth;\n } else {\n return this.options.hOffset\n }\n }\n\n _getVOffset() {\n if(this.position === 'top' || this.position === 'bottom') {\n return this.options.vOffset + this.options.tooltipHeight;\n } else {\n return this.options.vOffset\n }\n }\n\n /**\n * builds the tooltip element, adds attributes, and returns the template.\n * @private\n */\n _buildTemplate(id) {\n var templateClasses = (`${this.options.tooltipClass} ${this.options.templateClasses}`).trim();\n var $template = $('
    ').addClass(templateClasses).attr({\n 'role': 'tooltip',\n 'aria-hidden': true,\n 'data-is-active': false,\n 'data-is-focus': false,\n 'id': id\n });\n return $template;\n }\n\n /**\n * sets the position class of an element and recursively calls itself until there are no more possible positions to attempt, or the tooltip element is no longer colliding.\n * if the tooltip is larger than the screen width, default to full width - any user selected margin\n * @private\n */\n _setPosition() {\n super._setPosition(this.$element, this.template);\n }\n\n /**\n * reveals the tooltip, and fires an event to close any other open tooltips on the page\n * @fires Tooltip#closeme\n * @fires Tooltip#show\n * @function\n */\n show() {\n if (this.options.showOn !== 'all' && !MediaQuery.is(this.options.showOn)) {\n // console.error('The screen is too small to display this tooltip');\n return false;\n }\n\n var _this = this;\n this.template.css('visibility', 'hidden').show();\n this._setPosition();\n this.template.removeClass('top bottom left right').addClass(this.position)\n this.template.removeClass('align-top align-bottom align-left align-right align-center').addClass('align-' + this.alignment);\n\n /**\n * Fires to close all other open tooltips on the page\n * @event Closeme#tooltip\n */\n this.$element.trigger('closeme.zf.tooltip', this.template.attr('id'));\n\n\n this.template.attr({\n 'data-is-active': true,\n 'aria-hidden': false\n });\n _this.isActive = true;\n this.template.stop().hide().css('visibility', '').fadeIn(this.options.fadeInDuration, function() {\n //maybe do stuff?\n });\n /**\n * Fires when the tooltip is shown\n * @event Tooltip#show\n */\n this.$element.trigger('show.zf.tooltip');\n }\n\n /**\n * Hides the current tooltip, and resets the positioning class if it was changed due to collision\n * @fires Tooltip#hide\n * @function\n */\n hide() {\n var _this = this;\n this.template.stop().attr({\n 'aria-hidden': true,\n 'data-is-active': false\n }).fadeOut(this.options.fadeOutDuration, function() {\n _this.isActive = false;\n _this.isClick = false;\n });\n /**\n * fires when the tooltip is hidden\n * @event Tooltip#hide\n */\n this.$element.trigger('hide.zf.tooltip');\n }\n\n /**\n * adds event listeners for the tooltip and its anchor\n * TODO combine some of the listeners like focus and mouseenter, etc.\n * @private\n */\n _events() {\n const _this = this;\n const hasTouch = 'ontouchstart' in window || (typeof window.ontouchstart !== 'undefined');\n var isFocus = false;\n\n // `disableForTouch: Fully disable the tooltip on touch devices\n if (hasTouch && this.options.disableForTouch) return;\n\n if (!this.options.disableHover) {\n this.$element\n .on('mouseenter.zf.tooltip', function() {\n if (!_this.isActive) {\n _this.timeout = setTimeout(function() {\n _this.show();\n }, _this.options.hoverDelay);\n }\n })\n .on('mouseleave.zf.tooltip', ignoreMousedisappear(function() {\n clearTimeout(_this.timeout);\n if (!isFocus || (_this.isClick && !_this.options.clickOpen)) {\n _this.hide();\n }\n }));\n }\n\n if (hasTouch) {\n this.$element\n .on('tap.zf.tooltip touchend.zf.tooltip', function () {\n _this.isActive ? _this.hide() : _this.show();\n });\n }\n\n if (this.options.clickOpen) {\n this.$element.on('mousedown.zf.tooltip', function() {\n if (_this.isClick) {\n //_this.hide();\n // _this.isClick = false;\n } else {\n _this.isClick = true;\n if ((_this.options.disableHover || !_this.$element.attr('tabindex')) && !_this.isActive) {\n _this.show();\n }\n }\n });\n } else {\n this.$element.on('mousedown.zf.tooltip', function() {\n _this.isClick = true;\n });\n }\n\n this.$element.on({\n // 'toggle.zf.trigger': this.toggle.bind(this),\n // 'close.zf.trigger': this.hide.bind(this)\n 'close.zf.trigger': this.hide.bind(this)\n });\n\n this.$element\n .on('focus.zf.tooltip', function() {\n isFocus = true;\n if (_this.isClick) {\n // If we're not showing open on clicks, we need to pretend a click-launched focus isn't\n // a real focus, otherwise on hover and come back we get bad behavior\n if(!_this.options.clickOpen) { isFocus = false; }\n return false;\n } else {\n _this.show();\n }\n })\n\n .on('focusout.zf.tooltip', function() {\n isFocus = false;\n _this.isClick = false;\n _this.hide();\n })\n\n .on('resizeme.zf.trigger', function() {\n if (_this.isActive) {\n _this._setPosition();\n }\n });\n }\n\n /**\n * adds a toggle method, in addition to the static show() & hide() functions\n * @function\n */\n toggle() {\n if (this.isActive) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Destroys an instance of tooltip, removes template element from the view.\n * @function\n */\n _destroy() {\n this.$element.attr('title', this.template.text())\n .off('.zf.trigger .zf.tooltip')\n .removeClass(this.options.triggerClass)\n .removeClass('top right left bottom')\n .removeAttr('aria-describedby data-disable-hover data-resize data-toggle data-tooltip data-yeti-box');\n\n this.template.remove();\n }\n}\n\nTooltip.defaults = {\n /**\n * Time, in ms, before a tooltip should open on hover.\n * @option\n * @type {number}\n * @default 200\n */\n hoverDelay: 200,\n /**\n * Time, in ms, a tooltip should take to fade into view.\n * @option\n * @type {number}\n * @default 150\n */\n fadeInDuration: 150,\n /**\n * Time, in ms, a tooltip should take to fade out of view.\n * @option\n * @type {number}\n * @default 150\n */\n fadeOutDuration: 150,\n /**\n * Disables hover events from opening the tooltip if set to true\n * @option\n * @type {boolean}\n * @default false\n */\n disableHover: false,\n /**\n * Disable the tooltip for touch devices.\n * This can be useful to make elements with a tooltip on it trigger their\n * action on the first tap instead of displaying the tooltip.\n * @option\n * @type {booelan}\n * @default false\n */\n disableForTouch: false,\n /**\n * Optional addtional classes to apply to the tooltip template on init.\n * @option\n * @type {string}\n * @default ''\n */\n templateClasses: '',\n /**\n * Non-optional class added to tooltip templates. Foundation default is 'tooltip'.\n * @option\n * @type {string}\n * @default 'tooltip'\n */\n tooltipClass: 'tooltip',\n /**\n * Class applied to the tooltip anchor element.\n * @option\n * @type {string}\n * @default 'has-tip'\n */\n triggerClass: 'has-tip',\n /**\n * Minimum breakpoint size at which to open the tooltip.\n * @option\n * @type {string}\n * @default 'small'\n */\n showOn: 'small',\n /**\n * Custom template to be used to generate markup for tooltip.\n * @option\n * @type {string}\n * @default ''\n */\n template: '',\n /**\n * Text displayed in the tooltip template on open.\n * @option\n * @type {string}\n * @default ''\n */\n tipText: '',\n touchCloseText: 'Tap to close.',\n /**\n * Allows the tooltip to remain open if triggered with a click or touch event.\n * @option\n * @type {boolean}\n * @default true\n */\n clickOpen: true,\n /**\n * Position of tooltip. Can be left, right, bottom, top, or auto.\n * @option\n * @type {string}\n * @default 'auto'\n */\n position: 'auto',\n /**\n * Alignment of tooltip relative to anchor. Can be left, right, bottom, top, center, or auto.\n * @option\n * @type {string}\n * @default 'auto'\n */\n alignment: 'auto',\n /**\n * Allow overlap of container/window. If false, tooltip will first try to\n * position as defined by data-position and data-alignment, but reposition if\n * it would cause an overflow. @option\n * @type {boolean}\n * @default false\n */\n allowOverlap: false,\n /**\n * Allow overlap of only the bottom of the container. This is the most common\n * behavior for dropdowns, allowing the dropdown to extend the bottom of the\n * screen but not otherwise influence or break out of the container.\n * Less common for tooltips.\n * @option\n * @type {boolean}\n * @default false\n */\n allowBottomOverlap: false,\n /**\n * Distance, in pixels, the template should push away from the anchor on the Y axis.\n * @option\n * @type {number}\n * @default 0\n */\n vOffset: 0,\n /**\n * Distance, in pixels, the template should push away from the anchor on the X axis\n * @option\n * @type {number}\n * @default 0\n */\n hOffset: 0,\n /**\n * Distance, in pixels, the template spacing auto-adjust for a vertical tooltip\n * @option\n * @type {number}\n * @default 14\n */\n tooltipHeight: 14,\n /**\n * Distance, in pixels, the template spacing auto-adjust for a horizontal tooltip\n * @option\n * @type {number}\n * @default 12\n */\n tooltipWidth: 12,\n /**\n * Allow HTML in tooltip. Warning: If you are loading user-generated content into tooltips,\n * allowing HTML may open yourself up to XSS attacks.\n * @option\n * @type {boolean}\n * @default false\n */\n allowHtml: false\n};\n\n/**\n * TODO utilize resize event trigger\n */\n\nexport {Tooltip};\n","import $ from 'jquery';\nimport { MediaQuery } from './foundation.util.mediaQuery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { Plugin }from './foundation.core.plugin';\n\nimport { Accordion } from './foundation.accordion';\nimport { Tabs } from './foundation.tabs';\n\n// The plugin matches the plugin classes with these plugin instances.\nvar MenuPlugins = {\n tabs: {\n cssClass: 'tabs',\n plugin: Tabs,\n open: (plugin, target) => plugin.selectTab(target),\n close: null /* not supported */,\n toggle: null /* not supported */,\n },\n accordion: {\n cssClass: 'accordion',\n plugin: Accordion,\n open: (plugin, target) => plugin.down($(target)),\n close: (plugin, target) => plugin.up($(target)),\n toggle: (plugin, target) => plugin.toggle($(target)),\n }\n};\n\n\n/**\n * ResponsiveAccordionTabs module.\n * @module foundation.responsiveAccordionTabs\n * @requires foundation.util.motion\n * @requires foundation.accordion\n * @requires foundation.tabs\n */\n\nclass ResponsiveAccordionTabs extends Plugin{\n constructor(element, options) {\n super(element, options);\n return this.options.reflow && this.storezfData || this;\n }\n\n /**\n * Creates a new instance of a responsive accordion tabs.\n * @class\n * @name ResponsiveAccordionTabs\n * @fires ResponsiveAccordionTabs#init\n * @param {jQuery} element - jQuery object to make into Responsive Accordion Tabs.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.$element = $(element);\n this.$element.data('zfPluginBase', this);\n this.options = $.extend({}, ResponsiveAccordionTabs.defaults, this.$element.data(), options);\n\n this.rules = this.$element.data('responsive-accordion-tabs');\n this.currentMq = null;\n this.currentRule = null;\n this.currentPlugin = null;\n this.className = 'ResponsiveAccordionTabs'; // ie9 back compat\n if (!this.$element.attr('id')) {\n this.$element.attr('id',GetYoDigits(6, 'responsiveaccordiontabs'));\n }\n\n this._init();\n this._events();\n }\n\n /**\n * Initializes the Menu by parsing the classes from the 'data-responsive-accordion-tabs' attribute on the element.\n * @function\n * @private\n */\n _init() {\n MediaQuery._init();\n\n // The first time an Interchange plugin is initialized, this.rules is converted from a string of \"classes\" to an object of rules\n if (typeof this.rules === 'string') {\n let rulesTree = {};\n\n // Parse rules from \"classes\" pulled from data attribute\n let rules = this.rules.split(' ');\n\n // Iterate through every rule found\n for (let i = 0; i < rules.length; i++) {\n let rule = rules[i].split('-');\n let ruleSize = rule.length > 1 ? rule[0] : 'small';\n let rulePlugin = rule.length > 1 ? rule[1] : rule[0];\n\n if (MenuPlugins[rulePlugin] !== null) {\n rulesTree[ruleSize] = MenuPlugins[rulePlugin];\n }\n }\n\n this.rules = rulesTree;\n }\n\n this._getAllOptions();\n\n if (!$.isEmptyObject(this.rules)) {\n this._checkMediaQueries();\n }\n }\n\n _getAllOptions() {\n //get all defaults and options\n var _this = this;\n _this.allOptions = {};\n for (var key in MenuPlugins) {\n if (MenuPlugins.hasOwnProperty(key)) {\n var obj = MenuPlugins[key];\n try {\n var dummyPlugin = $('
      ');\n var tmpPlugin = new obj.plugin(dummyPlugin,_this.options);\n for (var keyKey in tmpPlugin.options) {\n if (tmpPlugin.options.hasOwnProperty(keyKey) && keyKey !== 'zfPlugin') {\n var objObj = tmpPlugin.options[keyKey];\n _this.allOptions[keyKey] = objObj;\n }\n }\n tmpPlugin.destroy();\n }\n catch(e) {\n console.warn(`Warning: Problems getting Accordion/Tab options: ${e}`);\n }\n }\n }\n }\n\n /**\n * Initializes events for the Menu.\n * @function\n * @private\n */\n _events() {\n this._changedZfMediaQueryHandler = this._checkMediaQueries.bind(this);\n $(window).on('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n }\n\n /**\n * Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.\n * @function\n * @private\n */\n _checkMediaQueries() {\n var matchedMq, _this = this;\n // Iterate through each rule and find the last matching rule\n $.each(this.rules, function(key) {\n if (MediaQuery.atLeast(key)) {\n matchedMq = key;\n }\n });\n\n // No match? No dice\n if (!matchedMq) return;\n\n // Plugin already initialized? We good\n if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return;\n\n // Remove existing plugin-specific CSS classes\n $.each(MenuPlugins, function(key, value) {\n _this.$element.removeClass(value.cssClass);\n });\n\n // Add the CSS class for the new plugin\n this.$element.addClass(this.rules[matchedMq].cssClass);\n\n // Create an instance of the new plugin\n if (this.currentPlugin) {\n //don't know why but on nested elements data zfPlugin get's lost\n if (!this.currentPlugin.$element.data('zfPlugin') && this.storezfData) this.currentPlugin.$element.data('zfPlugin',this.storezfData);\n this.currentPlugin.destroy();\n }\n this._handleMarkup(this.rules[matchedMq].cssClass);\n this.currentRule = this.rules[matchedMq];\n this.currentPlugin = new this.currentRule.plugin(this.$element, this.options);\n this.storezfData = this.currentPlugin.$element.data('zfPlugin');\n\n }\n\n _handleMarkup(toSet){\n var _this = this, fromString = 'accordion';\n var $panels = $('[data-tabs-content='+this.$element.attr('id')+']');\n if ($panels.length) fromString = 'tabs';\n if (fromString === toSet) {\n return;\n }\n\n var tabsTitle = _this.allOptions.linkClass?_this.allOptions.linkClass:'tabs-title';\n var tabsPanel = _this.allOptions.panelClass?_this.allOptions.panelClass:'tabs-panel';\n\n this.$element.removeAttr('role');\n var $liHeads = this.$element.children('.'+tabsTitle+',[data-accordion-item]').removeClass(tabsTitle).removeClass('accordion-item').removeAttr('data-accordion-item');\n var $liHeadsA = $liHeads.children('a').removeClass('accordion-title');\n\n if (fromString === 'tabs') {\n $panels = $panels.children('.'+tabsPanel).removeClass(tabsPanel).removeAttr('role').removeAttr('aria-hidden').removeAttr('aria-labelledby');\n $panels.children('a').removeAttr('role').removeAttr('aria-controls').removeAttr('aria-selected');\n } else {\n $panels = $liHeads.children('[data-tab-content]').removeClass('accordion-content');\n }\n\n $panels.css({display:'',visibility:''});\n $liHeads.css({display:'',visibility:''});\n if (toSet === 'accordion') {\n $panels.each(function(key,value){\n $(value).appendTo($liHeads.get(key)).addClass('accordion-content').attr('data-tab-content','').removeClass('is-active').css({height:''});\n $('[data-tabs-content='+_this.$element.attr('id')+']').after('
      ').detach();\n $liHeads.addClass('accordion-item').attr('data-accordion-item','');\n $liHeadsA.addClass('accordion-title');\n });\n } else if (toSet === 'tabs') {\n var $tabsContent = $('[data-tabs-content='+_this.$element.attr('id')+']');\n var $placeholder = $('#tabs-placeholder-'+_this.$element.attr('id'));\n if ($placeholder.length) {\n $tabsContent = $('
      ').insertAfter($placeholder).attr('data-tabs-content',_this.$element.attr('id'));\n $placeholder.remove();\n } else {\n $tabsContent = $('
      ').insertAfter(_this.$element).attr('data-tabs-content',_this.$element.attr('id'));\n }\n $panels.each(function(key,value){\n var tempValue = $(value).appendTo($tabsContent).addClass(tabsPanel);\n var hash = $liHeadsA.get(key).hash.slice(1);\n var id = $(value).attr('id') || GetYoDigits(6, 'accordion');\n if (hash !== id) {\n if (hash !== '') {\n $(value).attr('id',hash);\n } else {\n hash = id;\n $(value).attr('id',hash);\n $($liHeadsA.get(key)).attr('href',$($liHeadsA.get(key)).attr('href').replace('#','')+'#'+hash);\n }\n }\n var isActive = $($liHeads.get(key)).hasClass('is-active');\n if (isActive) {\n tempValue.addClass('is-active');\n }\n });\n $liHeads.addClass(tabsTitle);\n };\n }\n\n /**\n * Opens the plugin pane defined by `target`.\n * @param {jQuery | String} target - jQuery object or string of the id of the pane to open.\n * @see Accordion.down\n * @see Tabs.selectTab\n * @function\n */\n open() {\n if (this.currentRule && typeof this.currentRule.open === 'function') {\n return this.currentRule.open(this.currentPlugin, ...arguments);\n }\n }\n\n /**\n * Closes the plugin pane defined by `target`. Not availaible for Tabs.\n * @param {jQuery | String} target - jQuery object or string of the id of the pane to close.\n * @see Accordion.up\n * @function\n */\n close() {\n if (this.currentRule && typeof this.currentRule.close === 'function') {\n return this.currentRule.close(this.currentPlugin, ...arguments);\n }\n }\n\n /**\n * Toggles the plugin pane defined by `target`. Not availaible for Tabs.\n * @param {jQuery | String} target - jQuery object or string of the id of the pane to toggle.\n * @see Accordion.toggle\n * @function\n */\n toggle() {\n if (this.currentRule && typeof this.currentRule.toggle === 'function') {\n return this.currentRule.toggle(this.currentPlugin, ...arguments);\n }\n }\n\n /**\n * Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.\n * @function\n */\n _destroy() {\n if (this.currentPlugin) this.currentPlugin.destroy();\n $(window).off('changed.zf.mediaquery', this._changedZfMediaQueryHandler);\n }\n}\n\nResponsiveAccordionTabs.defaults = {};\n\nexport {ResponsiveAccordionTabs};\n","// Import jQuery and bind it.\nimport $ from \"jquery\";\nwindow.$ = $;\n\n// Import WhatInput.\nimport whatInput from \"what-input\";\n\n// Import Foundation and utilities. DO NOT REMOVE.\nimport { Foundation } from \"foundation-sites/js/foundation.core\";\nFoundation.addToJquery($);\nimport { MediaQuery } from \"foundation-sites/js/foundation.util.mediaQuery\";\nFoundation.MediaQuery = MediaQuery;\n\n// Uncomment 'import' AND 'Foundation.plugin' for each plugin you do not want to use.\n// import { Abide } from 'foundation-sites/js/foundation.abide'\n// Foundation.plugin(Abide, 'Abide')\n\nimport { Accordion } from \"foundation-sites/js/foundation.accordion\";\nFoundation.plugin(Accordion, \"Accordion\");\n\nimport { AccordionMenu } from \"foundation-sites/js/foundation.accordionMenu\";\nFoundation.plugin(AccordionMenu, \"AccordionMenu\");\n\n// import { Drilldown } from 'foundation-sites/js/foundation.drilldown'\n// Foundation.plugin(Drilldown, 'Drilldown')\n\nimport { Dropdown } from \"foundation-sites/js/foundation.dropdown\";\nFoundation.plugin(Dropdown, \"Dropdown\");\n\nimport { DropdownMenu } from \"foundation-sites/js/foundation.dropdownMenu\";\nFoundation.plugin(DropdownMenu, \"DropdownMenu\");\n\nimport { Equalizer } from \"foundation-sites/js/foundation.equalizer\";\nFoundation.plugin(Equalizer, \"Equalizer\");\n\n// import { Interchange } from 'foundation-sites/js/foundation.interchange'\n// Foundation.plugin(Interchange, 'Interchange')\n\n// import { Magellan } from 'foundation-sites/js/foundation.magellan'\n// Foundation.plugin(Magellan, 'Magellan')\n\n// import { OffCanvas } from 'foundation-sites/js/foundation.offcanvas'\n// Foundation.plugin(OffCanvas, 'OffCanvas')\n\n// import { Orbit } from 'foundation-sites/js/foundation.orbit'\n// Foundation.plugin(Orbit, 'Orbit')\n\nimport { ResponsiveMenu } from \"foundation-sites/js/foundation.responsiveMenu\";\nFoundation.plugin(ResponsiveMenu, \"ResponsiveMenu\");\n\nimport { ResponsiveToggle } from \"foundation-sites/js/foundation.responsiveToggle\";\nFoundation.plugin(ResponsiveToggle, \"ResponsiveToggle\");\n\nimport { Reveal } from \"foundation-sites/js/foundation.reveal\";\nFoundation.plugin(Reveal, \"Reveal\");\n\nimport { Slider } from \"foundation-sites/js/foundation.slider\";\nFoundation.plugin(Slider, \"Slider\");\n\nimport { SmoothScroll } from \"foundation-sites/js/foundation.smoothScroll\";\nFoundation.plugin(SmoothScroll, \"SmoothScroll\");\n\nimport { Sticky } from \"foundation-sites/js/foundation.sticky\";\nFoundation.plugin(Sticky, \"Sticky\");\n\nimport { Tabs } from \"foundation-sites/js/foundation.tabs\";\nFoundation.plugin(Tabs, \"Tabs\");\n\nimport { Toggler } from \"foundation-sites/js/foundation.toggler\";\nFoundation.plugin(Toggler, \"Toggler\");\n\nimport { Tooltip } from \"foundation-sites/js/foundation.tooltip\";\nFoundation.plugin(Tooltip, \"Tooltip\");\n\nimport { ResponsiveAccordionTabs } from \"foundation-sites/js/foundation.responsiveAccordionTabs\";\nFoundation.plugin(ResponsiveAccordionTabs, \"ResponsiveAccordionTabs\");\n\n// Init.\nwindow.addEventListener(\n \"load\",\n () => {\n $(document).foundation();\n },\n { passive: true }\n);\n\n$(document).on(\"closed.zf.reveal\", function () {\n Foundation.reInit(\"sticky\");\n});\n","// Masonry layout.\nimport Macy from \"macy\";\n\ndocument.addEventListener(\n \"DOMContentLoaded\",\n () => {\n if (typeof masonryGrids !== \"undefined\") {\n // Loop through each registered masonry grids and initialize them.\n masonryGrids = masonryGrids.map(({ container, id }) => {\n const instance = Macy({\n container,\n columns: 1,\n trueOrder: true,\n waitForImages: true,\n mobileFirst: true,\n breakAt: {\n 640: 2,\n 1024: 3,\n },\n });\n instance.recalculate();\n\n // Return instance for usage with AJAX content.\n return {\n id,\n container,\n instance,\n };\n });\n }\n },\n { passive: true }\n);\n","import $ from \"jquery\";\nimport objectFitImages from \"object-fit-images\";\n\n$(function () {\n // Adds support for 'object-fit: cover;'.\n objectFitImages();\n});\n","var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(t){for(var i,n=1,s=arguments.length;ns.endVal;s.frameVal=n?s.endVal:s.frameVal,s.frameVal=Number(s.frameVal.toFixed(s.options.decimalPlaces)),s.printValue(s.frameVal),i1?s.options.decimal+o[1]:\"\",s.options.useGrouping){e=\"\";for(var l=0,h=n.length;lwindow.scrollY&&t.paused?(t.paused=!1,setTimeout(function(){return t.start()},t.options.scrollSpyDelay),t.options.scrollSpyOnce&&(t.once=!0)):window.scrollY>s&&!t.paused&&t.reset()}},t.prototype.determineDirectionAndSmartEasing=function(){var t=this.finalEndVal?this.finalEndVal:this.endVal;this.countDown=this.startVal>t;var i=t-this.startVal;if(Math.abs(i)>this.options.smartEasingThreshold&&this.options.useEasing){this.finalEndVal=t;var n=this.countDown?1:-1;this.endVal=t+n*this.options.smartEasingAmount,this.duration=this.duration/2}else this.endVal=t,this.finalEndVal=null;null!==this.finalEndVal?this.useEasing=!1:this.useEasing=this.options.useEasing},t.prototype.start=function(t){this.error||(this.callback=t,this.duration>0?(this.determineDirectionAndSmartEasing(),this.paused=!1,this.rAF=requestAnimationFrame(this.count)):this.printValue(this.endVal))},t.prototype.pauseResume=function(){this.paused?(this.startTime=null,this.duration=this.remaining,this.startVal=this.frameVal,this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count)):cancelAnimationFrame(this.rAF),this.paused=!this.paused},t.prototype.reset=function(){cancelAnimationFrame(this.rAF),this.paused=!0,this.resetDuration(),this.startVal=this.validateValue(this.options.startVal),this.frameVal=this.startVal,this.printValue(this.startVal)},t.prototype.update=function(t){cancelAnimationFrame(this.rAF),this.startTime=null,this.endVal=this.validateValue(t),this.endVal!==this.frameVal&&(this.startVal=this.frameVal,null==this.finalEndVal&&this.resetDuration(),this.finalEndVal=null,this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count))},t.prototype.printValue=function(t){var i=this.formattingFn(t);\"INPUT\"===this.el.tagName?this.el.value=i:\"text\"===this.el.tagName||\"tspan\"===this.el.tagName?this.el.textContent=i:this.el.innerHTML=i},t.prototype.ensureNumber=function(t){return\"number\"==typeof t&&!isNaN(t)},t.prototype.validateValue=function(t){var i=Number(t);return this.ensureNumber(i)?i:(this.error=\"[CountUp] invalid start or end value: \".concat(t),null)},t.prototype.resetDuration=function(){this.startTime=null,this.duration=1e3*Number(this.options.duration),this.remaining=this.duration},t}();export{CountUp};","import { CountUp } from \"countup.js\";\n\nconst event = new Event(\"wpsoup.counter.completed\", {\n bubbles: true,\n cancelable: true,\n composed: false,\n});\n\nfunction registerEventListeners() {\n const elements = document.querySelectorAll(\".counter\");\n const intersectionSupported = intersectionListenerSupported();\n\n if (intersectionSupported) {\n const intersectionObserver = new IntersectionObserver(animateModern, {\n root: null,\n rootMargin: \"20px\",\n threshold: 0.5,\n });\n\n for (let i = 0; i < elements.length; i++) {\n intersectionObserver.observe(elements[i]);\n }\n } else {\n if (window.addEventListener) {\n animateLegacy(elements);\n\n window.addEventListener(\n \"scroll\",\n (e) => {\n animateLegacy(elements);\n },\n { passive: true }\n );\n }\n }\n}\n\nfunction animateLegacy(elements) {\n elements.forEach((element) => {\n if (elementIsInView(element)) {\n animateElement(element);\n }\n });\n}\n\nfunction animateModern(elements) {\n elements.forEach((element) => {\n if (element.isIntersecting) {\n animateElement(element);\n }\n });\n}\n\nfunction animateElement(element) {\n const target = element.target ? element.target : element;\n const dataset = target.dataset;\n\n const countUp = new CountUp(target, dataset.counterEnd, {\n duration: dataset.counterDuration,\n useGrouping: dataset.counterGrouping ? true : false,\n separator: dataset.counterSeparator,\n decimal: dataset.counterDecimal,\n });\n target.counter = countUp;\n countUp.start(() => {\n // Create event listener.\n target.dispatchEvent(event);\n });\n}\n\nfunction elementIsInView(element) {\n let top = element.offsetTop;\n let left = element.offsetLeft;\n const width = element.offsetWidth;\n const height = element.offsetHeight;\n\n while (element.offsetParent) {\n element = element.offsetParent;\n top += element.offsetTop;\n left += element.offsetLeft;\n }\n\n return (\n top >= window.pageYOffset &&\n left >= window.pageXOffset &&\n top + height <= window.pageYOffset + window.innerHeight &&\n left + width <= window.pageXOffset + window.innerWidth\n );\n}\n\nfunction intersectionListenerSupported() {\n return (\n \"IntersectionObserver\" in window &&\n \"IntersectionObserverEntry\" in window &&\n \"intersectionRatio\" in window.IntersectionObserverEntry.prototype\n );\n}\n\n(() => {\n registerEventListeners();\n})();\n","import axios from \"/srv/www/d/dctaleninstituut.nl/vhosts/www/htdocs/content/mu-plugins/wp-soup-plugin/node_modules/axios\";\n\ndocument.addEventListener(\n `DOMContentLoaded`,\n () => {\n const favoriteButtons = document.querySelectorAll(\".favorite-button\");\n for (const button of favoriteButtons) {\n button.addEventListener(\n \"click\",\n function (event) {\n const postID = this.dataset.postId;\n if (!postID) {\n return;\n }\n\n const action = this.dataset.action;\n if (action === \"add\") {\n addToFavorites(postID, button);\n } else if (action === \"remove\") {\n removeFromFavorites(postID, button);\n }\n },\n { passive: true }\n );\n }\n\n function addToFavorites(postID, button) {\n let formData = new FormData();\n formData.append(\"action\", \"add_to_favorites\");\n formData.append(\"security\", themosis.nonce);\n formData.append(\"post_id\", postID);\n\n axios.post(themosis.ajaxurl, formData).then((response) => {\n if (response.data.success) {\n button.classList.add(\"is-favorited\");\n button.querySelector(\"svg\").outerHTML = themosis.wpsoup.favorites.button_icon_favorited;\n button.dataset.action = \"remove\";\n }\n });\n }\n\n function removeFromFavorites(postID, button) {\n let formData = new FormData();\n formData.append(\"action\", \"remove_from_favorites\");\n formData.append(\"security\", themosis.nonce);\n formData.append(\"post_id\", postID);\n\n axios.post(themosis.ajaxurl, formData).then((response) => {\n if (response.data.success) {\n button.classList.remove(\"is-favorited\");\n button.querySelector(\"svg\").outerHTML = themosis.wpsoup.favorites.button_icon;\n button.dataset.action = \"add\";\n }\n });\n }\n },\n { passive: true }\n);\n","import $ from \"jquery\";\n\nwindow.addEventListener(\n \"load\",\n () => {\n if (Foundation.MediaQuery.atLeast(\"large\")) {\n const directions = [\"left\", \"right\"];\n directions.forEach((direction) => {\n const columns = $(`.wp-block-column.half-width-image-${direction}`);\n if (columns.length) {\n columns.each(function () {\n const column = $(this);\n const container = $(this).closest(\".wp-block-ms-container\");\n const containerId = container.attr(\"id\");\n const img = $(this).find(\"img\");\n let src = img.attr(\"src\");\n if (typeof src === \"undefined\") {\n return;\n }\n\n if (typeof LazyLoad === \"function\") {\n if (!src.includes(\"data:image/svg+xml\")) {\n img.parent().css(\"display\", \"none\");\n column.append(\n ``\n );\n }\n\n img.on(\"load\", function () {\n src = img.attr(\"src\");\n img.parent().css(\"display\", \"none\");\n column.append(\n ``\n );\n });\n } else {\n if (!src.includes(\"data:image/svg+xml\")) {\n img.parent().css(\"display\", \"none\");\n column.append(\n ``\n );\n }\n }\n });\n }\n });\n }\n },\n { passive: true }\n);\n","import $ from \"jquery\";\n\ndocument.addEventListener(\n `DOMContentLoaded`,\n () => {\n /**\n * Add submenu toggle functionality.\n */\n const menus = document.querySelectorAll(\".js-ms-has-submenu\");\n let i = 0;\n // For every menu item with a submenu.\n for (const menu of menus) {\n // Apply id for toggling purposes.\n const randomID = \"id-\" + i++;\n const submenu = menu.querySelector(\".submenu\");\n if (submenu) {\n submenu.setAttribute(\"id\", randomID);\n }\n const toggle = menu.querySelector(\".toggle\");\n if (toggle) {\n toggle.setAttribute(\"data-toggle\", randomID);\n }\n\n // On toggling.\n $(`#${randomID}`).on(\"on.zf.toggler off.zf.toggler\", function (event) {\n if (event.target !== this) return;\n\n switch (event.type) {\n case \"on\":\n $(this).slideDown({\n start: function () {\n $(this).css({\n display: \"flex\",\n });\n },\n });\n break;\n case \"off\":\n $(this).slideUp();\n break;\n }\n\n // Recalculate sticky height if sticky exists.\n if ($(\".ms-menu .sticky\").length) {\n $(\".ms-menu .sticky\").foundation(\"_calc\", true);\n }\n });\n }\n\n // Recalculate sticky height on toggling submenu.\n $(\".menu-mobile\").on(\"on.zf.toggler off.zf.toggler\", function (event) {\n if (event.target !== this) return;\n\n switch (event.type) {\n case \"on\":\n $(this).slideDown();\n break;\n case \"off\":\n $(this).slideUp();\n break;\n }\n\n // Recalculate sticky height if sticky exists.\n if ($(\".ms-menu .sticky\").length) {\n $(\".ms-menu .sticky\").foundation(\"_calc\", true);\n }\n });\n\n // Properly update the ARIA states on focus (keyboard) and mouse over events.\n $('[role=\"menubar\"]').on(\"focus.aria mouseenter.aria\", '[aria-haspopup=\"true\"]', (event) => {\n $(event.currentTarget).attr(\"aria-expanded\", true);\n });\n\n // Properly update the ARIA states on blur (keyboard) and mouse out events.\n $('[role=\"menubar\"]').on(\"blur.aria mouseleave.aria\", '[aria-haspopup=\"true\"]', (event) => {\n $(event.currentTarget).attr(\"aria-expanded\", false);\n });\n\n const overlayToggles = document.querySelectorAll(\".trigger-overlay\");\n for (const toggle of overlayToggles) {\n toggle.addEventListener(\n \"click\",\n () => {\n const body = document.querySelector(\"body\");\n const logo = document.querySelector(\".logo-image-overlay\");\n const logoMobile = document.querySelector(\".logo-mobile-image-overlay\");\n const language = document.querySelector(\".language-block\");\n const overlay = document.querySelector(\".top-bar-overlay\");\n const overlayItems = overlay.querySelectorAll(\"li\");\n if (overlay.classList.contains(\"visible\")) {\n body.classList.remove(\"overlay-visible\");\n overlay.classList.remove(\"visible\");\n if (logo) {\n logo.classList.remove(\"fadeInUp\");\n }\n if (logoMobile) {\n logoMobile.classList.remove(\"fadeInUp\");\n }\n if (language) {\n language.classList.remove(\"fadeInUp\");\n }\n for (const li of overlayItems) {\n li.classList.remove(\"fadeInUp\");\n }\n } else {\n body.classList.add(\"overlay-visible\");\n overlay.classList.add(\"visible\");\n if (logo) {\n logo.classList.add(\"fadeInUp\");\n }\n if (logoMobile) {\n logoMobile.classList.add(\"fadeInUp\");\n }\n if (language) {\n language.classList.add(\"fadeInUp\");\n }\n for (const li of overlayItems) {\n li.classList.add(\"fadeInUp\");\n }\n }\n },\n { passive: true }\n );\n }\n\n const toggleArrow = document.querySelector(\".hide.icon-arrow\");\n if (toggleArrow) {\n const submenuTogglesCheckInterval = setInterval(function () {\n const submenuToggles = document.getElementsByClassName(\"submenu-toggle\");\n\n if (submenuToggles.length !== 0) {\n for (let toggle of submenuToggles) {\n if (toggle.getElementsByTagName(\"svg\").length === 0) {\n toggle.innerHTML += toggleArrow.innerHTML;\n }\n }\n\n clearInterval(submenuTogglesCheckInterval);\n }\n });\n }\n\n const searchBlockButton = document.querySelector(\".search-block-button\");\n const searchFormBlock = document.querySelector(\".search-form-block\");\n if (searchBlockButton) {\n searchBlockButton.addEventListener(\n \"click\",\n () => {\n searchBlockButton.classList.toggle(\"visible\");\n if (searchFormBlock) {\n searchFormBlock.classList.toggle(\"visible\");\n }\n },\n { passive: true }\n );\n }\n },\n { passive: true }\n);\n","import $ from \"jquery\";\nimport Swiper from \"swiper\";\n\nif ($(\".woocommerce .product-image-slider\").length) {\n const galleryThumbs = new Swiper(\".woocommerce .product-thumbnail-slider\", {\n slidesPerView: 5,\n freeMode: true,\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n scrollbar: {\n el: \".swiper-scrollbar\",\n hide: true,\n },\n });\n\n if ($(\".woocommerce .product-thumbnail-slider\").length) {\n const galleryTop = new Swiper(\".woocommerce .product-image-slider\", {\n autoHeight: true,\n navigation: {\n nextEl: \".swiper-button-next\",\n prevEl: \".swiper-button-prev\",\n },\n thumbs: {\n swiper: galleryThumbs,\n },\n });\n }\n}\n\n$(document).on(\"change input\", \".woocommerce-cart-form .cart_item :input\", function (e) {\n $('.woocommerce-cart-form :input[name=\"update_cart\"]').prop(\"disabled\", false);\n});\n\n$(document.body).on(\"change blur\", \"form.woocommerce-cart-form .qty-field select\", function (e) {\n const select = $(this);\n const value = select.val();\n const parent = select.parent();\n parent.find(\"input\").val(value);\n});\n","import $ from \"jquery\";\n\nif (wp && wp.data) {\n if ($(window).width() > 600 && $(\"body\").hasClass(\"custom-admin-styling\")) {\n $(\"html\").css(\"padding-top\", \"50px\");\n }\n\n $(window).on(\"resize\", () => {\n if ($(\"body\").hasClass(\"custom-admin-styling\")) {\n if ($(window).width() > 600) {\n if ($(\"html\").css(\"padding-top\") != \"50px\") {\n $(\"html\").css(\"padding-top\", \"50px\");\n }\n } else {\n $(\"html\").css(\"padding-top\", \"\");\n }\n }\n });\n\n document.addEventListener(\"DOMContentLoaded\", () => {\n const gutenbergLoadCheck = setInterval(() => {\n const anchors = $(\"[data-block] a\");\n if (anchors.length > 0) {\n anchors.on(\"click\", (e) => {\n e.preventDefault();\n });\n\n clearInterval(gutenbergLoadCheck);\n }\n }, 100);\n\n const editPost = wp.data.select(\"core/edit-post\");\n if (editPost) {\n editPost.isFeatureActive(\"fullscreenMode\") &&\n wp.data.dispatch(\"core/edit-post\").toggleFeature(\"fullscreenMode\");\n }\n });\n}\n","import $ from \"jquery\";\nimport axios from \"axios\";\n\n$(() => {\n $(\".load-more\").on(\"click\", function () {\n const id = $(this).data(\"id\");\n const fields = $(this).data(\"fields\");\n if (!fields) {\n return;\n }\n\n const initialOffset = $(this).data(\"initial-offset\") ?? 0;\n const offset = $(`#${id} .related-pages .related-page-card:not([class$=\"included\"])`).length ?? 0;\n const masonry = $(this).data(\"is-masonry\") ?? 0;\n const slider = $(this).data(\"is-slider\") ?? 0;\n const textLoadMore = $(this).data(\"text-load-more\");\n const textLoading = $(this).data(\"text-loading\");\n const textLoadFailed = $(this).data(\"text-load-failed\");\n\n // Data to send back to WordPress.\n const formData = new FormData();\n formData.append(\"action\", \"load_posts_by_ajax\");\n formData.append(\"security\", themosis.nonce);\n formData.append(\"offset\", initialOffset + offset);\n formData.append(\"fields\", JSON.stringify(fields));\n\n // Change button text to loading text.\n $(`#${id} .load-more`).html(textLoading);\n\n // Do request.\n axios\n .post(themosis.ajaxurl, formData)\n .then(({ data }) => {\n // Create a placeholder div to store retrieved posts.\n const cards = document.createElement(\"div\");\n cards.innerHTML = data;\n\n // If retrieved posts length is smaller than the amount to load,\n // hide the button, else replace text with initial text.\n if (cards.children.length < fields.ajax_amount_to_load) {\n $(`#${id} .load-more`).remove();\n } else {\n $(`#${id} .load-more`).html(textLoadMore);\n }\n\n // Append loaded posts to the end.\n $(`#${id} .related-pages`).append(data);\n\n // Reinit masonry or equalizer.\n if (slider) {\n const instance = cardSliders.find((x) => x.id === id).instance;\n instance.update();\n }\n\n // Reinit masonry or equalizer.\n if (masonry) {\n const instance = masonryGrids.find((x) => x.id === id).instance;\n instance.runOnImageLoad(function () {\n instance.recalculate(true);\n }, true);\n } else {\n Foundation.reInit(\"equalizer\");\n }\n })\n .catch((error) => {\n $(`#${id} .load-more`).html(textLoadFailed);\n });\n });\n});\n","import $ from \"jquery\";\n\ndocument.addEventListener(\n `DOMContentLoaded`,\n function () {\n $(\".ms_tag-filter .smart-tags\").change(function () {\n const $hiddenInput = $(\".ms_tag-filter .hidden-input\");\n const $emptyInput = $(\".ms_tag-filter .empty-input\");\n const $smartTag = $(this).val();\n\n $.ajax({\n url: themosis.ajaxurl,\n type: \"POST\",\n cache: false,\n data: {\n action: \"populate_posts_with_tag\",\n smart_tag: $smartTag,\n },\n success: function (data) {\n const $select = $(\".ms_tag-filter .posts-with-tag\");\n if (!data || data.length === 0) {\n $select.html(``);\n } else {\n $select.html(`${data}`);\n }\n },\n });\n });\n\n $(\".ms_tag-filter .posts-with-tag\").change(function () {\n const options = this.options;\n const selectedOption = this.options[this.selectedIndex];\n const selectedSmartTagLabel =\n document.querySelector(\".ms_tag-filter .smart-tags\").options[\n document.querySelector(\".ms_tag-filter .smart-tags\").selectedIndex\n ].label;\n\n if (options && selectedOption.value !== \"\") {\n if (typeof ga !== \"undefined\" && typeof ga.getAll === \"function\") {\n new Promise((resolve, _) => {\n const analyticsGTMID = ga.getAll()[0].get(\"trackingId\");\n ga(\n `gtag_${analyticsGTMID}.send`,\n \"event\",\n \"Tag filter\",\n \"redirect\",\n selectedSmartTagLabel + \" -> \" + selectedOption.label\n );\n resolve();\n }).then(() => {\n // Redirect to the selected option.\n window.location = this.options[this.selectedIndex].value;\n });\n } else {\n // Redirect to the selected option.\n window.location = this.options[this.selectedIndex].value;\n }\n }\n });\n },\n { passive: true }\n);\n","import $ from \"jquery\";\n\nwindow.addEventListener(\n \"load\",\n () => {\n if ($(\".scrollhide-nav\").length > 0 && Foundation.MediaQuery.only(\"small\")) {\n let prev = 0;\n const height = $(\".ms_thintopbar\").outerHeight();\n\n $(window).on(\"scroll\", () => {\n const scrollTop = $(window).scrollTop();\n $(\".scrollhide-nav\").toggleClass(\"hidden\", scrollTop > prev);\n\n let offset = 0;\n if (scrollTop > prev) {\n offset = 0;\n } else {\n offset = height - 1;\n }\n\n $(\".ms-menu .sticky\").attr(\"style\", `top: ${offset}px !important`);\n\n prev = scrollTop;\n });\n\n $(\".ms-menu .sticky\").on(\"sticky.zf.unstuckfrom:top\", function () {\n $(\".ms-menu .sticky\").attr(\"style\", `margin-top: ${height - 1}px !important`);\n });\n $(\".ms-menu .sticky\").on(\"sticky.zf.stuckto:top\", function () {\n $(\".ms-menu .sticky\").attr(\"style\", `margin-top: 0px !important`);\n });\n }\n },\n { passive: true }\n);\n","import $ from \"/srv/www/d/dctaleninstituut.nl/vhosts/www/htdocs/content/mu-plugins/wp-soup-plugin/node_modules/jquery\";\n\n$(document).ready(function() {\n const heroes = document.querySelectorAll(\".post-header\");\n for (const hero of heroes) {\n const background = hero.style.background;\n if (background) {\n hero.style.setProperty(\"background\", background, \"important\");\n }\n }\n});\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","function setCookie(cname, cvalue, exdays) {\n const d = new Date();\n d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);\n const expires = \"expires=\" + d.toUTCString();\n document.cookie = cname + \"=\" + cvalue + \";\" + expires;\n}\n\nconst translationNotice = document.querySelector(\".automatic-translation-notice\");\nif (translationNotice) {\n translationNotice\n .querySelector(\"button\")\n .addEventListener(\"click\", (e) => setCookie(\"hide-automatic-translation-notice\", true, 7), { passive: true });\n}\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.AOS=t():e.AOS=t()}(this,function(){return function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={exports:{},id:o,loaded:!1};return e[o].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p=\"dist/\",t(0)}([function(e,t,n){\"use strict\";function o(e){return e&&e.__esModule?e:{default:e}}var i=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]&&arguments[0];if(e&&(k=!0),k)return w=(0,y.default)(w,x),(0,b.default)(w,x.once),w},O=function(){w=(0,h.default)(),j()},M=function(){w.forEach(function(e,t){e.node.removeAttribute(\"data-aos\"),e.node.removeAttribute(\"data-aos-easing\"),e.node.removeAttribute(\"data-aos-duration\"),e.node.removeAttribute(\"data-aos-delay\")})},S=function(e){return e===!0||\"mobile\"===e&&p.default.mobile()||\"phone\"===e&&p.default.phone()||\"tablet\"===e&&p.default.tablet()||\"function\"==typeof e&&e()===!0},_=function(e){x=i(x,e),w=(0,h.default)();var t=document.all&&!window.atob;return S(x.disable)||t?M():(x.disableMutationObserver||d.default.isSupported()||(console.info('\\n aos: MutationObserver is not supported on this browser,\\n code mutations observing has been disabled.\\n You may have to call \"refreshHard()\" by yourself.\\n '),x.disableMutationObserver=!0),document.querySelector(\"body\").setAttribute(\"data-aos-easing\",x.easing),document.querySelector(\"body\").setAttribute(\"data-aos-duration\",x.duration),document.querySelector(\"body\").setAttribute(\"data-aos-delay\",x.delay),\"DOMContentLoaded\"===x.startEvent&&[\"complete\",\"interactive\"].indexOf(document.readyState)>-1?j(!0):\"load\"===x.startEvent?window.addEventListener(x.startEvent,function(){j(!0)}):document.addEventListener(x.startEvent,function(){j(!0)}),window.addEventListener(\"resize\",(0,s.default)(j,x.debounceDelay,!0)),window.addEventListener(\"orientationchange\",(0,s.default)(j,x.debounceDelay,!0)),window.addEventListener(\"scroll\",(0,u.default)(function(){(0,b.default)(w,x.once)},x.throttleDelay)),x.disableMutationObserver||d.default.ready(\"[data-aos]\",O),w)};e.exports={init:_,refresh:j,refreshHard:O}},function(e,t){},,,,,function(e,t){(function(t){\"use strict\";function n(e,t,n){function o(t){var n=b,o=v;return b=v=void 0,k=t,g=e.apply(o,n)}function r(e){return k=e,h=setTimeout(f,t),M?o(e):g}function a(e){var n=e-w,o=e-k,i=t-n;return S?j(i,y-o):i}function c(e){var n=e-w,o=e-k;return void 0===w||n>=t||n<0||S&&o>=y}function f(){var e=O();return c(e)?d(e):void(h=setTimeout(f,a(e)))}function d(e){return h=void 0,_&&b?o(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),k=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(O())}function m(){var e=O(),n=c(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(S)return h=setTimeout(f,t),o(w)}return void 0===h&&(h=setTimeout(f,t)),g}var b,v,y,g,h,w,k=0,M=!1,S=!1,_=!0;if(\"function\"!=typeof e)throw new TypeError(s);return t=u(t)||0,i(n)&&(M=!!n.leading,S=\"maxWait\"in n,y=S?x(u(n.maxWait)||0,t):y,_=\"trailing\"in n?!!n.trailing:_),m.cancel=l,m.flush=p,m}function o(e,t,o){var r=!0,a=!0;if(\"function\"!=typeof e)throw new TypeError(s);return i(o)&&(r=\"leading\"in o?!!o.leading:r,a=\"trailing\"in o?!!o.trailing:a),n(e,t,{leading:r,maxWait:t,trailing:a})}function i(e){var t=\"undefined\"==typeof e?\"undefined\":c(e);return!!e&&(\"object\"==t||\"function\"==t)}function r(e){return!!e&&\"object\"==(\"undefined\"==typeof e?\"undefined\":c(e))}function a(e){return\"symbol\"==(\"undefined\"==typeof e?\"undefined\":c(e))||r(e)&&k.call(e)==d}function u(e){if(\"number\"==typeof e)return e;if(a(e))return f;if(i(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(l,\"\");var n=m.test(e);return n||b.test(e)?v(e.slice(2),n?2:8):p.test(e)?f:+e}var c=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},s=\"Expected a function\",f=NaN,d=\"[object Symbol]\",l=/^\\s+|\\s+$/g,p=/^[-+]0x[0-9a-f]+$/i,m=/^0b[01]+$/i,b=/^0o[0-7]+$/i,v=parseInt,y=\"object\"==(\"undefined\"==typeof t?\"undefined\":c(t))&&t&&t.Object===Object&&t,g=\"object\"==(\"undefined\"==typeof self?\"undefined\":c(self))&&self&&self.Object===Object&&self,h=y||g||Function(\"return this\")(),w=Object.prototype,k=w.toString,x=Math.max,j=Math.min,O=function(){return h.Date.now()};e.exports=o}).call(t,function(){return this}())},function(e,t){(function(t){\"use strict\";function n(e,t,n){function i(t){var n=b,o=v;return b=v=void 0,O=t,g=e.apply(o,n)}function r(e){return O=e,h=setTimeout(f,t),M?i(e):g}function u(e){var n=e-w,o=e-O,i=t-n;return S?x(i,y-o):i}function s(e){var n=e-w,o=e-O;return void 0===w||n>=t||n<0||S&&o>=y}function f(){var e=j();return s(e)?d(e):void(h=setTimeout(f,u(e)))}function d(e){return h=void 0,_&&b?i(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),O=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(j())}function m(){var e=j(),n=s(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(S)return h=setTimeout(f,t),i(w)}return void 0===h&&(h=setTimeout(f,t)),g}var b,v,y,g,h,w,O=0,M=!1,S=!1,_=!0;if(\"function\"!=typeof e)throw new TypeError(c);return t=a(t)||0,o(n)&&(M=!!n.leading,S=\"maxWait\"in n,y=S?k(a(n.maxWait)||0,t):y,_=\"trailing\"in n?!!n.trailing:_),m.cancel=l,m.flush=p,m}function o(e){var t=\"undefined\"==typeof e?\"undefined\":u(e);return!!e&&(\"object\"==t||\"function\"==t)}function i(e){return!!e&&\"object\"==(\"undefined\"==typeof e?\"undefined\":u(e))}function r(e){return\"symbol\"==(\"undefined\"==typeof e?\"undefined\":u(e))||i(e)&&w.call(e)==f}function a(e){if(\"number\"==typeof e)return e;if(r(e))return s;if(o(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=o(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(d,\"\");var n=p.test(e);return n||m.test(e)?b(e.slice(2),n?2:8):l.test(e)?s:+e}var u=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},c=\"Expected a function\",s=NaN,f=\"[object Symbol]\",d=/^\\s+|\\s+$/g,l=/^[-+]0x[0-9a-f]+$/i,p=/^0b[01]+$/i,m=/^0o[0-7]+$/i,b=parseInt,v=\"object\"==(\"undefined\"==typeof t?\"undefined\":u(t))&&t&&t.Object===Object&&t,y=\"object\"==(\"undefined\"==typeof self?\"undefined\":u(self))&&self&&self.Object===Object&&self,g=v||y||Function(\"return this\")(),h=Object.prototype,w=h.toString,k=Math.max,x=Math.min,j=function(){return g.Date.now()};e.exports=n}).call(t,function(){return this}())},function(e,t){\"use strict\";function n(e){var t=void 0,o=void 0,i=void 0;for(t=0;te.position?e.node.classList.add(\"aos-animate\"):\"undefined\"!=typeof o&&(\"false\"===o||!n&&\"true\"!==o)&&e.node.classList.remove(\"aos-animate\")},o=function(e,t){var o=window.pageYOffset,i=window.innerHeight;e.forEach(function(e,r){n(e,i+o,t)})};t.default=o},function(e,t,n){\"use strict\";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(12),r=o(i),a=function(e,t){return e.forEach(function(e,n){e.node.classList.add(\"aos-init\"),e.position=(0,r.default)(e.node,t.offset)}),e};t.default=a},function(e,t,n){\"use strict\";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(13),r=o(i),a=function(e,t){var n=0,o=0,i=window.innerHeight,a={offset:e.getAttribute(\"data-aos-offset\"),anchor:e.getAttribute(\"data-aos-anchor\"),anchorPlacement:e.getAttribute(\"data-aos-anchor-placement\")};switch(a.offset&&!isNaN(a.offset)&&(o=parseInt(a.offset)),a.anchor&&document.querySelectorAll(a.anchor)&&(e=document.querySelectorAll(a.anchor)[0]),n=(0,r.default)(e).top,a.anchorPlacement){case\"top-bottom\":break;case\"center-bottom\":n+=e.offsetHeight/2;break;case\"bottom-bottom\":n+=e.offsetHeight;break;case\"top-center\":n+=i/2;break;case\"bottom-center\":n+=i/2+e.offsetHeight;break;case\"center-center\":n+=i/2+e.offsetHeight/2;break;case\"top-top\":n+=i;break;case\"bottom-top\":n+=e.offsetHeight+i;break;case\"center-top\":n+=e.offsetHeight/2+i}return a.anchorPlacement||a.offset||isNaN(t)||(o=t),n+o};t.default=a},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e){for(var t=0,n=0;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)t+=e.offsetLeft-(\"BODY\"!=e.tagName?e.scrollLeft:0),n+=e.offsetTop-(\"BODY\"!=e.tagName?e.scrollTop:0),e=e.offsetParent;return{top:n,left:t}};t.default=n},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e){return e=e||document.querySelectorAll(\"[data-aos]\"),Array.prototype.map.call(e,function(e){return{node:e}})};t.default=n}])});","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","/*! npm.im/object-fit-images 3.2.4 */\n'use strict';\n\nvar OFI = 'bfred-it:object-fit-images';\nvar propRegex = /(object-fit|object-position)\\s*:\\s*([-.\\w\\s%]+)/g;\nvar testImg = typeof Image === 'undefined' ? {style: {'object-position': 1}} : new Image();\nvar supportsObjectFit = 'object-fit' in testImg.style;\nvar supportsObjectPosition = 'object-position' in testImg.style;\nvar supportsOFI = 'background-size' in testImg.style;\nvar supportsCurrentSrc = typeof testImg.currentSrc === 'string';\nvar nativeGetAttribute = testImg.getAttribute;\nvar nativeSetAttribute = testImg.setAttribute;\nvar autoModeEnabled = false;\n\nfunction createPlaceholder(w, h) {\n\treturn (\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='\" + w + \"' height='\" + h + \"'%3E%3C/svg%3E\");\n}\n\nfunction polyfillCurrentSrc(el) {\n\tif (el.srcset && !supportsCurrentSrc && window.picturefill) {\n\t\tvar pf = window.picturefill._;\n\t\t// parse srcset with picturefill where currentSrc isn't available\n\t\tif (!el[pf.ns] || !el[pf.ns].evaled) {\n\t\t\t// force synchronous srcset parsing\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\tif (!el[pf.ns].curSrc) {\n\t\t\t// force picturefill to parse srcset\n\t\t\tel[pf.ns].supported = false;\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\t// retrieve parsed currentSrc, if any\n\t\tel.currentSrc = el[pf.ns].curSrc || el.src;\n\t}\n}\n\nfunction getStyle(el) {\n\tvar style = getComputedStyle(el).fontFamily;\n\tvar parsed;\n\tvar props = {};\n\twhile ((parsed = propRegex.exec(style)) !== null) {\n\t\tprops[parsed[1]] = parsed[2];\n\t}\n\treturn props;\n}\n\nfunction setPlaceholder(img, width, height) {\n\t// Default: fill width, no height\n\tvar placeholder = createPlaceholder(width || 1, height || 0);\n\n\t// Only set placeholder if it's different\n\tif (nativeGetAttribute.call(img, 'src') !== placeholder) {\n\t\tnativeSetAttribute.call(img, 'src', placeholder);\n\t}\n}\n\nfunction onImageReady(img, callback) {\n\t// naturalWidth is only available when the image headers are loaded,\n\t// this loop will poll it every 100ms.\n\tif (img.naturalWidth) {\n\t\tcallback(img);\n\t} else {\n\t\tsetTimeout(onImageReady, 100, img, callback);\n\t}\n}\n\nfunction fixOne(el) {\n\tvar style = getStyle(el);\n\tvar ofi = el[OFI];\n\tstyle['object-fit'] = style['object-fit'] || 'fill'; // default value\n\n\t// Avoid running where unnecessary, unless OFI had already done its deed\n\tif (!ofi.img) {\n\t\t// fill is the default behavior so no action is necessary\n\t\tif (style['object-fit'] === 'fill') {\n\t\t\treturn;\n\t\t}\n\n\t\t// Where object-fit is supported and object-position isn't (Safari < 10)\n\t\tif (\n\t\t\t!ofi.skipTest && // unless user wants to apply regardless of browser support\n\t\t\tsupportsObjectFit && // if browser already supports object-fit\n\t\t\t!style['object-position'] // unless object-position is used\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// keep a clone in memory while resetting the original to a blank\n\tif (!ofi.img) {\n\t\tofi.img = new Image(el.width, el.height);\n\t\tofi.img.srcset = nativeGetAttribute.call(el, \"data-ofi-srcset\") || el.srcset;\n\t\tofi.img.src = nativeGetAttribute.call(el, \"data-ofi-src\") || el.src;\n\n\t\t// preserve for any future cloneNode calls\n\t\t// https://github.com/bfred-it/object-fit-images/issues/53\n\t\tnativeSetAttribute.call(el, \"data-ofi-src\", el.src);\n\t\tif (el.srcset) {\n\t\t\tnativeSetAttribute.call(el, \"data-ofi-srcset\", el.srcset);\n\t\t}\n\n\t\tsetPlaceholder(el, el.naturalWidth || el.width, el.naturalHeight || el.height);\n\n\t\t// remove srcset because it overrides src\n\t\tif (el.srcset) {\n\t\t\tel.srcset = '';\n\t\t}\n\t\ttry {\n\t\t\tkeepSrcUsable(el);\n\t\t} catch (err) {\n\t\t\tif (window.console) {\n\t\t\t\tconsole.warn('https://bit.ly/ofi-old-browser');\n\t\t\t}\n\t\t}\n\t}\n\n\tpolyfillCurrentSrc(ofi.img);\n\n\tel.style.backgroundImage = \"url(\\\"\" + ((ofi.img.currentSrc || ofi.img.src).replace(/\"/g, '\\\\\"')) + \"\\\")\";\n\tel.style.backgroundPosition = style['object-position'] || 'center';\n\tel.style.backgroundRepeat = 'no-repeat';\n\tel.style.backgroundOrigin = 'content-box';\n\n\tif (/scale-down/.test(style['object-fit'])) {\n\t\tonImageReady(ofi.img, function () {\n\t\t\tif (ofi.img.naturalWidth > el.width || ofi.img.naturalHeight > el.height) {\n\t\t\t\tel.style.backgroundSize = 'contain';\n\t\t\t} else {\n\t\t\t\tel.style.backgroundSize = 'auto';\n\t\t\t}\n\t\t});\n\t} else {\n\t\tel.style.backgroundSize = style['object-fit'].replace('none', 'auto').replace('fill', '100% 100%');\n\t}\n\n\tonImageReady(ofi.img, function (img) {\n\t\tsetPlaceholder(el, img.naturalWidth, img.naturalHeight);\n\t});\n}\n\nfunction keepSrcUsable(el) {\n\tvar descriptors = {\n\t\tget: function get(prop) {\n\t\t\treturn el[OFI].img[prop ? prop : 'src'];\n\t\t},\n\t\tset: function set(value, prop) {\n\t\t\tel[OFI].img[prop ? prop : 'src'] = value;\n\t\t\tnativeSetAttribute.call(el, (\"data-ofi-\" + prop), value); // preserve for any future cloneNode\n\t\t\tfixOne(el);\n\t\t\treturn value;\n\t\t}\n\t};\n\tObject.defineProperty(el, 'src', descriptors);\n\tObject.defineProperty(el, 'currentSrc', {\n\t\tget: function () { return descriptors.get('currentSrc'); }\n\t});\n\tObject.defineProperty(el, 'srcset', {\n\t\tget: function () { return descriptors.get('srcset'); },\n\t\tset: function (ss) { return descriptors.set(ss, 'srcset'); }\n\t});\n}\n\nfunction hijackAttributes() {\n\tfunction getOfiImageMaybe(el, name) {\n\t\treturn el[OFI] && el[OFI].img && (name === 'src' || name === 'srcset') ? el[OFI].img : el;\n\t}\n\tif (!supportsObjectPosition) {\n\t\tHTMLImageElement.prototype.getAttribute = function (name) {\n\t\t\treturn nativeGetAttribute.call(getOfiImageMaybe(this, name), name);\n\t\t};\n\n\t\tHTMLImageElement.prototype.setAttribute = function (name, value) {\n\t\t\treturn nativeSetAttribute.call(getOfiImageMaybe(this, name), name, String(value));\n\t\t};\n\t}\n}\n\nfunction fix(imgs, opts) {\n\tvar startAutoMode = !autoModeEnabled && !imgs;\n\topts = opts || {};\n\timgs = imgs || 'img';\n\n\tif ((supportsObjectPosition && !opts.skipTest) || !supportsOFI) {\n\t\treturn false;\n\t}\n\n\t// use imgs as a selector or just select all images\n\tif (imgs === 'img') {\n\t\timgs = document.getElementsByTagName('img');\n\t} else if (typeof imgs === 'string') {\n\t\timgs = document.querySelectorAll(imgs);\n\t} else if (!('length' in imgs)) {\n\t\timgs = [imgs];\n\t}\n\n\t// apply fix to all\n\tfor (var i = 0; i < imgs.length; i++) {\n\t\timgs[i][OFI] = imgs[i][OFI] || {\n\t\t\tskipTest: opts.skipTest\n\t\t};\n\t\tfixOne(imgs[i]);\n\t}\n\n\tif (startAutoMode) {\n\t\tdocument.body.addEventListener('load', function (e) {\n\t\t\tif (e.target.tagName === 'IMG') {\n\t\t\t\tfix(e.target, {\n\t\t\t\t\tskipTest: opts.skipTest\n\t\t\t\t});\n\t\t\t}\n\t\t}, true);\n\t\tautoModeEnabled = true;\n\t\timgs = 'img'; // reset to a generic selector for watchMQ\n\t}\n\n\t// if requested, watch media queries for object-fit change\n\tif (opts.watchMQ) {\n\t\twindow.addEventListener('resize', fix.bind(null, imgs, {\n\t\t\tskipTest: opts.skipTest\n\t\t}));\n\t}\n}\n\nfix.supportsObjectFit = supportsObjectFit;\nfix.supportsObjectPosition = supportsObjectPosition;\n\nhijackAttributes();\n\nmodule.exports = fix;\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar buildFullPath = require('./buildFullPath');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n var fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url: url,\n data: data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nmodule.exports = Axios;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","window.addEventListener(\n \"load\",\n () => {\n // Do IE stuff\n if (window.document.documentMode) {\n if (Foundation.MediaQuery.current !== \"small\") {\n const columns = document.querySelectorAll(\".wp-block-column\");\n for (const column of columns) {\n const flexBasis = column.style.flexBasis;\n const isMargin = column.parentElement.classList.contains(\"margin\");\n if (flexBasis && !isMargin) {\n column.style.setAttribute(\"width\", flexBasis);\n column.style.setProperty(\"flex-basis\", \"auto\", \"important\");\n } else if (flexBasis && isMargin) {\n column.style.setAttribute(\"width\", `calc(${flexBasis} - 2rem)`);\n column.style.setProperty(\"flex-basis\", \"auto\", \"important\");\n }\n }\n }\n } else {\n if (Foundation.MediaQuery.current !== \"small\") {\n const columns = document.querySelectorAll(\".wp-block-column\");\n for (const column of columns) {\n const flexBasis = column.style.flexBasis;\n const isMargin = column.parentElement.classList.contains(\"margin\");\n if (flexBasis && isMargin) {\n column.style.setProperty(\"flex-basis\", `calc(${flexBasis} - 2rem)`, \"important\");\n }\n }\n }\n }\n },\n { passive: true }\n);\n","/*!\n * jQuery JavaScript Library v3.6.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2022-08-26T17:52Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket trac-14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.6.1\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.6\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: 2021-02-16\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (trac-9521)\n\t// Strict HTML recognition (trac-11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See trac-6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (trac-9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see trac-8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (trac-14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (trac-11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (trac-14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces \";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (trac-13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ 1, \"\", \"
      \" ],\n\tcol: [ 2, \"\", \"
      \" ],\n\ttr: [ 2, \"\", \"
      \" ],\n\ttd: [ 3, \"\", \"
      \" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (trac-12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\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).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (trac-13208)\n\t\t\t\t// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (trac-13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Support: Chrome 86+\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\n\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\n\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\n\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\n\t\t\t\t\t\treturn result && result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (trac-504, trac-13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\t// Suppress native focus or blur if we're currently inside\n\t\t// a leveraged native-event stack\n\t\t_default: function( event ) {\n\t\t\treturn dataPriv.get( event.target, type );\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (trac-8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Unwrap a CDATA section containing script contents. This shouldn't be\n\t\t\t\t\t\t\t// needed as in XML documents they're already not visible when\n\t\t\t\t\t\t\t// inspecting element contents and in HTML documents they have no\n\t\t\t\t\t\t\t// meaning but we're preserving that logic for backwards compatibility.\n\t\t\t\t\t\t\t// This will be removed completely in 4.0. See gh-4904.\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar rcustomProp = /^--/;\n\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\nvar whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n\n\nvar rtrimCSS = new RegExp(\n\t\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\",\n\t\"g\"\n);\n\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (trac-8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is display: block\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\t\tisCustomProp = rcustomProp.test( name ),\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, trac-12537)\n\t// .css('--customProperty) (gh-3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\t// trim whitespace for custom property (issue gh-4926)\n\t\tif ( isCustomProp ) {\n\n\t\t\t// rtrim treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n\t\t\t// as whitespace while CSS does not, but this is not a problem\n\t\t\t// because CSS preprocessing replaces them with U+000A LINE FEED\n\t\t\t// (which *is* CSS whitespace)\n\t\t\t// https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n\t\t\tret = ret.replace( rtrimCSS, \"$1\" );\n\t\t}\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug trac-9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (trac-7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// Use proper attribute retrieval (trac-12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + className + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += className + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + className + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + className + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar classNames, className, i, self,\n\t\t\ttype = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\treturn this.each( function() {\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\tself = jQuery( this );\n\n\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (trac-14686, trac-14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (trac-2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (trac-9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (trac-6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// trac-7653, trac-8125, trac-8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes trac-9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (trac-10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket trac-12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// trac-9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (trac-11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// trac-1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see trac-8605, trac-14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// trac-14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"