{"version":3,"sources":["webpack:///./node_modules/aos/dist/aos.js","webpack:///./node_modules/select-custom/index.js","webpack:///./node_modules/tabbyjs/dist/js/tabby.min.js","webpack:///./node_modules/tiny-slider/src/helpers/Object.keys.js","webpack:///./node_modules/tiny-slider/src/helpers/childNode.remove.js","webpack:///../src/index.ts","webpack:///./node_modules/tiny-slider/src/helpers/raf.js","webpack:///./node_modules/tiny-slider/src/helpers/caf.js","webpack:///./node_modules/tiny-slider/src/helpers/extend.js","webpack:///./node_modules/tiny-slider/src/helpers/checkStorageValue.js","webpack:///./node_modules/tiny-slider/src/helpers/setLocalStorage.js","webpack:///./node_modules/tiny-slider/src/helpers/getBody.js","webpack:///./node_modules/tiny-slider/src/helpers/docElement.js","webpack:///./node_modules/tiny-slider/src/helpers/setFakeBody.js","webpack:///./node_modules/tiny-slider/src/helpers/resetFakeBody.js","webpack:///./node_modules/tiny-slider/src/helpers/addCSSRule.js","webpack:///./node_modules/tiny-slider/src/helpers/getCssRulesLength.js","webpack:///./node_modules/tiny-slider/src/helpers/forEach.js","webpack:///./node_modules/tiny-slider/src/helpers/classListSupport.js","webpack:///./node_modules/tiny-slider/src/helpers/hasClass.js","webpack:///./node_modules/tiny-slider/src/helpers/addClass.js","webpack:///./node_modules/tiny-slider/src/helpers/removeClass.js","webpack:///./node_modules/tiny-slider/src/helpers/hasAttr.js","webpack:///./node_modules/tiny-slider/src/helpers/getAttr.js","webpack:///./node_modules/tiny-slider/src/helpers/isNodeList.js","webpack:///./node_modules/tiny-slider/src/helpers/setAttrs.js","webpack:///./node_modules/tiny-slider/src/helpers/removeAttrs.js","webpack:///./node_modules/tiny-slider/src/helpers/arrayFromNodeList.js","webpack:///./node_modules/tiny-slider/src/helpers/hideElement.js","webpack:///./node_modules/tiny-slider/src/helpers/showElement.js","webpack:///./node_modules/tiny-slider/src/helpers/isVisible.js","webpack:///./node_modules/tiny-slider/src/helpers/whichProperty.js","webpack:///./node_modules/tiny-slider/src/helpers/getEndProperty.js","webpack:///./node_modules/tiny-slider/src/helpers/passiveOption.js","webpack:///./node_modules/tiny-slider/src/helpers/addEvents.js","webpack:///./node_modules/tiny-slider/src/helpers/removeEvents.js","webpack:///./node_modules/tiny-slider/src/helpers/events.js","webpack:///./node_modules/tiny-slider/src/tiny-slider.js","webpack:///./node_modules/tiny-slider/src/helpers/calc.js","webpack:///./node_modules/tiny-slider/src/helpers/percentageLayout.js","webpack:///./node_modules/tiny-slider/src/helpers/mediaquerySupport.js","webpack:///./node_modules/tiny-slider/src/helpers/has3DTransforms.js","webpack:///./node_modules/tiny-slider/src/helpers/getSlideId.js","webpack:///./node_modules/tiny-slider/src/helpers/createStyleSheet.js","webpack:///./node_modules/tiny-slider/src/helpers/jsTransform.js","webpack:///./node_modules/tiny-slider/src/helpers/removeCSSRule.js","webpack:///./node_modules/tiny-slider/src/helpers/toDegree.js","webpack:///./node_modules/tiny-slider/src/helpers/getTouchDirection.js","webpack:///./node_modules/lazysizes/lazysizes.js","webpack:///./node_modules/lazysizes/plugins/artdirect/ls.artdirect.js","webpack:///./node_modules/lazysizes/plugins/unveilhooks/ls.unveilhooks.js","webpack:///./node_modules/lazysizes/plugins/bgset/ls.bgset.js","webpack:///(webpack)/buildin/global.js"],"names":["module","exports","e","t","o","n","i","id","loaded","call","m","c","p","__esModule","default","Object","assign","arguments","length","prototype","hasOwnProperty","a","u","s","d","b","y","h","w","k","x","offset","delay","easing","duration","disable","once","startEvent","throttleDelay","debounceDelay","disableMutationObserver","j","O","init","document","all","window","atob","mobile","phone","tablet","S","forEach","node","removeAttribute","isSupported","console","info","querySelector","setAttribute","indexOf","readyState","addEventListener","ready","refresh","refreshHard","v","g","apply","r","setTimeout","f","M","_","this","TypeError","leading","maxWait","trailing","cancel","clearTimeout","flush","valueOf","replace","l","test","slice","Symbol","iterator","constructor","NaN","parseInt","self","Function","toString","Math","max","min","Date","now","MutationObserver","WebKitMutationObserver","MozMutationObserver","Array","addedNodes","removedNodes","dataset","aos","children","concat","defineProperty","value","observe","documentElement","childList","subtree","navigator","userAgent","vendor","opera","enumerable","configurable","writable","key","substr","pageYOffset","innerHeight","getAttribute","position","classList","add","remove","anchor","anchorPlacement","isNaN","querySelectorAll","top","offsetHeight","offsetLeft","offsetTop","tagName","scrollLeft","scrollTop","offsetParent","left","map","_defineProperties","_defineProperty","ownKeys","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","push","detectTouch","maxTouchPoints","Element","closest","charAt","parentNode","contains","hasAttribute","toLowerCase","BEMblock","name","block","addMod","toggleMod","toggle","removeMod","containsMod","constants","wrap","opener","panel","option","optionsWrap","optgroup","panelItemClassName","openerLabel","IS_OPEN","IS_DISABLED","IS_MULTIPLE","IS_SELECTED","IS_ABOVE","HAS_CUSTOM_SELECT","HAS_UNUSED_CLOSE_FUNCTION","DATA_ALLOW_PANEL_CLICK","DATA_LABEL","DATA_VALUE","DATA_HAS_PANEL_ITEM","DATA_LABEL_INDEX","defaultParams","optionBuilder","panelItem","item","className","changeOpenerText","multipleSelectionOnSingleClick","multipleSelectOpenerText","labels","array","allowPanelClick","openOnHover","closeOnMouseleave","wrapDataAttributes","_createElements","createElement","el","options","cloneNode","appendChild","innerHTML","label","E","addDataAttributes","addOptionItem","selected","L","checked","disabled","A","multiple","warn","innerText","setSelectOptionsItems","insertBefore","wrapElements","_open","openSelectBind","openSelect","bind","_close","select","body","click","closeSelectBind","closeSelect","closeSelectListenersAdded","_change","currentTarget","setSelectedOptions","clickedCustomOption","nativeOptionsList","customOptionsList","dispatchEvent","triggerCheckbox","getSelectOptionsText","_trigerCustomEvents","target","oldValue","onOpen","onClose","attributes","attributeOldValue","attributeFilter","_destroy","removeChild","createDocumentFragment","firstChild","replaceChild","unwrap","removeEventListener","Select","_classCallCheck","getOwnPropertyDescriptors","defineProperties","_objectSpread2","_createClass","createEvent","initEvent","setPanelPosition","type","keyCode","ctrlKey","setSelectedOptionsMultiple","setSelectedOptionsDefault","getBoundingClientRect","join","preventDefault","get","matches","msMatchesSelector","webkitMatchesSelector","global","idPrefix","hash","previousTab","previousContent","focus","tab","content","CustomEvent","bubbles","cancelable","detail","initCustomEvent","activeElement","tabs","index","setup","location","object","raf","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","cb","caf","cancelAnimationFrame","mozCancelAnimationFrame","extend","obj","copy","undefined","checkStorageValue","JSON","parse","setLocalStorage","storage","access","setItem","getBody","doc","fake","docElement","setFakeBody","docOverflow","style","overflow","background","resetFakeBody","addCSSRule","sheet","selector","rules","insertRule","addRule","getCssRulesLength","cssRules","arr","callback","scope","classListSupport","hasClass","str","addClass","removeClass","hasAttr","attr","getAttr","isNodeList","setAttrs","els","attrs","removeAttrs","attrLength","arrayFromNodeList","nl","hideElement","forceHide","display","showElement","isVisible","getComputedStyle","whichProperty","props","Props","toUpperCase","prefix","prop","getEndProperty","propIn","propOut","endProp","supportsPassive","passiveOption","passive","addEvents","preventScrolling","removeEvents","Events","topics","on","eventName","fn","off","splice","emit","data","tns","container","mode","axis","items","gutter","edgePadding","fixedWidth","autoWidth","viewportMax","slideBy","center","controls","controlsPosition","controlsText","controlsContainer","prevButton","nextButton","nav","navPosition","navContainer","navAsThumbnails","arrowKeys","speed","autoplay","autoplayPosition","autoplayTimeout","autoplayDirection","autoplayText","autoplayHoverPause","autoplayButton","autoplayButtonOutput","autoplayResetOnVisibility","animateIn","animateOut","animateNormal","animateDelay","loop","rewind","autoHeight","responsive","lazyload","lazyloadSelector","touch","mouseDrag","swipeAngle","nested","preventActionWhenRunning","preventScrollOnTouch","freezable","onInit","useLocalStorage","win","KEYS","ENTER","SPACE","LEFT","RIGHT","tnsStorage","localStorageAccess","browserInfo","uid","localStorage","getItem","removeItem","CALC","div","result","val","vals","width","offsetWidth","calc","PERCENTAGELAYOUT","supported","wrapper","outer","abs","count","percentageLayout","CSSMQ","rule","styleSheet","cssText","createTextNode","currentStyle","mediaquerySupport","TRANSFORM","HAS3DTRANSFORMS","tf","has3d","cssTF","getPropertyValue","has3DTransforms","TRANSITIONDURATION","TRANSITIONDELAY","ANIMATIONDURATION","ANIMATIONDELAY","TRANSITIONEND","ANIMATIONEND","supportConsoleWarn","tnsList","optionsElements","nodeName","carousel","responsiveTem","updateOptions","middleWrapper","breakpointZone","horizontal","outerWrapper","innerWrapper","containerParent","containerHTML","outerHTML","slideItems","slideCount","windowWidth","getWindowWidth","isOn","setBreakpointZone","slidePositions","imgsComplete","liveregionCurrent","itemsMax","media","getOption","viewport","getViewportWidth","floor","fixedWidthViewportWidth","slideItemsOut","cloneCount","bp","tem","ceil","getItemsMax","hasOption","slideCountNew","hasRightDeadZone","rightBoundary","getRightBoundary","updateIndexBeforeTransform","transformAttr","transformPrefix","transformPostfix","getIndexMax","getStartIndex","indexCached","indexMin","getCurrentSlide","indexMax","moveDirectionExpected","running","events","newContainerClasses","slideId","tnsId","freeze","getFreeze","frozen","controlsEvents","onControlsClick","getEvent","keyIndex","navEvents","onTransitionEnd","getTarget","navIndex","navClicked","Number","targetIndexBase","pages","goTo","navCurrentIndex","animating","stopAutoplay","curElement","setFocus","navItems","hoverEvents","stopAutoplayTimer","autoplayHoverPaused","setAutoplayTimer","visibilityEvent","hidden","autoplayVisibilityPaused","docmentKeydownEvent","touchEvents","onPanStart","onPanMove","onPanEnd","dragEvents","hasControls","hasNav","hasAutoplay","hasTouch","hasMouseDrag","slideActiveClass","imgCompleteClass","imgEvents","imgLoaded","img","imgCompleted","preventScroll","prevIsButton","nextIsButton","controlsContainerHTML","prevButtonHTML","nextButtonHTML","navContainerHTML","getPages","pagesCached","getCurrentNavIndex","navCurrentIndexCached","navActiveClass","navStr","navStrCurrent","autoplayTimer","autoplayUserPaused","autoplayButtonHTML","autoplayHtmlStrings","translateInit","rafIndex","initPosition","lastPosition","panStart","getDist","resetVariblesWhenDisable","fragmentBefore","fragmentAfter","num","cloneFirst","cloneLast","initStructure","fontSize","slide","marginLeft","getSlideMarginLeft","getTransitionDurationStyle","getInnerWrapperStyles","getContainerWidth","getSlideWidthStyle","getSlideGutterStyle","getAnimationDurationStyle","update_carousel_transition_duration","opts","middleWrapperStr","innerWrapperStr","containerStr","slideStr","itemsBP","fixedWidthBP","speedBP","edgePaddingBP","autoHeightBP","gutterBP","initSheet","initSliderTransform","updateIndex","leftEdge","rightEdge","transformCore","element","postfix","to","tick","unit","from","positionTick","resetDuration","doContainerTransform","getContainerTransformValue","moveElement","updateContentWrapperHeight","eve","animateSlide","version","getInfo","play","startAutoplay","pause","updateSliderHeight","updateInnerWrapperHeight","destroy","ownerNode","onResize","toggleAutoplay","clearInterval","htmlList","prevEl","previousElementSibling","parentEl","nextElementSibling","firstElementChild","rebuild","condition","ind","getAbsIndex","absIndex","innerWidth","clientWidth","getInsertPosition","pos","gap","getClientWidth","rect","right","ww","edgePaddingTem","gutterTem","fixedWidthTem","speedTem","gutterTemUnit","itemsTem","dividend","getCSSPrefix","substring","imgs","src","imgsLoadedCheck","getImageArray","initSliderTransformStyleCheck","doContainerTransformSilent","initTools","initEvents","stylesApplicationCheck","toFixed","initSliderTransformCore","setSlidePositions","updateSlideStatus","insertAdjacentHTML","getLiveRegionStr","txt","navHtml","hiddenStr","updateNavVisibility","isButton","updateControlsStatus","disableUI","resizeTasks","doAutoHeight","doLazyLoad","disableSlider","freezeSlider","additionalUpdates","bpChanged","breakpointZoneTem","needContainerTransform","indChanged","itemsChanged","disableTem","freezeTem","arrowKeysTem","controlsTem","navTem","touchTem","mouseDragTem","autoplayTem","autoplayHoverPauseTem","autoplayResetOnVisibilityTem","indexTem","autoHeightTem","controlsTextTem","centerTem","autoplayTextTem","classN","enableUI","enableSlider","margin","unfreezeSlider","height","html","len","updateLiveRegion","updateGallerySlidePositions","autoheightTem","deleteRule","removeRule","removeCSSRule","vp","getVisibleSlideRange","start","end","rangestart","rangeend","parseFloat","point","cell","stopPropagation","srcset","navPrev","navCurrent","updateNavStatus","getMaxSlideHeight","slideStart","slideRange","heights","maxHeight","wp","attr2","base","range","getLowerCaseNodeName","isAriaDisabled","disEnableElement","prevDisabled","nextDisabled","disablePrev","disableNext","getCenterGap","denominator","number","classOut","classIn","isOut","render","sliderMoved","strTrans","event","propertyName","targetIndex","indexGap","factor","dir","passEventObject","targetIn","setInterval","updateAutoplayButton","action","isTouchEvent","changedTouches","srcElement","preventDefaultBehavior","returnValue","getMoveDirectionExpected","angle","atan2","PI","direction","$","clientX","clientY","panUpdate","err","dist","preventClick","indexMoved","moved","rough","displayIndex","factory","lazySizes","lazysizes","lazySizesCfg","lazySizesDefaults","lazyClass","loadedClass","loadingClass","preloadClass","errorClass","autosizesClass","fastLoadedClass","iframeLoadMode","srcAttr","srcsetAttr","sizesAttr","minSize","customMedia","expFactor","hFac","loadMode","loadHidden","ricTimeout","lazySizesConfig","lazysizesConfig","getElementsByClassName","cfg","noSupport","docElem","supportPicture","HTMLPictureElement","requestIdleCallback","regPicture","loadEvents","regClassCache","ele","cls","RegExp","trim","reg","addRemoveLoadEvents","dom","evt","triggerEvent","elem","noBubbles","noCancelable","instance","updatePolyfill","full","polyfill","picturefill","pf","reevaluate","elements","getCSS","getWidth","parent","_lazysizesWidth","rAF","firstFns","secondFns","fns","run","runFns","waiting","shift","rafBatch","queue","_lsFlush","rAFIt","simple","that","args","debounce","func","timeout","timestamp","later","last","loader","regImg","regIframe","supportScroll","currentExpand","isLoading","lowRuns","resetPreloading","isBodyHidden","isNestedVisible","elemExpand","outerRect","visible","eLtop","eLbottom","eLleft","eLright","bottom","checkElements","eLlen","autoLoadElem","loadedSomething","elemNegativeExpand","elemExpandVal","beforeExpandVal","defaultExpand","preloadExpand","lazyloadElems","_lazyRace","prematureUnveil","unveilElement","expand","clientHeight","_defEx","eLvW","elvH","isCompleted","preloadElems","preloadAfterLoad","throttledCheckElements","lastTime","gDelay","rICTimeout","idleCallback","isPriority","throttle","switchLoadingClass","_lazyCache","rafSwitchLoadingClass","rafedSwitchLoadingClass","handleSources","source","sourceSrcset","lazyUnveil","isAuto","sizes","isImg","isPicture","firesLoad","defaultPrevented","resetPreloadingTimer","getElementsByTagName","contentWindow","changeIframeSrc","isLoaded","complete","naturalWidth","loading","autoSizer","updateElem","afterScroll","altLoadmodeScrollListner","onload","started","persisted","loadingElements","checkElems","unveil","_aLSL","sizeElement","sources","dataAttr","getSizeElement","debouncedUpdateElementsSizes","autosizesElems","uP","aC","rC","hC","fire","gW","ElementPrototype","Node","HTMLElement","regArtDirect","regDescriptors","regArtDirectTags","regSplit","matchesSelector","oMatchesSelector","imgCfg","picture","fontFamily","config","autoArtDirect","tags","match","split","toTagSelector","getArtDirectConfig","selectSource","tag","toSourceObj","ratio","aspectRatio","isSelected","matchMedia","sortAspectRatio","source1","source2","setMedia","_lsMedia","imgAspectRatio","sort","closestSource","aspecRatio","getClosestSource","bgLoad","regBgUrlEscape","uniqueUrls","addStyleScript","insertElem","rel","href","onerror","url","tmp","bg","poster","preload","er","requireJs","backgroundImage","stringify","regWhite","regSplitSet","regSource","regType","allowedBackgroundSize","contain","cover","setTypeOrMedia","typeMatch","proxyLoad","_lazybgset","image","currentSrc","useSrc","fullSrc","_lazybgsetLoading","set","alt","sets","optimumx","createPicture","bgSize","backgroundSize","getBgSize","_lazysizesParentFit"],"mappings":";6EAAiEA,EAAOC,QAA0I,SAASC,GAAG,SAASC,EAAEC,GAAG,GAAGC,EAAED,GAAG,OAAOC,EAAED,GAAGH,QAAQ,IAAIK,EAAED,EAAED,GAAG,CAACH,QAAQ,GAAGM,GAAGH,EAAEI,QAAO,GAAI,OAAON,EAAEE,GAAGK,KAAKH,EAAEL,QAAQK,EAAEA,EAAEL,QAAQE,GAAGG,EAAEE,QAAO,EAAGF,EAAEL,QAAQ,IAAII,EAAE,GAAG,OAAOF,EAAEO,EAAER,EAAEC,EAAEQ,EAAEN,EAAEF,EAAES,EAAE,QAAQT,EAAE,GAAvM,CAA2M,CAAC,SAASD,EAAEC,EAAEE,GAAG,aAAa,SAASD,EAAEF,GAAG,OAAOA,GAAGA,EAAEW,WAAWX,EAAE,CAACY,QAAQZ,GAAG,IAAII,EAAES,OAAOC,QAAQ,SAASd,GAAG,IAAI,IAAIC,EAAE,EAAEA,EAAEc,UAAUC,OAAOf,IAAI,CAAC,IAAIE,EAAEY,UAAUd,GAAG,IAAI,IAAIC,KAAKC,EAAEU,OAAOI,UAAUC,eAAeX,KAAKJ,EAAED,KAAKF,EAAEE,GAAGC,EAAED,IAAI,OAAOF,GAAUmB,GAAGjB,EAARC,EAAE,IAAWA,EAAE,IAAIiB,EAAElB,EAAEiB,GAAUE,EAAEnB,EAAPC,EAAE,IAAiBmB,EAAEpB,EAAPC,EAAE,IAAiBO,EAAER,EAAPC,EAAE,IAAkBoB,EAAErB,EAARC,EAAE,KAAmBqB,EAAEtB,EAARC,EAAE,KAAmBsB,EAAEvB,EAARC,EAAE,KAAWuB,EAAE,GAAGC,GAAE,EAAGC,EAAE,CAACC,OAAO,IAAIC,MAAM,EAAEC,OAAO,OAAOC,SAAS,IAAIC,SAAQ,EAAGC,MAAK,EAAGC,WAAW,mBAAmBC,cAAc,GAAGC,cAAc,GAAGC,yBAAwB,GAAIC,EAAE,WAAW,IAAIvC,EAAEe,UAAUC,OAAO,QAAG,IAASD,UAAU,IAAIA,UAAU,GAAG,GAAGf,IAAI2B,GAAE,GAAIA,EAAE,OAAOD,GAAE,EAAGF,EAAEZ,SAASc,EAAEE,IAAG,EAAGL,EAAEX,SAASc,EAAEE,EAAEM,MAAMR,GAAGc,EAAE,WAAWd,GAAE,EAAGD,EAAEb,WAAW2B,KAA4+CvC,EAAED,QAAQ,CAAC0C,KAAroC,SAASzC,GAAG4B,EAAExB,EAAEwB,EAAE5B,GAAG0B,GAAE,EAAGD,EAAEb,WAAW,IAAIX,EAAEyC,SAASC,MAAMC,OAAOC,KAAK,OAAzO,SAAS7C,GAAG,OAAW,IAAJA,GAAQ,WAAWA,GAAGU,EAAEE,QAAQkC,UAAU,UAAU9C,GAAGU,EAAEE,QAAQmC,SAAS,WAAW/C,GAAGU,EAAEE,QAAQoC,UAAU,mBAAmBhD,IAAS,IAANA,IAA2FiD,CAAErB,EAAEK,UAAUhC,OAA7byB,EAAEwB,SAAQ,SAASlD,EAAEC,GAAGD,EAAEmD,KAAKC,gBAAgB,YAAYpD,EAAEmD,KAAKC,gBAAgB,mBAAmBpD,EAAEmD,KAAKC,gBAAgB,qBAAqBpD,EAAEmD,KAAKC,gBAAgB,sBAA4RxB,EAAEU,yBAAyBhB,EAAEV,QAAQyC,gBAAgBC,QAAQC,KAAK,qLAAqL3B,EAAEU,yBAAwB,GAAII,SAASc,cAAc,QAAQC,aAAa,kBAAkB7B,EAAEG,QAAQW,SAASc,cAAc,QAAQC,aAAa,oBAAoB7B,EAAEI,UAAUU,SAASc,cAAc,QAAQC,aAAa,iBAAiB7B,EAAEE,OAAO,qBAAqBF,EAAEO,YAAY,CAAC,WAAW,eAAeuB,QAAQhB,SAASiB,aAAa,EAAEpB,GAAE,GAAI,SAASX,EAAEO,WAAWS,OAAOgB,iBAAiBhC,EAAEO,YAAW,WAAWI,GAAE,MAAMG,SAASkB,iBAAiBhC,EAAEO,YAAW,WAAWI,GAAE,MAAMK,OAAOgB,iBAAiB,UAAS,EAAGvC,EAAET,SAAS2B,EAAEX,EAAES,eAAc,IAAKO,OAAOgB,iBAAiB,qBAAoB,EAAGvC,EAAET,SAAS2B,EAAEX,EAAES,eAAc,IAAKO,OAAOgB,iBAAiB,UAAS,EAAGxC,EAAER,UAAS,YAAW,EAAGW,EAAEX,SAASc,EAAEE,EAAEM,QAAON,EAAEQ,gBAAgBR,EAAEU,yBAAyBhB,EAAEV,QAAQiD,MAAM,aAAarB,GAAGd,IAAsBoC,QAAQvB,EAAEwB,YAAYvB,IAAI,SAASxC,EAAEC,KAAK,CAAC,CAAC,CAAC,CAAC,SAASD,EAAEC,IAAG,SAAUA,GAAG,aAAa,SAASE,EAAEH,EAAEC,EAAEE,GAAG,SAASD,EAAED,GAAG,IAAIE,EAAEoB,EAAErB,EAAE8D,EAAE,OAAOzC,EAAEyC,OAAE,EAAOrC,EAAE1B,EAAEgE,EAAEjE,EAAEkE,MAAMhE,EAAEC,GAAG,SAASgE,EAAEnE,GAAG,OAAO2B,EAAE3B,EAAEyB,EAAE2C,WAAWC,EAAEpE,GAAGqE,EAAEpE,EAAEF,GAAGiE,EAA0D,SAASxD,EAAET,GAAG,IAAIG,EAAEH,EAAE0B,EAAQ,YAAO,IAASA,GAAGvB,GAAGF,GAAGE,EAAE,GAAG8C,GAAlCjD,EAAE2B,GAAsCH,EAAE,SAAS6C,IAAI,IAAIrE,EAAEwC,IAAI,OAAO/B,EAAET,GAAGsB,EAAEtB,QAAQyB,EAAE2C,WAAWC,EAAtL,SAAWrE,GAAG,IAAgBI,EAAEH,GAAZD,EAAE0B,GAAc,OAAOuB,EAAEV,EAAEnC,EAAEoB,GAAvBxB,EAAE2B,IAA0BvB,EAAkIe,CAAEnB,KAAK,SAASsB,EAAEtB,GAAG,OAAOyB,OAAE,EAAO8C,GAAGhD,EAAErB,EAAEF,IAAIuB,EAAEyC,OAAE,EAAOC,GAAuG,SAASzD,IAAI,IAAIR,EAAEwC,IAAIrC,EAAEM,EAAET,GAAG,GAAGuB,EAAER,UAAUiD,EAAEQ,KAAK9C,EAAE1B,EAAEG,EAAE,CAAC,QAAG,IAASsB,EAAE,OAAO0C,EAAEzC,GAAG,GAAGuB,EAAE,OAAOxB,EAAE2C,WAAWC,EAAEpE,GAAGC,EAAEwB,GAAG,YAAO,IAASD,IAAIA,EAAE2C,WAAWC,EAAEpE,IAAIgE,EAAE,IAAI1C,EAAEyC,EAAExC,EAAEyC,EAAExC,EAAEC,EAAEC,EAAE,EAAE2C,GAAE,EAAGrB,GAAE,EAAGsB,GAAE,EAAG,GAAG,mBAAmBvE,EAAE,MAAM,IAAIyE,UAAUpD,GAAG,OAAOpB,EAAEmB,EAAEnB,IAAI,EAAEG,EAAED,KAAKmE,IAAInE,EAAEuE,QAAwBlD,GAAhByB,EAAE,YAAY9C,GAAMyB,EAAER,EAAEjB,EAAEwE,UAAU,EAAE1E,GAAGuB,EAAE+C,EAAE,aAAapE,IAAIA,EAAEyE,SAASL,GAAG/D,EAAEqE,OAA3c,gBAAa,IAASpD,GAAGqD,aAAarD,GAAGE,EAAE,EAAEJ,EAAEG,EAAEsC,EAAEvC,OAAE,GAA+ZjB,EAAEuE,MAA1Z,WAAa,YAAO,IAAStD,EAAEwC,EAAE3C,EAAEkB,MAA+XhC,EAAsM,SAASJ,EAAEJ,GAAG,IAAIC,OAAE,IAAoBD,EAAE,YAAYS,EAAET,GAAG,QAAQA,IAAI,UAAUC,GAAG,YAAYA,GAA+E,SAASkB,EAAEnB,GAAG,MAAM,gBAAW,IAAoBA,EAAE,YAAYS,EAAET,KAA/I,SAAWA,GAAG,QAAQA,GAAG,gBAAW,IAAoBA,EAAE,YAAYS,EAAET,IAA4EmE,CAAEnE,IAAI2B,EAAEpB,KAAKP,IAAIsB,EAAE,SAASF,EAAEpB,GAAG,GAAG,iBAAiBA,EAAE,OAAOA,EAAE,GAAGmB,EAAEnB,GAAG,OAAOqE,EAAE,GAAGjE,EAAEJ,GAAG,CAAC,IAAIC,EAAE,mBAAmBD,EAAEgF,QAAQhF,EAAEgF,UAAUhF,EAAEA,EAAEI,EAAEH,GAAGA,EAAE,GAAGA,EAAE,GAAG,iBAAiBD,EAAE,OAAO,IAAIA,EAAEA,GAAGA,EAAEA,EAAEA,EAAEiF,QAAQC,EAAE,IAAI,IAAI/E,EAAEK,EAAE2E,KAAKnF,GAAG,OAAOG,GAAGoB,EAAE4D,KAAKnF,GAAGgE,EAAEhE,EAAEoF,MAAM,GAAGjF,EAAE,EAAE,GAAGO,EAAEyE,KAAKnF,GAAGqE,GAAGrE,EAAE,IAAIS,EAAE,mBAAmB4E,QAAQ,iBAAiBA,OAAOC,SAAS,SAAStF,GAAG,cAAcA,GAAG,SAASA,GAAG,OAAOA,GAAG,mBAAmBqF,QAAQrF,EAAEuF,cAAcF,QAAQrF,IAAIqF,OAAOpE,UAAU,gBAAgBjB,GAAGqB,EAAE,sBAAsBgD,EAAEmB,IAAIlE,EAAE,kBAAkB4D,EAAE,aAAaxE,EAAE,qBAAqBF,EAAE,aAAae,EAAE,cAAcyC,EAAEyB,SAASjE,EAAE,gBAAW,IAAoBvB,EAAE,YAAYQ,EAAER,KAAKA,GAAGA,EAAEY,SAASA,QAAQZ,EAAEgE,EAAE,WAAW,oBAAoByB,KAAK,YAAYjF,EAAEiF,QAAQA,MAAMA,KAAK7E,SAASA,QAAQ6E,KAAKjE,EAAED,GAAGyC,GAAG0B,SAAS,cAATA,GAA6ChE,EAAjBd,OAAOI,UAAc2E,SAAShE,EAAEiE,KAAKC,IAAIvD,EAAEsD,KAAKE,IAAIvD,EAAE,WAAW,OAAOf,EAAEuE,KAAKC,OAAOjG,EAAED,QAA90C,SAAWC,EAAEC,EAAEC,GAAG,IAAIiE,GAAE,EAAGhD,GAAE,EAAG,GAAG,mBAAmBnB,EAAE,MAAM,IAAIyE,UAAUpD,GAAG,OAAOjB,EAAEF,KAAKiE,EAAE,YAAYjE,IAAIA,EAAEwE,QAAQP,EAAEhD,EAAE,aAAajB,IAAIA,EAAE0E,SAASzD,GAAGhB,EAAEH,EAAEC,EAAE,CAACyE,QAAQP,EAAEQ,QAAQ1E,EAAE2E,SAASzD,OAA0pCZ,KAAKN,EAAE,WAAW,OAAOuE,KAAlB,KAA4B,SAASxE,EAAEC,IAAG,SAAUA,GAAG,aAAw2B,SAASC,EAAEF,GAAG,IAAIC,OAAE,IAAoBD,EAAE,YAAYoB,EAAEpB,GAAG,QAAQA,IAAI,UAAUC,GAAG,YAAYA,GAA+E,SAASkE,EAAEnE,GAAG,MAAM,gBAAW,IAAoBA,EAAE,YAAYoB,EAAEpB,KAA/I,SAAWA,GAAG,QAAQA,GAAG,gBAAW,IAAoBA,EAAE,YAAYoB,EAAEpB,IAA4EI,CAAEJ,IAAI0B,EAAEnB,KAAKP,IAAIqE,EAAE,SAASlD,EAAEnB,GAAG,GAAG,iBAAiBA,EAAE,OAAOA,EAAE,GAAGmE,EAAEnE,GAAG,OAAOqB,EAAE,GAAGnB,EAAEF,GAAG,CAAC,IAAIC,EAAE,mBAAmBD,EAAEgF,QAAQhF,EAAEgF,UAAUhF,EAAEA,EAAEE,EAAED,GAAGA,EAAE,GAAGA,EAAE,GAAG,iBAAiBD,EAAE,OAAO,IAAIA,EAAEA,GAAGA,EAAEA,EAAEA,EAAEiF,QAAQ3D,EAAE,IAAI,IAAInB,EAAEO,EAAEyE,KAAKnF,GAAG,OAAOG,GAAGK,EAAE2E,KAAKnF,GAAGuB,EAAEvB,EAAEoF,MAAM,GAAGjF,EAAE,EAAE,GAAG+E,EAAEC,KAAKnF,GAAGqB,GAAGrB,EAAE,IAAIoB,EAAE,mBAAmBiE,QAAQ,iBAAiBA,OAAOC,SAAS,SAAStF,GAAG,cAAcA,GAAG,SAASA,GAAG,OAAOA,GAAG,mBAAmBqF,QAAQrF,EAAEuF,cAAcF,QAAQrF,IAAIqF,OAAOpE,UAAU,gBAAgBjB,GAAGS,EAAE,sBAAsBY,EAAEmE,IAAInB,EAAE,kBAAkB/C,EAAE,aAAa4D,EAAE,qBAAqBxE,EAAE,aAAaF,EAAE,cAAce,EAAEkE,SAASzB,EAAE,gBAAW,IAAoB/D,EAAE,YAAYmB,EAAEnB,KAAKA,GAAGA,EAAEY,SAASA,QAAQZ,EAAEuB,EAAE,WAAW,oBAAoBkE,KAAK,YAAYtE,EAAEsE,QAAQA,MAAMA,KAAK7E,SAASA,QAAQ6E,KAAKzB,EAAED,GAAGxC,GAAGmE,SAAS,cAATA,GAA6CjE,EAAjBb,OAAOI,UAAc2E,SAASjE,EAAEkE,KAAKC,IAAIlE,EAAEiE,KAAKE,IAAIxD,EAAE,WAAW,OAAO0B,EAAE+B,KAAKC,OAAOjG,EAAED,QAAr+D,SAAWC,EAAEC,EAAEE,GAAG,SAASC,EAAEH,GAAG,IAAIE,EAAEoB,EAAErB,EAAE8D,EAAE,OAAOzC,EAAEyC,OAAE,EAAOxB,EAAEvC,EAAEgE,EAAEjE,EAAEkE,MAAMhE,EAAEC,GAAG,SAASgE,EAAEnE,GAAG,OAAOwC,EAAExC,EAAEyB,EAAE2C,WAAWC,EAAEpE,GAAGqE,EAAElE,EAAEJ,GAAGiE,EAA0D,SAAS5C,EAAErB,GAAG,IAAIG,EAAEH,EAAE0B,EAAQ,YAAO,IAASA,GAAGvB,GAAGF,GAAGE,EAAE,GAAG8C,GAAlCjD,EAAEwC,GAAsChB,EAAE,SAAS6C,IAAI,IAAIrE,EAAEuC,IAAI,OAAOlB,EAAErB,GAAGsB,EAAEtB,QAAQyB,EAAE2C,WAAWC,EAAtL,SAAWrE,GAAG,IAAgBI,EAAEH,GAAZD,EAAE0B,GAAc,OAAOuB,EAAErB,EAAExB,EAAEoB,GAAvBxB,EAAEwC,IAA0BpC,EAAkIgB,CAAEpB,KAAK,SAASsB,EAAEtB,GAAG,OAAOyB,OAAE,EAAO8C,GAAGhD,EAAEnB,EAAEJ,IAAIuB,EAAEyC,OAAE,EAAOC,GAAuG,SAASzD,IAAI,IAAIR,EAAEuC,IAAIpC,EAAEkB,EAAErB,GAAG,GAAGuB,EAAER,UAAUiD,EAAEQ,KAAK9C,EAAE1B,EAAEG,EAAE,CAAC,QAAG,IAASsB,EAAE,OAAO0C,EAAEzC,GAAG,GAAGuB,EAAE,OAAOxB,EAAE2C,WAAWC,EAAEpE,GAAGG,EAAEsB,GAAG,YAAO,IAASD,IAAIA,EAAE2C,WAAWC,EAAEpE,IAAIgE,EAAE,IAAI1C,EAAEyC,EAAExC,EAAEyC,EAAExC,EAAEC,EAAEc,EAAE,EAAE8B,GAAE,EAAGrB,GAAE,EAAGsB,GAAE,EAAG,GAAG,mBAAmBvE,EAAE,MAAM,IAAIyE,UAAUhE,GAAG,OAAOR,EAAEkB,EAAElB,IAAI,EAAEC,EAAEC,KAAKmE,IAAInE,EAAEuE,QAAwBlD,GAAhByB,EAAE,YAAY9C,GAAMwB,EAAER,EAAEhB,EAAEwE,UAAU,EAAE1E,GAAGuB,EAAE+C,EAAE,aAAapE,IAAIA,EAAEyE,SAASL,GAAG/D,EAAEqE,OAA3c,gBAAa,IAASpD,GAAGqD,aAAarD,GAAGe,EAAE,EAAEjB,EAAEG,EAAEsC,EAAEvC,OAAE,GAA+ZjB,EAAEuE,MAA1Z,WAAa,YAAO,IAAStD,EAAEwC,EAAE3C,EAAEiB,MAA+X/B,KAAwpCD,KAAKN,EAAE,WAAW,OAAOuE,KAAlB,KAA4B,SAASxE,EAAEC,GAAG,aAAgL,SAASC,IAAI,OAAO0C,OAAOsD,kBAAkBtD,OAAOuD,wBAAwBvD,OAAOwD,oBAA+K,SAASjF,EAAEnB,GAAGA,GAAGA,EAAEkD,SAAQ,SAASlD,GAAG,IAAIC,EAAEoG,MAAMpF,UAAUmE,MAAM7E,KAAKP,EAAEsG,YAAYpG,EAAEmG,MAAMpF,UAAUmE,MAAM7E,KAAKP,EAAEuG,cAA4B,GAAtjB,SAASpG,EAAEH,GAAG,IAAIC,OAAE,EAAOC,OAAE,EAAgB,IAAID,EAAE,EAAEA,EAAED,EAAEgB,OAAOf,GAAG,EAAE,CAAC,IAAGC,EAAEF,EAAEC,IAAKuG,SAAStG,EAAEsG,QAAQC,IAAI,OAAM,EAAG,GAAKvG,EAAEwG,UAAUvG,EAAED,EAAEwG,UAAU,OAAM,EAAG,OAAM,EAAyZvG,CAAfF,EAAE0G,OAAOzG,IAAW,OAAOkB,OAAMP,OAAO+F,eAAe3G,EAAE,aAAa,CAAC4G,OAAM,IAAK,IAAIzF,EAAE,aAAanB,EAAEW,QAAQ,CAACyC,YAAhZ,WAAa,QAAQnD,KAAyY2D,MAArY,SAAW7D,EAAEC,GAAG,IAAIE,EAAEyC,OAAOF,SAAeyB,EAAE,IAANjE,IAAM,CAAMiB,GAAGC,EAAEnB,EAAEkE,EAAE2C,QAAQ3G,EAAE4G,gBAAgB,CAACC,WAAU,EAAGC,SAAQ,EAAGV,cAAa,OAAkR,SAASvG,EAAEC,GAAG,aAA2G,SAASC,IAAI,OAAOgH,UAAUC,WAAWD,UAAUE,QAAQxE,OAAOyE,OAAO,GAAGxG,OAAO+F,eAAe3G,EAAE,aAAa,CAAC4G,OAAM,IAAK,IAAIzG,EAAE,WAAW,SAASJ,EAAEA,EAAEC,GAAG,IAAI,IAAIE,EAAE,EAAEA,EAAEF,EAAEe,OAAOb,IAAI,CAAC,IAAID,EAAED,EAAEE,GAAGD,EAAEoH,WAAWpH,EAAEoH,aAAY,EAAGpH,EAAEqH,cAAa,EAAG,UAAUrH,IAAIA,EAAEsH,UAAS,GAAI3G,OAAO+F,eAAe5G,EAAEE,EAAEuH,IAAIvH,IAAI,OAAO,SAASD,EAAEE,EAAED,GAAG,OAAOC,GAAGH,EAAEC,EAAEgB,UAAUd,GAAGD,GAAGF,EAAEC,EAAEC,GAAGD,GAA7O,GAAmPkE,EAAE,2TAA2ThD,EAAE,0kDAA0kDC,EAAE,sVAAsVX,EAAE,0kDAA0kDY,EAAE,WAAW,SAASrB,KAAvxI,SAAWA,EAAEC,GAAG,KAAKD,aAAaC,GAAG,MAAM,IAAIwE,UAAU,qCAAkuItE,CAAEqE,KAAKxE,GAAG,OAAOI,EAAEJ,EAAE,CAAC,CAACyH,IAAI,QAAQZ,MAAM,WAAW,IAAI7G,EAAEE,IAAI,SAASiE,EAAEgB,KAAKnF,KAAKmB,EAAEgE,KAAKnF,EAAE0H,OAAO,EAAE,OAAO,CAACD,IAAI,SAASZ,MAAM,WAAW,IAAI7G,EAAEE,IAAI,SAASkB,EAAE+D,KAAKnF,KAAKS,EAAE0E,KAAKnF,EAAE0H,OAAO,EAAE,OAAO,CAACD,IAAI,SAASZ,MAAM,WAAW,OAAOrC,KAAK1B,WAAW0B,KAAKzB,YAAY/C,EAAlS,GAAuSC,EAAEW,QAAQ,IAAIS,GAAG,SAASrB,EAAEC,GAAG,aAAaY,OAAO+F,eAAe3G,EAAE,aAAa,CAAC4G,OAAM,IAAyT5G,EAAEW,QAApG,SAASZ,EAAEC,GAAG,IAAIC,EAAE0C,OAAO+E,YAAYvH,EAAEwC,OAAOgF,YAAY5H,EAAEkD,SAAQ,SAASlD,EAAEmE,IAA7R,SAASnE,EAAEC,EAAEE,GAAG,IAAID,EAAEF,EAAEmD,KAAK0E,aAAa,iBAAiB5H,EAAED,EAAE8H,SAAS9H,EAAEmD,KAAK4E,UAAUC,IAAI,oBAAe,IAAoB9H,IAAI,UAAUA,IAAIC,GAAG,SAASD,IAAIF,EAAEmD,KAAK4E,UAAUE,OAAO,eAAsG9H,CAAEH,EAAEI,EAAEF,EAAED,QAAmB,SAASD,EAAEC,EAAEE,GAAG,aAAgEU,OAAO+F,eAAe3G,EAAE,aAAa,CAAC4G,OAAM,IAAK,IAAY1C,EAAhH,SAAWnE,GAAG,OAAOA,GAAGA,EAAEW,WAAWX,EAAE,CAACY,QAAQZ,GAAkEE,CAARC,EAAE,KAA0IF,EAAEW,QAA/H,SAASZ,EAAEC,GAAG,OAAOD,EAAEkD,SAAQ,SAASlD,EAAEG,GAAGH,EAAEmD,KAAK4E,UAAUC,IAAI,YAAYhI,EAAE8H,UAAS,EAAG3D,EAAEvD,SAASZ,EAAEmD,KAAKlD,EAAE4B,WAAU7B,IAAgB,SAASA,EAAEC,EAAEE,GAAG,aAAgEU,OAAO+F,eAAe3G,EAAE,aAAa,CAAC4G,OAAM,IAAK,IAAY1C,EAAhH,SAAWnE,GAAG,OAAOA,GAAGA,EAAEW,WAAWX,EAAE,CAACY,QAAQZ,GAAkEE,CAARC,EAAE,KAAiyBF,EAAEW,QAAtxB,SAASZ,EAAEC,GAAG,IAAIE,EAAE,EAAED,EAAE,EAAEE,EAAEwC,OAAOgF,YAAYzG,EAAE,CAACU,OAAO7B,EAAE6H,aAAa,mBAAmBK,OAAOlI,EAAE6H,aAAa,mBAAmBM,gBAAgBnI,EAAE6H,aAAa,8BAA8B,OAAO1G,EAAEU,SAASuG,MAAMjH,EAAEU,UAAU3B,EAAEuF,SAAStE,EAAEU,SAASV,EAAE+G,QAAQxF,SAAS2F,iBAAiBlH,EAAE+G,UAAUlI,EAAE0C,SAAS2F,iBAAiBlH,EAAE+G,QAAQ,IAAI/H,GAAE,EAAGgE,EAAEvD,SAASZ,GAAGsI,IAAInH,EAAEgH,iBAAiB,IAAI,aAAa,MAAM,IAAI,gBAAgBhI,GAAGH,EAAEuI,aAAa,EAAE,MAAM,IAAI,gBAAgBpI,GAAGH,EAAEuI,aAAa,MAAM,IAAI,aAAapI,GAAGC,EAAE,EAAE,MAAM,IAAI,gBAAgBD,GAAGC,EAAE,EAAEJ,EAAEuI,aAAa,MAAM,IAAI,gBAAgBpI,GAAGC,EAAE,EAAEJ,EAAEuI,aAAa,EAAE,MAAM,IAAI,UAAUpI,GAAGC,EAAE,MAAM,IAAI,aAAaD,GAAGH,EAAEuI,aAAanI,EAAE,MAAM,IAAI,aAAaD,GAAGH,EAAEuI,aAAa,EAAEnI,EAAE,OAAOe,EAAEgH,iBAAiBhH,EAAEU,QAAQuG,MAAMnI,KAAKC,EAAED,GAAGE,EAAED,IAAgB,SAASF,EAAEC,GAAG,aAAaY,OAAO+F,eAAe3G,EAAE,aAAa,CAAC4G,OAAM,IAAgO5G,EAAEW,QAAvN,SAASZ,GAAG,IAAI,IAAIC,EAAE,EAAEE,EAAE,EAAEH,IAAIoI,MAAMpI,EAAEwI,cAAcJ,MAAMpI,EAAEyI,YAAYxI,GAAGD,EAAEwI,YAAY,QAAQxI,EAAE0I,QAAQ1I,EAAE2I,WAAW,GAAGxI,GAAGH,EAAEyI,WAAW,QAAQzI,EAAE0I,QAAQ1I,EAAE4I,UAAU,GAAG5I,EAAEA,EAAE6I,aAAa,MAAM,CAACP,IAAInI,EAAE2I,KAAK7I,KAAiB,SAASD,EAAEC,GAAG,aAAaY,OAAO+F,eAAe3G,EAAE,aAAa,CAAC4G,OAAM,IAAoI5G,EAAEW,QAA3H,SAASZ,GAAG,OAAOA,EAAEA,GAAG0C,SAAS2F,iBAAiB,cAAchC,MAAMpF,UAAU8H,IAAIxI,KAAKP,GAAE,SAASA,GAAG,MAAM,CAACmD,KAAKnD,W,iCCAltc,SAASgJ,EAAkB/I,EAAED,GAAG,IAAI,IAAIG,EAAE,EAAEA,EAAEH,EAAEgB,OAAOb,IAAI,CAAC,IAAIkB,EAAErB,EAAEG,GAAGkB,EAAEiG,WAAWjG,EAAEiG,aAAY,EAAGjG,EAAEkG,cAAa,EAAG,UAAUlG,IAAIA,EAAEmG,UAAS,GAAI3G,OAAO+F,eAAe3G,EAAEoB,EAAEoG,IAAIpG,IAAwG,SAAS4H,EAAgBhJ,EAAED,EAAEG,GAAG,OAAOH,KAAKC,EAAEY,OAAO+F,eAAe3G,EAAED,EAAE,CAAC6G,MAAM1G,EAAEmH,YAAW,EAAGC,cAAa,EAAGC,UAAS,IAAKvH,EAAED,GAAGG,EAAEF,EAAE,SAASiJ,EAAQlJ,EAAEC,GAAG,IAAIE,EAAEU,OAAOsI,KAAKnJ,GAAG,GAAGa,OAAOuI,sBAAsB,CAAC,IAAI/H,EAAER,OAAOuI,sBAAsBpJ,GAAGC,IAAIoB,EAAEA,EAAEgI,QAAO,SAASpJ,GAAG,OAAOY,OAAOyI,yBAAyBtJ,EAAEC,GAAGqH,eAAcnH,EAAEoJ,KAAKrF,MAAM/D,EAAEkB,GAAG,OAAOlB,EAAmuB,SAASqJ,IAAc,MAAM,iBAAiB5G,QAAQsE,UAAUuC,eAAeC,QAAQzI,UAAU0I,UAAUD,QAAQzI,UAAU0I,QAAQ,SAAS1J,GAAG,IAAID,EAAEwE,KAAK,IAAIvE,GAAG,iBAAiBA,EAAE,OAAO,KAAK,IAAI,IAAIE,EAAEF,EAAE2J,OAAO,GAAG5J,GAAGA,IAAI0C,SAAS1C,EAAEA,EAAE6J,WAAW,CAAC,GAAG,MAAM1J,GAAGH,EAAE+H,WAAW/H,EAAE+H,UAAU+B,SAAS7J,EAAEyH,OAAO,IAAI,OAAO1H,EAAE,GAAG,MAAMG,GAAGH,EAAEK,KAAKJ,EAAEyH,OAAO,GAAG,OAAO1H,EAAE,GAAG,MAAMG,GAAGH,EAAE+J,aAAa9J,EAAEyH,OAAO,EAAEzH,EAAEe,OAAO,IAAI,OAAOhB,EAAE,GAAGA,EAAE0I,QAAQsB,gBAAgB/J,EAAE,OAAOD,EAAE,OAAO,OAAO,IAAIiK,EAAS,SAASjK,EAAEG,GAAG,MAAM,CAAC+J,KAAK/J,EAAEgK,MAAMnK,EAAEoK,OAAO,SAASnK,GAAGD,EAAE+H,UAAUC,IAAI,GAAGrB,OAAOxG,EAAE,MAAMwG,OAAO1G,KAAKoK,UAAU,SAASpK,GAAGD,EAAE+H,UAAUuC,OAAO,GAAG3D,OAAOxG,EAAE,MAAMwG,OAAO1G,KAAKsK,UAAU,SAAStK,GAAGD,EAAE+H,UAAUE,OAAO,GAAGtB,OAAOxG,EAAE,MAAMwG,OAAO1G,KAAKuK,YAAY,SAASvK,GAAG,OAAOD,EAAE+H,UAAU+B,SAAS,GAAGnD,OAAOxG,EAAE,MAAMwG,OAAO1G,OAAOwK,EAAU,CAACC,KAAK,gBAAgBC,OAAO,wBAAwBC,MAAM,uBAAuBC,OAAO,wBAAwBC,YAAY,yBAAyBC,SAAS,0BAA0BC,mBAAmB,4BAA4BC,YAAY,8BAA8BC,QAAQ,OAAOC,YAAY,WAAWC,YAAY,WAAWC,YAAY,WAAWC,SAAS,QAAQC,kBAAkB,oBAAoBC,0BAA0B,0CAA0CC,uBAAuB,yBAAyBC,WAAW,aAAaC,WAAW,aAAaC,oBAAoB,sBAAsBC,iBAAiB,oBAAoBC,EAAc,CAACC,mBAAc,EAAOC,UAAU,CAAClE,SAAS,GAAGmE,KAAK,GAAGC,UAAU,IAAIC,kBAAiB,EAAGC,gCAA+B,EAAGC,yBAAyB,CAACC,QAAO,EAAGC,OAAM,GAAIC,iBAAgB,EAAGC,aAAY,EAAGC,mBAAkB,EAAGC,oBAAmB,EAAG1B,aAAY,GAAI,SAAS2B,IAAkB,IAAI3M,EAAED,EAAEG,EAAEkB,EAAEnB,EAAEsE,KAAKpE,EAAEsC,SAASmK,cAAc,OAAOpM,EAAEiC,SAASmK,cAAc,OAAO1L,EAAEuB,SAASmK,cAAc,OAAO3H,EAAEV,KAAKsI,GAAGC,QAAQ5I,EAAEK,KAAKsI,GAAGzE,iBAAiB,YAAY,GAAG7D,KAAKuI,QAAQ9B,eAAe5J,EAAEqB,SAASmK,cAAc,SAASX,UAAU1H,KAAKiG,UAAUQ,aAAazG,KAAKuI,QAAQf,UAAUC,OAAOjM,EAAE0C,SAASmK,cAAc,QAAQ1M,EAAEuC,SAASmK,cAAc,QAAQX,UAAU1H,KAAKiG,UAAUK,YAAY9K,EAAEkM,UAAU1H,KAAKiG,UAAUO,mBAAmBxG,KAAKsI,GAAGrJ,aAAae,KAAKiG,UAAUmB,oBAAoB,IAAIpH,KAAKuI,QAAQf,UAAUC,KAAKlE,YAAY9H,EAAEuE,KAAKuI,QAAQf,UAAUC,KAAKe,WAAU,IAAKd,UAAU1H,KAAKuI,QAAQf,UAAUE,UAAU1H,KAAKuI,QAAQf,UAAUE,UAAU,GAAGlM,EAAEiN,YAAYhN,IAAI,iBAAiBuE,KAAKuI,QAAQf,UAAUC,OAAOjM,EAAEkN,UAAU1I,KAAKuI,QAAQf,UAAUC,OAAOjM,GAAG,QAAQwE,KAAKuI,QAAQf,UAAUlE,UAAUrH,EAAEwM,YAAYjN,GAAG,EAAEmE,EAAEnD,OAAO,CAAC,IAAI,IAAIN,EAAE,EAAEA,EAAEyD,EAAEnD,OAAON,IAAI,CAAC,IAAI,IAAIY,EAAE6C,EAAEzD,GAAGyM,MAAM/L,EAAE+C,EAAEzD,GAAG2H,iBAAiB,UAAU5G,EAAEiB,SAASmK,cAAc,OAAOrM,EAAE,EAAEA,EAAEY,EAAEJ,OAAOR,IAAI,CAAC,IAAI4M,EAAE1K,SAASmK,cAAc,OAAO,GAAGO,EAAErF,UAAUC,IAAIxD,KAAKiG,UAAUI,QAAQuC,EAAE3J,aAAae,KAAKiG,UAAUkB,WAAWvK,EAAEZ,GAAGqG,OAAOuG,EAAEF,UAAU9L,EAAEZ,GAAG0M,UAAU1I,KAAK6I,kBAAkBjM,EAAEZ,GAAG4M,GAAG5I,KAAK8I,cAAclM,EAAEZ,GAAG4M,GAAGhM,EAAEZ,GAAG+M,SAAS,CAACtD,EAASmD,EAAE5I,KAAKiG,UAAUI,QAAQT,OAAO5F,KAAKiG,UAAUY,aAAahK,EAAEA,EAAE6L,UAAU9L,EAAEZ,GAAG0M,UAAU/L,EAAE+L,UAAU9L,EAAEZ,GAAG0M,UAAU,IAAIM,EAAEJ,EAAE5J,cAAc,0BAA0BgK,IAAIA,EAAEC,SAAQ,GAAIrM,EAAEZ,GAAGkN,UAAUzD,EAASmD,EAAE5I,KAAKiG,UAAUI,QAAQT,OAAO5F,KAAKiG,UAAUU,aAAa1J,EAAEwL,YAAYG,GAAG3L,EAAEsG,UAAUC,IAAIxD,KAAKiG,UAAUM,UAAUtJ,EAAEgC,aAAae,KAAKiG,UAAUiB,WAAWpK,GAAGkD,KAAK6I,kBAAkBlJ,EAAEzD,GAAGe,GAAGtB,EAAEA,EAAE8M,YAAYxL,GAAGhB,EAAEwM,YAAYxL,GAAGtB,GAAGM,EAAEwM,YAAY9M,OAAO,CAAC,IAAI,IAAI8C,EAAE,GAAGoB,EAAE,EAAEA,EAAEa,EAAElE,OAAOqD,IAAI,CAAC,IAAIE,EAAE7B,SAASmK,cAAc,OAAOtI,EAAEwD,UAAUC,IAAIxD,KAAKiG,UAAUI,QAAQtG,EAAE2I,UAAUhI,EAAEb,GAAG6I,UAAU3I,EAAEd,aAAae,KAAKiG,UAAUkB,WAAWzG,EAAEb,GAAGwC,OAAOrC,KAAK6I,kBAAkBnI,EAAEb,GAAGE,GAAGC,KAAK8I,cAAcpI,EAAEb,GAAGE,GAAG,IAAIoJ,EAAEpJ,EAAEf,cAAc,0BAA0BgB,KAAKsI,GAAGc,SAAS1I,EAAEb,GAAGkJ,WAAWtD,EAAS1F,EAAEC,KAAKiG,UAAUI,QAAQT,OAAO5F,KAAKiG,UAAUY,aAAapI,EAAEsG,KAAKhF,GAAGlD,EAAEA,EAAE6L,UAAUhI,EAAEb,GAAG6I,UAAU/L,EAAE+L,UAAUhI,EAAEb,GAAG6I,UAAUS,IAAIA,EAAEF,SAAQ,IAAKvI,EAAEb,GAAGkJ,WAAWtD,EAAS1F,EAAEC,KAAKiG,UAAUI,QAAQT,OAAO5F,KAAKiG,UAAUY,aAAahK,EAAEA,EAAE6L,UAAUhI,EAAEb,GAAG6I,UAAU/L,EAAE+L,UAAUhI,EAAEb,GAAG6I,UAAUS,IAAIA,EAAEF,SAAQ,IAAKvI,EAAEb,GAAGqJ,UAAUzD,EAAS1F,EAAEC,KAAKiG,UAAUI,QAAQT,OAAO5F,KAAKiG,UAAUU,aAAahL,EAAEA,EAAE8M,YAAY1I,GAAG9D,EAAEwM,YAAY1I,GAAG,GAAGC,KAAKuI,QAAQV,yBAAyBC,QAAQ9H,KAAKuI,QAAQ9B,aAAa3H,QAAQuK,KAAK,sGAAsGrJ,KAAKsI,GAAG,mEAAmE,EAAE7J,EAAEjC,OAAO,CAAC,IAAIgD,EAAEf,EAAE8F,KAAI,SAAS9I,GAAG,OAAOA,EAAE6N,aAAYtJ,KAAKuI,QAAQV,yBAAyBE,QAAQlL,EAAEA,EAAE6L,UAAUlJ,EAAE7C,EAAE+L,UAAUlJ,GAAGQ,KAAKuI,QAAQV,yBAAyBC,QAAQrJ,EAAEC,SAAQ,SAASjD,GAAGC,EAAE6N,sBAAsB9N,EAAEC,EAAE4M,GAAG3L,MAAKhB,GAAGM,EAAEwM,YAAY9M,GAAwQ,SAASoB,EAAEtB,EAAED,GAAGC,GAAGgK,EAAS7J,EAAEF,EAAEuK,UAAUC,MAAMN,OAAOpK,GAA5TA,GAAG,WAAWwE,KAAKuI,QAAQf,UAAUlE,UAAUrH,EAAEwM,YAAYjN,GAAGwE,KAAKuI,QAAQP,iBAAiBhI,KAAKsI,GAAGrJ,aAAae,KAAKiG,UAAUgB,uBAAuB,IAAIrL,EAAE2H,UAAUC,IAAIxD,KAAKiG,UAAUC,MAAMlG,KAAKuI,QAAQJ,oBAAoBnI,KAAK6I,kBAAkB7I,KAAKsI,GAAG1M,GAA6DmB,EAAEiD,KAAKsI,GAAGY,SAASlJ,KAAKiG,UAAUU,aAAa5J,EAAEiD,KAAKsI,GAAGc,SAASpJ,KAAKiG,UAAUW,aAAa3K,EAAEsH,UAAUC,IAAIxD,KAAKiG,UAAUG,OAAOzJ,EAAE4G,UAAUC,IAAIxD,KAAKiG,UAAUE,QAAQtJ,GAAGF,EAAE8L,YAAY5L,GAAx3K,SAAsBpB,EAAED,GAAGC,EAAE4J,WAAWmE,aAAahO,EAAEC,GAAGD,EAAEiN,YAAYhN,GAAmzKgO,CAAazJ,KAAKsI,GAAG1M,GAAGA,EAAE6M,YAAY9L,GAAGf,EAAE6M,YAAYxM,GAAG,SAASyN,IAAQ,IAAIjO,EAAEuE,KAAKuI,QAAQN,cAAcjD,IAAc,aAAa,QAAQhF,KAAK2J,eAAe3J,KAAK4J,WAAWC,KAAK7J,MAAMA,KAAKmG,OAAO/G,iBAAiB3D,EAAEuE,KAAK2J,gBAAgB,SAASG,IAAS9J,KAAKuI,QAAQL,oBAAoBlD,KAAehF,KAAK+J,OAAO3K,iBAAiB,cAAa,WAAWlB,SAAS8L,KAAKC,WAAU/L,SAASqE,gBAAgBgB,UAAU+B,SAAStF,KAAKiG,UAAUc,qBAAqB/G,KAAKkK,gBAAgBlK,KAAKmK,YAAYN,KAAK7J,MAAM9B,SAASkB,iBAAiB,QAAQY,KAAKkK,iBAAiBhM,SAASkB,iBAAiB,UAAUY,KAAKkK,iBAAiBhM,SAASqE,gBAAgBgB,UAAUC,IAAIxD,KAAKiG,UAAUc,mBAAmB/G,KAAKoK,2BAA0B,GAAI,SAASC,IAAU,IAAI,IAAI3O,EAAEsE,KAAKpE,EAAEoE,KAAKsI,GAAGC,QAAQtM,EAAE+D,KAAK+J,OAAOlG,iBAAiB,IAAI7D,KAAKiG,UAAUI,QAAQ5K,EAAE,SAASoB,GAAGZ,EAAEY,GAAGuC,iBAAiB,SAAQ,SAAS3D,GAAG,IAAIC,EAAE4M,GAAGY,SAAS,CAAC,IAAI1N,EAAEC,EAAE6O,cAAc,IAAI7E,EAASjK,EAAEE,EAAEuK,UAAUI,QAAQL,YAAYtK,EAAEuK,UAAUU,aAAa,CAAC,IAAIhL,EAAED,EAAE6M,QAAQ9B,YAAY/K,EAAEyK,OAAOjE,SAAS,GAAGxG,EAAEyK,OAAOzK,EAAE6O,mBAAmB,CAAC/O,EAAEC,EAAE+O,oBAAoBhP,EAAEiP,kBAAkB7O,EAAE8O,kBAAkBzO,EAAEwL,KAAK5K,IAAInB,EAAEiP,cAAcjP,EAAE4M,IAAI5M,EAAEkP,gBAAgBpP,GAAGE,EAAE6M,QAAQZ,mBAAmBjM,EAAE4M,GAAGc,UAAU1N,EAAE6M,QAAQV,yBAAyBE,MAAMrM,EAAEmP,qBAAqBnP,EAAE4M,MAAM3M,EAAE+M,UAAUhN,EAAEmP,qBAAqBnP,EAAE4M,KAAK5M,EAAE4M,GAAGc,UAAU1N,EAAE6M,QAAQV,yBAAyBC,OAAOpM,EAAE6N,sBAAsB/N,EAAEE,EAAE4M,GAAG5M,EAAEyK,QAAQzK,EAAE4M,GAAGc,WAAW1N,EAAE6M,QAAQV,yBAAyBlM,EAAE+M,UAAU/M,EAAE+M,UAAU/M,EAAE+M,UAAUlN,EAAE8N,iBAAgB9N,EAAE,EAAEA,EAAES,EAAEO,OAAOhB,IAAIC,EAAED,GAAG,SAASsP,IAAsB,IAAItP,EAAEwE,KAAK,IAAI0B,kBAAiB,SAASjG,GAAGA,EAAEiD,SAAQ,SAASjD,GAAGgK,EAAShK,EAAEsP,OAAOvP,EAAEyK,UAAUC,MAAMF,YAAYxK,EAAEyK,UAAUS,UAAU,IAAIjL,EAAEuP,SAAS9L,QAAQ,GAAGiD,OAAO3G,EAAEyK,UAAUC,KAAK,MAAM/D,OAAO3G,EAAEyK,UAAUS,WAAWlL,EAAEyP,QAAQzP,EAAEyP,OAAOxP,EAAEsP,QAAQ,EAAEtP,EAAEuP,SAAS9L,QAAQ,GAAGiD,OAAO3G,EAAEyK,UAAUC,KAAK,MAAM/D,OAAO3G,EAAEyK,UAAUS,YAAYjB,EAASjK,EAAE4K,MAAM5K,EAAEyK,UAAUG,OAAOL,UAAUvK,EAAEyK,UAAUa,UAAUtL,EAAE0P,SAAS1P,EAAE0P,QAAQzP,EAAEsP,eAAazI,QAAQtC,KAAK+J,OAAO,CAACoB,YAAW,EAAGC,mBAAkB,EAAGC,gBAAgB,CAAC,WAAW,SAASC,KAAYpN,SAAS2F,iBAAiB,IAAI1B,OAAOnC,KAAKiG,UAAUC,OAAO1J,QAAQ0B,SAASqE,gBAAgBgB,UAAU+B,SAAStF,KAAKiG,UAAUe,8BAA8BhH,KAAK+J,OAAOxG,UAAU+B,SAAStF,KAAKiG,UAAUC,QAAQlG,KAAKmG,OAAOd,WAAWkG,YAAYvL,KAAKmG,QAAQnG,KAAKoG,MAAMf,WAAWkG,YAAYvL,KAAKoG,OAAxtP,SAAgB3K,GAAG,IAAI,IAAID,EAAE0C,SAASsN,yBAAyB/P,EAAEgQ,YAAY,CAAC,IAAI9P,EAAEF,EAAE8P,YAAY9P,EAAEgQ,YAAYjQ,EAAEiN,YAAY9M,GAAGF,EAAE4J,WAAWqG,aAAalQ,EAAEC,GAAkkPkQ,CAAO3L,KAAK+J,QAAQ/J,KAAKsI,GAAG1J,gBAAgBoB,KAAKiG,UAAUmB,qBAAqBpH,KAAKsI,GAAG1J,gBAAgBoB,KAAKiG,UAAUgB,yBAAyB/I,SAAS2F,iBAAiB,IAAI1B,OAAOnC,KAAKiG,UAAUC,OAAO1J,SAAS0B,SAASqE,gBAAgBgB,UAAUE,OAAOzD,KAAKiG,UAAUc,mBAAmB/G,KAAKoK,2BAA2BlM,SAAS0N,oBAAoB,QAAQ5L,KAAKkK,iBAAiBhM,SAAS0N,oBAAoB,UAAU5L,KAAKkK,iBAAiBhM,SAASqE,gBAAgBgB,UAAUE,OAAOzD,KAAKiG,UAAUe,2BAA2BhH,KAAKoK,2BAA0B,GAAIlM,SAASqE,gBAAgBgB,UAAUC,IAAIxD,KAAKiG,UAAUe,6BAA6B,IAAI6E,EAAO,WAAW,SAASlQ,EAAEF,EAAED,IAAnrT,SAAyBC,EAAED,GAAG,KAAKC,aAAaD,GAAG,MAAM,IAAIyE,UAAU,sCAA+mT6L,CAAgB9L,KAAKrE,GAAGqE,KAAKsI,GAAG7M,EAAEuE,KAAKuI,QAA/+R,SAAwB/M,GAAG,IAAI,IAAIC,EAAE,EAAEA,EAAEc,UAAUC,OAAOf,IAAI,CAAC,IAAIE,EAAE,MAAMY,UAAUd,GAAGc,UAAUd,GAAG,GAAGA,EAAE,EAAEiJ,EAAQ/I,GAAE,GAAI+C,SAAQ,SAASjD,GAAGgJ,EAAgBjJ,EAAEC,EAAEE,EAAEF,OAAMY,OAAO0P,0BAA0B1P,OAAO2P,iBAAiBxQ,EAAEa,OAAO0P,0BAA0BpQ,IAAI+I,EAAQ/I,GAAG+C,SAAQ,SAASjD,GAAGY,OAAO+F,eAAe5G,EAAEC,EAAEY,OAAOyI,yBAAyBnJ,EAAEF,OAAM,OAAOD,EAAqoRyQ,CAAe,GAAG3E,EAAc,GAAG9L,GAAGwE,KAAKiG,UAAUA,EAAU,OAAlgT,SAAsBxK,EAAED,EAAEG,GAAUH,GAAGgJ,EAAkB/I,EAAEgB,UAAUjB,GAAGG,GAAG6I,EAAkB/I,EAAEE,GAA06SuQ,CAAavQ,EAAE,CAAC,CAACsH,IAAI,OAAOZ,MAAM,WAAW+F,EAAgBrM,KAAKiE,MAAM0J,EAAM3N,KAAKiE,MAAM8J,EAAO/N,KAAKiE,MAAMqK,EAAQtO,KAAKiE,MAAM8K,EAAoB/O,KAAKiE,QAAQ,CAACiD,IAAI,UAAUZ,MAAM,WAAWiJ,EAASvP,KAAKiE,QAAQ,CAACiD,IAAI,gBAAgBZ,MAAM,SAAS5G,GAAG,IAAID,EAAE0C,SAASiO,YAAY,cAAc3Q,EAAE4Q,UAAU,UAAS,GAAG,GAAI3Q,EAAEkP,cAAcnP,KAAK,CAACyH,IAAI,kBAAkBZ,MAAM,SAAS5G,GAAG,IAAID,EAAEC,EAAEuD,cAAc,0BAA0BrD,EAAE8J,EAAShK,EAAEuE,KAAKiG,UAAUI,QAAQL,YAAYhG,KAAKiG,UAAUY,aAAarL,GAAGG,IAAIH,EAAEyN,SAAQ,GAAIzN,IAAIG,IAAIH,EAAEyN,SAAQ,KAAM,CAAChG,IAAI,gBAAgBZ,MAAM,SAAS5G,EAAED,GAAGwE,KAAKuI,QAAQhB,eAAevH,KAAKuI,QAAQhB,cAAc9L,EAAED,KAAK,CAACyH,IAAI,aAAaZ,MAAM,SAAS5G,GAAG,IAAIuE,KAAKsI,GAAGY,WAAWzN,EAAEsP,OAAO5F,QAAQ,IAAIhD,OAAOnC,KAAKiG,UAAUoB,iBAAiB,MAAM,CAAC,IAAI7L,EAAE0C,SAAS2F,iBAAiB,IAAI1B,OAAOnC,KAAKiG,UAAUC,KAAK,MAAM/D,OAAOnC,KAAKiG,UAAUS,UAAUjB,EAASzF,KAAK+J,OAAO/J,KAAKiG,UAAUC,MAAML,UAAU7F,KAAKiG,UAAUS,SAAS,IAAI,IAAI/K,EAAE,EAAEA,EAAEH,EAAEgB,OAAOb,IAAI8J,EAASjK,EAAEG,GAAGqE,KAAKiG,UAAUC,MAAMH,UAAU/F,KAAKiG,UAAUS,SAAS1G,KAAKqM,sBAAsB,CAACpJ,IAAI,cAAcZ,MAAM,SAAS5G,GAAG,GAAGyC,SAASqE,gBAAgBgB,UAAU+B,SAAStF,KAAKiG,UAAUe,4BAA4BlI,QAAQuK,KAAK,0KAA0K5N,EAAE6Q,MAAM,YAAY7Q,EAAE6Q,OAAO7Q,EAAE8Q,SAAS,KAAK9Q,EAAE8Q,UAAUrO,SAASqE,gBAAgBgB,UAAU+B,SAAStF,KAAKiG,UAAUc,qBAAqBtL,EAAEsP,OAAO5F,QAAQ,IAAIhD,OAAOnC,KAAKiG,UAAUoB,iBAAiB,MAAM,CAAC,IAAI7L,EAAE0C,SAAS2F,iBAAiB,IAAI1B,OAAOnC,KAAKiG,UAAUC,KAAK,MAAM/D,OAAOnC,KAAKiG,UAAUS,UAAU,GAAGlL,EAAEgB,UAAUf,EAAE6Q,MAAM,UAAU7Q,EAAE6Q,MAAM7Q,EAAEsP,OAAO5F,QAAQ,IAAIhD,OAAOnC,KAAKiG,UAAUC,KAAK,MAAM/D,OAAOnC,KAAKiG,UAAUU,eAAelL,EAAE6Q,MAAM,UAAU7Q,EAAE6Q,MAAM7Q,EAAEsP,OAAO5F,QAAQ,IAAIhD,OAAOnC,KAAKiG,UAAUI,OAAO,MAAMlE,OAAOnC,KAAKiG,UAAUU,eAAelL,EAAE6Q,MAAM,UAAU7Q,EAAE6Q,MAAM7Q,EAAEsP,OAAOxF,aAAavF,KAAKiG,UAAUiB,aAAa,CAAC,GAAGzL,EAAE6Q,MAAM,UAAU7Q,EAAE6Q,MAAM7Q,EAAEsP,OAAO5F,QAAQ,IAAInF,KAAKiG,UAAUC,MAAM,CAAC,IAAIvK,EAAEF,EAAEsP,OAAO5F,QAAQ,IAAInF,KAAKiG,UAAUC,MAAMlH,cAAc,UAAU,GAAGrD,EAAEyN,UAAU3N,EAAE6Q,MAAM,UAAU7Q,EAAE6Q,MAAM7Q,EAAEsP,OAAO5F,QAAQ,IAAInF,KAAKiG,UAAUG,OAAO,OAAO,GAAGzK,EAAE4J,aAAavF,KAAKiG,UAAUgB,yBAAyBxL,EAAE6Q,MAAM,UAAU7Q,EAAE6Q,MAAM7Q,EAAEsP,OAAO5F,QAAQ,IAAInF,KAAKiG,UAAUG,OAAO,OAAO,GAAGzK,EAAE4J,aAAavF,KAAKiG,UAAUmB,sBAAsB3L,EAAE6Q,MAAM,UAAU7Q,EAAE6Q,MAAM7Q,EAAEsP,OAAO5F,QAAQ,IAAInF,KAAKiG,UAAUO,oBAAoB,OAAO,IAAI,IAAI/K,EAAEsP,OAAOrD,UAAUxI,QAAQc,KAAKiG,UAAUE,QAAQ,IAAI,IAAItJ,EAAE,EAAEA,EAAErB,EAAEgB,OAAOK,IAAI4I,EAASjK,EAAEqB,GAAGmD,KAAKiG,UAAUC,MAAMH,UAAU/F,KAAKiG,UAAUS,aAAa,CAACzD,IAAI,6BAA6BZ,MAAM,SAAS5G,GAAG,IAAID,EAAEC,EAAE+O,oBAAoB7O,EAAEF,EAAEgP,kBAAkB5N,EAAEpB,EAAEgM,KAAK9L,EAAEkB,GAAGkM,UAAUpN,EAAEkB,GAAGkM,UAAS,EAAGtD,EAASjK,EAAEwE,KAAKiG,UAAUI,QAAQN,UAAU/F,KAAKiG,UAAUY,eAAelL,EAAEkB,GAAGkM,UAAS,EAAGtD,EAASjK,EAAEwE,KAAKiG,UAAUI,QAAQT,OAAO5F,KAAKiG,UAAUY,gBAAgB,CAAC5D,IAAI,4BAA4BZ,MAAM,SAAS5G,GAAG,IAAI,IAAID,EAAEC,EAAE+O,oBAAoB7O,EAAEF,EAAEgP,kBAAkB5N,EAAEpB,EAAEiP,kBAAkBhP,EAAED,EAAEgM,KAAK7L,EAAE,EAAEA,EAAED,EAAEa,OAAOZ,IAAI,CAAC,IAAIK,EAAEY,EAAEjB,GAAGoD,cAAc,0BAA0BrD,EAAEC,GAAGmN,UAAS,EAAGtD,EAAS5I,EAAEjB,GAAGoE,KAAKiG,UAAUI,QAAQN,UAAU/F,KAAKiG,UAAUY,aAAa5K,IAAIA,EAAEgN,SAAQ,GAAI,IAAItM,EAAEnB,EAAEwD,cAAc,0BAA0ByG,EAASjK,EAAEwE,KAAKiG,UAAUI,QAAQT,OAAO5F,KAAKiG,UAAUY,aAAalL,EAAED,GAAGqN,UAAS,EAAGpM,IAAIA,EAAEsM,SAAQ,KAAM,CAAChG,IAAI,qBAAqBZ,MAAM,SAAS5G,GAAG,IAAID,EAAEC,EAAED,EAAEG,EAAEF,EAAE+O,oBAAoB3N,EAAEpB,EAAEgP,kBAAkB/O,EAAED,EAAEiP,kBAAkB9O,EAAEH,EAAEgM,KAAKzH,KAAKsI,GAAGc,WAAWpJ,KAAKuI,QAAQX,gCAAgCpM,EAAEgR,SAASxM,KAAKyM,2BAA2B,CAACjC,oBAAoB7O,EAAE8O,kBAAkB5N,EAAE4K,KAAK7L,IAAIoE,KAAK0M,0BAA0B,CAAClC,oBAAoB7O,EAAE8O,kBAAkB5N,EAAE6N,kBAAkBhP,EAAE+L,KAAK7L,MAAM,CAACqH,IAAI,mBAAmBZ,MAAM,WAAlgZ,IAAgB5G,EAAOD,GAAPC,EAAogZuE,KAAKoG,MAAlgZ5K,EAAEC,EAAEkR,wBAA8B,CAAC7I,IAAItI,EAAEsI,IAAI5F,SAAS8L,KAAK5F,UAAUE,KAAK9I,EAAE8I,KAAKpG,SAAS8L,KAAK7F,aAA06YL,IAAI9D,KAAKoG,MAAMrC,cAAc3F,OAAOgF,YAAYqC,EAASzF,KAAKoG,MAAMpG,KAAKiG,UAAUG,OAAOR,OAAO5F,KAAKiG,UAAUa,UAAUrB,EAASzF,KAAKoG,MAAMpG,KAAKiG,UAAUG,OAAOL,UAAU/F,KAAKiG,UAAUa,YAAY,CAAC7D,IAAI,uBAAuBZ,MAAM,SAAS5G,GAAG,IAAID,EAAE,GAAGoF,MAAM7E,KAAKN,EAAE8M,SAAS5M,EAAE,GAAG,OAAOH,EAAEkD,SAAQ,SAASjD,GAAGA,EAAEsN,UAAUpN,EAAEoJ,KAAKtJ,EAAE6N,cAAa3N,EAAEiR,KAAK,QAAQ,CAAC3J,IAAI,wBAAwBZ,MAAM,SAAS5G,EAAED,EAAEG,GAAG,IAAIkB,EAAEmD,KAAKtE,EAAE,GAAGkF,MAAM7E,KAAKN,EAAE4J,WAAWnD,UAAUtG,EAAE,GAAGgF,MAAM7E,KAAKP,EAAE+M,SAAStM,EAAEP,EAAE6I,KAAI,SAAS9I,EAAED,GAAG,IAAIG,EAAEuC,SAASmK,cAAc,QAAQ,OAAO1M,EAAE+L,UAAU7K,EAAEoJ,UAAUQ,YAAY9K,EAAEsD,aAAapC,EAAEoJ,UAAUoB,iBAAiB7L,GAAGG,EAAE+M,UAAU,GAAGvG,OAAO1G,EAAE6N,UAAU,qBAAqB3N,KAAID,EAAEgD,SAAQ,SAASjD,EAAED,GAAGC,EAAEwD,aAAapC,EAAEoJ,UAAUoB,iBAAiB7L,MAAKI,EAAE8C,SAAQ,SAASjD,EAAED,GAAGC,EAAEwD,aAAapC,EAAEoJ,UAAUoB,iBAAiB7L,MAAK,IAAImB,GAAGlB,EAAE4H,aAAarD,KAAKiG,UAAUoB,kBAAkB3G,EAAE/E,EAAEqD,cAAc,IAAImD,OAAOnC,KAAKiG,UAAUoB,iBAAiB,MAAMlF,OAAOxF,EAAE,OAAO8I,EAAShK,EAAEuE,KAAKiG,UAAUI,QAAQL,YAAYhG,KAAKiG,UAAUY,cAAclL,EAAEuG,SAAS1F,SAASb,EAAE+M,UAAU,IAAI/M,EAAE8M,YAAYxM,EAAEU,KAAK+D,GAAG/E,EAAE4P,YAAY7K,GAAGzE,EAAEyC,SAAQ,SAASjD,GAAGA,EAAEuD,cAAc,UAAUI,iBAAiB,QAAQ,SAAS3D,GAAG,IAAID,EAAEwE,KAAKvE,EAAEoR,iBAAiB,IAAIlR,EAAEF,EAAE6O,cAAcjF,WAAWxI,EAAElB,EAAE0H,aAAarD,KAAKiG,UAAUoB,kBAAkB3L,EAAE,GAAGkF,MAAM7E,KAAKiE,KAAK+J,OAAOlG,iBAAiB,IAAI1B,OAAOnC,KAAKiG,UAAUoB,iBAAiB,MAAMlF,OAAOtF,EAAE,QAAQjB,EAAEF,EAAEmJ,QAAO,SAASpJ,GAAG,GAAGA,EAAE8H,UAAU+B,SAAS9J,EAAEyK,UAAUI,QAAQ,OAAO5K,KAAI,GAAGC,EAAEgD,SAAQ,SAASjD,GAAGA,EAAEsN,WAAWtN,EAAEsN,UAAS,GAAItD,EAAShK,EAAED,EAAEyK,UAAUI,QAAQL,YAAYxK,EAAEyK,UAAUY,cAAcpB,EAAShK,EAAED,EAAEyK,UAAUI,QAAQN,UAAUvK,EAAEyK,UAAUY,gBAAe7G,KAAK2K,cAAc3K,KAAKsI,IAAItI,KAAK4K,gBAAgBhP,GAAGD,EAAE0J,YAAY1J,EAAE0J,WAAWkG,YAAY5P,IAAIkO,KAAKhN,SAAQ,CAACoG,IAAI,oBAAoBZ,MAAM,SAAS5G,EAAED,GAAG,IAAIG,EAAE,GAAGkJ,OAAO9I,KAAKN,EAAE0P,YAAW,SAAS1P,GAAG,MAAM,SAASkF,KAAKlF,EAAEiK,SAAQ/J,EAAEa,QAAQb,EAAE+C,SAAQ,SAASjD,GAAGD,EAAEyD,aAAaxD,EAAEiK,KAAKjK,EAAE4G,YAAW,CAACY,IAAI,SAAS6J,IAAI,WAAW,OAAO9M,KAAKsI,GAAGjD,aAAa,CAACpC,IAAI,SAAS6J,IAAI,WAAW,OAAO9M,KAAK+J,OAAO/K,cAAc,IAAIgB,KAAKiG,UAAUE,UAAU,CAAClD,IAAI,QAAQ6J,IAAI,WAAW,OAAO9M,KAAK+J,OAAO/K,cAAc,IAAIgB,KAAKiG,UAAUG,WAAWzK,EAA5qM,GAAirML,EAAOC,QAAQsQ,G,qBCAx2f,kBAC8IrQ,EAA9I0J,QAAQzI,UAAUsQ,UAAU7H,QAAQzI,UAAUsQ,QAAQ7H,QAAQzI,UAAUuQ,mBAAmB9H,QAAQzI,UAAUwQ,uBAAiCzR,OAA4I,IAAoB0R,EAAOA,EAAO,oBAAoB9O,OAAOA,OAAO4B,UAAnI,KAAzB,aAAa,OAAoJ,SAAUxE,GAAG,aAAa,IAAIC,EAAE,CAAC0R,SAAS,gBAAgB/Q,QAAQ,wBAAwBuD,EAAE,SAASlE,GAAG,GAAGA,GAAG,QAAQA,EAAE4H,aAAa,iBAAiB,CAAC,IAAI1D,EAAEzB,SAASc,cAAcvD,EAAE2R,MAAM,GAAGzN,EAAE,CAAC,IAAIjE,EAAE,SAAUF,GAAG,IAAIC,EAAED,EAAE2J,QAAQ,oBAAoB,IAAI1J,EAAE,MAAM,GAAG,IAAIkE,EAAElE,EAAEuD,cAAc,sCAAsC,IAAIW,EAAE,MAAM,GAAG,IAAIjE,EAAEwC,SAASc,cAAcW,EAAEyN,MAAM,OAAOzN,EAAEV,aAAa,gBAAgB,SAASU,EAAEV,aAAa,WAAW,MAAMvD,GAAGA,EAAEuD,aAAa,SAAS,UAAU,CAACoO,YAAY1N,EAAE2N,gBAAgB5R,IAAI,CAAC2R,YAAY1N,GAApV,CAAyVlE,IAAI,SAAUD,EAAEC,GAAGD,EAAEyD,aAAa,gBAAgB,QAAQzD,EAAEyD,aAAa,WAAW,KAAKxD,EAAEmD,gBAAgB,UAAUpD,EAAE+R,QAAnH,CAA6H9R,EAAEkE,GAAGjE,EAAE8R,IAAI/R,EAAEC,EAAE+R,QAAQ9N,EAAE,SAAUlE,EAAEkE,GAAG,IAAIjE,EAAE,mBAAmBF,EAAEkS,YAAYhS,EAAE,IAAIgS,YAAY,QAAQ,CAACC,SAAQ,EAAGC,YAAW,EAAGC,OAAOlO,KAAKjE,EAAEwC,SAASiO,YAAY,gBAAgB2B,gBAAgB,SAAQ,GAAG,EAAGnO,GAAGlE,EAAEkP,cAAcjP,GAA9M,CAAmND,EAAEC,MAAma,OAAO,SAASC,EAAEC,GAAG,IAAIe,EAAEC,EAAE8D,EAAE,CAAG,QAAU,WAAW,IAAIlF,EAAEoB,EAAEiH,iBAAiB,KAAKhC,MAAMpF,UAAUiC,QAAQ3C,KAAKP,GAAE,SAAUA,GAAG,IAAIC,EAAEyC,SAASc,cAAcxD,EAAE4R,MAAM3R,GAAG,SAAUD,EAAEC,EAAEkE,GAAGnE,EAAEK,GAAG+E,MAAM,EAAEjB,EAAEwN,SAAS3Q,UAAUmD,EAAEwN,WAAW3R,EAAEK,GAAG,IAAIL,EAAEoD,gBAAgB,QAAQpD,EAAEoD,gBAAgB,iBAAiBpD,EAAEoD,gBAAgB,iBAAiBpD,EAAEoD,gBAAgB,YAAYpD,EAAE2J,QAAQ,MAAMvG,gBAAgB,QAAQnD,EAAEmD,gBAAgB,QAAQnD,EAAEmD,gBAAgB,mBAAmBnD,EAAEmD,gBAAgB,UAAhU,CAA4UpD,EAAEC,EAAEkB,MAAMC,EAAEgC,gBAAgB,QAAQV,SAASqE,gBAAgBqJ,oBAAoB,QAAQ3P,GAAE,GAAIW,EAAEgP,oBAAoB,UAAU9O,GAAE,GAAIH,EAAE,KAAKC,EAAE,MAAM,MAAQ,WAAW,GAAGA,EAAEsB,SAASc,cAAcrD,GAAG,CAAC,IAAIH,EAAEoB,EAAEiH,iBAAiB,KAAKjH,EAAEqC,aAAa,OAAO,WAAW4C,MAAMpF,UAAUiC,QAAQ3C,KAAKP,GAAE,SAAUA,GAAG,IAAIC,EAAEyC,SAASc,cAAcxD,EAAE4R,MAAM3R,GAAG,SAAUD,EAAEC,EAAEkE,GAAGnE,EAAEK,KAAKL,EAAEK,GAAG8D,EAAEwN,SAAS1R,EAAEI,IAAIL,EAAEyD,aAAa,OAAO,OAAOzD,EAAEyD,aAAa,gBAAgBxD,EAAEI,IAAIL,EAAE2J,QAAQ,MAAMlG,aAAa,OAAO,gBAAgBxD,EAAEwD,aAAa,OAAO,YAAYxD,EAAEwD,aAAa,kBAAkBzD,EAAEK,IAAIL,EAAEuR,QAAQpN,EAAEvD,SAASZ,EAAEyD,aAAa,gBAAgB,SAASzD,EAAEyD,aAAa,gBAAgB,SAASzD,EAAEyD,aAAa,WAAW,MAAMxD,EAAEwD,aAAa,SAAS,WAA1Y,CAAuZzD,EAAEC,EAAEkB,QAAQ,OAAS,SAASnB,GAAG,IAAIC,EAAED,EAAE,iBAAiBA,IAAIC,EAAEyC,SAASc,cAAcrD,EAAE,wBAAwBH,EAAE,OAAOmE,EAAElE,KAAQQ,EAAE,SAAST,GAAG,IAAIC,EAAED,EAAEuP,OAAO5F,QAAQxJ,EAAE,iBAAiBF,IAAID,EAAEqR,iBAAiBlN,EAAElE,KAAKqB,EAAE,SAAStB,GAAG,IAAIC,EAAEyC,SAAS6P,cAActS,EAAEsR,QAAQpR,EAAE,mBAAmB,CAAC,UAAU,YAAY,YAAY,aAAa,KAAK,OAAO,OAAO,QAAQ,OAAO,OAAOuD,QAAQ1D,EAAEyH,KAAK,GAA7gE,SAASzH,EAAEC,GAAG,IAAIC,EAAE,SAAUF,GAAG,IAAIC,EAAED,EAAE2J,QAAQ,oBAAoBxF,EAAElE,EAAEA,EAAEoI,iBAAiB,gBAAgB,KAAK,GAAGlE,EAAE,MAAM,CAACqO,KAAKrO,EAAEsO,MAAMpM,MAAMpF,UAAUyC,QAAQnD,KAAK4D,EAAEnE,IAArJ,CAA2JA,GAAG,GAAGE,EAAE,CAAC,IAAIC,EAAEC,EAAEF,EAAEsS,KAAKxR,OAAO,EAAE,CAAC,UAAU,YAAY,KAAK,QAAQ0C,QAAQzD,IAAI,EAAEE,EAAED,EAAEuS,MAAM,EAAErS,EAAEF,EAAEuS,MAAM,EAAE,CAAC,YAAY,aAAa,OAAO,SAAS/O,QAAQzD,IAAI,EAAEE,EAAED,EAAEuS,QAAQrS,EAAE,EAAEF,EAAEuS,MAAM,EAAE,SAASxS,EAAEE,EAAE,EAAE,QAAQF,IAAIE,EAAEC,GAAG+D,EAAEjE,EAAEsS,KAAKrS,KAA2nDD,CAAED,EAAED,EAAEyH,OAAO,OAAOtG,EAAE,WAAY,IAAInB,EAAE,GAAG,OAAOqG,MAAMpF,UAAUiC,QAAQ3C,KAAKQ,WAAU,SAAUd,GAAG,IAAI,IAAIkE,KAAKlE,EAAE,CAAC,IAAIA,EAAEiB,eAAeiD,GAAG,OAAOnE,EAAEmE,GAAGlE,EAAEkE,OAAOnE,EAA7I,CAAiJC,EAAEG,GAAG,IAAI8E,EAAEwN,QAAQ,SAAUzS,GAAG,KAAKD,EAAE2S,SAASf,KAAK5Q,OAAO,GAAG,CAAC,IAAId,EAAEwC,SAASc,cAAcvD,EAAE,wBAAwBD,EAAE2S,SAASf,KAAK,MAAMzN,EAAEjE,IAA5H,CAAkIC,GAAGuC,SAASqE,gBAAgBnD,iBAAiB,QAAQnD,GAAE,GAAIW,EAAEwC,iBAAiB,UAAUtC,GAAE,GAAI4D,GAA/8GjF,CAAED,IAAG,QAA3B,OAA2B,e,oCCAtNa,OAAOsI,OACVtI,OAAOsI,KAAO,SAASyJ,GACrB,IAAIzJ,EAAO,GACX,IAAK,IAAIe,KAAQ0I,EACX/R,OAAOI,UAAUC,eAAeX,KAAKqS,EAAQ1I,IAC/Cf,EAAKI,KAAKW,GAGd,OAAOf,K,kBCRN,WAAYO,QAAQzI,YACvByI,QAAQzI,UAAUgH,OAAS,WACtBzD,KAAKqF,YACNrF,KAAKqF,WAAWkG,YAAYvL,S,6HCO5B,EAAyB,CACzB,SAAQ,IACV,OAAQ,SAAC,EAAqB,EAAoB,EAAmB,GACjE,OAAQ,GAAY,GAAa,IAAY,EAAY,GAAK,IAIhE,EACI,EADJ,EAEK,EAIE,EAAU,SAAC,GAAwD,IAAlC,EAAkC,uDAAN,GACnE,EAAU,KACT,EAAO,CAAE,SAAkB,IAG/B,IAAM,EAAe,EAAO,EAAU,GACtCuI,EAAQ,UAAY,EACpBA,EAAQ,GAAK,EACbA,EAAQ,eAAiB,EAAQ,aACjC,EAAQ,gBAAkB,EAAQ,eAElC,EAA0B,GAExB,OAAK,uBAAsB,SAAC,GAAD,OAAuB,EAAQ,EAAS,EAAS,OAGrE,EAAY,SAAC,GAAwD,IAAlC,EAAkC,uDAAN,GACrE,EAAU,KACT,EAAO,CAAE,SAAkB,IAG/B,EAAQ,MAAM,OAAS,MACvB,EAA0B,GAExB,IAAI,EAAe,EAAO,EAAU,GACpC,EAAM,UAAY,EAClB,EAAM,GAAK,EAAQ,aACnB,EAAM,eAAiB,EACvB,EAAM,eAAiB,EAAQ,GAEjC,OAAO,uBAAsB,SAAC,GAAD,OAAuB,EAAQ,EAAS,EAAS,OAG5E,EAAU,SAAV,EAAW,EAAsB,EAAc,GAC7C,EAAQ,YACR,EAAQ,UAAY,GAGxB,IAAM,EAAc,EAAM,EAAQ,UAC9B,EAAoB,EAAc,EAAQ,SAC1C,EAAoB,EAAQ,OAC5B,EACA,EAAQ,eACR,EAAQ,eACR,EAAQ,UAGT,GACC,EAAQ,MAAM,OAAd,UAA0B,EAAU,QAAQ,GAA5C,MACA,OAAO,uBAAsB,SAAC,GAAD,OAAuB,EAAQ,EAAS,EAAS,QAE3E,EAAQ,YAAc,IACrB,EAAQ,MAAM,QAAU,QAGzB,EAAQ,YAAc,IACrB,EAAQ,MAAM,QAAU,SAG5B,EAA6B,KAI/B,EAA4B,SAAC,GAC/B,EAAQ,MAAM,QAAU,QACxB,EAAQ,MAAM,SAAW,SACzB,EAAQ,MAAM,UAAY,IAC1B,EAAQ,MAAM,aAAe,IAC7B,EAAQ,MAAM,WAAa,IAC3B,EAAQ,MAAM,cAAgB,KAG5B,EAA+B,SAAC,GAClC,EAAQ,MAAM,OAAS,KACvB,EAAQ,MAAM,SAAW,KACzB,EAAQ,MAAM,UAAY,KAC1B,EAAQ,MAAM,aAAe,KAC7B,EAAQ,MAAM,WAAa,KAC3B,EAAQ,MAAM,cAAgB,MAG5B,EAAY,SAAC,GACf,OAAQ,OAAO,UACJ,OAAO,UAAU,GAEA,iBAAV,GAAsB,SAAS,IAAU,KAAK,MAAM,KAAW,GAI/E,EAAS,SAAC,EAAe,GAC3B,IAAM,EAAuB,GAC7B,IAAK,IAAI,KAAO,EACZ,EAAgB,GAAO,EAAQ,IAAQ,EAAS,GAEpD,OAAO,I,iDCtHP,EAAMnK,OAECiQ,EAAM,EAAIC,uBAChB,EAAIC,6BACJ,EAAIC,0BACJ,EAAIC,yBACJ,SAASC,GAAM,OAAO9O,WAAW8O,EAAI,KCNtC,EAAMtQ,OAECuQ,EAAM,EAAIC,sBAChB,EAAIC,yBACJ,SAAShT,GAAKyE,aAAazE,ICJzB,SAASiT,IAMd,IALA,IAAIC,EAAKrJ,EAAMsJ,EACXjE,EAASxO,UAAU,IAAM,GACzBX,EAAI,EACJY,EAASD,UAAUC,OAEhBZ,EAAIY,EAAQZ,IACjB,GAA6B,QAAxBmT,EAAMxS,UAAUX,IACnB,IAAK8J,KAAQqJ,EAGPhE,KAFJiE,EAAOD,EAAIrJ,UAISuJ,IAATD,IACTjE,EAAOrF,GAAQsJ,GAKvB,OAAOjE,ECnBF,SAASmE,EAAmB7M,GACjC,MAAO,CAAC,OAAQ,SAASnD,QAAQmD,IAAU,EAAI8M,KAAKC,MAAM/M,GAASA,ECD9D,SAASgN,EAAgBC,EAASrM,EAAKZ,EAAOkN,GACnD,GAAIA,EACF,IAAMD,EAAQE,QAAQvM,EAAKZ,GAAU,MAAO7G,IAE9C,OAAO6G,ECJF,SAASoN,IACd,IAAIC,EAAMxR,SACN8L,EAAO0F,EAAI1F,KAOf,OALKA,KACHA,EAAO0F,EAAIrH,cAAc,SACpBsH,MAAO,GAGP3F,ECTF,IAAI4F,EAAa1R,SAASqE,gBCE1B,SAASsN,EAAa7F,GAC3B,IAAI8F,EAAc,GAUlB,OATI9F,EAAK2F,OACPG,EAAcF,EAAWG,MAAMC,SAE/BhG,EAAK+F,MAAME,WAAa,GAExBjG,EAAK+F,MAAMC,SAAWJ,EAAWG,MAAMC,SAAW,SAClDJ,EAAWnH,YAAYuB,IAGlB8F,ECXF,SAASI,EAAelG,EAAM8F,GAC/B9F,EAAK2F,OACP3F,EAAKvG,SACLmM,EAAWG,MAAMC,SAAWF,EAG5BF,EAAW7L,cCNR,SAASoM,EAAWC,EAAOC,EAAUC,EAAOrC,GAE/C,eAAgBmC,EACdA,EAAMG,WAAWF,EAAW,IAAMC,EAAQ,IAAKrC,GAC/CmC,EAAMI,QAAQH,EAAUC,EAAOrC,GCN9B,SAASwC,EAAkBL,GAEhC,OADY,eAAgBA,EAASA,EAAMM,SAAWN,EAAME,OAChD9T,OCDP,SAASkC,EAASiS,EAAKC,EAAUC,GACtC,IAAK,IAAIjV,EAAI,EAAG8E,EAAIiQ,EAAInU,OAAQZ,EAAI8E,EAAG9E,IACrCgV,EAAS7U,KAAK8U,EAAOF,EAAI/U,GAAIA,GCH1B,IAAIkV,EAAmB,cAAe5S,SAASmK,cAAc,KCEhE0I,EAAWD,EACX,SAAUxI,EAAI0I,GAAO,OAAO1I,EAAG/E,UAAU+B,SAAS0L,IAClD,SAAU1I,EAAI0I,GAAO,OAAO1I,EAAGZ,UAAUxI,QAAQ8R,IAAQ,GCHzDC,EAAWH,EACX,SAAUxI,EAAI0I,GACPD,EAASzI,EAAK0I,IAAQ1I,EAAG/E,UAAUC,IAAIwN,IAE9C,SAAU1I,EAAI0I,GACPD,EAASzI,EAAK0I,KAAQ1I,EAAGZ,WAAa,IAAMsJ,ICLnDE,EAAcJ,EACd,SAAUxI,EAAI0I,GACRD,EAASzI,EAAK0I,IAAQ1I,EAAG/E,UAAUE,OAAOuN,IAEhD,SAAU1I,EAAI0I,GACRD,EAASzI,EAAI0I,KAAQ1I,EAAGZ,UAAYY,EAAGZ,UAAUjH,QAAQuQ,EAAK,MCNjE,SAASG,EAAQ7I,EAAI8I,GAC1B,OAAO9I,EAAG/C,aAAa6L,GCDlB,SAASC,EAAQ/I,EAAI8I,GAC1B,OAAO9I,EAAGjF,aAAa+N,GCDlB,SAASE,EAAWhJ,GAEzB,YAA0B,IAAZA,EAAGb,KCAZ,SAAS8J,EAASC,EAAKC,GAE5B,GADAD,EAAOF,EAAWE,IAAQA,aAAe3P,MAAS2P,EAAM,CAACA,GACX,oBAA1CnV,OAAOI,UAAU2E,SAASrF,KAAK0V,GAEnC,IAAK,IAAI7V,EAAI4V,EAAIhV,OAAQZ,KACvB,IAAI,IAAIqH,KAAOwO,EACbD,EAAI5V,GAAGqD,aAAagE,EAAKwO,EAAMxO,ICN9B,SAASyO,EAAYF,EAAKC,GAC/BD,EAAOF,EAAWE,IAAQA,aAAe3P,MAAS2P,EAAM,CAACA,GAIzD,IADA,IAAIG,GAFJF,EAASA,aAAiB5P,MAAS4P,EAAQ,CAACA,IAErBjV,OACdZ,EAAI4V,EAAIhV,OAAQZ,KACvB,IAAK,IAAImC,EAAI4T,EAAY5T,KACvByT,EAAI5V,GAAGgD,gBAAgB6S,EAAM1T,ICT5B,SAAS6T,EAAmBC,GAEjC,IADA,IAAIlB,EAAM,GACD/U,EAAI,EAAG8E,EAAImR,EAAGrV,OAAQZ,EAAI8E,EAAG9E,IACpC+U,EAAI5L,KAAK8M,EAAGjW,IAEd,OAAO+U,ECLF,SAASmB,EAAYxJ,EAAIyJ,GACL,SAArBzJ,EAAGyH,MAAMiC,UAAsB1J,EAAGyH,MAAMiC,QAAU,QCDjD,SAASC,EAAY3J,EAAIyJ,GACL,SAArBzJ,EAAGyH,MAAMiC,UAAsB1J,EAAGyH,MAAMiC,QAAU,ICDjD,SAASE,EAAU5J,GACxB,MAA+C,SAAxClK,OAAO+T,iBAAiB7J,GAAI0J,QCD9B,SAASI,EAAcC,GAC5B,GAAqB,iBAAVA,EAAoB,CAC7B,IAAI1B,EAAM,CAAC0B,GACPC,EAAQD,EAAMjN,OAAO,GAAGmN,cAAgBF,EAAMnP,OAAO,GAC1C,CAAC,SAAU,MAAO,KAAM,KAE9BxE,SAAQ,SAAS8T,GACT,OAAXA,GAA6B,cAAVH,GACrB1B,EAAI5L,KAAKyN,EAASF,MAItBD,EAAQ1B,EAKV,IAFA,IAAIrI,EAAKpK,SAASmK,cAAc,eAExBzM,GADEyW,EAAM7V,OACJ,GAAGZ,EAAIyW,EAAM7V,OAAQZ,IAAI,CACnC,IAAI6W,EAAOJ,EAAMzW,GACjB,QAAuBqT,IAAnB3G,EAAGyH,MAAM0C,GAAuB,OAAOA,EAG7C,OAAO,EClBF,SAASC,EAAeC,EAAQC,GACrC,IAAIC,GAAU,EAQd,MAPI,UAAUlS,KAAKgS,GACjBE,EAAU,SAAWD,EAAU,MACtB,KAAKjS,KAAKgS,GACnBE,EAAU,IAAMD,EAAU,MACjBD,IACTE,EAAUD,EAAQpN,cAAgB,OAE7BqN,ECZT,IAAIC,GAAkB,EACtB,IACE,IAAI,EAAOzW,OAAO+F,eAAe,GAAI,UAAW,CAC9C0K,IAAK,WACHgG,GAAkB,KAGtB1U,OAAOgB,iBAAiB,OAAQ,KAAM,GACtC,MAAO5D,IACF,IAAIuX,IAAgBD,GAAkB,CAAEE,SAAS,GCRjD,SAASC,EAAU3K,EAAIyG,EAAKmE,GACjC,IAAK,IAAIT,KAAQ1D,EAAK,CACpB,IAAI1I,EAAS,CAAC,aAAc,aAAanH,QAAQuT,IAAS,IAAMS,GAAmBH,EACnFzK,EAAGlJ,iBAAiBqT,EAAM1D,EAAI0D,GAAOpM,ICHlC,SAAS8M,EAAa7K,EAAIyG,GAC/B,IAAK,IAAI0D,KAAQ1D,EAAK,CACpB,IAAI1I,EAAS,CAAC,aAAc,aAAanH,QAAQuT,IAAS,GAAIM,EAC9DzK,EAAGsD,oBAAoB6G,EAAM1D,EAAI0D,GAAOpM,ICLrC,SAAS+M,IACd,MAAO,CACLC,OAAQ,GACRC,GAAI,SAAUC,EAAWC,GACvBxT,KAAKqT,OAAOE,GAAavT,KAAKqT,OAAOE,IAAc,GACnDvT,KAAKqT,OAAOE,GAAWxO,KAAKyO,IAE9BC,IAAK,SAASF,EAAWC,GACvB,GAAIxT,KAAKqT,OAAOE,GACd,IAAK,IAAI3X,EAAI,EAAGA,EAAIoE,KAAKqT,OAAOE,GAAW/W,OAAQZ,IACjD,GAAIoE,KAAKqT,OAAOE,GAAW3X,KAAO4X,EAAI,CACpCxT,KAAKqT,OAAOE,GAAWG,OAAO9X,EAAG,GACjC,QAKR+X,KAAM,SAAUJ,EAAWK,GACzBA,EAAKtH,KAAOiH,EACRvT,KAAKqT,OAAOE,IACdvT,KAAKqT,OAAOE,GAAW7U,SAAQ,SAAS8U,GACtCA,EAAGI,EAAML,QCrBnB,kCAqCO,IAAIM,EAAM,SAAStL,GACxBA,EAAUuG,EAAO,CACfgF,UAAW,UACXC,KAAM,WACNC,KAAM,aACNC,MAAO,EACPC,OAAQ,EACRC,YAAa,EACbC,YAAY,EACZC,WAAW,EACXC,aAAa,EACbC,QAAS,EACTC,QAAQ,EACRC,UAAU,EACVC,iBAAkB,MAClBC,aAAc,CAAC,OAAQ,QACvBC,mBAAmB,EACnBC,YAAY,EACZC,YAAY,EACZC,KAAK,EACLC,YAAa,MACbC,cAAc,EACdC,iBAAiB,EACjBC,WAAW,EACXC,MAAO,IACPC,UAAU,EACVC,iBAAkB,MAClBC,gBAAiB,IACjBC,kBAAmB,UACnBC,aAAc,CAAC,QAAS,QACxBC,oBAAoB,EACpBC,gBAAgB,EAChBC,sBAAsB,EACtBC,2BAA2B,EAC3BC,UAAW,aACXC,WAAY,cACZC,cAAe,aACfC,cAAc,EACdC,MAAM,EACNC,QAAQ,EACRC,YAAY,EACZC,YAAY,EACZC,UAAU,EACVC,iBAAkB,gBAClBC,OAAO,EACPC,WAAW,EACXC,WAAY,GACZC,QAAQ,EACRC,0BAA0B,EAC1BC,sBAAsB,EACtBC,WAAW,EACXC,QAAQ,EACRC,iBAAiB,GAChBzO,GAAW,IAEd,IAAImH,EAAMxR,SACN+Y,EAAM7Y,OACN8Y,EAAO,CACLC,MAAO,GACPC,MAAO,GACPC,KAAM,GACNC,MAAO,IAETC,EAAa,GACbC,EAAqBjP,EAAQyO,gBAEjC,GAAIQ,EAAoB,CAEtB,IAAIC,EAAc/U,UAAUC,UACxB+U,EAAM,IAAIlW,KAEd,KACE+V,EAAaN,EAAIU,eAEfJ,EAAW/H,QAAQkI,EAAKA,GACxBF,EAAqBD,EAAWK,QAAQF,IAAQA,EAChDH,EAAWM,WAAWH,IAEtBF,GAAqB,EAElBA,IAAsBD,EAAa,IACxC,MAAM/b,GACNgc,GAAqB,EAGnBA,IAEED,EAAmB,QAAKA,EAAmB,SAAME,GACnD,CAAC,KAAM,MAAO,MAAO,MAAO,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,MAAO,OAAO/Y,SAAQ,SAAS+I,GAAQ8P,EAAWM,WAAWpQ,MAGlIkQ,aAAqB,OAAIF,GAI7B,IAAIK,EAAOP,EAAe,GAAIrI,EAAkBqI,EAAe,IAAKlI,EAAgBkI,EAAY,KC7H3F,WACL,IAAI7H,EAAMxR,SACN8L,EAAOyF,IACPK,EAAcD,EAAY7F,GAC1B+N,EAAMrI,EAAIrH,cAAc,OACxB2P,GAAS,EAEbhO,EAAKvB,YAAYsP,GACjB,IAIE,IAHA,IAEIE,EAFAjH,EAAM,cACNkH,EAAO,CAAC,OAASlH,EAAK,YAAcA,EAAK,eAAiBA,GAErDpV,EAAI,EAAGA,EAAI,EAAGA,IAGrB,GAFAqc,EAAMC,EAAKtc,GACXmc,EAAIhI,MAAMoI,MAAQF,EACM,MAApBF,EAAIK,YAAqB,CAC3BJ,EAASC,EAAIxX,QAAQuQ,EAAK,IAC1B,OAGJ,MAAOxV,IAIT,OAFAwO,EAAK2F,KAAOO,EAAclG,EAAM8F,GAAeiI,EAAItU,SAE5CuU,EDqG+FK,GAAQb,GAC1Gc,EAAmBf,EAAgB,IAAIrI,EAAkBqI,EAAgB,KAAKlI,EAAgBkI,EAAY,ME/HzG,WAEL,IAQIgB,EARA7I,EAAMxR,SACN8L,EAAOyF,IACPK,EAAcD,EAAY7F,GAC1BwO,EAAU9I,EAAIrH,cAAc,OAC5BoQ,EAAQ/I,EAAIrH,cAAc,OAC1B2I,EAAM,GAKVwH,EAAQ9Q,UAAY,cACpB+Q,EAAM/Q,UAAY,WAElB,IAAK,IAAI9L,EAAI,EAAGA,EAPJ,GAOeA,IACzBoV,GAAO,cAWT,OARAyH,EAAM/P,UAAYsI,EAClBwH,EAAQ/P,YAAYgQ,GACpBzO,EAAKvB,YAAY+P,GAEjBD,EAAYlX,KAAKqX,IAAIF,EAAQ7L,wBAAwBrI,KAAOmU,EAAMvW,SAASyW,IAAiBhM,wBAAwBrI,MAAQ,EAE5H0F,EAAK2F,KAAOO,EAAclG,EAAM8F,GAAe0I,EAAQ/U,SAEhD8U,EFoG8GK,GAAoBpB,GACrIqB,EAAQtB,EAAgB,IAAIrI,EAAkBqI,EAAgB,KAAKlI,EAAgBkI,EAAY,MGlI9F,WACL,IAMIjU,EANAoM,EAAMxR,SACN8L,EAAOyF,IACPK,EAAcD,EAAY7F,GAC1B+N,EAAMrI,EAAIrH,cAAc,OACxB0H,EAAQL,EAAIrH,cAAc,SAC1ByQ,EAAO,kEAmBX,OAhBA/I,EAAMzD,KAAO,WACbyL,EAAIrQ,UAAY,cAEhBsC,EAAKvB,YAAYsH,GACjB/F,EAAKvB,YAAYsP,GAEbhI,EAAMgJ,WACRhJ,EAAMgJ,WAAWC,QAAUF,EAE3B/I,EAAMtH,YAAYiH,EAAIuJ,eAAeH,IAGvCxV,EAAWlF,OAAO+T,iBAAmB/T,OAAO+T,iBAAiB4F,GAAKzU,SAAWyU,EAAImB,aAAuB,SAExGlP,EAAK2F,KAAOO,EAAclG,EAAM8F,GAAeiI,EAAItU,SAE/B,aAAbH,EHyGmG6V,GAAqB3B,GAC3H4B,EAAY7B,EAAgB,IAAIrI,EAAkBqI,EAAgB,KAAKlI,EAAgBkI,EAAY,MAAOnF,EAAc,aAAcoF,GACtI6B,EAAkB9B,EAAgB,IAAIrI,EAAkBqI,EAAgB,KAAKlI,EAAgBkI,EAAY,MIpIxG,SAAyB+B,GAC9B,IAAKA,EAAM,OAAO,EAClB,IAAKlb,OAAO+T,iBAAoB,OAAO,EAEvC,IAIIoH,EAJA7J,EAAMxR,SACN8L,EAAOyF,IACPK,EAAcD,EAAY7F,GAC1B1B,EAAKoH,EAAIrH,cAAc,KAEvBmR,EAAQF,EAAG9c,OAAS,EAAI,IAAM8c,EAAG1Y,MAAM,GAAI,GAAG4E,cAAgB,IAAM,GAYxE,OAVAgU,GAAS,YAGTxP,EAAKR,aAAalB,EAAI,MAEtBA,EAAGyH,MAAMuJ,GAAM,2BACfC,EAAQnb,OAAO+T,iBAAiB7J,GAAImR,iBAAiBD,GAErDxP,EAAK2F,KAAOO,EAAclG,EAAM8F,GAAexH,EAAG7E,cAEhCwL,IAAVsK,GAAuBA,EAAM/c,OAAS,GAAe,SAAV+c,EJ+GiEG,CAAgBN,GAAY5B,GAC5ImC,EAAqBpC,EAAiB,KAAIrI,EAAkBqI,EAAiB,MAAKlI,EAAgBkI,EAAY,OAAQnF,EAAc,sBAAuBoF,GAC3JoC,EAAkBrC,EAAiB,KAAIrI,EAAkBqI,EAAiB,MAAKlI,EAAgBkI,EAAY,OAAQnF,EAAc,mBAAoBoF,GACrJqC,EAAoBtC,EAAiB,KAAIrI,EAAkBqI,EAAiB,MAAKlI,EAAgBkI,EAAY,OAAQnF,EAAc,qBAAsBoF,GACzJsC,EAAiBvC,EAAiB,KAAIrI,EAAkBqI,EAAiB,MAAKlI,EAAgBkI,EAAY,OAAQnF,EAAc,kBAAmBoF,GACnJuC,EAAgBxC,EAAgB,IAAIrI,EAAkBqI,EAAgB,KAAKlI,EAAgBkI,EAAY,MAAO7E,EAAeiH,EAAoB,cAAenC,GAChKwC,EAAezC,EAAgB,IAAIrI,EAAkBqI,EAAgB,KAAKlI,EAAgBkI,EAAY,MAAO7E,EAAemH,EAAmB,aAAcrC,GAG7JyC,EAAqBhD,EAAInY,SAAuC,mBAArBmY,EAAInY,QAAQuK,KACvD6Q,EAAU,CAAC,YAAa,oBAAqB,aAAc,aAAc,eAAgB,kBACzFC,EAAkB,GAkBtB,GAhBAD,EAAQxb,SAAQ,SAAS+I,GACvB,GAA6B,iBAAlBc,EAAQd,GAAoB,CACrC,IAAIuJ,EAAMzI,EAAQd,GACda,EAAKoH,EAAI1Q,cAAcgS,GAG3B,GAFAmJ,EAAgB1S,GAAQuJ,GAEpB1I,IAAMA,EAAG8R,SAIX,YADIH,GAAsBnb,QAAQuK,KAAK,aAAed,EAAQd,KAF9Dc,EAAQd,GAAQa,QASlBC,EAAQuL,UAAU5R,SAAS1F,OAAS,GAAxC,CAMA,IAAI6Z,EAAa9N,EAAQ8N,WACrBM,EAASpO,EAAQoO,OACjB0D,EAA4B,aAAjB9R,EAAQwL,KAEvB,GAAIsC,EAAY,CAEV,KAAKA,IACP9N,EAAUuG,EAAOvG,EAAS8N,EAAW,WAC9BA,EAAW,IAGpB,IAAIiE,EAAgB,GACpB,IAAK,IAAIrX,MAAOoT,EAAY,CAC1B,IAAI4B,GAAM5B,EAAWpT,IAOrBgV,GAAqB,iBAARA,GAAmB,CAAChE,MAAOgE,IAAOA,GAC/CqC,EAAcrX,IAAOgV,GAEvB5B,EAAaiE,EACbA,EAAgB,KAoBlB,GAJKD,GAZL,SAASE,EAAexL,GACtB,IAAK,IAAI9L,KAAO8L,EACTsL,IACS,YAARpX,IAAqB8L,EAAI9L,GAAO,QACxB,gBAARA,IAAyB8L,EAAI9L,IAAO,GAC5B,eAARA,IAAwB8L,EAAI9L,IAAO,IAI7B,eAARA,GAAwBsX,EAAcxL,EAAI9L,IAGjCsX,CAAchS,IAI1B8R,EAAU,CACb9R,EAAQyL,KAAO,aACfzL,EAAQgM,QAAU,OAClBhM,EAAQ4L,aAAc,EAEtB,IAAI2B,GAAYvN,EAAQuN,UACpBC,GAAaxN,EAAQwN,WACrBE,GAAe1N,EAAQ0N,aACvBD,GAAgBzN,EAAQyN,cAG9B,IAGIwE,GAMAC,GATAC,GAA8B,eAAjBnS,EAAQyL,KACrB2G,GAAejL,EAAIrH,cAAc,OACjCuS,GAAelL,EAAIrH,cAAc,OAEjCyL,GAAYvL,EAAQuL,UACpB+G,GAAkB/G,GAAUzO,WAC5ByV,GAAgBhH,GAAUiH,UAC1BC,GAAalH,GAAU5R,SACvB+Y,GAAaD,GAAWxe,OAExB0e,GAAcC,KACdC,IAAO,EACP/E,GAAcgF,KACdhB,IAAYvG,GAAUpM,WAAa,cAGvC,IA2BI4T,GAyFAC,GACAC,GKtWA3f,GLsfE4f,GACAzD,GMvf0B0D,GAE5B3L,GN+OAsE,GAAY9L,EAAQ8L,UACpBD,GAAauH,GAAU,cACvBxH,GAAcwH,GAAU,eACxBzH,GAASyH,GAAU,UACnBC,GAAWC,KACXrH,GAASmH,GAAU,UACnB1H,GAASI,GAA6C,EAAjChT,KAAKya,MAAMH,GAAU,UAC1CpH,GAAUoH,GAAU,WACpBrH,GAAc/L,EAAQ+L,aAAe/L,EAAQwT,wBAC7C5G,GAAYwG,GAAU,aACtBvG,GAAQuG,GAAU,SAClBxF,GAAS5N,EAAQ4N,OACjBD,IAAOC,IAAiB5N,EAAQ2N,KAChCE,GAAauF,GAAU,cACvBlH,GAAWkH,GAAU,YACrBhH,GAAegH,GAAU,gBACzB5G,GAAM4G,GAAU,OAChBnF,GAAQmF,GAAU,SAClBlF,GAAYkF,GAAU,aACtBtG,GAAWsG,GAAU,YACrBpG,GAAkBoG,GAAU,mBAC5BlG,GAAekG,GAAU,gBACzBjG,GAAqBiG,GAAU,sBAC/B9F,GAA4B8F,GAAU,6BACtCvL,IMvQAL,GAAQ7R,SAASmK,cAAc,SAM/BqT,IAAS3L,GAAM9Q,aAAa,QAASyc,IAMzCxd,SAASc,cAAc,QAAQyJ,YAAYsH,IAEpCA,GAAMK,MAAQL,GAAMK,MAAQL,GAAMgJ,YN0PrCzC,GAAW/N,EAAQ+N,SAGnB0F,IAFmBzT,EAAQgO,iBAEX,IAChB0F,GAAa/F,IAwOXuF,GAzBN,WAEE,GAAIpH,IAAcD,KAAeE,GAC/B,OAAO2G,GAAa,EAGpB,IAAIjK,EAAMoD,GAAa,aAAe,QAClCzD,EAAM,GAIV,IAFIyD,IAAc7L,EAAQyI,GAAOiK,KAActK,EAAI5L,KAAKwD,EAAQyI,IAE5DqF,EACF,IAAK,IAAI6F,KAAM7F,EAAY,CACzB,IAAI8F,EAAM9F,EAAW6F,GAAIlL,GACrBmL,IAAQ/H,IAAc+H,EAAMlB,KAAetK,EAAI5L,KAAKoX,GAM5D,OAFKxL,EAAInU,QAAUmU,EAAI5L,KAAK,GAErB1D,KAAK+a,KAAKhI,GAAaE,GAAcjT,KAAKE,IAAI7B,MAAM,KAAMiR,GAAOtP,KAAKC,IAAI5B,MAAM,KAAMiR,IAKhF0L,GACXrE,GAASqC,EAAWhZ,KAAK+a,MAAiB,EAAXX,GAAeR,IAAY,GAAiB,EAAXQ,GAAeR,GACnFjD,GAAS3W,KAAKC,IAAIma,GAAUzD,IAErBsE,GAAU,eAAiBtE,GAAS,EAAIA,IA5OA,EAC7CuE,GAAiBlC,EAAqCY,GAA0B,EAAbgB,GAAvChB,GAAagB,GACzCO,MAAoBpI,KAAcC,IAAe6B,IACjDuG,GAAgBrI,GAAasI,KAAqB,KAClDC,IAA+BtC,IAAanE,GAE5C0G,GAAgBlC,GAAa,OAAS,MACtCmC,GAAkB,GAClBC,GAAmB,GAEnBC,GACM3I,GACK,WAAa,OAAOI,KAAW0B,GAAO+E,GAAa,EAAI5Z,KAAK+a,MAAOK,IAAiBrI,GAAaF,MAC/FG,GACF,WACL,IAAK,IAAIzY,EAAI2gB,GAAe3gB,KAC1B,GAAI0f,GAAe1f,KAAQ6gB,GAAiB,OAAO7gB,GAIhD,WACL,OAAI4Y,IAAU6F,IAAanE,GAClB+E,GAAa,EAEb/E,IAAQmE,EAAWhZ,KAAKC,IAAI,EAAGib,GAAgBlb,KAAK+a,KAAKnI,KAAUsI,GAAgB,GAKlGtO,GAAQ+O,GAAcrB,GAAU,eAChCsB,GAAchP,GAEdiP,IADeC,KACJ,GACXC,GAAY/I,GAA4B,KAAhB0I,KAGxBnG,GAA2BrO,EAAQqO,yBACnCF,GAAanO,EAAQmO,WACrB2G,IAAwB3G,IAAa,IACrC4G,IAAU,EACVvG,GAASxO,EAAQwO,OACjBwG,GAAS,IAAInK,EAEboK,GAAsB,mBAAqBjV,EAAQwL,KACnD0J,GAAU3J,GAAUjY,KK1TpBA,GAAKuC,OAAOsf,MAChBtf,OAAOsf,MAAS7hB,GAASA,GAAK,EAAT,EAEd,MAAQuC,OAAOsf,OLwTlBjgB,GAAUke,GAAU,WACpBzS,IAAW,EACX4N,GAAYvO,EAAQuO,UACpB6G,MAAS7G,IAAczC,KAAYuJ,KACnCC,IAAS,EACTC,GAAiB,CACf,MAASC,GACT,QAmkEN,SAA4BviB,GAC1BA,EAAIwiB,GAASxiB,GACb,IAAIyiB,EAAW,CAAC/G,EAAKG,KAAMH,EAAKI,OAAOpY,QAAQ1D,EAAE+Q,SAE7C0R,GAAY,IACG,IAAbA,EACGpJ,GAAW3L,UAAY6U,GAAgBviB,GAAI,GACtCsZ,GAAW5L,UACrB6U,GAAgBviB,EAAG,MAzkErB0iB,GAAY,CACV,MA+8DN,SAAqB1iB,GACnB,GAAI8hB,GAAS,CACX,GAAI1G,GAA4B,OAAiBuH,KAInD,IAAIpT,EAASqT,GADb5iB,EAAIwiB,GAASxiB,IAIb,KAAOuP,IAAWkK,KAAiB9D,EAAQpG,EAAQ,aAAeA,EAASA,EAAO1F,WAClF,GAAI8L,EAAQpG,EAAQ,YAAa,CAC/B,IAAIsT,EAAWC,GAAaC,OAAOlN,EAAQtG,EAAQ,aAC/CyT,EAAkBpK,IAAcC,GAAYgK,EAAWpD,GAAawD,GAAQJ,EAAWpK,GAE3FyK,GADkBxJ,GAAkBmJ,EAAWhd,KAAKE,IAAIF,KAAK+a,KAAKoC,GAAkBvD,GAAa,GAC/Ezf,GAEdmjB,KAAoBN,IAClBO,IAAaC,KACjBP,IAAc,KAh+Dd,QAklEN,SAAuB9iB,GACrBA,EAAIwiB,GAASxiB,GACb,IAAIsjB,EAAapP,EAAI3B,cACrB,IAAKoD,EAAQ2N,EAAY,YAAe,OAGxC,IAAIb,EAAW,CAAC/G,EAAKG,KAAMH,EAAKI,MAAOJ,EAAKC,MAAOD,EAAKE,OAAOlY,QAAQ1D,EAAE+Q,SACrE8R,EAAWE,OAAOlN,EAAQyN,EAAY,aAEtCb,GAAY,IACG,IAAbA,EACEI,EAAW,GAAKU,GAASC,GAASX,EAAW,IAC3B,IAAbJ,EACLI,EAAWI,GAAQ,GAAKM,GAASC,GAASX,EAAW,KAEzDC,GAAaD,EACbK,GAAKL,EAAU7iB,OAhmEjByjB,GAAc,CACZ,UAmiEN,WACML,KACFM,KACAC,IAAsB,IAriEpB,SAyiEN,WACMA,KACFC,KACAD,IAAsB,KA1iEtBE,GAAkB,CAAC,iBAohEvB,WACM3P,EAAI4P,OACFV,KACFM,KACAK,IAA2B,GAEpBA,KACTH,KACAG,IAA2B,KA3hE3BC,GAAsB,CAAC,QA8iE3B,SAA4BhkB,GAC1BA,EAAIwiB,GAASxiB,GACb,IAAIyiB,EAAW,CAAC/G,EAAKG,KAAMH,EAAKI,OAAOpY,QAAQ1D,EAAE+Q,SAE7C0R,GAAY,GACdF,GAAgBviB,EAAgB,IAAbyiB,GAAkB,EAAI,KAljEzCwB,GAAc,CACZ,WAAcC,GACd,UAAaC,GACb,SAAYC,GACZ,YAAeA,IACdC,GAAa,CACd,UAAaH,GACb,UAAaC,GACb,QAAWC,GACX,WAAcA,IAEhBE,GAAcxD,GAAU,YACxByD,GAASzD,GAAU,OACnBpH,KAAkBb,IAAmB9L,EAAQ2M,gBAC7C8K,GAAc1D,GAAU,YACxB2D,GAAW3D,GAAU,SACrB4D,GAAe5D,GAAU,aACzB6D,GAAmB,mBACnBC,GAAmB,eACnBC,GAAY,CACV,KA84CN,SAAsB7kB,GACpB8kB,GAAUlC,GAAU5iB,KA94ChB,MAi5CN,SAAsBA,GASF+kB,EARRnC,GAAU5iB,GASpByV,EAASsP,EAAK,UACdC,GAAaD,GAFf,IAAoBA,IAt5ChBE,GAAiD,UAAjClY,EAAQsO,qBAG5B,GAAIiJ,GACF,IAMIY,GACAC,GAPA/L,GAAoBrM,EAAQqM,kBAC5BgM,GAAwBrY,EAAQqM,kBAAoBrM,EAAQqM,kBAAkBmG,UAAY,GAC1FlG,GAAatM,EAAQsM,WACrBC,GAAavM,EAAQuM,WACrB+L,GAAiBtY,EAAQsM,WAAatM,EAAQsM,WAAWkG,UAAY,GACrE+F,GAAiBvY,EAAQuM,WAAavM,EAAQuM,WAAWiG,UAAY,GAM3E,GAAIgF,GACF,IAEIf,GAFA/J,GAAe1M,EAAQ0M,aACvB8L,GAAmBxY,EAAQ0M,aAAe1M,EAAQ0M,aAAa8F,UAAY,GAE3E0D,GAAQpK,GAAY4G,GAAa+F,KACjCC,GAAc,EACd3C,IAAc,EACdK,GAAkBuC,KAClBC,GAAwBxC,GACxByC,GAAiB,iBACjBC,GAAS,iBACTC,GAAgB,mBAItB,GAAItB,GACF,IAIIuB,GACA3C,GACAO,GACAqC,GACAjC,GARA/J,GAAkD,YAA9BjN,EAAQiN,kBAAkC,GAAK,EACnEG,GAAiBpN,EAAQoN,eACzB8L,GAAqBlZ,EAAQoN,eAAiBpN,EAAQoN,eAAeoF,UAAY,GACjF2G,GAAsB,CAAC,qCAAwC,qBAQrE,GAAIzB,IAAYC,GACd,IAEIyB,GAIAC,GANAC,GAAe,GACfC,GAAe,GAIfC,IAAW,EAEXC,GAAUtH,GACR,SAAS/d,EAAGI,GAAK,OAAOJ,EAAES,EAAIL,EAAEK,GAChC,SAAST,EAAGI,GAAK,OAAOJ,EAAEK,EAAID,EAAEC,GAInCqX,IAAa4N,GAAyBxkB,IAAWkgB,IAElDvE,IACFwD,GAAgBxD,EAChByD,GAAkB,YAEdxD,GACFwD,IAAmBnC,GAAa,MAAQ,WACxCoC,GAAmBpC,GAAa,cAAgB,WAEhDmC,IAAmBnC,GAAa,KAAO,KACvCoC,GAAmB,MAKnBzC,IAAYvG,GAAUpM,UAAYoM,GAAUpM,UAAUjH,QAAQ,YAAa,KAiO/E,WAGkB6b,GAAU,UAE1B3B,GAAajT,UAJI,YAKjBkT,GAAalT,UAJI,YAKjBiT,GAAa9e,GAAK4hB,GAAU,MAC5B7C,GAAa/e,GAAK4hB,GAAU,MAGP,KAAjB3J,GAAUjY,KAAaiY,GAAUjY,GAAK4hB,IAC1CD,IAAuBlF,GAAoBjE,GAAY,gBAAkB,mBACzEmJ,IAAuB1F,EAAO,YAAc,eACxCzD,KAAamJ,IAAuB,kBACxCA,IAAuB,QAAUjV,EAAQyL,KACzCF,GAAUpM,WAAa8V,GAGnBnD,IACFG,GAAgB9K,EAAIrH,cAAc,QACpBxM,GAAK4hB,GAAU,MAC7BjD,GAAc9S,UAAY,UAE1BiT,GAAalS,YAAY+R,IACzBA,GAAc/R,YAAYmS,KAE1BD,GAAalS,YAAYmS,IAG3B,GAAIxE,GAAY,EACLoE,IAAgCI,IACtClT,WAAa,UAqBlB,GAlBAmT,GAAgBrR,aAAamR,GAAc7G,IAC3C8G,GAAanS,YAAYqL,IAIzBpV,EAAQsc,IAAY,SAASvT,EAAM7L,GACjCqV,EAASxJ,EAAM,YACVA,EAAK5L,KAAM4L,EAAK5L,GAAK4hB,GAAU,QAAU7hB,IACzCye,GAAYrE,IAAiB/E,EAASxJ,EAAMuO,IACjDzE,EAAS9J,EAAM,CACb,cAAe,OACf,SAAY,UAOZwU,GAAY,CAId,IAHA,IAAIiG,EAAiBxS,EAAIlE,yBACrB2W,EAAgBzS,EAAIlE,yBAEfzN,EAAIke,GAAYle,KAAM,CAC7B,IAAIqkB,EAAMrkB,EAAEkd,GACRoH,EAAarH,GAAWoH,GAAK5Z,WAAU,GAI3C,GAHAkJ,EAAY2Q,EAAY,MACxBF,EAAc3Y,aAAa6Y,EAAYF,EAAc1W,YAEjD4O,EAAU,CACZ,IAAIiI,EAAYtH,GAAWC,GAAa,EAAImH,GAAK5Z,WAAU,GAC3DkJ,EAAY4Q,EAAW,MACvBJ,EAAezZ,YAAY6Z,IAI/BxO,GAAUtK,aAAa0Y,EAAgBpO,GAAUrI,YACjDqI,GAAUrL,YAAY0Z,GACtBnH,GAAalH,GAAU5R,UAxS3BqgB,GAwXA,WAGE,IAAKlI,EACH,IAAK,IAAIze,EAAIqS,GAAOvN,EAAIuN,GAAQ5M,KAAKE,IAAI0Z,GAAYhH,IAAQrY,EAAI8E,EAAG9E,IAAK,CACvE,IAAI6L,EAAOuT,GAAWpf,GACtB6L,EAAKsI,MAAMzL,KAAqB,KAAb1I,EAAIqS,IAAegG,GAAQ,IAC9ChD,EAASxJ,EAAMqO,IACf5E,EAAYzJ,EAAMuO,IAkBlB0E,KACEpC,GAAoBjE,IACtBlE,EAAWC,GAAO,IAAMqN,GAAU,eAAgB,aAAexG,EAAI9E,iBAAiB6I,GAAW,IAAIwH,SAAW,IAAK/R,EAAkBL,KACvID,EAAWC,GAAO,IAAMqN,GAAS,eAAgBhN,EAAkBL,MAC1DiK,GACT3b,EAAQsc,IAAY,SAAUyH,EAAO7mB,GACnC6mB,EAAM1S,MAAM2S,WA3QpB,SAA6B9mB,GAC3B,OAAOkc,EACLA,EAAO,IAAU,IAAJlc,EAAU,OAAS2gB,GAAgB,IAC5C,IAAJ3gB,EAAU2gB,GAAgB,IAwQGoG,CAAmB/mB,OAOlD,GAAIid,EAAO,CAET,GAAIc,EAAoB,CACtB,IAAI3I,EAAMwJ,IAAiBjS,EAAQ6N,WAAawM,GAA2Bra,EAAQ6M,OAAS,GAC5FjF,EAAWC,GAAO,IAAMqN,GAAU,MAAOzM,EAAKP,EAAkBL,KAIlEY,EAAM6R,GAAsBta,EAAQ4L,YAAa5L,EAAQ2L,OAAQ3L,EAAQ6L,WAAY7L,EAAQ6M,MAAO7M,EAAQ6N,YAC5GjG,EAAWC,GAAO,IAAMqN,GAAU,MAAOzM,EAAKP,EAAkBL,KAG5DiK,IACFrJ,EAAM0J,KAAerG,GAAY,SAAWyO,GAAkBva,EAAQ6L,WAAY7L,EAAQ2L,OAAQ3L,EAAQ0L,OAAS,IAAM,GACrH0F,IAAsB3I,GAAO4R,GAA2BxN,KAC5DjF,EAAWC,GAAO,IAAMqN,GAASzM,EAAKP,EAAkBL,MAI1DY,EAAM0J,KAAerG,GAAY0O,GAAmBxa,EAAQ6L,WAAY7L,EAAQ2L,OAAQ3L,EAAQ0L,OAAS,GACrG1L,EAAQ2L,SAAUlD,GAAOgS,GAAoBza,EAAQ2L,SAEpDmG,IACCV,IAAsB3I,GAAO4R,GAA2BxN,KACxDyE,IAAqB7I,GAAOiS,GAA0B7N,MAExDpE,GAAOb,EAAWC,GAAO,IAAMqN,GAAU,eAAgBzM,EAAKP,EAAkBL,SAM/E,CAEL8S,KAGAtI,GAAa7K,MAAMiJ,QAAU6J,GAAsB1O,GAAaD,GAAQE,GAAYgC,IAGhFiE,GAAYK,KAAerG,KAC7BP,GAAU/D,MAAMoI,MAAQ2K,GAAkB1O,GAAYF,GAAQD,KAI5DjD,EAAM0J,KAAerG,GAAY0O,GAAmB3O,GAAYF,GAAQD,IAAS,GACjFC,KAAUlD,GAAOgS,GAAoB9O,KAGrClD,GAAOb,EAAWC,GAAO,IAAMqN,GAAU,eAAgBzM,EAAKP,EAAkBL,KAItF,GAAIiG,GAAcwC,EAChB,IAAK,IAAIqD,KAAM7F,EAAY,CAEzB6F,EAAKjb,SAASib,GAEd,IAAIiH,EAAO9M,EAAW6F,GAElBkH,GADApS,EAAM,GACa,IACnBqS,EAAkB,GAClBC,EAAe,GACfC,EAAW,GACXC,EAAWnP,GAAqC,KAAzBsH,GAAU,QAASO,GAC1CuH,EAAe9H,GAAU,aAAcO,GACvCwH,EAAU/H,GAAU,QAASO,GAC7ByH,EAAgBhI,GAAU,cAAeO,GACzC0H,EAAejI,GAAU,aAAcO,GACvC2H,EAAWlI,GAAU,SAAUO,GAG/BvC,GAAsBa,IAAiBmB,GAAU,aAAcO,IAAO,UAAWiH,IACnFC,EAAmB,IAAM3F,GAAU,OAASmF,GAA2Bc,GAAW,MAIhF,gBAAiBP,GAAQ,WAAYA,KACvCE,EAAkB,IAAM5F,GAAU,OAASoF,GAAsBc,EAAeE,EAAUJ,EAAcC,EAASE,GAAgB,KAI/HvJ,GAAYK,KAAerG,KAAc,eAAgB8O,GAAQ,UAAWA,GAAS/O,IAAc,WAAY+O,KACjHG,EAAe,SAAWR,GAAkBW,EAAcI,EAAUL,GAAW,KAE7E7J,GAAsB,UAAWwJ,IACnCG,GAAgBV,GAA2Bc,IAEzCJ,IACFA,EAAe,IAAM7F,GAAU,IAAM6F,EAAe,MAIlD,eAAgBH,GAAS/O,IAAc,WAAY+O,IAAU9I,GAAY,UAAW8I,KACtFI,GAAYR,GAAmBU,EAAcI,EAAUL,IAErD,WAAYL,IACdI,GAAYP,GAAoBa,KAG7BxJ,GAAY,UAAW8I,IACtBxJ,IAAsB4J,GAAYX,GAA2Bc,IAC7D7J,IAAqB0J,GAAYN,GAA0BS,KAE7DH,IAAYA,EAAW,IAAM9F,GAAU,gBAAkB8F,EAAW,MAGxEvS,EAAMoS,EAAmBC,EAAkBC,EAAeC,IAGxDnT,GAAMG,WAAW,sBAAwB2L,EAAK,GAAK,QAAUlL,EAAM,IAAKZ,GAAMM,SAASlU,SA5gB/FsnB,GACAC,KAwiCA,IAAIC,GACK9N,GACLmE,EAEE,WACE,IAAI4J,EAAW/G,GACXgH,EAAY9G,GAEhB6G,GAAY1P,GACZ2P,GAAa3P,GAITJ,IACF8P,GAAY,EACZC,GAAa,GACJ9P,KACJwH,GAAW1H,KAASE,GAAaF,MAAWgQ,GAAa,GAG5DjI,KACEhO,GAAQiW,EACVjW,IAASgN,GACAhN,GAAQgW,IACjBhW,IAASgN,MAKf,WACE,GAAIhN,GAAQmP,GACV,KAAOnP,IAASiP,GAAWjC,IAAchN,IAASgN,QAC7C,GAAIhN,GAAQiP,GACjB,KAAOjP,IAASmP,GAAWnC,IAAchN,IAASgN,IAIxD,WACEhN,GAAQ5M,KAAKC,IAAI4b,GAAU7b,KAAKE,IAAI6b,GAAUnP,MAsjBhDkW,GACK9J,EACL,WOzjEC,IAAqB+J,EAAShT,EAAMoB,EAAQ6R,EAASC,EAAI9mB,EAAUoT,EACpE2T,EACAC,EAEAC,EACAC,EPqjEEC,GAAc7Q,GAAW,IACrB6F,IAAuBvE,IAGzBwP,KAGKxP,IAAUlD,EAAU4B,KAAcqK,OOjkErBiG,EPqkENtQ,GOrkEe1C,EPqkEJwL,GOrkEUpK,EPqkEKqK,GOrkEGwH,EPqkEcvH,GOrkELwH,EPqkEuBO,KOrkEnBrnB,EPqkEiD4X,GOrkEvCxE,EPqkE8CuN,GOpkElHoG,EAAOljB,KAAKE,IAAI/D,EAAU,IAC1BgnB,EAAQF,EAAGplB,QAAQ,MAAQ,EAAK,IAAM,KACtColB,EAAKA,EAAG7jB,QAAQ+jB,EAAM,IACtBC,EAAOlG,OAAO6F,EAAQrU,MAAMqB,GAAM3Q,QAAQ+R,EAAQ,IAAI/R,QAAQ4jB,EAAS,IAAI5jB,QAAQ+jB,EAAM,KACzFE,GAAgBJ,EAAKG,GAAQjnB,EAAW+mB,EAG5C3kB,YACA,SAASklB,IACPtnB,GAAY+mB,EACZE,GAAQC,EACRN,EAAQrU,MAAMqB,GAAQoB,EAASiS,EAAOD,EAAOH,EACzC7mB,EAAW,EACboC,WAAWklB,EAAaP,GAExB3T,MARoB2T,IPgkEb7J,IAAcqK,MAErB,WACE/I,GAAgB,GAEhB,IAAIgJ,EAAM,GACVA,EAAIjL,GAAiBiL,EAAIhL,GAAgBmE,GACzChL,EAAa6H,GAAWiC,IAAc+H,GACtC/R,EAAU+H,GAAW/M,IAAQ+W,GAE7BC,GAAahI,GAAanH,GAAWC,IAAY,GACjDkP,GAAahX,GAAO+H,GAAeF,IAI9BiE,GAAkBC,GAAiB5E,IAAUlD,EAAU4B,KAAcqK,MA4jBhF,MAAO,CACL+G,QAAS,QACTC,QAASpmB,GACTwe,OAAQA,GACRmB,KAAMA,GACN0G,KA9UF,WACM/P,KAAauJ,KACfyG,KACA7D,IAAqB,IA4UvB8D,MAzUF,WACM1G,KACFC,KACA2C,IAAqB,IAuUvBpG,KAAMA,GACNmK,mBAAoBC,GACpBlmB,QAASykB,GACT0B,QA7iDF,WAoBE,GAlBArV,GAAMlH,UAAW,EACbkH,GAAMsV,WAAatV,GAAMsV,UAAUjiB,SAGvC0P,EAAa8D,EAAK,CAAC,OAAU0O,KAGzBxQ,IAAahC,EAAazD,EAAK8P,IAC/B5K,IAAqBzB,EAAayB,GAAmBkJ,IACrD7I,IAAgB9B,EAAa8B,GAAciJ,IAG/C/K,EAAaW,GAAWmL,IACxB9L,EAAaW,GAAWuL,IACpB1J,IAAkBxC,EAAawC,GAAgB,CAAC,MAASiQ,KACzDvQ,IAAYwQ,cAActE,IAG1BlH,GAAYN,EAAe,CAC7B,IAAIiL,EAAM,GACVA,EAAIjL,GAAiBoE,GACrBhL,EAAaW,GAAWkR,GAEtBxO,IAASrD,EAAaW,GAAW2L,IACjChJ,IAAatD,EAAaW,GAAW+L,IAGzC,IAAIiG,EAAW,CAAChL,GAAe8F,GAAuBC,GAAgBC,GAAgBC,GAAkBU,IAmBxG,IAAK,IAAI9kB,KAjBTud,EAAQxb,SAAQ,SAAS+I,EAAM7L,GAC7B,IAAI0M,EAAc,cAATb,EAAuBkT,GAAepS,EAAQd,GAEvD,GAAkB,iBAAPa,EAAiB,CAC1B,IAAIyd,IAASzd,EAAG0d,wBAAyB1d,EAAG0d,uBACxCC,EAAW3d,EAAGjD,WAClBiD,EAAGyS,UAAY+K,EAASlqB,GACxB2M,EAAQd,GAAQse,EAASA,EAAOG,mBAAqBD,EAASE,sBAMlEjM,EAAUpE,GAAYC,GAAaE,GAAeD,GAAgB0E,GAAaC,GAAeC,GAAe9G,GAAY+G,GAAkBC,GAAgBE,GAAaC,GAAaR,GAAiBS,GAAc7G,GAAYD,GAAaD,GAAcD,GAAS0H,GAAW3H,GAAQM,GAAUD,GAAca,GAAYC,GAAQe,GAASD,GAAOE,GAAahG,GAAQkG,GAAWgF,GAAiBU,GAAgBC,GAAaM,GAAgBC,GAAmBC,GAAgBE,GAA6BC,GAAgBC,GAAkBC,GAAmBC,GAAc9O,GAAQgP,GAAcC,GAAWE,GAAyB1G,GAAa2G,GAAwBC,GAAUvG,GAASwG,GAASC,GAAsBC,GAAUhgB,GAAUyL,GAAW4N,GAAY6G,GAASE,GAASC,GAAiBI,GAAYe,GAAcI,GAAkBG,GAAsBC,GAAcI,GAAaC,GAAcC,GAAS7K,GAAkB8K,GAAcC,GAAWC,GAAeC,GAAmBC,GAAmBC,GAAY9E,GAAe9G,GAAWE,GAAeC,GAAoBgM,GAAwB/L,GAAaC,GAAa4L,GAAeC,GAAe5L,GAAME,GAAe8L,GAAmB/B,GAAWP,GAAQwC,GAAc3C,GAAaK,GAAkBwC,GAAwBC,GAAiBC,GAASC,GAAgBjM,GAAWE,GAAkBC,GAAoBC,GAAeC,GAAqBC,GAAiB8L,GAAqB5L,GAA4B6L,GAAsBH,GAAgB3C,GAAYO,GAAsBqC,GAAqBjC,GAA2BsC,GAAeC,GAAeH,GAA8BI,GAAWH,GAAWI,GAAUxL,GAAQC,GAAY,KAI3pDzW,KACF,YAANrD,IAAmBqD,KAAKrD,GAAK,MAEnCye,IAAO,GA2/CPgL,QAAS,WACP,OAAOvS,EAAI/E,EAAOvG,EAAS4R,MAzuE/B,SAAS8H,GAA0BoE,GAC7BA,IACF5R,GAAWM,GAAMyB,GAAQC,GAAYtB,GAAYE,GAAWK,GAAqBG,IAA4B,GAIjH,SAASsH,KAEP,IADA,IAAIhB,EAAM9B,EAAWpM,GAAQgO,GAAahO,GACnCkO,EAAM,GAAKA,GAAOlB,GACzB,OAAOkB,EAAIlB,GAAa,EAG1B,SAAS+B,GAAesJ,GAEtB,OADAA,EAAMA,EAAMjlB,KAAKC,IAAI,EAAGD,KAAKE,IAAI2U,GAAO+E,GAAa,EAAIA,GAAahH,GAAOqS,IAAQ,EAC9EjM,EAAWiM,EAAMrK,GAAaqK,EAGvC,SAASC,GAAa3qB,GAIpB,IAHS,MAALA,IAAaA,EAAIqS,IAEjBoM,IAAYze,GAAKqgB,IACdrgB,EAAI,GAAKA,GAAKqf,GAErB,OAAO5Z,KAAKya,MAAMlgB,EAAEqf,IAGtB,SAASiG,KACP,IACIlJ,EADAwO,EAAWD,KAUf,OAPAvO,EAAS9C,GAAkBsR,EACzBpS,IAAcC,GAAYhT,KAAK+a,MAAMoK,EAAW,GAAK/H,GAAQxD,GAAa,GACtE5Z,KAAKya,MAAM0K,EAAWvS,KAGvBiC,IAAQmE,GAAYpM,KAAUmP,KAAYpF,EAASyG,GAAQ,GAEzDzG,EAmCT,SAASmD,KACP,OAAOlE,EAAIwP,YAAc/W,EAAInN,gBAAgBmkB,aAAehX,EAAI1F,KAAK0c,YAGvE,SAASC,GAAmBC,GAC1B,MAAe,QAARA,EAAgB,aAAe,YAYxC,SAAS/K,KACP,IAAIgL,EAAM1S,GAA4B,EAAdA,GAAkBD,GAAS,EACnD,OAXF,SAAS4S,EAAgBxe,GACvB,IAAoCye,EAAM5O,EAAtCJ,EAAMrI,EAAIrH,cAAc,OAK5B,OAJAC,EAAGG,YAAYsP,GAEfI,GADA4O,EAAOhP,EAAIpL,yBACEqa,MAAQD,EAAKziB,KAC1ByT,EAAItU,SACG0U,GAAS2O,EAAexe,EAAGjD,YAK3ByhB,CAAejM,IAAmBgM,EAG3C,SAASvK,GAAW7U,GAClB,GAAIc,EAAQd,GACV,OAAO,EAEP,GAAI4O,EACF,IAAK,IAAI6F,KAAM7F,EACb,GAAIA,EAAW6F,GAAIzU,GAAS,OAAO,EAGvC,OAAO,EAQX,SAASkU,GAAWlU,EAAMwf,GAGxB,GAFU,MAANA,IAAcA,EAAK/L,IAEV,UAATzT,GAAoB2M,GACtB,OAAO/S,KAAKya,OAAOF,GAAW1H,KAAWE,GAAaF,MAAY,EAGlE,IAAI8D,EAASzP,EAAQd,GAErB,GAAI4O,EACF,IAAK,IAAI6F,KAAM7F,EAET4Q,GAAMhmB,SAASib,IACbzU,KAAQ4O,EAAW6F,KAAOlE,EAAS3B,EAAW6F,GAAIzU,IAQ5D,MAHa,YAATA,GAAiC,SAAXuQ,IAAqBA,EAAS2D,GAAU,UAC7DtB,GAAsB,YAAT5S,GAA+B,UAATA,IAAqBuQ,EAAS3W,KAAKya,MAAM9D,IAE1EA,EAUX,SAAS6K,GAAuBqE,EAAgBC,EAAWC,EAAeC,EAAUzD,GAClF,IAAI5S,EAAM,GAEV,QAAuB/B,IAAnBiY,EAA8B,CAChC,IAAIL,EAAMK,EACNC,IAAaN,GAAOM,GACxBnW,EAAM0J,GACJ,aAAemM,EAAM,QAAUK,EAAiB,MAChD,WAAaA,EAAiB,QAAUL,EAAM,aAC3C,GAAIM,IAAcC,EAAe,CACtC,IAAIE,EAAgB,IAAMH,EAAY,KAEtCnW,EAAM,cADI0J,GAAa4M,EAAgB,OAAS,KAAOA,EAAgB,MAC5C,IAI7B,OADKjN,GAAYuJ,GAAgBjK,GAAsB0N,IAAYrW,GAAO4R,GAA2ByE,IAC9FrW,EAGT,SAAS8R,GAAmBsE,EAAeD,EAAWI,GACpD,OAAIH,GACMA,EAAgBD,GAAa5K,GAAgB,KAE9CzE,EACLA,EAAO,IAAsB,IAAhByE,GAAsB,OAASgL,EAAW,IACvC,IAAhBhL,GAAsBgL,EAAW,IAIvC,SAASxE,GAAoBqE,EAAeD,EAAWI,GACrD,IAAIpP,EAEJ,GAAIiP,EACFjP,EAASiP,EAAgBD,EAAa,SACjC,CACA9M,IAAYkN,EAAWlmB,KAAKya,MAAMyL,IACvC,IAAIC,EAAWnN,EAAWkC,GAAgBgL,EAC1CpP,EAAQL,EACNA,EAAO,WAAa0P,EAAW,IAC/B,IAAMA,EAAW,IAMrB,OAHArP,EAAQ,SAAWA,EAGD,UAAXxB,EAAqBwB,EAAQ,IAAMA,EAAQ,eAGpD,SAAS6K,GAAqBmE,GAC5B,IAAInW,EAAM,IAIQ,IAAdmW,IAGFnW,GAFW0J,GAAa,WAAa,YAC3BA,GAAa,QAAU,UACb,KAAOyM,EAAY,OAGzC,OAAOnW,EAGT,SAASyW,GAAc/hB,EAAM0c,GAC3B,IAAI5P,EAAS9M,EAAKgiB,UAAU,EAAGhiB,EAAKlJ,OAAS4lB,GAAK5c,cAGlD,OAFIgN,IAAUA,EAAS,IAAMA,EAAS,KAE/BA,EAGT,SAASoQ,GAA4BxN,GACnC,OAAOqS,GAAa9N,EAAoB,IAAM,uBAAyBvE,EAAQ,IAAO,KAGxF,SAAS6N,GAA2B7N,GAClC,OAAOqS,GAAa5N,EAAmB,IAAM,sBAAwBzE,EAAQ,IAAO,KAgFtF,SAAS2O,KAEP,GAAIzH,GAAU,eAAiBjI,KAAcqG,GAAY,CACvD,IAAIiN,EAAO7T,GAAUjQ,iBAAiB,OAGtCnF,EAAQipB,GAAM,SAASpH,GACrB,IAAIqH,EAAMrH,EAAIqH,IAEVA,GAAOA,EAAI1oB,QAAQ,cAAgB,GACrC+T,EAAUsN,EAAKF,IACfE,EAAIqH,IAAM,GACVrH,EAAIqH,IAAMA,EACV3W,EAASsP,EAAK,YACJjK,IACVgK,GAAUC,MAKdlS,GAAI,WAAYwZ,GAAgBjW,EAAkB+V,IAAO,WAAapM,IAAe,SAGhFlH,IAAaqG,KAAciN,EAAOG,GAAc7Z,GAAO5M,KAAKE,IAAI0M,GAAQgG,GAAQ,EAAGsI,GAAgB,KAExGjG,GAAWyR,KAAkC1Z,GAAI,WAAYwZ,GAAgBjW,EAAkB+V,GAAOI,YAIlG1N,GAAY2N,KAGhBC,KACAC,KAIJ,SAASH,KACP,GAAI1T,GAAW,CAEb,IAAI+N,EAAMlM,GAAOjI,GAAQgN,GAAa,GACtC,SAAUkN,IACRnN,GAAWoH,EAAM,GAAGzV,wBAAwBqa,MAAMoB,QAAQ,KAAOpN,GAAWoH,GAAKzV,wBAAwBrI,KAAK8jB,QAAQ,GACtHC,KACAzoB,YAAW,WAAYuoB,MAA4B,IAHrD,QAMAE,KAKJ,SAASA,KAEF3N,KAAcrG,KACjBiU,KAEIjU,IACFoI,GAAgBC,KACZ5F,KAAa6G,GAASC,MAC1BR,GAAWL,KACXkF,GAAyBxkB,IAAWkgB,KAEpCoH,MAKA1K,GAAY2N,KAGhBC,KACAC,KA8JF,SAASD,KASP,GAPAM,KAGA5N,GAAa6N,mBAAmB,aAAc,qHAAuHC,KAAqB,eAAiBxN,GAAa,UACxNO,GAAoBb,GAAa3b,cAAc,4BAG3CghB,GAAa,CACf,IAAI0I,EAAMrT,GAAW,OAAS,QAC1BM,GACFpE,EAASoE,GAAgB,CAAC,cAAe+S,IAChCngB,EAAQqN,uBACjB+E,GAAa6N,mBAAmB7B,GAAkBpe,EAAQ+M,kBAAmB,wBAA0BoT,EAAM,KAAOhH,GAAoB,GAAKgH,EAAMhH,GAAoB,GAAKjM,GAAa,GAAK,aAC9LE,GAAiBgF,GAAa3b,cAAc,kBAI1C2W,IACF1C,EAAU0C,GAAgB,CAAC,MAASiQ,KAGlCvQ,KACFgQ,KACI3P,IAAsBzC,EAAUa,GAAWmL,IAC3CpJ,IAA6B5C,EAAUa,GAAWuL,KAK1D,GAAIU,GAAQ,CAIV,GAAI9K,GACF1D,EAAS0D,GAAc,CAAC,aAAc,wBAEtCvW,EADAsgB,GAAW/J,GAAa/S,UACN,SAASuF,EAAM7L,GAC/B2V,EAAS9J,EAAM,CACb,WAAY7L,EACZ,SAAY,KACZ,aAAcylB,IAAUzlB,EAAI,GAC5B,gBAAiB6hB,YAKhB,CAGL,IAFA,IAAIkL,EAAU,GACVC,EAAY1T,GAAkB,GAAK,uBAC9BtZ,EAAI,EAAGA,EAAIqf,GAAYrf,IAE9B+sB,GAAW,qBAAuB/sB,EAAG,kCAAoC6hB,GAAU,KAAOmL,EAAY,gBAAkBvH,IAAUzlB,EAAI,GAAI,cAE5I+sB,EAAU,yDAA2DA,EAAU,SAC/EhO,GAAa6N,mBAAmB7B,GAAkBpe,EAAQyM,aAAc2T,GAExE1T,GAAe0F,GAAa3b,cAAc,YAC1CggB,GAAW/J,GAAa/S,SAM1B,GAHA2mB,KAGIlP,EAAoB,CACtB,IAAInH,EAASmH,EAAmB+N,UAAU,EAAG/N,EAAmBnd,OAAS,IAAIgJ,cACzEwL,EAAM,mBAAqBoE,GAAQ,IAAO,IAE1C5C,IACFxB,EAAM,IAAMwB,EAAS,IAAMxB,GAG7Bb,EAAWC,GAAO,mBAAqBqN,GAAU,SAAUzM,EAAKP,EAAkBL,KAGpFmB,EAASyN,GAASL,IAAkB,CAAC,aAAc0C,IAAU1C,GAAkB,GAAK2C,KACpF5P,EAAYsN,GAASL,IAAkB,YACvC1N,EAAS+N,GAASL,IAAkByC,IAGpCnO,EAAUgC,GAAciJ,IAMtB4B,KACGlL,IAAuBC,IAAeC,KACzC6F,GAAa6N,mBAAmB7B,GAAkBpe,EAAQmM,kBAAmB,qIAAuI+I,GAAS,KAAO9I,GAAa,GAAK,sEAAwE8I,GAAS,KAAO9I,GAAa,GAAK,mBAEhWC,GAAoB+F,GAAa3b,cAAc,kBAG5C6V,IAAeC,KAClBD,GAAaD,GAAkB1S,SAAS,GACxC4S,GAAaF,GAAkB1S,SAAS,IAGtCqG,EAAQqM,mBACVrD,EAASqD,GAAmB,CAC1B,aAAc,sBACd,SAAY,OAIZrM,EAAQqM,mBAAsBrM,EAAQsM,YAActM,EAAQuM,aAC9DvD,EAAS,CAACsD,GAAYC,IAAa,CACjC,gBAAiB2I,GACjB,SAAY,QAIZlV,EAAQqM,mBAAsBrM,EAAQsM,YAActM,EAAQuM,cAC9DvD,EAASsD,GAAY,CAAC,gBAAkB,SACxCtD,EAASuD,GAAY,CAAC,gBAAkB,UAG1C4L,GAAeoI,GAASjU,IACxB8L,GAAemI,GAAShU,IAExBiU,KAGInU,GACF3B,EAAU2B,GAAmBkJ,KAE7B7K,EAAU4B,GAAYiJ,IACtB7K,EAAU6B,GAAYgJ,MAK1BkL,KAGF,SAASd,KAEP,GAAI7N,GAAYN,EAAe,CAC7B,IAAIiL,EAAM,GACVA,EAAIjL,GAAiBoE,GACrBlL,EAAUa,GAAWkR,GAGnBxO,IAASvD,EAAUa,GAAW2L,GAAalX,EAAQsO,sBACnDJ,IAAaxD,EAAUa,GAAW+L,IAClC1K,IAAalC,EAAUvD,EAAK8P,IAEjB,UAAX7I,EACF4G,GAAOjK,GAAG,gBAAgB,WACxB2V,KACA1L,GAAO5J,KAAK,cAAe5U,UAEpBsX,GAAcjC,IAAcC,IAAa+B,KAAesE,KACjEzH,EAAUgE,EAAK,CAAC,OAAU0O,KAGxBvP,KACa,UAAXO,EACF4G,GAAOjK,GAAG,cAAe4V,IACfzrB,IAAWyrB,MAGzBC,KACI1rB,GAAW2rB,KAA4BzL,IAAU0L,KAErD9L,GAAOjK,GAAG,eAAgBgW,IACX,UAAX3S,GAAsB4G,GAAO5J,KAAK,cAAe5U,MAC/B,mBAAXgY,IAAyBA,GAAOhY,MAC3Cqc,IAAO,EA2DT,SAASuK,GAAUnqB,GACjB6S,GAAI,WAAY4a,GAAYjL,GAASxiB,OAGvC,SAASytB,GAAaztB,GACpB,GAAK4f,GAAL,CACe,UAAXzE,GAAsB4G,GAAO5J,KAAK,eAAgB5U,GAAKvD,IAC3D0f,GAAcC,KACd,IAAIoO,EACAC,EAAoB/O,GACpBgP,GAAyB,EAEzBpT,IACFgF,MACAkO,EAAYC,IAAsB/O,KAEjB8C,GAAO5J,KAAK,qBAAsB5U,GAAKvD,KAG1D,IAAIkuB,EACAC,EACApC,EAAWtT,GACX2V,EAAansB,GACbosB,EAAYlM,GACZmM,EAAe3U,GACf4U,EAActV,GACduV,EAASjV,GACTkV,EAAWzT,GACX0T,EAAezT,GACf0T,EAAc9U,GACd+U,EAAwB1U,GACxB2U,EAA+BxU,GAC/ByU,EAAWrc,GAEf,GAAIsb,EAAW,CACb,IAAInC,EAAgBhT,GAChBmW,EAAgBnU,GAChBoU,EAAkB7V,GAClB8V,EAAYjW,GACZkW,EAAkBjV,GAEtB,IAAKoD,EACH,IAAIsO,EAAYjT,GACZgT,EAAiB/S,GAqJzB,GA7IAgB,GAAYwG,GAAU,aACtBlH,GAAWkH,GAAU,YACrB5G,GAAM4G,GAAU,OAChBnF,GAAQmF,GAAU,SAClBnH,GAASmH,GAAU,UACnBlF,GAAYkF,GAAU,aACtBtG,GAAWsG,GAAU,YACrBjG,GAAqBiG,GAAU,sBAC/B9F,GAA4B8F,GAAU,6BAElC4N,IACF9rB,GAAUke,GAAU,WACpBvH,GAAauH,GAAU,cACvBvG,GAAQuG,GAAU,SAClBvF,GAAauF,GAAU,cACvBhH,GAAegH,GAAU,gBACzBlG,GAAekG,GAAU,gBACzBpG,GAAkBoG,GAAU,mBAEvB9C,IACH1E,GAAcwH,GAAU,eACxBzH,GAASyH,GAAU,YAIvBsG,GAAyBxkB,IAEzBme,GAAWC,KACLnB,KAAcrG,IAAe5W,KACjC6qB,KACK5N,KACHqK,KACA0E,GAAyB,KAGzBrV,IAAcC,MAChBoI,GAAgBC,KAEhBU,GAAWL,OAITwM,GAAanV,MACfH,GAAQ0H,GAAU,SAClBpH,GAAUoH,GAAU,YACpBgO,EAAe1V,KAAUsT,KAGlBnT,IAAeC,KAAa+I,GAAWL,MAG5CiH,OAIAuF,GACE9rB,KAAYmsB,IACVnsB,GACF2rB,KAqVR,WACE,IAAKlgB,GAAY,OAMjB,GAJAkH,GAAMlH,UAAW,EACjB4K,GAAUpM,WAAa8V,GACvBwK,KAEI9R,GACF,IAAK,IAAInY,EAAIke,GAAYle,KACnBsc,GAAYpI,EAAY+I,GAAWjd,IACvCkU,EAAY+I,GAAWuB,GAAgBxe,EAAI,IAK/C,IAAKsc,EACH,IAAK,IAAIze,EAAIqS,GAAOvN,EAAIuN,GAAQgN,GAAYrf,EAAI8E,EAAG9E,IAAK,CACtD,IAAI6L,EAAOuT,GAAWpf,GAClB+uB,EAAS/uB,EAAIqS,GAAQgG,GAAQ6B,GAAYE,GAC7CvO,EAAKsI,MAAMzL,KAAqB,KAAb1I,EAAIqS,IAAegG,GAAQ,IAC9ChD,EAASxJ,EAAMkjB,GAKnBC,KAEA1hB,IAAW,EA9WL2hB,IAKF/T,KAAcyS,GAAanV,IAAcC,MAC3CsJ,GAASC,QAIMiM,IACTlM,IACFiH,GAAqBC,GAA2B7H,GAAc,KAC9DqM,QAgRR,WACE,IAAKxL,GAAU,OAIX1J,IAAe0E,IAAS+B,GAAa7K,MAAM+a,OAAS,IAGxD,GAAI7O,GAEF,IADA,IAAIjL,EAAM,kBACDpV,EAAIqgB,GAAYrgB,KACnBye,GAAYnJ,EAAY8J,GAAWpf,GAAIoV,GAC3CE,EAAY8J,GAAWuB,GAAgB3gB,EAAI,GAAIoV,GAKnD4Z,KAEA/M,IAAS,EAjSHkN,GACAtB,GAAyB,IAK/BxH,GAAyBxkB,IAAWkgB,IAC/BtI,KAAYK,GAAqBG,IAA4B,GAE9DV,KAAc2U,IAChB3U,GACElC,EAAUvD,EAAK8P,IACfrM,EAAazD,EAAK8P,KAElB/K,KAAasV,IACXtV,GACEG,GACF3C,EAAY2C,KAERC,IAAc5C,EAAY4C,IAC1BC,IAAc7C,EAAY6C,KAG5BF,GACF9C,EAAY8C,KAERC,IAAc/C,EAAY+C,IAC1BC,IAAchD,EAAYgD,MAIhCC,KAAQiV,IACVjV,GACE9C,EAAYgD,IACZnD,EAAYmD,KAEZuB,KAAUyT,IACZzT,GACEvD,EAAUa,GAAW2L,GAAalX,EAAQsO,sBAC1C1D,EAAaW,GAAW2L,KAExBhJ,KAAcyT,IAChBzT,GACExD,EAAUa,GAAW+L,IACrB1M,EAAaW,GAAW+L,KAExBxK,KAAa8U,IACX9U,IACEM,IAAkB1D,EAAY0D,IAC7BiJ,IAAc4C,IAAsB6D,OAErC1P,IAAkB7D,EAAY6D,IAC9BiJ,IAAaC,OAGjBnJ,KAAuB0U,IACzB1U,GACEzC,EAAUa,GAAWmL,IACrB9L,EAAaW,GAAWmL,KAExBpJ,KAA8BwU,IAChCxU,GACE5C,EAAUvD,EAAK2P,IACflM,EAAazD,EAAK2P,KAGlBkK,GAYF,GAXInV,KAAegT,GAAiB5S,KAAWiW,IAAahB,GAAyB,GAEjFrT,KAAemU,IACZnU,KAAcwE,GAAa7K,MAAMib,OAAS,KAG7CvW,IAAYE,KAAiB6V,IAC/B3V,GAAWnM,UAAYiM,GAAa,GACpCG,GAAWpM,UAAYiM,GAAa,IAGlCgB,IAAkBF,KAAiBiV,EAAiB,CACtD,IAAI9uB,EAAIyZ,GAAW,EAAI,EACnB4V,EAAOtV,GAAejN,UACtBwiB,EAAMD,EAAKzuB,OAASkuB,EAAgB9uB,GAAGY,OACvCyuB,EAAKvD,UAAUwD,KAASR,EAAgB9uB,KAC1C+Z,GAAejN,UAAYuiB,EAAKvD,UAAU,EAAGwD,GAAOzV,GAAa7Z,UAIjE4Y,KAAWJ,IAAcC,MAAcoV,GAAyB,GAsBtE,IAnBIE,GAAgBvV,KAAeC,MACjCoK,GAAQuC,KACR6H,OAGFa,EAAazb,KAAUqc,IAErB/M,GAAO5J,KAAK,eAAgB5U,MAC5B0qB,GAAyB,GAChBE,EACJD,GAAcJ,MACVlV,IAAcC,MACvB8U,KACAZ,KACA4C,MAGExB,IAAiBtP,GAwevB,WAEE,IADA,IAAI3Z,EAAIuN,GAAQ5M,KAAKE,IAAI0Z,GAAYhH,IAC5BrY,EAAI2gB,GAAe3gB,KAAM,CAChC,IAAI6L,EAAOuT,GAAWpf,GAElBA,GAAKqS,IAASrS,EAAI8E,GAEpBuQ,EAASxJ,EAAM,cAEfA,EAAKsI,MAAMzL,KAAqB,KAAb1I,EAAIqS,IAAegG,GAAQ,IAC9ChD,EAASxJ,EAAMqO,IACf5E,EAAYzJ,EAAMuO,KACTvO,EAAKsI,MAAMzL,OACpBmD,EAAKsI,MAAMzL,KAAO,GAClB2M,EAASxJ,EAAMuO,IACf9E,EAAYzJ,EAAMqO,KAIpB5E,EAAYzJ,EAAMsO,IAIpBnW,YAAW,WACTlB,EAAQsc,IAAY,SAAS1S,GAC3B4I,EAAY5I,EAAI,mBAEjB,KAngB8B8iB,IAE5B3tB,KAAYkgB,GAAQ,CAEvB,GAAI4L,IAAc1Q,IAEZzC,KAAeiV,eAAiBjW,KAAUiS,UAC5CnE,KAIE/O,KAAgB+S,GAAkBhT,KAAWiT,IAC/CvM,GAAa7K,MAAMiJ,QAAU6J,GAAsB1O,GAAaD,GAAQE,GAAYgB,GAAOgB,KAGzFsE,IAAY,CAEVL,IACFvG,GAAU/D,MAAMoI,MAAQ2K,GAAkB1O,GAAYF,GAAQD,KAIhE,IAAIjD,EAAM+R,GAAmB3O,GAAYF,GAAQD,IACvC+O,GAAoB9O,KQt6CjC,SAAuB9D,EAAOnC,GAEjC,eAAgBmC,EACdA,EAAMkb,WAAWrd,GACjBmC,EAAMmb,WAAWtd,GRs6Cbud,CAAcpb,GAAOK,EAAkBL,IAAS,GAChDD,EAAWC,GAAO,IAAMqN,GAAU,eAAgBzM,EAAKP,EAAkBL,KAKzEgG,IAAc8S,KAEdO,IACFzB,KACA/K,GAAchP,IAIdsb,GAAahM,GAAO5J,KAAK,mBAAoB5U,GAAKvD,KAQxD,SAASoiB,KACP,IAAKxJ,KAAeC,GAElB,OAAQ4G,KADAzG,GAASP,IAASA,GAAQ,GAAK,EAAIA,IAI7C,IAAIkE,EAAQ/D,IAAcA,GAAaF,IAAU+G,GAAaK,GAAeL,IACzEwQ,EAAKtX,GAAcyH,GAAyB,EAAdzH,GAAkByH,GAAW1H,GAM/D,OAJIM,KACFiX,GAAMrX,IAAcwH,GAAWxH,IAAc,GAAKwH,IAAYN,GAAerN,GAAQ,GAAKqN,GAAerN,IAASiG,KAAW,GAGxHiE,GAASsT,EAGlB,SAASpQ,KAEP,IAAK,IAAIa,KADTzB,GAAiB,EACFpE,EACb6F,EAAKjb,SAASib,GACVhB,IAAegB,IAAMzB,GAAiByB,GA+C9C,SAAS8M,MACF3T,IAAYM,IAAkB7D,EAAY6D,KAC1CZ,IAAOE,IAAgBnD,EAAYmD,IACnCR,KACCG,GACF9C,EAAY8C,KAERC,IAAc/C,EAAY+C,IAC1BC,IAAchD,EAAYgD,MAKpC,SAAS8V,KACHvV,IAAYM,IAAkB1D,EAAY0D,IAC1CZ,IAAOE,IAAgBhD,EAAYgD,IACnCR,KACEG,GACF3C,EAAY2C,KAERC,IAAc5C,EAAY4C,IAC1BC,IAAc7C,EAAY6C,MAKpC,SAASuU,KACP,IAAIxL,GAAJ,CAMA,GAHI1J,KAAeyG,GAAa7K,MAAM+a,OAAS,OAG3C7O,GAEF,IADA,IAAIjL,EAAM,kBACDpV,EAAIqgB,GAAYrgB,KACnBye,GAAYpJ,EAAS+J,GAAWpf,GAAIoV,GACxCC,EAAS+J,GAAWuB,GAAgB3gB,EAAI,GAAIoV,GAKhDgY,KAEAnL,IAAS,GAyBX,SAASuL,KACP,IAAIlgB,GAAJ,CAKA,GAHAkH,GAAMlH,UAAW,EACjB4K,GAAUpM,UAAYoM,GAAUpM,UAAUjH,QAAQ+c,GAAoBkK,UAAU,GAAI,IACpFhW,EAAYoC,GAAW,CAAC,UACpBoC,GACF,IAAK,IAAInY,EAAIke,GAAYle,KACnBsc,GAAYvI,EAAYkJ,GAAWjd,IACvC+T,EAAYkJ,GAAWuB,GAAgBxe,EAAI,IAQ/C,GAHK2c,IAAeL,GAAY3I,EAAYkJ,GAAc,CAAC,WAGtDP,EACH,IAAK,IAAIze,EAAIqS,GAAOvN,EAAIuN,GAAQgN,GAAYrf,EAAI8E,EAAG9E,IAAK,CACtD,IAAI6L,EAAOuT,GAAWpf,GACtB8V,EAAYjK,EAAM,CAAC,UACnByJ,EAAYzJ,EAAMqO,IAClB5E,EAAYzJ,EAAMuO,IAKtBgT,KAEA9f,IAAW,GAiCb,SAASiiB,KACP,IAAIna,EAAMyX,KACNjN,GAAkB9S,YAAcsI,IAAOwK,GAAkB9S,UAAYsI,GAG3E,SAASyX,KACP,IAAI9X,EAAM+a,KACNC,EAAQhb,EAAI,GAAK,EACjBib,EAAMjb,EAAI,GAAK,EACnB,OAAOgb,IAAUC,EAAMD,EAAQ,GAAKA,EAAQ,OAASC,EAGvD,SAASF,GAAsBzT,GAClB,MAAPA,IAAeA,EAAM4M,MACzB,IAAmB+G,EAAKC,EAAYC,EAAhCH,EAAQ1d,GAiBZ,GAdIuG,IAAUL,IACRE,IAAaD,MACfyX,IAAgBE,WAAW9T,GAAO9D,IAClC2X,EAAWD,EAAajQ,GAAyB,EAAdzH,IAGjCE,KACFwX,EAAavQ,GAAerN,IAC5B6d,EAAWD,EAAajQ,IAMxBvH,GACFiH,GAAe5c,SAAQ,SAASstB,EAAOpwB,GACjCA,EAAI2gB,MACD/H,IAAUL,KAAgB6X,GAASH,EAAa,KAAOF,EAAQ/vB,GAChEkwB,EAAWE,GAAS,KAAOJ,EAAMhwB,WAKpC,CAEL,GAAIwY,GAAY,CACd,IAAI6X,EAAO7X,GAAaF,GACpBM,IAAUL,IACZwX,EAAQtqB,KAAKya,MAAM+P,EAAWI,GAC9BL,EAAMvqB,KAAK+a,KAAK0P,EAASG,EAAO,IAEhCL,EAAMD,EAAQtqB,KAAK+a,KAAKR,GAASqQ,GAAQ,OAI3C,GAAIzX,IAAUL,GAAa,CACzB,IAAIxX,EAAIsX,GAAQ,EAQhB,GAPIO,IACFmX,GAAShvB,EAAI,EACbivB,EAAM3d,GAAQtR,EAAI,GAElBivB,EAAM3d,GAAQtR,EAGZwX,GAAa,CACf,IAAIpX,EAAIoX,GAAcF,GAAQ2H,GAC9B+P,GAAS5uB,EACT6uB,GAAO7uB,EAGT4uB,EAAQtqB,KAAKya,MAAM6P,GACnBC,EAAMvqB,KAAK+a,KAAKwP,QAEhBA,EAAMD,EAAQ1X,GAAQ,EAI1B0X,EAAQtqB,KAAKC,IAAIqqB,EAAO,GACxBC,EAAMvqB,KAAKE,IAAIqqB,EAAKrP,GAAgB,GAGtC,MAAO,CAACoP,EAAOC,GAGjB,SAASzC,KACH7S,KAAa7Y,IACfqqB,GAAcpoB,MAAM,KAAMgsB,MAAwBhtB,SAAQ,SAAU6hB,GAClE,IAAKxP,EAASwP,EAAKH,IAAmB,CAEpC,IAAI4E,EAAM,GACVA,EAAIjL,GAAiB,SAAUve,GAAKA,EAAE0wB,mBACtCjZ,EAAUsN,EAAKyE,GAEf/R,EAAUsN,EAAKF,IAGfE,EAAIqH,IAAMvW,EAAQkP,EAAK,YAGvB,IAAI4L,EAAS9a,EAAQkP,EAAK,eACtB4L,IAAU5L,EAAI4L,OAASA,GAE3Blb,EAASsP,EAAK,eActB,SAASD,GAAWC,GAClBtP,EAASsP,EAAK,UACdC,GAAaD,GAQf,SAASC,GAAcD,GACrBtP,EAASsP,EAAK,gBACdrP,EAAYqP,EAAK,WACjBpN,EAAaoN,EAAKF,IAGpB,SAASyH,GAAe6D,EAAOC,GAE7B,IADA,IAAIjE,EAAO,GACJgE,GAASC,GACdltB,EAAQsc,GAAW2Q,GAAO9nB,iBAAiB,QAAQ,SAAU0c,GAAOoH,EAAK5iB,KAAKwb,MAC9EoL,IAGF,OAAOhE,EAKT,SAASuB,KACP,IAAIvB,EAAOG,GAAcpoB,MAAM,KAAMgsB,MACrCrd,GAAI,WAAYwZ,GAAgBF,EAAMnC,OAGxC,SAASqC,GAAiBF,EAAMjZ,GAE9B,OAAI6M,GAAuB7M,KAG3BiZ,EAAKjpB,SAAQ,SAAU6hB,EAAKtS,GACtB8C,EAASwP,EAAKH,KAAqBuH,EAAKjU,OAAOzF,EAAO,MAIvD0Z,EAAKnrB,YAGV6R,GAAI,WAAYwZ,GAAgBF,EAAMjZ,MAHXA,KAM7B,SAAS4a,KACPH,KACAZ,KACA4C,KACApC,KA0GF,WAEE,GAAIhU,KACF4J,GAAkBL,IAAc,EAAIA,GAAa4C,KACjD5C,IAAc,EAEVK,KAAoBwC,IAAuB,CAC7C,IAAIiL,EAAUpN,GAASmC,IACnBkL,EAAarN,GAASL,IAE1BpN,EAAS6a,EAAS,CAChB,SAAY,KACZ,aAAc/K,IAAUF,GAAwB,KAElDjQ,EAAYkb,EAAShL,IAErB7P,EAAS8a,EAAY,CAAC,aAAchL,IAAU1C,GAAkB,GAAK2C,KACrE5P,EAAY2a,EAAY,YACxBpb,EAASob,EAAYjL,IAErBD,GAAwBxC,IA7H5B2N,GAIF,SAASpJ,KACH7I,GAAYjE,KACdoE,GAAczK,MAAM4J,GAAsBvE,GAAQ,IAAO,KAI7D,SAASmX,GAAmBC,EAAYC,GAEtC,IADA,IAAIC,EAAU,GACL9wB,EAAI4wB,EAAY9rB,EAAIW,KAAKE,IAAIirB,EAAaC,EAAYlQ,IAAgB3gB,EAAI8E,EAAG9E,IACpF8wB,EAAQ3nB,KAAKiW,GAAWpf,GAAGmI,cAG7B,OAAO1C,KAAKC,IAAI5B,MAAM,KAAMgtB,GAQ9B,SAASlH,KACP,IAAImH,EAAYvW,GAAamW,GAAkBte,GAAOgG,IAASsY,GAAkBtQ,GAAYhB,IACzF2R,EAAKpS,IAAgCI,GAErCgS,EAAG7c,MAAMib,SAAW2B,IAAaC,EAAG7c,MAAMib,OAAS2B,EAAY,MAKrE,SAASrE,KACPhN,GAAiB,CAAC,GAClB,IAAIlK,EAAOsJ,GAAa,OAAS,MAC7BmS,EAAQnS,GAAa,QAAU,SAC/BoS,EAAO9R,GAAW,GAAGrO,wBAAwByE,GAEjD1S,EAAQsc,IAAY,SAASvT,EAAM7L,GAE7BA,GAAK0f,GAAevW,KAAK0C,EAAKkF,wBAAwByE,GAAQ0b,GAE9DlxB,IAAM2gB,GAAgB,GAAKjB,GAAevW,KAAK0C,EAAKkF,wBAAwBkgB,GAASC,MAK7F,SAASvE,KACP,IAAIwE,EAAQrB,KACRC,EAAQoB,EAAM,GACdnB,EAAMmB,EAAM,GAEhBruB,EAAQsc,IAAY,SAASvT,EAAM7L,GAE7BA,GAAK+vB,GAAS/vB,GAAKgwB,EACjBza,EAAQ1J,EAAM,iBAChBiK,EAAYjK,EAAM,CAAC,cAAe,aAClCwJ,EAASxJ,EAAM0Y,KAIZhP,EAAQ1J,EAAM,iBACjB8J,EAAS9J,EAAM,CACb,cAAe,OACf,SAAY,OAEdyJ,EAAYzJ,EAAM0Y,QA+D1B,SAAS6M,GAAsB1kB,GAC7B,OAAOA,EAAG8R,SAAS5U,cAGrB,SAASsjB,GAAUxgB,GACjB,MAAoC,WAA7B0kB,GAAqB1kB,GAG9B,SAAS2kB,GAAgB3kB,GACvB,MAA4C,SAArCA,EAAGjF,aAAa,iBAGzB,SAAS6pB,GAAkBpE,EAAUxgB,EAAI2P,GACnC6Q,EACFxgB,EAAGY,SAAW+O,EAEd3P,EAAGrJ,aAAa,gBAAiBgZ,EAAI7W,YAKzC,SAAS2nB,KACP,GAAKtU,KAAY0B,KAAUD,GAA3B,CAEA,IAAIiX,EAAe,GAAiBtY,GAAW3L,SAAW+jB,GAAepY,IACrEuY,EAAe,GAAiBtY,GAAW5L,SAAW+jB,GAAenY,IACrEuY,EAAepf,IAASiP,GACxBoQ,GAAgBnX,IAAUlI,IAASmP,GAEnCiQ,IAAgBF,GAClBD,GAAiBxM,GAAc7L,IAAY,IAExCwY,GAAeF,GAClBD,GAAiBxM,GAAc7L,IAAY,GAEzCyY,IAAgBF,GAClBF,GAAiBvM,GAAc7L,IAAY,IAExCwY,GAAeF,GAClBF,GAAiBvM,GAAc7L,IAAY,IAK/C,SAAS6P,GAAerc,EAAI0I,GACtB2I,IAAsBrR,EAAGyH,MAAM4J,GAAsB3I,GAO3D,SAASuc,GAAcnL,GAIrB,OAHW,MAAPA,IAAeA,EAAMnU,IAGlBoG,IAAcuH,IADXzH,GAAcD,GAAS,IACOoH,GAAe8G,EAAM,GAAK9G,GAAe8G,GAAOlO,KAAS,EAC/FE,IAAcwH,GAAWxH,IAAc,GACpCH,GAAQ,GAAK,EAGpB,SAASyI,KACP,IACI1E,EAAU4D,IADJzH,GAAcD,GAAS,IAb1BE,IAAcA,GAAaF,IAAUqI,GAAgBjB,GAAeiB,KAsB3E,OANI/H,KAAW0B,KACb8B,EAAS5D,KAAgBA,GAAaF,KAAWqI,GAAgB,GAAKgR,KACpEA,GAAahR,GAAgB,GAAKjB,GAAeiB,GAAgB,IAEjEvE,EAAS,IAAKA,EAAS,GAEpBA,EAGT,SAAS6M,GAA4BzC,GAGnC,IAAInK,EACJ,GAHW,MAAPmK,IAAeA,EAAMnU,IAGrByM,KAAerG,GACjB,GAAID,GACF6D,IAAS7D,GAAaF,IAAUkO,EAC5B5N,KAAUyD,GAAOsV,UAChB,CACL,IAAIC,EAAcpU,EAAYmD,GAAgBtI,GAC1CO,KAAU4N,GAAOmL,MACrBtV,EAAc,KAANmK,EAAYoL,OAGtBvV,GAAQqD,GAAe8G,GACnB5N,IAAUH,KACZ4D,GAAOsV,MAQX,OAJI/Q,KAAoBvE,EAAM5W,KAAKC,IAAI2W,EAAKwE,KAE5CxE,IAAQyC,IAAerG,IAAcD,GAAoB,KAAN,IAKrD,SAAS4T,GAA4B/P,GACnC0M,GAAc7Q,GAAW,MACzB8Q,GAAqB3M,GAGvB,SAAS2M,GAAsB3M,GAClB,MAAPA,IAAeA,EAAM4M,MACzB/Q,GAAU/D,MAAM6M,IAAiBC,GAAkB5E,EAAM6E,GAG3D,SAASmI,GAAcwI,EAAQC,EAAUC,EAASC,GAChD,IAAIltB,EAAI+sB,EAASxZ,GACZiC,KAAQxV,EAAIW,KAAKE,IAAIb,EAAG6b,KAE7B,IAAK,IAAI3gB,EAAI6xB,EAAQ7xB,EAAI8E,EAAG9E,IAAK,CAC7B,IAAI6L,EAAOuT,GAAWpf,GAGnBgyB,IAASnmB,EAAKsI,MAAMzL,KAAqB,KAAb1I,EAAIqS,IAAegG,GAAQ,KAExDgC,IAAgB2D,IAClBnS,EAAKsI,MAAM6J,GAAmBnS,EAAKsI,MAAM+J,GAAkB7D,IAAgBra,EAAI6xB,GAAU,IAAO,KAElGvc,EAAYzJ,EAAMimB,GAClBzc,EAASxJ,EAAMkmB,GAEXC,GAAS5R,GAAcjX,KAAK0C,IA2CpC,SAASomB,GAAQryB,EAAGsyB,GACdnR,IAA8BqH,MAG9B/V,KAAUgP,IAAe6Q,KAE3BvQ,GAAO5J,KAAK,eAAgB5U,MAC5Bwe,GAAO5J,KAAK,kBAAmB5U,MAC3BqX,IAAc8S,KAGdtK,IAAapjB,GAAK,CAAC,QAAS,WAAW0D,QAAQ1D,EAAE8Q,OAAS,GAAKuS,KAEnEvB,IAAU,EACV6G,MAWJ,SAAS4J,GAAU/c,GACjB,OAAOA,EAAIxL,cAAc/E,QAAQ,KAAM,IAWzC,SAAS0d,GAAiB6P,GAGxB,GAAI3T,GAAYiD,GAAS,CAGvB,GAFAC,GAAO5J,KAAK,gBAAiB5U,GAAKivB,KAE7B3T,GAAY2B,GAAcxf,OAAS,EACtC,IAAK,IAAIZ,EAAI,EAAGA,EAAIogB,GAAcxf,OAAQZ,IAAK,CAC7C,IAAI6L,EAAOuU,GAAcpgB,GAEzB6L,EAAKsI,MAAMzL,KAAO,GAEdwV,GAAkBF,IACpBnS,EAAKsI,MAAM+J,GAAkB,GAC7BrS,EAAKsI,MAAM6J,GAAmB,IAEhC1I,EAAYzJ,EAAMsO,IAClB9E,EAASxJ,EAAMuO,IAanB,IAAKgY,IACA3T,GAAY2T,EAAMjjB,OAAO1F,aAAeyO,IACzCka,EAAMjjB,SAAW+I,IAAaia,GAASC,EAAMC,gBAAkBF,GAASnR,IAAgB,CAE1F,IAAKD,GAA4B,CAC/B,IAAI2N,EAAWrc,GACf+V,KACI/V,KAAUqc,IACZ/M,GAAO5J,KAAK,eAAgB5U,MAE5BipB,MAIW,UAAXrR,GAAsB4G,GAAO5J,KAAK,cAAe5U,MACrDue,IAAU,EACVL,GAAchP,KAOpB,SAASyQ,GAAMwP,EAAa1yB,GAC1B,IAAImiB,GAGJ,GAAoB,SAAhBuQ,EACFnQ,GAAgBviB,GAAI,QAGf,GAAoB,SAAhB0yB,EACTnQ,GAAgBviB,EAAG,OAGd,CACL,GAAI8hB,GAAS,CACX,GAAI1G,GAA4B,OAAiBuH,KAGnD,IAAIqI,EAAWD,KACX4H,EAAW,EAkBf,GAhBoB,UAAhBD,EACFC,GAAa3H,EACY,SAAhB0H,EACTC,EAAW9T,EAAWY,GAAahH,GAAQuS,EAAWvL,GAAa,EAAIuL,GAE5C,iBAAhB0H,IAA4BA,EAAcjtB,SAASitB,IAEzDtqB,MAAMsqB,KAEJ1yB,IAAK0yB,EAAc7sB,KAAKC,IAAI,EAAGD,KAAKE,IAAI0Z,GAAa,EAAGiT,KAE7DC,EAAWD,EAAc1H,KAKxBnM,GAAY8T,GAAY9sB,KAAKqX,IAAIyV,GAAYla,GAAO,CACvD,IAAIma,EAASD,EAAW,EAAI,GAAK,EACjCA,GAAalgB,GAAQkgB,EAAWlT,IAAeiC,GAAWjC,GAAamT,EAAsB,EAAbnT,GAAiBmT,GAAU,EAG7GngB,IAASkgB,EAGL9T,GAAYnE,KACVjI,GAAQiP,KAAYjP,IAASgN,IAC7BhN,GAAQmP,KAAYnP,IAASgN,KAI/BsL,GAAYtY,MAAWsY,GAAYtJ,KACrC4Q,GAAOryB,IAOb,SAASuiB,GAAiBviB,EAAG6yB,GAC3B,GAAI/Q,GAAS,CACX,GAAI1G,GAA4B,OAAiBuH,KAEnD,IAAImQ,EAEJ,IAAKD,EAAK,CAIR,IAFA,IAAItjB,EAASqT,GADb5iB,EAAIwiB,GAASxiB,IAGNuP,IAAW6J,IAAqB,CAACC,GAAYC,IAAY5V,QAAQ6L,GAAU,GAAKA,EAASA,EAAO1F,WAEvG,IAAIkpB,EAAW,CAAC1Z,GAAYC,IAAY5V,QAAQ6L,GAC5CwjB,GAAY,IACdD,GAAkB,EAClBD,EAAmB,IAAbE,GAAkB,EAAI,GAIhC,GAAIpY,GAAQ,CACV,GAAIlI,KAAUiP,KAAqB,IAATmR,EAExB,YADA3P,GAAK,OAAQljB,GAER,GAAIyS,KAAUmP,IAAoB,IAARiR,EAE/B,YADA3P,GAAK,QAASljB,GAKd6yB,IACFpgB,IAASsG,GAAU8Z,EACfha,KAAapG,GAAQ5M,KAAKya,MAAM7N,KAEpC4f,GAAQS,GAAoB9yB,GAAgB,YAAXA,EAAE8Q,KAAuB9Q,EAAI,OA6BlE,SAAS4jB,KACPmC,GAAgBiN,aAAY,WAC1BzQ,GAAgB,KAAMvI,MACrBD,IAEHqJ,IAAY,EAGd,SAASM,KACP2G,cAActE,IACd3C,IAAY,EAGd,SAAS6P,GAAsBC,EAAQhG,GACrCnX,EAASoE,GAAgB,CAAC,cAAe+Y,IACzC/Y,GAAejN,UAAYgZ,GAAoB,GAAKgN,EAAShN,GAAoB,GAAKgH,EAGxF,SAASrD,KACPjG,KACIzJ,IAAkB8Y,GAAqB,OAAQhZ,GAAa,IAGlE,SAASoJ,KACPK,KACIvJ,IAAkB8Y,GAAqB,QAAShZ,GAAa,IAiBnE,SAASmQ,KACHhH,IACFC,KACA2C,IAAqB,IAErB6D,KACA7D,IAAqB,GAuDzB,SAASzC,GAAUzW,GACjBA,EAAGiF,QAyBL,SAASyQ,GAAUxiB,GAEjB,OAAOmzB,GADPnzB,EAAIA,GAAKyb,EAAI+W,OACYxyB,EAAEozB,eAAe,GAAKpzB,EAEjD,SAAS4iB,GAAW5iB,GAClB,OAAOA,EAAEuP,QAAUkM,EAAI+W,MAAMa,WAG/B,SAASF,GAAcnzB,GACrB,OAAOA,EAAE8Q,KAAKpN,QAAQ,UAAY,EAGpC,SAAS4vB,GAAwBtzB,GAC/BA,EAAEqR,eAAiBrR,EAAEqR,iBAAmBrR,EAAEuzB,aAAc,EAG1D,SAASC,KACP,OS/7EsBhyB,ET+7EY8kB,GAAa9kB,EAAI6kB,GAAa7kB,ES/7EvCI,ET+7E0C0kB,GAAa1kB,EAAIykB,GAAazkB,EU/7EnE6xB,EDCzB5tB,KAAK6tB,MAAMlyB,EAAGI,IAAM,IAAMiE,KAAK8tB,ICDCpC,EV+7EgErW,GU97EnG0Y,GAAY,GACZvI,EAAMxlB,KAAKqX,IAAI,GAAKrX,KAAKqX,IAAIuW,MAEtB,GAAKlC,EACdqC,EAAY,aACHvI,GAAOkG,IAChBqC,EAAY,YAGPA,IVq7EgH7mB,EAAQyL,KU/7E1H,IAA2Bib,EAAOlC,EACnCqC,EACAvI,EDFoB7pB,EAAGI,ETk8E3B,SAASsiB,GAAYlkB,GACnB,GAAI8hB,GAAS,CACX,GAAI1G,GAA4B,OAAiBuH,KAG/C9I,IAAYuJ,IAAaM,KAE7B6C,IAAW,EACPH,KACFjT,EAAIiT,IACJA,GAAW,MAGb,IAAIyN,EAAIrR,GAASxiB,GACjB+hB,GAAO5J,KAAKgb,GAAanzB,GAAK,aAAe,YAAauD,GAAKvD,KAE1DmzB,GAAanzB,IAAM,CAAC,MAAO,KAAK0D,QAAQ8tB,GAAqB5O,GAAU5iB,MAAQ,GAClFszB,GAAuBtzB,GAGzBsmB,GAAa1kB,EAAIykB,GAAazkB,EAAIiyB,EAAEC,QACpCxN,GAAa9kB,EAAI6kB,GAAa7kB,EAAIqyB,EAAEE,QAChClV,IACFsH,GAAgBoK,WAAWjY,GAAU/D,MAAM6M,IAAenc,QAAQoc,GAAiB,KACnF8H,GAAc7Q,GAAW,OAI7B,SAAS6L,GAAWnkB,GAClB,GAAIumB,GAAU,CACZ,IAAIsN,EAAIrR,GAASxiB,GACjBsmB,GAAa1kB,EAAIiyB,EAAEC,QACnBxN,GAAa9kB,EAAIqyB,EAAEE,QAEflV,EACGuH,KAAYA,GAAWvT,GAAI,YAUtC,SAASmhB,EAAWh0B,GAClB,IAAK6hB,GAEH,YADA0E,IAAW,GAGbpT,EAAIiT,IACAG,KAAYH,GAAWvT,GAAI,WAAYmhB,EAAUh0B,OAEvB,MAA1B6hB,KAAiCA,GAAwB2R,MAC7D,GAAI3R,GAAuB,EACpBoD,IAAiBkO,GAAanzB,KAAMilB,IAAgB,GAEzD,IACMjlB,EAAE8Q,MAAQiR,GAAO5J,KAAKgb,GAAanzB,GAAK,YAAc,WAAYuD,GAAKvD,IAC3E,MAAMi0B,IAER,IAAIryB,EAAIukB,GACJ+N,EAAO1N,GAAQF,GAAcD,IACjC,IAAKnH,IAActG,IAAcC,GAC/BjX,GAAKsyB,EACLtyB,GAAK,UAGLA,GADkBgc,EAAYsW,EAAOzb,GAAQ,MAAQ2H,GAAW1H,IAAUqI,IAAuB,IAAPmT,GAAc9T,GAAW1H,IAEnH9W,GAAK,IAGP0W,GAAU/D,MAAM6M,IAAiBC,GAAkBzf,EAAI0f,IArCT0S,CAAUh0B,QAExB,MAA1B6hB,KAAiCA,GAAwB2R,MACzD3R,KAAyBoD,IAAgB,IAG3CA,IAAiBjlB,EAAEqR,kBAmC3B,SAAS+S,GAAUpkB,GACjB,GAAIumB,GAAU,CACRH,KACFjT,EAAIiT,IACJA,GAAW,MAETvH,GAAYsK,GAAc7Q,GAAW,IACzCiO,IAAW,EAEX,IAAIsN,EAAIrR,GAASxiB,GACjBsmB,GAAa1kB,EAAIiyB,EAAEC,QACnBxN,GAAa9kB,EAAIqyB,EAAEE,QACnB,IAAIG,EAAO1N,GAAQF,GAAcD,IAEjC,GAAIxgB,KAAKqX,IAAIgX,GAAO,CAElB,IAAKf,GAAanzB,GAAI,CAEpB,IAAIuP,EAASqT,GAAU5iB,GACvByX,EAAUlI,EAAQ,CAAC,MAAS,SAAS4kB,EAAcn0B,GACjDszB,GAAuBtzB,GACvB2X,EAAapI,EAAQ,CAAC,MAAS4kB,OAI/BtV,EACFuH,GAAWvT,GAAI,WACb,GAAIqM,KAAerG,GAAW,CAC5B,IAAIub,GAAeF,EAAOzb,IAAS2H,GAAW1H,IAC9C0b,EAAaF,EAAO,EAAIruB,KAAKya,MAAM8T,GAAcvuB,KAAK+a,KAAKwT,GAC3D3hB,IAAS2hB,MACJ,CACL,IAAIC,IAAWlO,GAAgB+N,GAC/B,GAAIG,GAAS,EACX5hB,GAAQiP,QACH,GAAI2S,GAASvU,GAAeiB,GAAgB,GACjDtO,GAAQmP,QAGR,IADA,IAAIxhB,EAAI,EACDA,EAAI2gB,IAAiBsT,GAASvU,GAAe1f,IAClDqS,GAAQrS,EACJi0B,EAAQvU,GAAe1f,IAAM8zB,EAAO,IAAKzhB,IAAS,GACtDrS,IAKNiyB,GAAOryB,EAAGk0B,GACVnS,GAAO5J,KAAKgb,GAAanzB,GAAK,WAAa,UAAWuD,GAAKvD,OAGzD6hB,IACFU,GAAgBviB,EAAGk0B,EAAO,GAAK,EAAI,IAON,SAAjCnnB,EAAQsO,uBAAmC4J,IAAgB,GAC3D/J,KAAc2G,GAAwB,KACtChI,KAAauJ,IAAaQ,KAKhC,SAAS2F,MACEvK,IAAgCI,IACtC7K,MAAMib,OAAS1P,GAAerN,GAAQgG,IAASqH,GAAerN,IAAS,KAG5E,SAAS+S,KACP,IAAI8O,EAAQ1b,IAAcA,GAAaF,IAAU+G,GAAaW,GAAWX,GAAahH,GACtF,OAAO5S,KAAKE,IAAIF,KAAK+a,KAAK0T,GAAQ7U,IAQpC,SAAS4N,KACP,GAAK9T,KAAOG,IAERuJ,KAAUwC,GAAa,CACzB,IAAI1f,EAAM0f,GACN3f,EAAMmd,GACNjL,EAAKvB,EAQT,IANIgP,GAAcxC,KAChBld,EAAMkd,GACNnd,EAAM2f,GACNzN,EAAK1B,GAGAvQ,EAAMD,GACXkS,EAAGwL,GAASzd,IACZA,IAIF0f,GAAcxC,IAIlB,SAAS1f,GAAMvD,GACb,MAAO,CACLsY,UAAWA,GACXkH,WAAYA,GACZ/F,aAAcA,GACd+J,SAAUA,GACVpK,kBAAmBA,GACnBkL,YAAaA,GACbjL,WAAYA,GACZC,WAAYA,GACZb,MAAOA,GACPM,QAASA,GACT0H,WAAYA,GACZhB,WAAYA,GACZsB,cAAeA,GACftO,MAAOA,GACPgP,YAAaA,GACb8S,aAAc5S,KACdwB,gBAAiBA,GACjBwC,sBAAuBA,GACvB1C,MAAOA,GACPwC,YAAaA,GACb7Q,MAAOA,GACPgL,KAAMA,GACN4S,MAAOxyB,GAAK,IAz+EVye,GAAsBnb,QAAQuK,KAAK,qBAAsBd,EAAQuL,a,mBWtKxE,SAAS1V,EAAQ4xB,GACjB,IAAIC,EAWL,SAAW7xB,EAAQF,EAAUsD,GAC5B,aAGA,IAAI0uB,EAIHC,EAuCD,GArCA,WACC,IAAI1d,EAEA2d,EAAoB,CACvBC,UAAW,WACXC,YAAa,aACbC,aAAc,cACdC,aAAc,cACdC,WAAY,YAEZC,eAAgB,gBAChBC,gBAAiB,eACjBC,eAAgB,EAChBC,QAAS,WACTC,WAAY,cACZC,UAAW,aAEXC,QAAS,GACTC,YAAa,GACbhzB,MAAM,EACNizB,UAAW,IACXC,KAAM,GACNC,SAAU,EACVC,YAAY,EACZC,WAAY,EACZ1zB,cAAe,KAKhB,IAAI6U,KAFJ0d,EAAe/xB,EAAOmzB,iBAAmBnzB,EAAOozB,iBAAmB,GAEvDpB,EACN3d,KAAQ0d,IACZA,EAAa1d,GAAQ2d,EAAkB3d,IAhC1C,IAqCKvU,IAAaA,EAASuzB,uBAC1B,MAAO,CACNxzB,KAAM,aAINyzB,IAAKvB,EAILwB,WAAW,GAIb,IAAIC,EAAU1zB,EAASqE,gBAEnBsvB,EAAiBzzB,EAAO0zB,mBAUxB1yB,EAAmBhB,EAAwB,iBAAEyL,KAAKzL,GAElDwB,EAAaxB,EAAOwB,WAEpB0O,EAAwBlQ,EAAOkQ,uBAAyB1O,EAExDmyB,EAAsB3zB,EAAO2zB,oBAE7BC,EAAa,aAEbC,EAAa,CAAC,OAAQ,QAAS,eAAgB,eAE/CC,EAAgB,GAEhBxzB,EAAUmD,MAAMpF,UAAUiC,QAM1BqS,EAAW,SAASohB,EAAKC,GAI5B,OAHIF,EAAcE,KACjBF,EAAcE,GAAO,IAAIC,OAAO,UAAUD,EAAI,YAExCF,EAAcE,GAAKzxB,KAAKwxB,EAAiB,aAAE,UAAY,KAAOD,EAAcE,IAOhFnhB,EAAW,SAASkhB,EAAKC,GACvBrhB,EAASohB,EAAKC,IAClBD,EAAIlzB,aAAa,SAAUkzB,EAAiB,aAAE,UAAY,IAAIG,OAAS,IAAMF,IAQ3ElhB,EAAc,SAASihB,EAAKC,GAC/B,IAAIG,GACCA,EAAMxhB,EAASohB,EAAIC,KACvBD,EAAIlzB,aAAa,SAAUkzB,EAAiB,aAAE,UAAY,IAAI1xB,QAAQ8xB,EAAK,OAIzEC,EAAsB,SAASC,EAAKjf,EAAIhQ,GAC3C,IAAIkrB,EAASlrB,EAzDU,mBAyDgB,sBACpCA,GACFgvB,EAAoBC,EAAKjf,GAE1Bye,EAAWvzB,SAAQ,SAASg0B,GAC3BD,EAAI/D,GAAQgE,EAAKlf,OAYfmf,EAAe,SAASC,EAAMltB,EAAMmI,EAAQglB,EAAWC,GAC1D,IAAI9E,EAAQ9vB,EAASiO,YAAY,SAajC,OAXI0B,IACHA,EAAS,IAGVA,EAAOklB,SAAW7C,EAElBlC,EAAM5hB,UAAU1G,GAAOmtB,GAAYC,GAEnC9E,EAAMngB,OAASA,EAEf+kB,EAAKjoB,cAAcqjB,GACZA,GAGJgF,EAAiB,SAAU1qB,EAAI2qB,GAClC,IAAIC,GACCrB,IAAoBqB,EAAY90B,EAAO+0B,aAAehD,EAAaiD,KACpEH,GAAQA,EAAKrL,MAAQtf,EAAgB,aAAE,WACzCA,EAAGrJ,aAAa,SAAUg0B,EAAKrL,KAEhCsL,EAAS,CAACG,YAAY,EAAMC,SAAU,CAAChrB,MAC9B2qB,GAAQA,EAAKrL,MACtBtf,EAAGsf,IAAMqL,EAAKrL,MAIZ2L,EAAS,SAAUX,EAAM7iB,GAC5B,OAAQoC,iBAAiBygB,EAAM,OAAS,IAAI7iB,IAUzCyjB,EAAW,SAASZ,EAAMa,EAAQtb,GAGrC,IAFAA,EAAQA,GAASya,EAAKxa,YAEhBD,EAAQgY,EAAaa,SAAWyC,IAAWb,EAAKc,iBACrDvb,EAASsb,EAAOrb,YAChBqb,EAASA,EAAOpuB,WAGjB,OAAO8S,GAGJwb,GAECC,GAAW,GACXC,GAAY,GACZC,GAAMF,GAENG,GAAM,WACT,IAAIC,EAASF,GAOb,IALAA,GAAMF,GAASp3B,OAASq3B,GAAYD,GAEpCtW,IAAU,EACV2W,IAAU,EAEJD,EAAOx3B,QACZw3B,EAAOE,OAAPF,GAGD1W,IAAU,GAGP6W,GAAW,SAAS3gB,EAAI4gB,GACxB9W,KAAY8W,EACd5gB,EAAG9T,MAAMM,KAAMzD,YAEfu3B,GAAI/uB,KAAKyO,GAELygB,KACHA,IAAU,GACT/1B,EAASohB,OAAS1f,EAAa0O,GAAuBylB,OAK1DI,GAASE,SAAWN,GAEbI,IAGJG,EAAQ,SAAS9gB,EAAI+gB,GACxB,OAAOA,EACN,WACCZ,EAAIngB,IAEL,WACC,IAAIghB,EAAOx0B,KACPy0B,EAAOl4B,UACXo3B,GAAI,WACHngB,EAAG9T,MAAM80B,EAAMC,QAyDfC,EAAW,SAASC,GACvB,IAAIC,EAASC,EAETd,EAAM,WACTa,EAAU,KACVD,KAEGG,EAAQ,WACX,IAAIC,EAAOvzB,EAAKC,MAAQozB,EAEpBE,EARM,GASTn1B,EAAWk1B,EATF,GASgBC,IAExBhD,GAAuBgC,GAAKA,IAI/B,OAAO,WACNc,EAAYrzB,EAAKC,MAEZmzB,IACJA,EAAUh1B,EAAWk1B,EAnBZ,OAwBRE,GAKCC,EAAS,SACTC,EAAY,YAEZC,EAAiB,aAAc/2B,IAAa,eAAeuC,KAAK+B,UAAUC,WAG1EyyB,EAAgB,EAEhBC,EAAY,EACZC,GAAW,EAEXC,EAAkB,SAAS/5B,GAC9B65B,MACI75B,GAAK65B,EAAY,IAAM75B,EAAEuP,UAC5BsqB,EAAY,IAIVnjB,EAAY,SAAU0gB,GAKzB,OAJoB,MAAhB4C,IACHA,EAAsD,UAAvCjC,EAAOr1B,EAAS8L,KAAM,eAG/BwrB,KAA2D,UAAzCjC,EAAOX,EAAKvtB,WAAY,eAA2D,UAA9BkuB,EAAOX,EAAM,gBAGxF6C,EAAkB,SAAS7C,EAAM8C,GACpC,IAAIC,EACAlC,EAASb,EACTgD,EAAU1jB,EAAU0gB,GAOxB,IALAiD,GAASH,EACTI,GAAYJ,EACZK,GAAUL,EACVM,GAAWN,EAELE,IAAYnC,EAASA,EAAOpvB,eAAiBovB,GAAUv1B,EAAS8L,MAAQypB,GAAU7B,IACvFgE,GAAYrC,EAAOE,EAAQ,YAAc,GAAK,IAEF,WAA9BF,EAAOE,EAAQ,cAC5BkC,EAAYlC,EAAO9mB,wBACnBipB,EAAUI,EAAUL,EAAUrxB,MAC7ByxB,EAASJ,EAAU3O,OACnB8O,EAAWH,EAAU7xB,IAAM,GAC3B+xB,EAAQF,EAAUM,OAAS,GAK9B,OAAOL,GAGJM,GAAgB,WACnB,IAAIC,EAAOv6B,EAAGmrB,EAAMqP,EAAcC,EAAiBX,EAAYY,EAAoBC,EAClFC,EAAiBC,EAAeC,EAAevF,EAC5CwF,EAAgBzG,EAAUoD,SAE9B,IAAIlC,EAAWjB,EAAaiB,WAAaiE,EAAY,IAAMc,EAAQQ,EAAcn6B,QAAQ,CAMxF,IAJAZ,EAAI,EAEJ05B,IAEM15B,EAAIu6B,EAAOv6B,IAEhB,GAAI+6B,EAAc/6B,KAAM+6B,EAAc/6B,GAAGg7B,UAEzC,IAAIzB,GAAkBjF,EAAU2G,iBAAmB3G,EAAU2G,gBAAgBF,EAAc/6B,IAAMk7B,GAAcH,EAAc/6B,SAoC7H,IAlCK26B,EAAgBI,EAAc/6B,GAAgB,aAAE,kBAAqB85B,EAA6B,EAAhBa,KACtFb,EAAaN,GAGTqB,IACJA,GAAkBtG,EAAa4G,QAAU5G,EAAa4G,OAAS,EAC9DnF,EAAQoF,aAAe,KAAOpF,EAAQlL,YAAc,IAAM,IAAM,IAChEyJ,EAAa4G,OAEd7G,EAAU+G,OAASR,EAEnBC,EAAgBD,EAAgBtG,EAAae,UAC7CC,EAAOhB,EAAagB,KACpBqE,EAAe,KAEZJ,EAAgBsB,GAAiBrB,EAAY,GAAKC,EAAU,GAAKlE,EAAW,IAAMlzB,EAASohB,QAC7F8V,EAAgBsB,EAChBpB,EAAU,GAEVF,EADShE,EAAW,GAAKkE,EAAU,GAAKD,EAAY,EACpCoB,EAnFF,GAyFbD,IAAoBd,IACtBwB,EAAOzQ,WAAciP,EAAavE,EAClCgG,EAAO/zB,YAAcsyB,EACrBY,GAAmC,EAAdZ,EACrBc,EAAkBd,GAGnB3O,EAAO4P,EAAc/6B,GAAG+Q,yBAEnBmpB,EAAW/O,EAAKkP,SAAWK,IAC9BT,EAAQ9O,EAAKjjB,MAAQqzB,IACrBnB,EAAUjP,EAAKC,QAAUsP,EAAqBnF,IAC9C4E,EAAShP,EAAKziB,OAAS4yB,IACvBpB,GAAYE,GAAWD,GAAUF,KACjC1F,EAAakB,YAAcnf,EAAUykB,EAAc/6B,OAClDw7B,GAAe/B,EAAY,IAAMkB,IAAkBnF,EAAW,GAAKkE,EAAU,IAAOG,EAAgBkB,EAAc/6B,GAAI85B,KAGxH,GAFAoB,GAAcH,EAAc/6B,IAC5By6B,GAAkB,EACfhB,EAAY,EAAG,WACRgB,GAAmBe,IAAgBhB,GAC7Cf,EAAY,GAAKC,EAAU,GAAKlE,EAAW,IAC1CiG,EAAa,IAAMlH,EAAamH,oBAChCD,EAAa,KAAQd,IAAmBT,GAAYE,GAAWD,GAAUF,GAAqE,QAA3Dc,EAAc/6B,GAAgB,aAAEu0B,EAAaY,eACjIqF,EAAeiB,EAAa,IAAMV,EAAc/6B,IAI/Cw6B,IAAiBC,GACnBS,GAAcV,KAKbmB,GAjNU,SAAS/jB,GACvB,IAAI8J,EACAka,EAAW,EACXC,EAAStH,EAAavyB,cACtB85B,EAAavH,EAAamB,WAC1ByC,EAAM,WACTzW,GAAU,EACVka,EAAWh2B,EAAKC,MAChB+R,KAEGmkB,EAAe5F,GAAuB2F,EAAa,GACtD,WACC3F,EAAoBgC,EAAK,CAACa,QAAS8C,IAEhCA,IAAevH,EAAamB,aAC9BoG,EAAavH,EAAamB,aAG5BgD,GAAM,WACL10B,EAAWm0B,MACT,GAGJ,OAAO,SAAS6D,GACf,IAAIt6B,GAEAs6B,GAA4B,IAAfA,KAChBF,EAAa,IAGXpa,IAIHA,GAAW,GAEXhgB,EAAQm6B,GAAUj2B,EAAKC,MAAQ+1B,IAEpB,IACVl6B,EAAQ,GAGNs6B,GAAct6B,EAAQ,EACxBq6B,IAEA/3B,EAAW+3B,EAAcr6B,KAoKEu6B,CAAS3B,IAElC4B,GAAqB,SAASt8B,GACjC,IAAIo3B,EAAOp3B,EAAEuP,OAET6nB,EAAKmF,kBACDnF,EAAKmF,YAIbxC,EAAgB/5B,GAChByV,EAAS2hB,EAAMzC,EAAaG,aAC5Bpf,EAAY0hB,EAAMzC,EAAaI,cAC/BiC,EAAoBI,EAAMoF,IAC1BrF,EAAaC,EAAM,gBAEhBqF,GAA0B3D,EAAMwD,IAChCE,GAAwB,SAASx8B,GACpCy8B,GAAwB,CAACltB,OAAQvP,EAAEuP,UAchCmtB,GAAgB,SAASC,GAC5B,IAAIlH,EAEAmH,EAAeD,EAAoB,aAAEhI,EAAaW,aAEjDG,EAAcd,EAAac,YAAYkH,EAAoB,aAAE,eAAiBA,EAAoB,aAAE,YACxGA,EAAOl5B,aAAa,QAASgyB,GAG3BmH,GACFD,EAAOl5B,aAAa,SAAUm5B,IAI5BC,GAAa/D,GAAM,SAAU1B,EAAM/kB,EAAQyqB,EAAQC,EAAOC,GAC7D,IAAI5Q,EAAKuE,EAAQsH,EAAQgF,EAAWzK,EAAO0K,GAEtC1K,EAAQ2E,EAAaC,EAAM,mBAAoB/kB,IAAS8qB,mBAEzDJ,IACCD,EACFrnB,EAAS2hB,EAAMzC,EAAaO,gBAE5BkC,EAAK3zB,aAAa,QAASs5B,IAI7BpM,EAASyG,EAAkB,aAAEzC,EAAaW,YAC1ClJ,EAAMgL,EAAkB,aAAEzC,EAAaU,SAEpC2H,IAEFC,GADAhF,EAASb,EAAKvtB,aACQ2sB,EAAWrxB,KAAK8yB,EAAOrZ,UAAY,KAG1Dse,EAAY7qB,EAAO6qB,WAAe,QAAS9F,IAAUzG,GAAUvE,GAAO6Q,GAEtEzK,EAAQ,CAACjjB,OAAQ6nB,GAEjB3hB,EAAS2hB,EAAMzC,EAAaI,cAEzBmI,IACFp4B,aAAas4B,GACbA,EAAuBh5B,EAAW21B,EAAiB,MACnD/C,EAAoBI,EAAMoF,IAAuB,IAG/CS,GACF/5B,EAAQ3C,KAAK03B,EAAOoF,qBAAqB,UAAWX,IAGlD/L,EACFyG,EAAK3zB,aAAa,SAAUktB,GACnBvE,IAAQ6Q,IACdvD,EAAUv0B,KAAKiyB,EAAKxY,UAjEJ,SAASwY,EAAMhL,GACpC,IAAIwJ,EAAWwB,EAAKvvB,aAAa,mBAAqB8sB,EAAaS,eAGnD,GAAZQ,EACHwB,EAAKkG,cAAc3qB,SAAS1N,QAAQmnB,GACd,GAAZwJ,IACVwB,EAAKhL,IAAMA,GA2DTmR,CAAgBnG,EAAMhL,GAEtBgL,EAAKhL,IAAMA,GAIV4Q,IAAUrM,GAAUsM,IACtBzF,EAAeJ,EAAM,CAAChL,IAAKA,KAI1BgL,EAAKgE,kBACAhE,EAAKgE,UAEb1lB,EAAY0hB,EAAMzC,EAAaE,WAE/BsD,GAAI,WAEH,IAAIqF,EAAWpG,EAAKqG,UAAYrG,EAAKsG,aAAe,EAE/CR,IAAaM,IACbA,GACH/nB,EAAS2hB,EAAMzC,EAAaQ,iBAE7BmH,GAAmB9J,GACnB4E,EAAKmF,YAAa,EAClBn4B,GAAW,WACN,eAAgBgzB,UACZA,EAAKmF,aAEX,IAEgB,QAAhBnF,EAAKuG,SACR9D,OAEC,MAOAyB,GAAgB,SAAUlE,GAC7B,IAAIA,EAAKgE,UAAT,CACA,IAAI/oB,EAEA2qB,EAAQvD,EAAOt0B,KAAKiyB,EAAKxY,UAGzBme,EAAQC,IAAU5F,EAAkB,aAAEzC,EAAaY,YAAc6B,EAAkB,aAAE,UACrF0F,EAAkB,QAATC,IAERD,GAAWlB,IAAgBoB,IAAU5F,EAAkB,aAAE,SAAUA,EAAKzG,QAAYyG,EAAKqG,UAAaloB,EAAS6hB,EAAMzC,EAAaM,cAAe1f,EAAS6hB,EAAMzC,EAAaE,cAElLxiB,EAAS8kB,EAAaC,EAAM,kBAAkB/kB,OAE3CyqB,GACDc,EAAUC,WAAWzG,GAAM,EAAMA,EAAKxa,aAGxCwa,EAAKgE,WAAY,EACjBvB,IAEAgD,GAAWzF,EAAM/kB,EAAQyqB,EAAQC,EAAOC,MAGrCc,GAAc5E,GAAS,WAC1BvE,EAAaiB,SAAW,EACxBmG,QAGGgC,GAA2B,WACF,GAAzBpJ,EAAaiB,WACfjB,EAAaiB,SAAW,GAEzBkI,MAGGE,GAAS,WACTpC,IACA51B,EAAKC,MAAQg4B,EAAU,IACzB75B,EAAW45B,GAAQ,MAKpBpC,GAAc,EAEdjH,EAAaiB,SAAW,EAExBmG,KAEAn4B,EAAiB,SAAUm6B,IAA0B,MAG/C,CACNx5B,EAAG,WACF05B,EAAUj4B,EAAKC,MAEfyuB,EAAUoD,SAAWp1B,EAASuzB,uBAAuBtB,EAAaE,WAClEgH,EAAen5B,EAASuzB,uBAAuBtB,EAAaE,UAAY,IAAMF,EAAaK,cAE3FpxB,EAAiB,SAAUm4B,IAAwB,GAEnDn4B,EAAiB,SAAUm4B,IAAwB,GAEnDn4B,EAAiB,YAAY,SAAU5D,GACtC,GAAIA,EAAEk+B,UAAW,CAChB,IAAIC,EAAkBz7B,EAAS2F,iBAAiB,IAAMssB,EAAaI,cAE/DoJ,EAAgBn9B,QAAUm9B,EAAgBj7B,SAC7C4P,GAAsB,WACrBqrB,EAAgBj7B,SAAS,SAAU6hB,GAC9BA,EAAI0Y,UACPnC,GAAcvW,aAQjBniB,EAAOsD,iBACT,IAAIA,iBAAkB61B,IAAyBj1B,QAASsvB,EAAS,CAACpvB,WAAW,EAAMC,SAAS,EAAM0I,YAAY,KAE9GymB,EAAyB,iBAAE,kBAAmB2F,IAAwB,GACtE3F,EAAyB,iBAAE,kBAAmB2F,IAAwB,GACtE/I,YAAY+I,GAAwB,MAGrCn4B,EAAiB,aAAcm4B,IAAwB,GAGvD,CAAC,QAAS,YAAa,QAAS,OAAQ,gBAAiB,gBAAgB74B,SAAQ,SAASgH,GACzFxH,EAA0B,iBAAEwH,EAAM6xB,IAAwB,MAGvD,QAAQ52B,KAAKzC,EAASiB,YACzBq6B,MAEAp6B,EAAiB,OAAQo6B,IACzBt7B,EAA0B,iBAAE,mBAAoBq5B,IAChD33B,EAAW45B,GAAQ,MAGjBtJ,EAAUoD,SAAS92B,QACrB05B,KACAvC,EAAIU,YAEJkD,MAGFqC,WAAYrC,GACZsC,OAAQ/C,GACRgD,MAAOP,KAKLH,GAGCW,EAAczF,GAAM,SAAS1B,EAAMa,EAAQzF,EAAO7V,GACrD,IAAI6hB,EAASp+B,EAAGsvB,EAMhB,GALA0H,EAAKc,gBAAkBvb,EACvBA,GAAS,KAETya,EAAK3zB,aAAa,QAASkZ,GAExB6Z,EAAWrxB,KAAK8yB,EAAOrZ,UAAY,IAErC,IAAIxe,EAAI,EAAGsvB,GADX8O,EAAUvG,EAAOoF,qBAAqB,WACbr8B,OAAQZ,EAAIsvB,EAAKtvB,IACzCo+B,EAAQp+B,GAAGqD,aAAa,QAASkZ,GAI/B6V,EAAMngB,OAAOosB,UAChBjH,EAAeJ,EAAM5E,EAAMngB,WASzBqsB,EAAiB,SAAUtH,EAAMqH,EAAU9hB,GAC9C,IAAI6V,EACAyF,EAASb,EAAKvtB,WAEfouB,IACFtb,EAAQqb,EAASZ,EAAMa,EAAQtb,IAC/B6V,EAAQ2E,EAAaC,EAAM,kBAAmB,CAACza,MAAOA,EAAO8hB,WAAYA,KAE/DtB,mBACTxgB,EAAQ6V,EAAMngB,OAAOsK,QAETA,IAAUya,EAAKc,iBAC1BqG,EAAYnH,EAAMa,EAAQzF,EAAO7V,KAkBjCgiB,EAA+BzF,GAZT,WACzB,IAAI94B,EACAsvB,EAAMkP,EAAe59B,OACzB,GAAG0uB,EAGF,IAFAtvB,EAAI,EAEEA,EAAIsvB,EAAKtvB,IACds+B,EAAeE,EAAex+B,OAO1B,CACNmE,EAAG,WACFq6B,EAAiBl8B,EAASuzB,uBAAuBtB,EAAaO,gBAC9DtxB,EAAiB,SAAU+6B,IAE5BP,WAAYO,EACZd,WAAYa,IAIVj8B,EAAO,YACNA,EAAKrC,GAAKsC,EAASuzB,yBACtBxzB,EAAKrC,GAAI,EACTw9B,EAAUr5B,IACVi1B,EAAOj1B,MAzEO,IACXq6B,EAEAL,EAwBAG,EA8BAC,EAnbQ,IACR9C,EAAcD,EAAawB,EAAsBxH,EAAUqI,EAE3DvC,EAAMC,EAAMtB,EAAOE,EAAQC,EAASF,EAAUN,EAE9CP,EACAC,EAEAC,EAGAC,EAEAC,EACAC,EAEAC,EAOArjB,EAQAujB,EA0BAS,GA2EAqB,GAEAO,GAcAG,GACAD,GAeAE,GAcAG,GAmFAvB,GAwBAwC,GAKAC,GAOAC,GA5aK,IACLlc,GAAS2W,GACTL,GACAC,GACAC,GAEAC,GAeAI,GA4kBL,OAvBAv0B,GAAW,WACPuwB,EAAalyB,MACfA,OAIFiyB,EAAY,CAIXwB,IAAKvB,EACLiJ,UAAWA,EACXpE,OAAQA,EACR/2B,KAAMA,EACNo8B,GAAIrH,EACJsH,GAAIrpB,EACJspB,GAAIrpB,EACJspB,GAAIzpB,EACJ0pB,KAAM9H,EACN+H,GAAIlH,EACJG,IAAKA,GAvyBU3D,CAAQ5xB,EAAQA,EAAOF,SAAUsD,MACjDpD,EAAO6xB,UAAYA,EACa30B,EAAOC,UACtCD,EAAOC,QAAU00B,GAJnB,CAMmB,oBAAV7xB,OACHA,OAAS,K,mBCPf,yBACC,GAAKA,EAAL,CAMA4xB,EAAUA,EAAQnmB,KAAK,KAAMzL,EAAQA,EAAOF,UAEZ5C,EAAOC,QACtCy0B,EAAQ,EAAQ,KAEhB,EAAO,CAAC,WAAqB,0BAAP,EAAF,GAAS,iCAZ/B,CAkBmB,oBAAV5xB,OACRA,OAAS,GAAG,SAASA,EAAQF,EAAU+xB,GACvC,aAEA,GAAI7xB,EAAOgB,iBAAX,CACA,IAAImyB,EAAkBtB,EAAUyB,IAE3BiJ,GAAoBv8B,EAAO8G,SAAW01B,MAAQx8B,EAAOy8B,aAAap+B,UACnEq+B,EAAe,YACfC,EAAiB,6BACjBC,EAAmB,+CACnBhJ,EAAa,aACbiJ,EAAW,UACXr6B,EAAQ,GAAGA,MAwIX+5B,EAAiB5tB,UACpB4tB,EAAiB5tB,QAAU4tB,EAAiBO,iBAC3CP,EAAiB1tB,uBACjB0tB,EAAiB3tB,mBACjB2tB,EAAiBQ,kBAGnB/8B,EAAOgB,iBAAiB,mBAnBxB,SAA6B5D,GAE5B,GAAGA,EAAEqS,OAAOklB,UAAY9C,EAAxB,CAEA,IACImL,EA3FL,SAA4B7a,GAC3B,IAAI8a,EAAU9a,EAAIlb,WACdozB,EAAYzG,EAAWrxB,KAAK06B,EAAQjhB,UAAY,IAChD3M,GAAWrP,EAAO+T,iBAAiBoO,IAAQ,IAAI+a,WAC/CC,EAAS,KAcb,OAZG9C,IAAclH,EAAgBiK,eAAiBV,EAAan6B,KAAK8M,GAAW,OAC9E8tB,EAAS,CACRF,QAASA,EACT9a,IAAKA,EACLkb,KAAMhuB,EAAQiuB,MAAMV,KAGXS,OACTF,EAAOlrB,SAAWkrB,EAAOE,KAAK,GAAGE,MAAMV,GAAU12B,IAAIq3B,GAAehvB,KAAK,MAIpE2uB,EAyEMM,CADHrgC,EAAEuP,QAGTqwB,GACFU,EAAaV,OAWiD,GA7GhE,SAASQ,EAAcG,GACtB,MAAO,qBAAuBA,EAAM,KAwBrC,SAASC,EAAY7D,GACpB,IA1DiC/T,EAC7BsX,EAAOvjB,EAAO6S,EACdiR,EACA9P,EAuDAzQ,EAAQyc,EAAO90B,aAAa,SAEhC,MAAO,CACN80B,OAAQA,EACR+D,aA9DgC9X,EA8DM+T,EA5DnC8D,EAAQlQ,WAAW3H,EAAQ/gB,aAAa,qBACxC8oB,EAAS/H,EAAQ/gB,aAAakuB,EAAgBT,aAAe1M,EAAQ/gB,aAAa,UAGlF44B,KACHP,EAAQvP,EAAOuP,MAAMX,IAGL,KAAZW,EAAM,IACRvjB,EAAQujB,EAAM,GACd1Q,EAAS0Q,EAAM,KAEfvjB,EAAQujB,EAAM,GACd1Q,EAAS0Q,EAAM,KAGhBvjB,EAAQiM,EAAQ/gB,aAAa,SAC7B2nB,EAAS5G,EAAQ/gB,aAAa,WAG/B44B,EAAQ9jB,EAAQ6S,GAGViR,GAsCNE,YAAazgB,GAAStd,EAAOg+B,WAAW1gB,GAAO3O,SAIjD,SAASsvB,EAAgBC,EAASC,GACjC,OAAOD,EAAQJ,YAAcK,EAAQL,YAgBtC,SAASM,EAASrE,EAAQzc,GACzByc,EAAOsE,SAAW/gB,EAClBuU,EAAU0D,KAAI,WACVwE,EAAOsE,iBACFtE,EAAOsE,SAEftE,EAAOl5B,aAAa,QAASyc,MAI/B,SAASogB,EAAaV,GACrB,IAnE6BhX,EAmEzBsY,GAnEyBtY,EAmEagX,EAAO7a,KAlElCnI,YAAcgM,EAAQrgB,aAmEjCi2B,EAAUp5B,EAAM7E,KAAKq/B,EAAOC,QAAQxC,qBAAqB,WAC3Dt0B,IAAIy3B,GACJW,KAAKN,GAQHO,EAnCL,SAA0B5C,EAAS6C,GAClC,IAAIjhC,EAAGsvB,EACH/lB,EAAU60B,EAAQ,GAEtB,IAAIp+B,EAAI,EAAGsvB,EAAM8O,EAAQx9B,OAAQZ,EAAIsvB,EAAKtvB,IACtCyF,KAAKqX,IAAIvT,EAAQ+2B,YAAcW,GAAcx7B,KAAKqX,IAAIshB,EAAQp+B,GAAGsgC,YAAcW,KACjF13B,EAAU60B,EAAQp+B,IAIpB,OAAOuJ,EAyBa23B,CANC1B,EAAO/qB,SAC3B2pB,EAAQn1B,QAAO,SAASszB,GACvB,OAAOA,EAAOA,OAAOprB,QAAQquB,EAAO/qB,aAErC2pB,EAEoD0C,GAEjDE,EAAcT,YACjBK,EAASI,EAAczE,OAAQ,oBAGhC6B,EACEn1B,QAAO,SAASszB,GAChB,OAAQA,GAAUyE,GAAiBzE,EAAOgE,cAE1Cz9B,SAAQ,SAAUy5B,GAClBqE,EAASrE,EAAOA,OAAQ,e,mBCtJ5B,WAkCC,SAAS/5B,EAAQ4xB,GAMjBA,EAAUA,EAAQnmB,KAAK,KAAMzL,EAAQA,EAAOF,UAEZ5C,EAAOC,QACtCy0B,EAAQ,EAAQ,KAEhB,EAAO,CAAC,WAAqB,0BAAP,EAAF,GAAS,gCAX/B,CAiBE5xB,QAAQ,SAASA,EAAQF,EAAU+xB,GAEpC,aACA,IAAI8M,EAAQC,EACRC,EAAa,GAwGjB,SAASC,EAAetV,EAAK7X,EAAOrB,GACnC,IAAGuuB,EAAWrV,GAAd,CAGA,IAAIgL,EAAO10B,EAASmK,cAAc0H,EAAQ,OAAS,UAC/CotB,EAAaj/B,EAAS26B,qBAAqB,UAAU,GAEtD9oB,GACF6iB,EAAKwK,IAAM,aACXxK,EAAKyK,KAAOzV,IAEZgL,EAAK4G,OAAS,WACb5G,EAAK0K,QAAU,KACf1K,EAAK4G,OAAS,KACd9qB,KAEDkkB,EAAK0K,QAAU1K,EAAK4G,OAEpB5G,EAAKhL,IAAMA,GAEZqV,EAAWrV,IAAO,EAClBqV,EAAWrK,EAAKhL,KAAOgL,EAAKyK,OAAQ,EACpCF,EAAW93B,WAAWmE,aAAaopB,EAAMuK,IA5HvCj/B,EAASkB,mBACX49B,EAAiB,aAEjBD,EAAS,SAAUQ,EAAK7uB,GACvB,IAAI6R,EAAMriB,EAASmK,cAAc,OACjCkY,EAAIiZ,OAAS,WACZjZ,EAAIiZ,OAAS,KACbjZ,EAAI+c,QAAU,KACd/c,EAAM,KACN7R,KAED6R,EAAI+c,QAAU/c,EAAIiZ,OAElBjZ,EAAIqH,IAAM2V,EAEPhd,GAAOA,EAAI0Y,UAAY1Y,EAAIiZ,QAC7BjZ,EAAIiZ,UAINp6B,iBAAiB,oBAAoB,SAAS5D,GAG7C,IAAIgiC,EAAWC,EAAIC,EAFnB,GAAGliC,EAAEqS,OAAOklB,UAAY9C,IAGpBz0B,EAAEm9B,iBAAkB,CAEvB,IAAI5tB,EAASvP,EAAEuP,OAMf,GAJqB,QAAlBA,EAAO4yB,UACT5yB,EAAO4yB,QAAU5yB,EAAO1H,aAAa,iBAAmB,QAGb,MAAxC0H,EAAO1H,aAAa,iBACvB,GAAI0H,EAAO1H,aAAa,iBAAmB0H,EAAOsK,SACjD,IACCtK,EAAOqa,OACN,MAAOwY,SAETtvB,uBAAsB,WACrBvD,EAAO9L,aAAa,cAAe,OACnCgxB,EAAUqK,GAAGvvB,EAAQklB,EAAUyB,IAAIrB,eAKtCmN,EAAMzyB,EAAO1H,aAAa,eAEzB65B,EAAeM,GAAK,IAIrBA,EAAMzyB,EAAO1H,aAAa,kBAEzB7H,EAAEqS,OAAO6qB,WAAY,EAKrBwE,EAAeM,EAAK,MAJb,WACNhiC,EAAEqS,OAAO6qB,WAAY,EACrBzI,EAAUwK,KAAK1vB,EAAQ,cAAe,IAAI,GAAM,QAMlDyyB,EAAMzyB,EAAO1H,aAAa,mBAEtB4sB,EAAUyB,IAAImM,UAChB5N,EAAUyB,IAAImM,UAAU,CAACL,IAEzBN,EAAeM,KAKjBC,EAAK1yB,EAAO1H,aAAa,cAExB7H,EAAEqS,OAAO6qB,WAAY,EAOrBqE,EAAOU,GANA,WACN1yB,EAAOgF,MAAM+tB,gBAAkB,QAAUd,EAAer8B,KAAK88B,GAAMtuB,KAAK4uB,UAAUN,GAAMA,GAAO,IAC/FjiC,EAAEqS,OAAO6qB,WAAY,EACrBzI,EAAUwK,KAAK1vB,EAAQ,cAAe,IAAI,GAAM,QAOlD2yB,EAAS3yB,EAAO1H,aAAa,kBAE5B7H,EAAEqS,OAAO6qB,WAAY,EAOrBqE,EAAOW,GANA,WACN3yB,EAAO2yB,OAASA,EAChBliC,EAAEqS,OAAO6qB,WAAY,EACrBzI,EAAUwK,KAAK1vB,EAAQ,cAAe,IAAI,GAAM,WAOjD,Q,mBC3JL,yBAMCilB,EAAUA,EAAQnmB,KAAK,KAAMzL,EAAQA,EAAOF,UAEZ5C,EAAOC,QACtCy0B,EAAQ,EAAQ,KAEhB,EAAO,CAAC,WAAqB,0BAAP,EAAF,GAAS,gCAX/B,CAiBE5xB,QAAQ,SAASA,EAAQF,EAAU+xB,GACpC,aACA,GAAI7xB,EAAOgB,iBAAX,CAEA,IAAI+wB,EAAeF,EAAUyB,IACzBsM,EAAW,OACXC,EAAc,qBACdC,EAAY,uDACZC,EAAU,uCACVnB,EAAiB,UACjBoB,EAAwB,CAACC,QAAS,EAAGC,MAAO,GAoB5CC,EAAiB,SAASpG,EAAQuD,GACrC,GAAGA,EAAM,CACR,IAAI8C,EAAY9C,EAAMA,MAAMyC,GACzBK,GAAaA,EAAU,GACzBrG,EAAOl5B,aAAa,OAAQu/B,EAAU,IAEtCrG,EAAOl5B,aAAa,QAASkxB,EAAac,YAAYyK,IAAUA,KAqE/D+C,EAAY,SAASjjC,GACxB,GAAIA,EAAEuP,OAAO2zB,WAAb,CAEA,IAAIC,EAAQnjC,EAAEuP,OACV6nB,EAAO+L,EAAMD,WACbjB,EAAKkB,EAAMC,YAAcD,EAAM/W,IAGnC,GAAG6V,EAAG,CACL,IAAIoB,EAAS7B,EAAer8B,KAAK88B,GAAMtuB,KAAK4uB,UAAUN,GAAMA,EACxDzP,EAAQiC,EAAUwK,KAAK7H,EAAM,aAAc,CAC9ChL,IAAK6V,EACLoB,OAAQA,EACRC,QAAS,OAGN9Q,EAAM2K,mBACT/F,EAAK7iB,MAAM+tB,gBAAkB9P,EAAMngB,OAAOixB,SAAW,OAAS9Q,EAAMngB,OAAOgxB,OAAS,KAInFF,EAAMI,oBACR9O,EAAUwK,KAAK7H,EAAM,cAAe,IAAI,GAAO,UACxC+L,EAAMI,qBAIf3/B,iBAAiB,oBAAoB,SAAS5D,GAC7C,IAAIwjC,EAAKL,EAAO/L,GAEbp3B,EAAEm9B,mBAAsBqG,EAAMxjC,EAAEuP,OAAO1H,aAAa,iBAEvDuvB,EAAOp3B,EAAEuP,QACT4zB,EAAQzgC,EAASmK,cAAc,QAEzB42B,IAAM,GAEZN,EAAMI,mBAAoB,EAC1BvjC,EAAEqS,OAAO6qB,WAAY,EAvGF,SAASwG,EAAMtM,EAAMrS,GACxC,IAAI8a,EAAUn9B,EAASmK,cAAc,WACjCkwB,EAAQ3F,EAAKvvB,aAAa8sB,EAAaY,WACvCkL,EAAQrJ,EAAKvvB,aAAa,cAC1B87B,EAAWvM,EAAKvvB,aAAa,iBAE9BuvB,EAAK8L,YAAc9L,EAAK8L,WAAWr5B,YAAcutB,GACnDA,EAAKrnB,YAAYqnB,EAAK8L,YAGvBriC,OAAO+F,eAAeme,EAAK,aAAc,CACxCle,MAAOuwB,EACP5vB,UAAU,IAEX3G,OAAO+F,eAAewwB,EAAM,aAAc,CACzCvwB,MAAOg5B,EACPr4B,UAAU,IAGXk8B,EAAOA,EAAKz+B,QAAQu9B,EAAU,KAAKrC,MAAMsC,GAEzC5C,EAAQtrB,MAAMiC,QAAU,OACxBuO,EAAI7Y,UAAYyoB,EAAaE,UAEX,GAAf6O,EAAK1iC,QAAgB+7B,IACvBA,EAAQ,QAGT2G,EAAKxgC,SAAQ,SAASsgC,GACrB,IAAItD,EACAvD,EAASj6B,EAASmK,cAAc,UAEjCkwB,GAAkB,QAATA,GACXJ,EAAOl5B,aAAa,QAASs5B,IAG1BmD,EAAQsD,EAAItD,MAAMwC,KACrB/F,EAAOl5B,aAAakxB,EAAaW,WAAY4K,EAAM,IAEnD6C,EAAepG,EAAQuD,EAAM,IAC7B6C,EAAepG,EAAQuD,EAAM,KAE7BvD,EAAOl5B,aAAakxB,EAAaW,WAAYkO,GAG9C3D,EAAQ5yB,YAAY0vB,MAGlBI,IACFhY,EAAIthB,aAAakxB,EAAaY,UAAWwH,GACzC3F,EAAKh0B,gBAAgBuxB,EAAaY,WAClC6B,EAAKh0B,gBAAgB,UAEnBugC,GACF5e,EAAIthB,aAAa,gBAAiBkgC,GAEhClD,GACF1b,EAAIthB,aAAa,aAAcg9B,GAGhCZ,EAAQ5yB,YAAY8X,GAEpBqS,EAAKnqB,YAAY4yB,GA2CjB+D,CAAcJ,EAAKpM,EAAM+L,GAEzB/+B,YAAW,WACVqwB,EAAU+E,OAAO6E,OAAO8E,GAExB1O,EAAU0D,KAAI,WACb1D,EAAUwK,KAAKkE,EAAO,cAAe,IAAI,GAAM,GAC5CA,EAAM1F,UACRwF,EAAU,CAAC1zB,OAAQ4zB,cAOvBzgC,EAASkB,iBAAiB,OAAQq/B,GAAW,GAE7CrgC,EAAOgB,iBAAiB,mBAAmB,SAAS5D,GACnD,GAAGA,EAAEqS,OAAOklB,UAAY9C,GACrBz0B,EAAEuP,OAAO2zB,YAAcljC,EAAEqS,OAAOosB,SAAS,CAC3C,IACIoF,EAnJU,SAASzM,GACxB,IAAIyM,EAQJ,OANAA,GAAUltB,iBAAiBygB,IAAS,CAACnZ,iBAAkB,eAAeA,iBAAiB,oBAEnF2kB,EAAsBiB,IAAWjB,EAAsBxL,EAAK7iB,MAAMuvB,kBACrED,EAASzM,EAAK7iB,MAAMuvB,gBAGdD,EA0IOE,CADF/jC,EAAEuP,OAAO2zB,YAGjBN,EAAsBiB,KACxB7jC,EAAEuP,OAAOy0B,oBAAsBH,EAE/BpP,EAAU0D,KAAI,WACbn4B,EAAEuP,OAAO9L,aAAa,kBAAmBogC,GACtC7jC,EAAEuP,OAAOy0B,4BACJhkC,EAAEuP,OAAOy0B,4BAKlB,GAEHthC,EAASqE,gBAAgBnD,iBAAiB,mBAAmB,SAAS5D,GA1KrD,IAASo3B,EACrBza,GA0KD3c,EAAEm9B,kBAAqBn9B,EAAEuP,OAAO2zB,YAAcljC,EAAEqS,OAAOklB,UAAY9C,IACtEz0B,EAAEqS,OAAOsK,OA5KgBya,EA4KGp3B,EAAEuP,OAAO2zB,WA3KjCvmB,EAAQ8X,EAAUyK,GAAG9H,EAAMA,EAAKvtB,cAEhCutB,EAAKc,iBAAmBvb,EAAQya,EAAKc,mBACxCd,EAAKc,gBAAkBvb,GAEjBya,EAAKc,0B,iBClCd,IAAIj0B,EAGJA,EAAI,WACH,OAAOO,KADJ,GAIJ,IAECP,EAAIA,GAAK,IAAI0B,SAAS,cAAb,GACR,MAAO3F,GAEc,iBAAX4C,SAAqBqB,EAAIrB,QAOrC9C,EAAOC,QAAUkE","file":"vendors.js","sourcesContent":["!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\";function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(t,e){for(var n=0;n=window.innerHeight?BEMblock(this.panel,this.constants.panel).addMod(this.constants.IS_ABOVE):BEMblock(this.panel,this.constants.panel).removeMod(this.constants.IS_ABOVE)}},{key:\"getSelectOptionsText\",value:function(t){var e=[].slice.call(t.options),n=[];return e.forEach(function(t){t.selected&&n.push(t.innerText)}),n.join(\", \")}},{key:\"setSelectOptionsItems\",value:function(t,e,n){var s=this,o=[].slice.call(t.parentNode.children),i=[].slice.call(e.options),c=o.map(function(t,e){var n=document.createElement(\"span\");return n.className=s.constants.openerLabel,n.setAttribute(s.constants.DATA_LABEL_INDEX,e),n.innerHTML=\"\".concat(t.innerText,\"\"),n});o.forEach(function(t,e){t.setAttribute(s.constants.DATA_LABEL_INDEX,e)}),i.forEach(function(t,e){t.setAttribute(s.constants.DATA_LABEL_INDEX,e)});var a=+t.getAttribute(this.constants.DATA_LABEL_INDEX),l=n.querySelector(\"[\".concat(this.constants.DATA_LABEL_INDEX,'=\"').concat(a,'\"]'));BEMblock(t,this.constants.option).containsMod(this.constants.IS_SELECTED)?(n.children.length||(n.innerHTML=\"\"),n.appendChild(c[a])):l&&n.removeChild(l),c.forEach(function(t){t.querySelector(\"button\").addEventListener(\"click\",function(t){var e=this;t.preventDefault();var n=t.currentTarget.parentNode,s=n.getAttribute(this.constants.DATA_LABEL_INDEX),o=[].slice.call(this.select.querySelectorAll(\"[\".concat(this.constants.DATA_LABEL_INDEX,'=\"').concat(s,'\"]'))),i=o.filter(function(t){if(t.classList.contains(e.constants.option))return t})[0];o.forEach(function(t){t.selected&&(t.selected=!1),BEMblock(t,e.constants.option).containsMod(e.constants.IS_SELECTED)&&BEMblock(t,e.constants.option).removeMod(e.constants.IS_SELECTED)}),this.dispatchEvent(this.el),this.triggerCheckbox(i),n.parentNode&&n.parentNode.removeChild(n)}.bind(s))})}},{key:\"addDataAttributes\",value:function(t,e){var n=[].filter.call(t.attributes,function(t){return/^data-/.test(t.name)});n.length&&n.forEach(function(t){e.setAttribute(t.name,t.value)})}},{key:\"select\",get:function(){return this.el.parentNode}},{key:\"opener\",get:function(){return this.select.querySelector(\".\"+this.constants.opener)}},{key:\"panel\",get:function(){return this.select.querySelector(\".\"+this.constants.panel)}}]),n}();module.exports=Select;\n","/*! tabbyjs v12.0.3 | (c) 2019 Chris Ferdinandi | MIT License | http://github.com/cferdinandi/tabby */\nElement.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),(function(e,t){\"function\"==typeof define&&define.amd?define([],(function(){return t(e)})):\"object\"==typeof exports?module.exports=t(e):e.Tabby=t(e)})(\"undefined\"!=typeof global?global:\"undefined\"!=typeof window?window:this,(function(e){\"use strict\";var t={idPrefix:\"tabby-toggle_\",default:\"[data-tabby-default]\"},r=function(t){if(t&&\"true\"!=t.getAttribute(\"aria-selected\")){var r=document.querySelector(t.hash);if(r){var o=(function(e){var t=e.closest('[role=\"tablist\"]');if(!t)return{};var r=t.querySelector('[role=\"tab\"][aria-selected=\"true\"]');if(!r)return{};var o=document.querySelector(r.hash);return r.setAttribute(\"aria-selected\",\"false\"),r.setAttribute(\"tabindex\",\"-1\"),o?(o.setAttribute(\"hidden\",\"hidden\"),{previousTab:r,previousContent:o}):{previousTab:r}})(t);!(function(e,t){e.setAttribute(\"aria-selected\",\"true\"),e.setAttribute(\"tabindex\",\"0\"),t.removeAttribute(\"hidden\"),e.focus()})(t,r),o.tab=t,o.content=r,(function(t,r){var o;\"function\"==typeof e.CustomEvent?o=new CustomEvent(\"tabby\",{bubbles:!0,cancelable:!0,detail:r}):(o=document.createEvent(\"CustomEvent\")).initCustomEvent(\"tabby\",!0,!0,r),t.dispatchEvent(o)})(t,o)}}},o=function(e,t){var o=(function(e){var t=e.closest('[role=\"tablist\"]'),r=t?t.querySelectorAll('[role=\"tab\"]'):null;if(r)return{tabs:r,index:Array.prototype.indexOf.call(r,e)}})(e);if(o){var n,i=o.tabs.length-1;[\"ArrowUp\",\"ArrowLeft\",\"Up\",\"Left\"].indexOf(t)>-1?n=o.index<1?i:o.index-1:[\"ArrowDown\",\"ArrowRight\",\"Down\",\"Right\"].indexOf(t)>-1?n=o.index===i?0:o.index+1:\"Home\"===t?n=0:\"End\"===t&&(n=i),r(o.tabs[n])}};return function(n,i){var a,u,l={};l.destroy=function(){var e=u.querySelectorAll(\"a\");Array.prototype.forEach.call(e,(function(e){var t=document.querySelector(e.hash);t&&(function(e,t,r){e.id.slice(0,r.idPrefix.length)===r.idPrefix&&(e.id=\"\"),e.removeAttribute(\"role\"),e.removeAttribute(\"aria-controls\"),e.removeAttribute(\"aria-selected\"),e.removeAttribute(\"tabindex\"),e.closest(\"li\").removeAttribute(\"role\"),t.removeAttribute(\"role\"),t.removeAttribute(\"aria-labelledby\"),t.removeAttribute(\"hidden\")})(e,t,a)})),u.removeAttribute(\"role\"),document.documentElement.removeEventListener(\"click\",c,!0),u.removeEventListener(\"keydown\",d,!0),a=null,u=null},l.setup=function(){if(u=document.querySelector(n)){var e=u.querySelectorAll(\"a\");u.setAttribute(\"role\",\"tablist\"),Array.prototype.forEach.call(e,(function(e){var t=document.querySelector(e.hash);t&&(function(e,t,r){e.id||(e.id=r.idPrefix+t.id),e.setAttribute(\"role\",\"tab\"),e.setAttribute(\"aria-controls\",t.id),e.closest(\"li\").setAttribute(\"role\",\"presentation\"),t.setAttribute(\"role\",\"tabpanel\"),t.setAttribute(\"aria-labelledby\",e.id),e.matches(r.default)?e.setAttribute(\"aria-selected\",\"true\"):(e.setAttribute(\"aria-selected\",\"false\"),e.setAttribute(\"tabindex\",\"-1\"),t.setAttribute(\"hidden\",\"hidden\"))})(e,t,a)}))}},l.toggle=function(e){var t=e;\"string\"==typeof e&&(t=document.querySelector(n+' [role=\"tab\"][href*=\"'+e+'\"]')),r(t)};var c=function(e){var t=e.target.closest(n+' [role=\"tab\"]');t&&(e.preventDefault(),r(t))},d=function(e){var t=document.activeElement;t.matches(n+' [role=\"tab\"]')&&([\"ArrowUp\",\"ArrowDown\",\"ArrowLeft\",\"ArrowRight\",\"Up\",\"Down\",\"Left\",\"Right\",\"Home\",\"End\"].indexOf(e.key)<0||o(t,e.key))};return a=(function(){var e={};return Array.prototype.forEach.call(arguments,(function(t){for(var r in t){if(!t.hasOwnProperty(r))return;e[r]=t[r]}})),e})(t,i||{}),l.setup(),(function(t){if(!(e.location.hash.length<1)){var o=document.querySelector(t+' [role=\"tab\"][href*=\"'+e.location.hash+'\"]');r(o)}})(n),document.documentElement.addEventListener(\"click\",c,!0),u.addEventListener(\"keydown\",d,!0),l}}));","// Object.keys\nif (!Object.keys) {\n Object.keys = function(object) {\n var keys = [];\n for (var name in object) {\n if (Object.prototype.hasOwnProperty.call(object, name)) {\n keys.push(name);\n }\n }\n return keys;\n };\n}","// ChildNode.remove\nif(!(\"remove\" in Element.prototype)){\n Element.prototype.remove = function(){\n if(this.parentNode) {\n this.parentNode.removeChild(this);\n }\n };\n}","const defaults = {\n duration: 400,\n easing: (currentTime, startValue, diffValue, dureation) => {\n return -diffValue * (currentTime /= dureation) * (currentTime - 2) + startValue;\n }\n};\nconst directions = {\n OPEN: 1,\n CLOSE: 2\n};\nexport const slideUp = (element, args = {}) => {\n if (isInteger(args)) {\n args = { duration: args };\n }\n const options = extend(defaults, args);\n options.direction = directions.CLOSE;\n options.to = 0;\n options.startingHeight = element.scrollHeight;\n options.distanceHeight = -options.startingHeight;\n setElementAnimationStyles(element);\n window.requestAnimationFrame((timestamp) => animate(element, options, timestamp));\n};\nexport const slideDown = (element, args = {}) => {\n if (isInteger(args)) {\n args = { duration: args };\n }\n element.style.height = '0px';\n setElementAnimationStyles(element);\n const options = extend(defaults, args);\n options.direction = directions.OPEN;\n options.to = element.scrollHeight;\n options.startingHeight = 0;\n options.distanceHeight = options.to;\n window.requestAnimationFrame((timestamp) => animate(element, options, timestamp));\n};\nconst animate = (element, options, now) => {\n if (!options.startTime) {\n options.startTime = now;\n }\n const currentTime = now - options.startTime;\n let animationContinue = currentTime < options.duration;\n let newHeight = options.easing(currentTime, options.startingHeight, options.distanceHeight, options.duration);\n if (animationContinue) {\n element.style.height = `${newHeight.toFixed(2)}px`;\n window.requestAnimationFrame((timestamp) => animate(element, options, timestamp));\n }\n else {\n if (options.direction === directions.CLOSE) {\n element.style.display = 'none';\n }\n if (options.direction === directions.OPEN) {\n element.style.display = 'block';\n }\n removeElementAnimationStyles(element);\n }\n};\nconst setElementAnimationStyles = (element) => {\n element.style.display = 'block';\n element.style.overflow = 'hidden';\n element.style.marginTop = '0';\n element.style.marginBottom = '0';\n element.style.paddingTop = '0';\n element.style.paddingBottom = '0';\n};\nconst removeElementAnimationStyles = (element) => {\n element.style.height = null;\n element.style.overflow = null;\n element.style.marginTop = null;\n element.style.marginBottom = null;\n element.style.paddingTop = null;\n element.style.paddingBottom = null;\n};\nconst isInteger = (value) => {\n if (Number.isInteger) {\n return Number.isInteger(value);\n }\n else {\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n }\n};\nconst extend = (defaults, options) => {\n const extendedOptions = {};\n for (let key in defaults) {\n extendedOptions[key] = options[key] || defaults[key];\n }\n return extendedOptions;\n};\n//# sourceMappingURL=index.js.map","var win = window;\n\nexport var raf = win.requestAnimationFrame\n || win.webkitRequestAnimationFrame\n || win.mozRequestAnimationFrame\n || win.msRequestAnimationFrame\n || function(cb) { return setTimeout(cb, 16); };\n","var win = window;\n\nexport var caf = win.cancelAnimationFrame\n || win.mozCancelAnimationFrame\n || function(id){ clearTimeout(id); };\n","export function extend() {\n var obj, name, copy,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length;\n\n for (; i < length; i++) {\n if ((obj = arguments[i]) !== null) {\n for (name in obj) {\n copy = obj[name];\n\n if (target === copy) {\n continue;\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n return target;\n}","export function checkStorageValue (value) {\n return ['true', 'false'].indexOf(value) >= 0 ? JSON.parse(value) : value;\n}","export function setLocalStorage(storage, key, value, access) {\n if (access) {\n try { storage.setItem(key, value); } catch (e) {}\n }\n return value;\n}","export function getBody () {\n var doc = document,\n body = doc.body;\n\n if (!body) {\n body = doc.createElement('body');\n body.fake = true;\n }\n\n return body;\n}","export var docElement = document.documentElement;","import { docElement } from './docElement.js';\n\nexport function setFakeBody (body) {\n var docOverflow = '';\n if (body.fake) {\n docOverflow = docElement.style.overflow;\n //avoid crashing IE8, if background image is used\n body.style.background = '';\n //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible\n body.style.overflow = docElement.style.overflow = 'hidden';\n docElement.appendChild(body);\n }\n\n return docOverflow;\n}","import { docElement } from './docElement.js';\n\nexport function resetFakeBody (body, docOverflow) {\n if (body.fake) {\n body.remove();\n docElement.style.overflow = docOverflow;\n // Trigger layout so kinetic scrolling isn't disabled in iOS6+\n // eslint-disable-next-line\n docElement.offsetHeight;\n }\n}","// cross browsers addRule method\nimport { raf } from './raf.js';\nexport function addCSSRule(sheet, selector, rules, index) {\n // return raf(function() {\n 'insertRule' in sheet ?\n sheet.insertRule(selector + '{' + rules + '}', index) :\n sheet.addRule(selector, rules, index);\n // });\n}","export function getCssRulesLength(sheet) {\n var rule = ('insertRule' in sheet) ? sheet.cssRules : sheet.rules;\n return rule.length;\n}","// https://toddmotto.com/ditch-the-array-foreach-call-nodelist-hack/\nexport function forEach (arr, callback, scope) {\n for (var i = 0, l = arr.length; i < l; i++) {\n callback.call(scope, arr[i], i);\n }\n}","export var classListSupport = 'classList' in document.createElement('_');","import { classListSupport } from './classListSupport.js';\n\nvar hasClass = classListSupport ?\n function (el, str) { return el.classList.contains(str); } :\n function (el, str) { return el.className.indexOf(str) >= 0; };\n\nexport { classListSupport, hasClass };","import { classListSupport, hasClass } from './hasClass.js';\nvar addClass = classListSupport ?\n function (el, str) {\n if (!hasClass(el, str)) { el.classList.add(str); }\n } :\n function (el, str) {\n if (!hasClass(el, str)) { el.className += ' ' + str; }\n };\n\nexport { addClass };","import { classListSupport, hasClass } from './hasClass.js';\nvar removeClass = classListSupport ?\n function (el, str) {\n if (hasClass(el, str)) { el.classList.remove(str); }\n } :\n function (el, str) {\n if (hasClass(el, str)) { el.className = el.className.replace(str, ''); }\n };\n\nexport { removeClass };","export function hasAttr(el, attr) {\n return el.hasAttribute(attr);\n}","export function getAttr(el, attr) {\n return el.getAttribute(attr);\n}","export function isNodeList(el) {\n // Only NodeList has the \"item()\" function\n return typeof el.item !== \"undefined\"; \n}","import { isNodeList } from \"./isNodeList.js\";\n\nexport function setAttrs(els, attrs) {\n els = (isNodeList(els) || els instanceof Array) ? els : [els];\n if (Object.prototype.toString.call(attrs) !== '[object Object]') { return; }\n\n for (var i = els.length; i--;) {\n for(var key in attrs) {\n els[i].setAttribute(key, attrs[key]);\n }\n }\n}","import { isNodeList } from \"./isNodeList.js\";\n\nexport function removeAttrs(els, attrs) {\n els = (isNodeList(els) || els instanceof Array) ? els : [els];\n attrs = (attrs instanceof Array) ? attrs : [attrs];\n\n var attrLength = attrs.length;\n for (var i = els.length; i--;) {\n for (var j = attrLength; j--;) {\n els[i].removeAttribute(attrs[j]);\n }\n }\n}","export function arrayFromNodeList (nl) {\n var arr = [];\n for (var i = 0, l = nl.length; i < l; i++) {\n arr.push(nl[i]);\n }\n return arr;\n}","export function hideElement(el, forceHide) {\n if (el.style.display !== 'none') { el.style.display = 'none'; }\n}","export function showElement(el, forceHide) {\n if (el.style.display === 'none') { el.style.display = ''; }\n}","export function isVisible(el) {\n return window.getComputedStyle(el).display !== 'none';\n}","export function whichProperty(props){\n if (typeof props === 'string') {\n var arr = [props],\n Props = props.charAt(0).toUpperCase() + props.substr(1),\n prefixes = ['Webkit', 'Moz', 'ms', 'O'];\n \n prefixes.forEach(function(prefix) {\n if (prefix !== 'ms' || props === 'transform') {\n arr.push(prefix + Props);\n }\n });\n\n props = arr;\n }\n\n var el = document.createElement('fakeelement'),\n len = props.length;\n for(var i = 0; i < props.length; i++){\n var prop = props[i];\n if( el.style[prop] !== undefined ){ return prop; }\n }\n\n return false; // explicit for ie9-\n}\n","// get transitionend, animationend based on transitionDuration\n// @propin: string\n// @propOut: string, first-letter uppercase\n// Usage: getEndProperty('WebkitTransitionDuration', 'Transition') => webkitTransitionEnd\nexport function getEndProperty(propIn, propOut) {\n var endProp = false;\n if (/^Webkit/.test(propIn)) {\n endProp = 'webkit' + propOut + 'End';\n } else if (/^O/.test(propIn)) {\n endProp = 'o' + propOut + 'End';\n } else if (propIn) {\n endProp = propOut.toLowerCase() + 'end';\n }\n return endProp;\n}","// Test via a getter in the options object to see if the passive property is accessed\nvar supportsPassive = false;\ntry {\n var opts = Object.defineProperty({}, 'passive', {\n get: function() {\n supportsPassive = true;\n }\n });\n window.addEventListener(\"test\", null, opts);\n} catch (e) {}\nexport var passiveOption = supportsPassive ? { passive: true } : false;","import { passiveOption } from './passiveOption.js';\n\nexport function addEvents(el, obj, preventScrolling) {\n for (var prop in obj) {\n var option = ['touchstart', 'touchmove'].indexOf(prop) >= 0 && !preventScrolling ? passiveOption : false;\n el.addEventListener(prop, obj[prop], option);\n }\n}","import { passiveOption } from './passiveOption.js';\n\nexport function removeEvents(el, obj) {\n for (var prop in obj) {\n var option = ['touchstart', 'touchmove'].indexOf(prop) >= 0 ? passiveOption : false;\n el.removeEventListener(prop, obj[prop], option);\n }\n}","export function Events() {\n return {\n topics: {},\n on: function (eventName, fn) {\n this.topics[eventName] = this.topics[eventName] || [];\n this.topics[eventName].push(fn);\n },\n off: function(eventName, fn) {\n if (this.topics[eventName]) {\n for (var i = 0; i < this.topics[eventName].length; i++) {\n if (this.topics[eventName][i] === fn) {\n this.topics[eventName].splice(i, 1);\n break;\n }\n }\n }\n },\n emit: function (eventName, data) {\n data.type = eventName;\n if (this.topics[eventName]) {\n this.topics[eventName].forEach(function(fn) {\n fn(data, eventName);\n });\n }\n }\n };\n};","import './helpers/Object.keys';\nimport './helpers/childNode.remove';\nimport { raf } from './helpers/raf.js';\nimport { caf } from './helpers/caf.js';\nimport { extend } from './helpers/extend.js';\nimport { checkStorageValue } from './helpers/checkStorageValue.js';\nimport { setLocalStorage } from './helpers/setLocalStorage.js';\nimport { getSlideId } from './helpers/getSlideId.js';\nimport { calc } from './helpers/calc.js';\nimport { percentageLayout } from './helpers/percentageLayout.js';\nimport { mediaquerySupport } from './helpers/mediaquerySupport.js';\nimport { createStyleSheet } from './helpers/createStyleSheet.js';\nimport { addCSSRule } from './helpers/addCSSRule.js';\nimport { removeCSSRule } from './helpers/removeCSSRule.js';\nimport { getCssRulesLength } from './helpers/getCssRulesLength.js';\nimport { toDegree } from './helpers/toDegree.js';\nimport { getTouchDirection } from './helpers/getTouchDirection.js';\nimport { forEach } from './helpers/forEach.js';\nimport { hasClass } from './helpers/hasClass.js';\nimport { addClass } from './helpers/addClass.js';\nimport { removeClass } from './helpers/removeClass.js';\nimport { hasAttr } from './helpers/hasAttr.js';\nimport { getAttr } from './helpers/getAttr.js';\nimport { setAttrs } from './helpers/setAttrs.js';\nimport { removeAttrs } from './helpers/removeAttrs.js';\nimport { arrayFromNodeList } from './helpers/arrayFromNodeList.js';\nimport { hideElement } from './helpers/hideElement.js';\nimport { showElement } from './helpers/showElement.js';\nimport { isVisible } from './helpers/isVisible.js';\nimport { whichProperty } from './helpers/whichProperty.js';\nimport { has3DTransforms } from './helpers/has3DTransforms.js';\nimport { getEndProperty } from './helpers/getEndProperty.js';\nimport { addEvents } from './helpers/addEvents.js';\nimport { removeEvents } from './helpers/removeEvents.js';\nimport { Events } from './helpers/events.js';\nimport { jsTransform } from './helpers/jsTransform.js';\n\nexport var tns = function(options) {\n options = extend({\n container: '.slider',\n mode: 'carousel',\n axis: 'horizontal',\n items: 1,\n gutter: 0,\n edgePadding: 0,\n fixedWidth: false,\n autoWidth: false,\n viewportMax: false,\n slideBy: 1,\n center: false,\n controls: true,\n controlsPosition: 'top',\n controlsText: ['prev', 'next'],\n controlsContainer: false,\n prevButton: false,\n nextButton: false,\n nav: true,\n navPosition: 'top',\n navContainer: false,\n navAsThumbnails: false,\n arrowKeys: false,\n speed: 300,\n autoplay: false,\n autoplayPosition: 'top',\n autoplayTimeout: 5000,\n autoplayDirection: 'forward',\n autoplayText: ['start', 'stop'],\n autoplayHoverPause: false,\n autoplayButton: false,\n autoplayButtonOutput: true,\n autoplayResetOnVisibility: true,\n animateIn: 'tns-fadeIn',\n animateOut: 'tns-fadeOut',\n animateNormal: 'tns-normal',\n animateDelay: false,\n loop: true,\n rewind: false,\n autoHeight: false,\n responsive: false,\n lazyload: false,\n lazyloadSelector: '.tns-lazy-img',\n touch: true,\n mouseDrag: false,\n swipeAngle: 15,\n nested: false,\n preventActionWhenRunning: false,\n preventScrollOnTouch: false,\n freezable: true,\n onInit: false,\n useLocalStorage: true\n }, options || {});\n \n var doc = document,\n win = window,\n KEYS = {\n ENTER: 13,\n SPACE: 32,\n LEFT: 37,\n RIGHT: 39\n },\n tnsStorage = {},\n localStorageAccess = options.useLocalStorage;\n\n if (localStorageAccess) {\n // check browser version and local storage access\n var browserInfo = navigator.userAgent;\n var uid = new Date;\n\n try {\n tnsStorage = win.localStorage;\n if (tnsStorage) {\n tnsStorage.setItem(uid, uid);\n localStorageAccess = tnsStorage.getItem(uid) == uid;\n tnsStorage.removeItem(uid);\n } else {\n localStorageAccess = false;\n }\n if (!localStorageAccess) { tnsStorage = {}; }\n } catch(e) {\n localStorageAccess = false;\n }\n\n if (localStorageAccess) {\n // remove storage when browser version changes\n if (tnsStorage['tnsApp'] && tnsStorage['tnsApp'] !== browserInfo) {\n ['tC', 'tPL', 'tMQ', 'tTf', 't3D', 'tTDu', 'tTDe', 'tADu', 'tADe', 'tTE', 'tAE'].forEach(function(item) { tnsStorage.removeItem(item); });\n }\n // update browserInfo\n localStorage['tnsApp'] = browserInfo;\n }\n }\n\n var CALC = tnsStorage['tC'] ? checkStorageValue(tnsStorage['tC']) : setLocalStorage(tnsStorage, 'tC', calc(), localStorageAccess),\n PERCENTAGELAYOUT = tnsStorage['tPL'] ? checkStorageValue(tnsStorage['tPL']) : setLocalStorage(tnsStorage, 'tPL', percentageLayout(), localStorageAccess),\n CSSMQ = tnsStorage['tMQ'] ? checkStorageValue(tnsStorage['tMQ']) : setLocalStorage(tnsStorage, 'tMQ', mediaquerySupport(), localStorageAccess),\n TRANSFORM = tnsStorage['tTf'] ? checkStorageValue(tnsStorage['tTf']) : setLocalStorage(tnsStorage, 'tTf', whichProperty('transform'), localStorageAccess),\n HAS3DTRANSFORMS = tnsStorage['t3D'] ? checkStorageValue(tnsStorage['t3D']) : setLocalStorage(tnsStorage, 't3D', has3DTransforms(TRANSFORM), localStorageAccess),\n TRANSITIONDURATION = tnsStorage['tTDu'] ? checkStorageValue(tnsStorage['tTDu']) : setLocalStorage(tnsStorage, 'tTDu', whichProperty('transitionDuration'), localStorageAccess),\n TRANSITIONDELAY = tnsStorage['tTDe'] ? checkStorageValue(tnsStorage['tTDe']) : setLocalStorage(tnsStorage, 'tTDe', whichProperty('transitionDelay'), localStorageAccess),\n ANIMATIONDURATION = tnsStorage['tADu'] ? checkStorageValue(tnsStorage['tADu']) : setLocalStorage(tnsStorage, 'tADu', whichProperty('animationDuration'), localStorageAccess),\n ANIMATIONDELAY = tnsStorage['tADe'] ? checkStorageValue(tnsStorage['tADe']) : setLocalStorage(tnsStorage, 'tADe', whichProperty('animationDelay'), localStorageAccess),\n TRANSITIONEND = tnsStorage['tTE'] ? checkStorageValue(tnsStorage['tTE']) : setLocalStorage(tnsStorage, 'tTE', getEndProperty(TRANSITIONDURATION, 'Transition'), localStorageAccess),\n ANIMATIONEND = tnsStorage['tAE'] ? checkStorageValue(tnsStorage['tAE']) : setLocalStorage(tnsStorage, 'tAE', getEndProperty(ANIMATIONDURATION, 'Animation'), localStorageAccess);\n\n // get element nodes from selectors\n var supportConsoleWarn = win.console && typeof win.console.warn === \"function\",\n tnsList = ['container', 'controlsContainer', 'prevButton', 'nextButton', 'navContainer', 'autoplayButton'], \n optionsElements = {};\n \n tnsList.forEach(function(item) {\n if (typeof options[item] === 'string') {\n var str = options[item],\n el = doc.querySelector(str);\n optionsElements[item] = str;\n\n if (el && el.nodeName) {\n options[item] = el;\n } else {\n if (supportConsoleWarn) { console.warn('Can\\'t find', options[item]); }\n return;\n }\n }\n });\n\n // make sure at least 1 slide\n if (options.container.children.length < 1) {\n if (supportConsoleWarn) { console.warn('No slides found in', options.container); }\n return;\n }\n\n // update options\n var responsive = options.responsive,\n nested = options.nested,\n carousel = options.mode === 'carousel' ? true : false;\n\n if (responsive) {\n // apply responsive[0] to options and remove it\n if (0 in responsive) {\n options = extend(options, responsive[0]);\n delete responsive[0];\n }\n\n var responsiveTem = {};\n for (var key in responsive) {\n var val = responsive[key];\n // update responsive\n // from: 300: 2\n // to: \n // 300: { \n // items: 2 \n // } \n val = typeof val === 'number' ? {items: val} : val;\n responsiveTem[key] = val;\n }\n responsive = responsiveTem;\n responsiveTem = null;\n }\n\n // update options\n function updateOptions (obj) {\n for (var key in obj) {\n if (!carousel) {\n if (key === 'slideBy') { obj[key] = 'page'; }\n if (key === 'edgePadding') { obj[key] = false; }\n if (key === 'autoHeight') { obj[key] = false; }\n }\n\n // update responsive options\n if (key === 'responsive') { updateOptions(obj[key]); }\n }\n }\n if (!carousel) { updateOptions(options); }\n\n\n // === define and set variables ===\n if (!carousel) {\n options.axis = 'horizontal';\n options.slideBy = 'page';\n options.edgePadding = false;\n\n var animateIn = options.animateIn,\n animateOut = options.animateOut,\n animateDelay = options.animateDelay,\n animateNormal = options.animateNormal;\n }\n\n var horizontal = options.axis === 'horizontal' ? true : false,\n outerWrapper = doc.createElement('div'),\n innerWrapper = doc.createElement('div'),\n middleWrapper,\n container = options.container,\n containerParent = container.parentNode,\n containerHTML = container.outerHTML,\n slideItems = container.children,\n slideCount = slideItems.length,\n breakpointZone,\n windowWidth = getWindowWidth(),\n isOn = false;\n if (responsive) { setBreakpointZone(); }\n if (carousel) { container.className += ' tns-vpfix'; }\n\n // fixedWidth: viewport > rightBoundary > indexMax\n var autoWidth = options.autoWidth,\n fixedWidth = getOption('fixedWidth'),\n edgePadding = getOption('edgePadding'),\n gutter = getOption('gutter'),\n viewport = getViewportWidth(),\n center = getOption('center'),\n items = !autoWidth ? Math.floor(getOption('items')) : 1,\n slideBy = getOption('slideBy'),\n viewportMax = options.viewportMax || options.fixedWidthViewportWidth,\n arrowKeys = getOption('arrowKeys'),\n speed = getOption('speed'),\n rewind = options.rewind,\n loop = rewind ? false : options.loop,\n autoHeight = getOption('autoHeight'),\n controls = getOption('controls'),\n controlsText = getOption('controlsText'),\n nav = getOption('nav'),\n touch = getOption('touch'),\n mouseDrag = getOption('mouseDrag'),\n autoplay = getOption('autoplay'),\n autoplayTimeout = getOption('autoplayTimeout'),\n autoplayText = getOption('autoplayText'),\n autoplayHoverPause = getOption('autoplayHoverPause'),\n autoplayResetOnVisibility = getOption('autoplayResetOnVisibility'),\n sheet = createStyleSheet(),\n lazyload = options.lazyload,\n lazyloadSelector = options.lazyloadSelector,\n slidePositions, // collection of slide positions\n slideItemsOut = [],\n cloneCount = loop ? getCloneCountForLoop() : 0,\n slideCountNew = !carousel ? slideCount + cloneCount : slideCount + cloneCount * 2,\n hasRightDeadZone = (fixedWidth || autoWidth) && !loop ? true : false,\n rightBoundary = fixedWidth ? getRightBoundary() : null,\n updateIndexBeforeTransform = (!carousel || !loop) ? true : false,\n // transform\n transformAttr = horizontal ? 'left' : 'top',\n transformPrefix = '',\n transformPostfix = '',\n // index\n getIndexMax = (function () {\n if (fixedWidth) {\n return function() { return center && !loop ? slideCount - 1 : Math.ceil(- rightBoundary / (fixedWidth + gutter)); };\n } else if (autoWidth) {\n return function() {\n for (var i = slideCountNew; i--;) {\n if (slidePositions[i] >= - rightBoundary) { return i; }\n }\n };\n } else {\n return function() {\n if (center && carousel && !loop) {\n return slideCount - 1;\n } else {\n return loop || carousel ? Math.max(0, slideCountNew - Math.ceil(items)) : slideCountNew - 1;\n }\n };\n }\n })(),\n index = getStartIndex(getOption('startIndex')),\n indexCached = index,\n displayIndex = getCurrentSlide(),\n indexMin = 0,\n indexMax = !autoWidth ? getIndexMax() : null,\n // resize\n resizeTimer,\n preventActionWhenRunning = options.preventActionWhenRunning,\n swipeAngle = options.swipeAngle,\n moveDirectionExpected = swipeAngle ? '?' : true,\n running = false,\n onInit = options.onInit,\n events = new Events(),\n // id, class\n newContainerClasses = ' tns-slider tns-' + options.mode,\n slideId = container.id || getSlideId(),\n disable = getOption('disable'),\n disabled = false,\n freezable = options.freezable,\n freeze = freezable && !autoWidth ? getFreeze() : false,\n frozen = false,\n controlsEvents = {\n 'click': onControlsClick,\n 'keydown': onControlsKeydown\n },\n navEvents = {\n 'click': onNavClick,\n 'keydown': onNavKeydown\n },\n hoverEvents = {\n 'mouseover': mouseoverPause,\n 'mouseout': mouseoutRestart\n },\n visibilityEvent = {'visibilitychange': onVisibilityChange},\n docmentKeydownEvent = {'keydown': onDocumentKeydown},\n touchEvents = {\n 'touchstart': onPanStart,\n 'touchmove': onPanMove,\n 'touchend': onPanEnd,\n 'touchcancel': onPanEnd\n }, dragEvents = {\n 'mousedown': onPanStart,\n 'mousemove': onPanMove,\n 'mouseup': onPanEnd,\n 'mouseleave': onPanEnd\n },\n hasControls = hasOption('controls'),\n hasNav = hasOption('nav'),\n navAsThumbnails = autoWidth ? true : options.navAsThumbnails,\n hasAutoplay = hasOption('autoplay'),\n hasTouch = hasOption('touch'),\n hasMouseDrag = hasOption('mouseDrag'),\n slideActiveClass = 'tns-slide-active',\n imgCompleteClass = 'tns-complete',\n imgEvents = {\n 'load': onImgLoaded,\n 'error': onImgFailed\n },\n imgsComplete,\n liveregionCurrent,\n preventScroll = options.preventScrollOnTouch === 'force' ? true : false;\n\n // controls\n if (hasControls) {\n var controlsContainer = options.controlsContainer,\n controlsContainerHTML = options.controlsContainer ? options.controlsContainer.outerHTML : '',\n prevButton = options.prevButton,\n nextButton = options.nextButton,\n prevButtonHTML = options.prevButton ? options.prevButton.outerHTML : '',\n nextButtonHTML = options.nextButton ? options.nextButton.outerHTML : '',\n prevIsButton,\n nextIsButton;\n }\n\n // nav\n if (hasNav) {\n var navContainer = options.navContainer,\n navContainerHTML = options.navContainer ? options.navContainer.outerHTML : '',\n navItems,\n pages = autoWidth ? slideCount : getPages(),\n pagesCached = 0,\n navClicked = -1,\n navCurrentIndex = getCurrentNavIndex(),\n navCurrentIndexCached = navCurrentIndex,\n navActiveClass = 'tns-nav-active',\n navStr = 'Carousel Page ',\n navStrCurrent = ' (Current Slide)';\n }\n\n // autoplay\n if (hasAutoplay) {\n var autoplayDirection = options.autoplayDirection === 'forward' ? 1 : -1,\n autoplayButton = options.autoplayButton,\n autoplayButtonHTML = options.autoplayButton ? options.autoplayButton.outerHTML : '',\n autoplayHtmlStrings = ['', ' animation'],\n autoplayTimer,\n animating,\n autoplayHoverPaused,\n autoplayUserPaused,\n autoplayVisibilityPaused;\n }\n\n if (hasTouch || hasMouseDrag) {\n var initPosition = {},\n lastPosition = {},\n translateInit,\n disX,\n disY,\n panStart = false,\n rafIndex,\n getDist = horizontal ? \n function(a, b) { return a.x - b.x; } :\n function(a, b) { return a.y - b.y; };\n }\n \n // disable slider when slidecount <= items\n if (!autoWidth) { resetVariblesWhenDisable(disable || freeze); }\n\n if (TRANSFORM) {\n transformAttr = TRANSFORM;\n transformPrefix = 'translate';\n\n if (HAS3DTRANSFORMS) {\n transformPrefix += horizontal ? '3d(' : '3d(0px, ';\n transformPostfix = horizontal ? ', 0px, 0px)' : ', 0px)';\n } else {\n transformPrefix += horizontal ? 'X(' : 'Y(';\n transformPostfix = ')';\n }\n\n }\n\n if (carousel) { container.className = container.className.replace('tns-vpfix', ''); }\n initStructure();\n initSheet();\n initSliderTransform();\n\n // === COMMON FUNCTIONS === //\n function resetVariblesWhenDisable (condition) {\n if (condition) {\n controls = nav = touch = mouseDrag = arrowKeys = autoplay = autoplayHoverPause = autoplayResetOnVisibility = false;\n }\n }\n\n function getCurrentSlide () {\n var tem = carousel ? index - cloneCount : index;\n while (tem < 0) { tem += slideCount; }\n return tem%slideCount + 1;\n }\n\n function getStartIndex (ind) {\n ind = ind ? Math.max(0, Math.min(loop ? slideCount - 1 : slideCount - items, ind)) : 0;\n return carousel ? ind + cloneCount : ind;\n }\n\n function getAbsIndex (i) {\n if (i == null) { i = index; }\n\n if (carousel) { i -= cloneCount; }\n while (i < 0) { i += slideCount; }\n\n return Math.floor(i%slideCount);\n }\n\n function getCurrentNavIndex () {\n var absIndex = getAbsIndex(),\n result;\n\n result = navAsThumbnails ? absIndex : \n fixedWidth || autoWidth ? Math.ceil((absIndex + 1) * pages / slideCount - 1) : \n Math.floor(absIndex / items);\n\n // set active nav to the last one when reaches the right edge\n if (!loop && carousel && index === indexMax) { result = pages - 1; }\n\n return result;\n }\n\n function getItemsMax () {\n // fixedWidth or autoWidth while viewportMax is not available\n if (autoWidth || (fixedWidth && !viewportMax)) {\n return slideCount - 1;\n // most cases\n } else {\n var str = fixedWidth ? 'fixedWidth' : 'items',\n arr = [];\n\n if (fixedWidth || options[str] < slideCount) { arr.push(options[str]); }\n\n if (responsive) {\n for (var bp in responsive) {\n var tem = responsive[bp][str];\n if (tem && (fixedWidth || tem < slideCount)) { arr.push(tem); }\n }\n }\n\n if (!arr.length) { arr.push(0); }\n\n return Math.ceil(fixedWidth ? viewportMax / Math.min.apply(null, arr) : Math.max.apply(null, arr));\n }\n }\n\n function getCloneCountForLoop () {\n var itemsMax = getItemsMax(),\n result = carousel ? Math.ceil((itemsMax * 5 - slideCount)/2) : (itemsMax * 4 - slideCount);\n result = Math.max(itemsMax, result);\n\n return hasOption('edgePadding') ? result + 1 : result;\n }\n\n function getWindowWidth () {\n return win.innerWidth || doc.documentElement.clientWidth || doc.body.clientWidth;\n }\n\n function getInsertPosition (pos) {\n return pos === 'top' ? 'afterbegin' : 'beforeend';\n }\n\n function getClientWidth (el) {\n var div = doc.createElement('div'), rect, width;\n el.appendChild(div);\n rect = div.getBoundingClientRect();\n width = rect.right - rect.left;\n div.remove();\n return width || getClientWidth(el.parentNode);\n }\n\n function getViewportWidth () {\n var gap = edgePadding ? edgePadding * 2 - gutter : 0;\n return getClientWidth(containerParent) - gap;\n }\n\n function hasOption (item) {\n if (options[item]) {\n return true;\n } else {\n if (responsive) {\n for (var bp in responsive) {\n if (responsive[bp][item]) { return true; }\n }\n }\n return false;\n }\n }\n\n // get option:\n // fixed width: viewport, fixedWidth, gutter => items\n // others: window width => all variables\n // all: items => slideBy\n function getOption (item, ww) {\n if (ww == null) { ww = windowWidth; }\n\n if (item === 'items' && fixedWidth) {\n return Math.floor((viewport + gutter) / (fixedWidth + gutter)) || 1;\n\n } else {\n var result = options[item];\n\n if (responsive) {\n for (var bp in responsive) {\n // bp: convert string to number\n if (ww >= parseInt(bp)) {\n if (item in responsive[bp]) { result = responsive[bp][item]; }\n }\n }\n }\n\n if (item === 'slideBy' && result === 'page') { result = getOption('items'); }\n if (!carousel && (item === 'slideBy' || item === 'items')) { result = Math.floor(result); }\n\n return result;\n }\n }\n\n function getSlideMarginLeft (i) {\n return CALC ? \n CALC + '(' + i * 100 + '% / ' + slideCountNew + ')' : \n i * 100 / slideCountNew + '%';\n }\n\n function getInnerWrapperStyles (edgePaddingTem, gutterTem, fixedWidthTem, speedTem, autoHeightBP) {\n var str = '';\n\n if (edgePaddingTem !== undefined) {\n var gap = edgePaddingTem;\n if (gutterTem) { gap -= gutterTem; }\n str = horizontal ?\n 'margin: 0 ' + gap + 'px 0 ' + edgePaddingTem + 'px;' :\n 'margin: ' + edgePaddingTem + 'px 0 ' + gap + 'px 0;';\n } else if (gutterTem && !fixedWidthTem) {\n var gutterTemUnit = '-' + gutterTem + 'px',\n dir = horizontal ? gutterTemUnit + ' 0 0' : '0 ' + gutterTemUnit + ' 0';\n str = 'margin: 0 ' + dir + ';'\n }\n\n if (!carousel && autoHeightBP && TRANSITIONDURATION && speedTem) { str += getTransitionDurationStyle(speedTem); }\n return str;\n }\n\n function getContainerWidth (fixedWidthTem, gutterTem, itemsTem) {\n if (fixedWidthTem) {\n return (fixedWidthTem + gutterTem) * slideCountNew + 'px';\n } else {\n return CALC ?\n CALC + '(' + slideCountNew * 100 + '% / ' + itemsTem + ')' :\n slideCountNew * 100 / itemsTem + '%';\n }\n }\n\n function getSlideWidthStyle (fixedWidthTem, gutterTem, itemsTem) {\n var width;\n\n if (fixedWidthTem) {\n width = (fixedWidthTem + gutterTem) + 'px';\n } else {\n if (!carousel) { itemsTem = Math.floor(itemsTem); }\n var dividend = carousel ? slideCountNew : itemsTem;\n width = CALC ? \n CALC + '(100% / ' + dividend + ')' : \n 100 / dividend + '%';\n }\n\n width = 'width:' + width;\n\n // inner slider: overwrite outer slider styles\n return nested !== 'inner' ? width + ';' : width + ' !important;';\n }\n\n function getSlideGutterStyle (gutterTem) {\n var str = '';\n\n // gutter maybe interger || 0\n // so can't use 'if (gutter)'\n if (gutterTem !== false) {\n var prop = horizontal ? 'padding-' : 'margin-',\n dir = horizontal ? 'right' : 'bottom';\n str = prop + dir + ': ' + gutterTem + 'px;';\n }\n\n return str;\n }\n\n function getCSSPrefix (name, num) {\n var prefix = name.substring(0, name.length - num).toLowerCase();\n if (prefix) { prefix = '-' + prefix + '-'; }\n\n return prefix;\n }\n\n function getTransitionDurationStyle (speed) {\n return getCSSPrefix(TRANSITIONDURATION, 18) + 'transition-duration:' + speed / 1000 + 's;';\n }\n\n function getAnimationDurationStyle (speed) {\n return getCSSPrefix(ANIMATIONDURATION, 17) + 'animation-duration:' + speed / 1000 + 's;';\n }\n\n function initStructure () {\n var classOuter = 'tns-outer',\n classInner = 'tns-inner',\n hasGutter = hasOption('gutter');\n\n outerWrapper.className = classOuter;\n innerWrapper.className = classInner;\n outerWrapper.id = slideId + '-ow';\n innerWrapper.id = slideId + '-iw';\n\n // set container properties\n if (container.id === '') { container.id = slideId; }\n newContainerClasses += PERCENTAGELAYOUT || autoWidth ? ' tns-subpixel' : ' tns-no-subpixel';\n newContainerClasses += CALC ? ' tns-calc' : ' tns-no-calc';\n if (autoWidth) { newContainerClasses += ' tns-autowidth'; }\n newContainerClasses += ' tns-' + options.axis;\n container.className += newContainerClasses;\n\n // add constrain layer for carousel\n if (carousel) {\n middleWrapper = doc.createElement('div');\n middleWrapper.id = slideId + '-mw';\n middleWrapper.className = 'tns-ovh';\n\n outerWrapper.appendChild(middleWrapper);\n middleWrapper.appendChild(innerWrapper);\n } else {\n outerWrapper.appendChild(innerWrapper);\n }\n\n if (autoHeight) {\n var wp = middleWrapper ? middleWrapper : innerWrapper;\n wp.className += ' tns-ah';\n }\n\n containerParent.insertBefore(outerWrapper, container);\n innerWrapper.appendChild(container);\n\n // add id, class, aria attributes \n // before clone slides\n forEach(slideItems, function(item, i) {\n addClass(item, 'tns-item');\n if (!item.id) { item.id = slideId + '-item' + i; }\n if (!carousel && animateNormal) { addClass(item, animateNormal); }\n setAttrs(item, {\n 'aria-hidden': 'true',\n 'tabindex': '-1'\n });\n });\n\n // ## clone slides\n // carousel: n + slides + n\n // gallery: slides + n\n if (cloneCount) {\n var fragmentBefore = doc.createDocumentFragment(), \n fragmentAfter = doc.createDocumentFragment();\n\n for (var j = cloneCount; j--;) {\n var num = j%slideCount,\n cloneFirst = slideItems[num].cloneNode(true);\n removeAttrs(cloneFirst, 'id');\n fragmentAfter.insertBefore(cloneFirst, fragmentAfter.firstChild);\n\n if (carousel) {\n var cloneLast = slideItems[slideCount - 1 - num].cloneNode(true);\n removeAttrs(cloneLast, 'id');\n fragmentBefore.appendChild(cloneLast);\n }\n }\n\n container.insertBefore(fragmentBefore, container.firstChild);\n container.appendChild(fragmentAfter);\n slideItems = container.children;\n }\n\n }\n\n function initSliderTransform () {\n // ## images loaded/failed\n if (hasOption('autoHeight') || autoWidth || !horizontal) {\n var imgs = container.querySelectorAll('img');\n\n // add complete class if all images are loaded/failed\n forEach(imgs, function(img) {\n var src = img.src;\n \n if (src && src.indexOf('data:image') < 0) {\n addEvents(img, imgEvents);\n img.src = '';\n img.src = src;\n addClass(img, 'loading');\n } else if (!lazyload) {\n imgLoaded(img);\n }\n });\n\n // All imgs are completed\n raf(function(){ imgsLoadedCheck(arrayFromNodeList(imgs), function() { imgsComplete = true; }); });\n\n // Check imgs in window only for auto height\n if (!autoWidth && horizontal) { imgs = getImageArray(index, Math.min(index + items - 1, slideCountNew - 1)); }\n\n lazyload ? initSliderTransformStyleCheck() : raf(function(){ imgsLoadedCheck(arrayFromNodeList(imgs), initSliderTransformStyleCheck); });\n\n } else {\n // set container transform property\n if (carousel) { doContainerTransformSilent(); }\n\n // update slider tools and events\n initTools();\n initEvents();\n }\n }\n\n function initSliderTransformStyleCheck () {\n if (autoWidth) {\n // check styles application\n var num = loop ? index : slideCount - 1;\n (function stylesApplicationCheck() {\n slideItems[num - 1].getBoundingClientRect().right.toFixed(2) === slideItems[num].getBoundingClientRect().left.toFixed(2) ?\n initSliderTransformCore() :\n setTimeout(function(){ stylesApplicationCheck() }, 16);\n })();\n } else {\n initSliderTransformCore();\n }\n }\n\n\n function initSliderTransformCore () {\n // run Fn()s which are rely on image loading\n if (!horizontal || autoWidth) {\n setSlidePositions();\n\n if (autoWidth) {\n rightBoundary = getRightBoundary();\n if (freezable) { freeze = getFreeze(); }\n indexMax = getIndexMax(); // <= slidePositions, rightBoundary <=\n resetVariblesWhenDisable(disable || freeze);\n } else {\n updateContentWrapperHeight();\n }\n }\n\n // set container transform property\n if (carousel) { doContainerTransformSilent(); }\n\n // update slider tools and events\n initTools();\n initEvents();\n }\n\n function initSheet () {\n // gallery:\n // set animation classes and left value for gallery slider\n if (!carousel) { \n for (var i = index, l = index + Math.min(slideCount, items); i < l; i++) {\n var item = slideItems[i];\n item.style.left = (i - index) * 100 / items + '%';\n addClass(item, animateIn);\n removeClass(item, animateNormal);\n }\n }\n\n // #### LAYOUT\n\n // ## INLINE-BLOCK VS FLOAT\n\n // ## PercentageLayout:\n // slides: inline-block\n // remove blank space between slides by set font-size: 0\n\n // ## Non PercentageLayout:\n // slides: float\n // margin-right: -100%\n // margin-left: ~\n\n // Resource: https://docs.google.com/spreadsheets/d/147up245wwTXeQYve3BRSAD4oVcvQmuGsFteJOeA5xNQ/edit?usp=sharing\n if (horizontal) {\n if (PERCENTAGELAYOUT || autoWidth) {\n addCSSRule(sheet, '#' + slideId + ' > .tns-item', 'font-size:' + win.getComputedStyle(slideItems[0]).fontSize + ';', getCssRulesLength(sheet));\n addCSSRule(sheet, '#' + slideId, 'font-size:0;', getCssRulesLength(sheet));\n } else if (carousel) {\n forEach(slideItems, function (slide, i) {\n slide.style.marginLeft = getSlideMarginLeft(i);\n });\n }\n }\n\n\n // ## BASIC STYLES\n if (CSSMQ) {\n // middle wrapper style\n if (TRANSITIONDURATION) {\n var str = middleWrapper && options.autoHeight ? getTransitionDurationStyle(options.speed) : '';\n addCSSRule(sheet, '#' + slideId + '-mw', str, getCssRulesLength(sheet));\n }\n\n // inner wrapper styles\n str = getInnerWrapperStyles(options.edgePadding, options.gutter, options.fixedWidth, options.speed, options.autoHeight);\n addCSSRule(sheet, '#' + slideId + '-iw', str, getCssRulesLength(sheet));\n\n // container styles\n if (carousel) {\n str = horizontal && !autoWidth ? 'width:' + getContainerWidth(options.fixedWidth, options.gutter, options.items) + ';' : '';\n if (TRANSITIONDURATION) { str += getTransitionDurationStyle(speed); }\n addCSSRule(sheet, '#' + slideId, str, getCssRulesLength(sheet));\n }\n\n // slide styles\n str = horizontal && !autoWidth ? getSlideWidthStyle(options.fixedWidth, options.gutter, options.items) : '';\n if (options.gutter) { str += getSlideGutterStyle(options.gutter); }\n // set gallery items transition-duration\n if (!carousel) {\n if (TRANSITIONDURATION) { str += getTransitionDurationStyle(speed); }\n if (ANIMATIONDURATION) { str += getAnimationDurationStyle(speed); }\n }\n if (str) { addCSSRule(sheet, '#' + slideId + ' > .tns-item', str, getCssRulesLength(sheet)); }\n\n // non CSS mediaqueries: IE8\n // ## update inner wrapper, container, slides if needed\n // set inline styles for inner wrapper & container\n // insert stylesheet (one line) for slides only (since slides are many)\n } else {\n // middle wrapper styles\n update_carousel_transition_duration();\n\n // inner wrapper styles\n innerWrapper.style.cssText = getInnerWrapperStyles(edgePadding, gutter, fixedWidth, autoHeight);\n\n // container styles\n if (carousel && horizontal && !autoWidth) {\n container.style.width = getContainerWidth(fixedWidth, gutter, items);\n }\n\n // slide styles\n var str = horizontal && !autoWidth ? getSlideWidthStyle(fixedWidth, gutter, items) : '';\n if (gutter) { str += getSlideGutterStyle(gutter); }\n\n // append to the last line\n if (str) { addCSSRule(sheet, '#' + slideId + ' > .tns-item', str, getCssRulesLength(sheet)); }\n }\n\n // ## MEDIAQUERIES\n if (responsive && CSSMQ) {\n for (var bp in responsive) {\n // bp: convert string to number\n bp = parseInt(bp);\n\n var opts = responsive[bp],\n str = '',\n middleWrapperStr = '',\n innerWrapperStr = '',\n containerStr = '',\n slideStr = '',\n itemsBP = !autoWidth ? getOption('items', bp) : null,\n fixedWidthBP = getOption('fixedWidth', bp),\n speedBP = getOption('speed', bp),\n edgePaddingBP = getOption('edgePadding', bp),\n autoHeightBP = getOption('autoHeight', bp),\n gutterBP = getOption('gutter', bp);\n\n // middle wrapper string\n if (TRANSITIONDURATION && middleWrapper && getOption('autoHeight', bp) && 'speed' in opts) {\n middleWrapperStr = '#' + slideId + '-mw{' + getTransitionDurationStyle(speedBP) + '}';\n }\n\n // inner wrapper string\n if ('edgePadding' in opts || 'gutter' in opts) {\n innerWrapperStr = '#' + slideId + '-iw{' + getInnerWrapperStyles(edgePaddingBP, gutterBP, fixedWidthBP, speedBP, autoHeightBP) + '}';\n }\n\n // container string\n if (carousel && horizontal && !autoWidth && ('fixedWidth' in opts || 'items' in opts || (fixedWidth && 'gutter' in opts))) {\n containerStr = 'width:' + getContainerWidth(fixedWidthBP, gutterBP, itemsBP) + ';';\n }\n if (TRANSITIONDURATION && 'speed' in opts) {\n containerStr += getTransitionDurationStyle(speedBP);\n }\n if (containerStr) {\n containerStr = '#' + slideId + '{' + containerStr + '}';\n }\n\n // slide string\n if ('fixedWidth' in opts || (fixedWidth && 'gutter' in opts) || !carousel && 'items' in opts) {\n slideStr += getSlideWidthStyle(fixedWidthBP, gutterBP, itemsBP);\n }\n if ('gutter' in opts) {\n slideStr += getSlideGutterStyle(gutterBP);\n }\n // set gallery items transition-duration\n if (!carousel && 'speed' in opts) {\n if (TRANSITIONDURATION) { slideStr += getTransitionDurationStyle(speedBP); }\n if (ANIMATIONDURATION) { slideStr += getAnimationDurationStyle(speedBP); }\n }\n if (slideStr) { slideStr = '#' + slideId + ' > .tns-item{' + slideStr + '}'; }\n\n // add up\n str = middleWrapperStr + innerWrapperStr + containerStr + slideStr;\n\n if (str) {\n sheet.insertRule('@media (min-width: ' + bp / 16 + 'em) {' + str + '}', sheet.cssRules.length);\n }\n }\n }\n }\n\n function initTools () {\n // == slides ==\n updateSlideStatus();\n\n // == live region ==\n outerWrapper.insertAdjacentHTML('afterbegin', '
slide ' + getLiveRegionStr() + ' of ' + slideCount + '
');\n liveregionCurrent = outerWrapper.querySelector('.tns-liveregion .current');\n\n // == autoplayInit ==\n if (hasAutoplay) {\n var txt = autoplay ? 'stop' : 'start';\n if (autoplayButton) {\n setAttrs(autoplayButton, {'data-action': txt});\n } else if (options.autoplayButtonOutput) {\n outerWrapper.insertAdjacentHTML(getInsertPosition(options.autoplayPosition), '');\n autoplayButton = outerWrapper.querySelector('[data-action]');\n }\n\n // add event\n if (autoplayButton) {\n addEvents(autoplayButton, {'click': toggleAutoplay});\n }\n\n if (autoplay) {\n startAutoplay();\n if (autoplayHoverPause) { addEvents(container, hoverEvents); }\n if (autoplayResetOnVisibility) { addEvents(container, visibilityEvent); }\n }\n }\n \n // == navInit ==\n if (hasNav) {\n var initIndex = !carousel ? 0 : cloneCount;\n // customized nav\n // will not hide the navs in case they're thumbnails\n if (navContainer) {\n setAttrs(navContainer, {'aria-label': 'Carousel Pagination'});\n navItems = navContainer.children;\n forEach(navItems, function(item, i) {\n setAttrs(item, {\n 'data-nav': i,\n 'tabindex': '-1',\n 'aria-label': navStr + (i + 1),\n 'aria-controls': slideId,\n });\n });\n\n // generated nav \n } else {\n var navHtml = '',\n hiddenStr = navAsThumbnails ? '' : 'style=\"display:none\"';\n for (var i = 0; i < slideCount; i++) {\n // hide nav items by default\n navHtml += '';\n }\n navHtml = '
' + navHtml + '
';\n outerWrapper.insertAdjacentHTML(getInsertPosition(options.navPosition), navHtml);\n\n navContainer = outerWrapper.querySelector('.tns-nav');\n navItems = navContainer.children;\n }\n\n updateNavVisibility();\n\n // add transition\n if (TRANSITIONDURATION) {\n var prefix = TRANSITIONDURATION.substring(0, TRANSITIONDURATION.length - 18).toLowerCase(),\n str = 'transition: all ' + speed / 1000 + 's';\n\n if (prefix) {\n str = '-' + prefix + '-' + str;\n }\n\n addCSSRule(sheet, '[aria-controls^=' + slideId + '-item]', str, getCssRulesLength(sheet));\n }\n\n setAttrs(navItems[navCurrentIndex], {'aria-label': navStr + (navCurrentIndex + 1) + navStrCurrent});\n removeAttrs(navItems[navCurrentIndex], 'tabindex');\n addClass(navItems[navCurrentIndex], navActiveClass);\n\n // add events\n addEvents(navContainer, navEvents);\n }\n\n\n\n // == controlsInit ==\n if (hasControls) {\n if (!controlsContainer && (!prevButton || !nextButton)) {\n outerWrapper.insertAdjacentHTML(getInsertPosition(options.controlsPosition), '
');\n\n controlsContainer = outerWrapper.querySelector('.tns-controls');\n }\n\n if (!prevButton || !nextButton) {\n prevButton = controlsContainer.children[0];\n nextButton = controlsContainer.children[1];\n }\n\n if (options.controlsContainer) {\n setAttrs(controlsContainer, {\n 'aria-label': 'Carousel Navigation',\n 'tabindex': '0'\n });\n }\n\n if (options.controlsContainer || (options.prevButton && options.nextButton)) {\n setAttrs([prevButton, nextButton], {\n 'aria-controls': slideId,\n 'tabindex': '-1',\n });\n }\n \n if (options.controlsContainer || (options.prevButton && options.nextButton)) {\n setAttrs(prevButton, {'data-controls' : 'prev'});\n setAttrs(nextButton, {'data-controls' : 'next'});\n }\n\n prevIsButton = isButton(prevButton);\n nextIsButton = isButton(nextButton);\n\n updateControlsStatus();\n\n // add events\n if (controlsContainer) {\n addEvents(controlsContainer, controlsEvents);\n } else {\n addEvents(prevButton, controlsEvents);\n addEvents(nextButton, controlsEvents);\n }\n }\n\n // hide tools if needed\n disableUI();\n }\n\n function initEvents () {\n // add events\n if (carousel && TRANSITIONEND) {\n var eve = {};\n eve[TRANSITIONEND] = onTransitionEnd;\n addEvents(container, eve);\n }\n\n if (touch) { addEvents(container, touchEvents, options.preventScrollOnTouch); }\n if (mouseDrag) { addEvents(container, dragEvents); }\n if (arrowKeys) { addEvents(doc, docmentKeydownEvent); }\n\n if (nested === 'inner') {\n events.on('outerResized', function () {\n resizeTasks();\n events.emit('innerLoaded', info());\n });\n } else if (responsive || fixedWidth || autoWidth || autoHeight || !horizontal) {\n addEvents(win, {'resize': onResize});\n }\n\n if (autoHeight) {\n if (nested === 'outer') {\n events.on('innerLoaded', doAutoHeight);\n } else if (!disable) { doAutoHeight(); }\n }\n\n doLazyLoad();\n if (disable) { disableSlider(); } else if (freeze) { freezeSlider(); }\n\n events.on('indexChanged', additionalUpdates);\n if (nested === 'inner') { events.emit('innerLoaded', info()); }\n if (typeof onInit === 'function') { onInit(info()); }\n isOn = true;\n }\n\n function destroy () {\n // sheet\n sheet.disabled = true;\n if (sheet.ownerNode) { sheet.ownerNode.remove(); }\n\n // remove win event listeners\n removeEvents(win, {'resize': onResize});\n\n // arrowKeys, controls, nav\n if (arrowKeys) { removeEvents(doc, docmentKeydownEvent); }\n if (controlsContainer) { removeEvents(controlsContainer, controlsEvents); }\n if (navContainer) { removeEvents(navContainer, navEvents); }\n\n // autoplay\n removeEvents(container, hoverEvents);\n removeEvents(container, visibilityEvent);\n if (autoplayButton) { removeEvents(autoplayButton, {'click': toggleAutoplay}); }\n if (autoplay) { clearInterval(autoplayTimer); }\n\n // container\n if (carousel && TRANSITIONEND) {\n var eve = {};\n eve[TRANSITIONEND] = onTransitionEnd;\n removeEvents(container, eve);\n }\n if (touch) { removeEvents(container, touchEvents); }\n if (mouseDrag) { removeEvents(container, dragEvents); }\n\n // cache Object values in options && reset HTML\n var htmlList = [containerHTML, controlsContainerHTML, prevButtonHTML, nextButtonHTML, navContainerHTML, autoplayButtonHTML];\n\n tnsList.forEach(function(item, i) {\n var el = item === 'container' ? outerWrapper : options[item];\n\n if (typeof el === 'object') {\n var prevEl = el.previousElementSibling ? el.previousElementSibling : false,\n parentEl = el.parentNode;\n el.outerHTML = htmlList[i];\n options[item] = prevEl ? prevEl.nextElementSibling : parentEl.firstElementChild;\n }\n });\n\n\n // reset variables\n tnsList = animateIn = animateOut = animateDelay = animateNormal = horizontal = outerWrapper = innerWrapper = container = containerParent = containerHTML = slideItems = slideCount = breakpointZone = windowWidth = autoWidth = fixedWidth = edgePadding = gutter = viewport = items = slideBy = viewportMax = arrowKeys = speed = rewind = loop = autoHeight = sheet = lazyload = slidePositions = slideItemsOut = cloneCount = slideCountNew = hasRightDeadZone = rightBoundary = updateIndexBeforeTransform = transformAttr = transformPrefix = transformPostfix = getIndexMax = index = indexCached = indexMin = indexMax = resizeTimer = swipeAngle = moveDirectionExpected = running = onInit = events = newContainerClasses = slideId = disable = disabled = freezable = freeze = frozen = controlsEvents = navEvents = hoverEvents = visibilityEvent = docmentKeydownEvent = touchEvents = dragEvents = hasControls = hasNav = navAsThumbnails = hasAutoplay = hasTouch = hasMouseDrag = slideActiveClass = imgCompleteClass = imgEvents = imgsComplete = controls = controlsText = controlsContainer = controlsContainerHTML = prevButton = nextButton = prevIsButton = nextIsButton = nav = navContainer = navContainerHTML = navItems = pages = pagesCached = navClicked = navCurrentIndex = navCurrentIndexCached = navActiveClass = navStr = navStrCurrent = autoplay = autoplayTimeout = autoplayDirection = autoplayText = autoplayHoverPause = autoplayButton = autoplayButtonHTML = autoplayResetOnVisibility = autoplayHtmlStrings = autoplayTimer = animating = autoplayHoverPaused = autoplayUserPaused = autoplayVisibilityPaused = initPosition = lastPosition = translateInit = disX = disY = panStart = rafIndex = getDist = touch = mouseDrag = null;\n // check variables\n // [animateIn, animateOut, animateDelay, animateNormal, horizontal, outerWrapper, innerWrapper, container, containerParent, containerHTML, slideItems, slideCount, breakpointZone, windowWidth, autoWidth, fixedWidth, edgePadding, gutter, viewport, items, slideBy, viewportMax, arrowKeys, speed, rewind, loop, autoHeight, sheet, lazyload, slidePositions, slideItemsOut, cloneCount, slideCountNew, hasRightDeadZone, rightBoundary, updateIndexBeforeTransform, transformAttr, transformPrefix, transformPostfix, getIndexMax, index, indexCached, indexMin, indexMax, resizeTimer, swipeAngle, moveDirectionExpected, running, onInit, events, newContainerClasses, slideId, disable, disabled, freezable, freeze, frozen, controlsEvents, navEvents, hoverEvents, visibilityEvent, docmentKeydownEvent, touchEvents, dragEvents, hasControls, hasNav, navAsThumbnails, hasAutoplay, hasTouch, hasMouseDrag, slideActiveClass, imgCompleteClass, imgEvents, imgsComplete, controls, controlsText, controlsContainer, controlsContainerHTML, prevButton, nextButton, prevIsButton, nextIsButton, nav, navContainer, navContainerHTML, navItems, pages, pagesCached, navClicked, navCurrentIndex, navCurrentIndexCached, navActiveClass, navStr, navStrCurrent, autoplay, autoplayTimeout, autoplayDirection, autoplayText, autoplayHoverPause, autoplayButton, autoplayButtonHTML, autoplayResetOnVisibility, autoplayHtmlStrings, autoplayTimer, animating, autoplayHoverPaused, autoplayUserPaused, autoplayVisibilityPaused, initPosition, lastPosition, translateInit, disX, disY, panStart, rafIndex, getDist, touch, mouseDrag ].forEach(function(item) { if (item !== null) { console.log(item); } });\n\n for (var a in this) {\n if (a !== 'rebuild') { this[a] = null; }\n }\n isOn = false;\n }\n\n// === ON RESIZE ===\n // responsive || fixedWidth || autoWidth || !horizontal\n function onResize (e) {\n raf(function(){ resizeTasks(getEvent(e)); });\n }\n\n function resizeTasks (e) {\n if (!isOn) { return; }\n if (nested === 'outer') { events.emit('outerResized', info(e)); }\n windowWidth = getWindowWidth();\n var bpChanged,\n breakpointZoneTem = breakpointZone,\n needContainerTransform = false;\n\n if (responsive) {\n setBreakpointZone();\n bpChanged = breakpointZoneTem !== breakpointZone;\n // if (hasRightDeadZone) { needContainerTransform = true; } // *?\n if (bpChanged) { events.emit('newBreakpointStart', info(e)); }\n }\n\n var indChanged,\n itemsChanged,\n itemsTem = items,\n disableTem = disable,\n freezeTem = freeze,\n arrowKeysTem = arrowKeys,\n controlsTem = controls,\n navTem = nav,\n touchTem = touch,\n mouseDragTem = mouseDrag,\n autoplayTem = autoplay,\n autoplayHoverPauseTem = autoplayHoverPause,\n autoplayResetOnVisibilityTem = autoplayResetOnVisibility,\n indexTem = index;\n\n if (bpChanged) {\n var fixedWidthTem = fixedWidth,\n autoHeightTem = autoHeight,\n controlsTextTem = controlsText,\n centerTem = center,\n autoplayTextTem = autoplayText;\n\n if (!CSSMQ) {\n var gutterTem = gutter,\n edgePaddingTem = edgePadding;\n }\n }\n\n // get option:\n // fixed width: viewport, fixedWidth, gutter => items\n // others: window width => all variables\n // all: items => slideBy\n arrowKeys = getOption('arrowKeys');\n controls = getOption('controls');\n nav = getOption('nav');\n touch = getOption('touch');\n center = getOption('center');\n mouseDrag = getOption('mouseDrag');\n autoplay = getOption('autoplay');\n autoplayHoverPause = getOption('autoplayHoverPause');\n autoplayResetOnVisibility = getOption('autoplayResetOnVisibility');\n\n if (bpChanged) {\n disable = getOption('disable');\n fixedWidth = getOption('fixedWidth');\n speed = getOption('speed');\n autoHeight = getOption('autoHeight');\n controlsText = getOption('controlsText');\n autoplayText = getOption('autoplayText');\n autoplayTimeout = getOption('autoplayTimeout');\n\n if (!CSSMQ) {\n edgePadding = getOption('edgePadding');\n gutter = getOption('gutter');\n }\n }\n // update options\n resetVariblesWhenDisable(disable);\n\n viewport = getViewportWidth(); // <= edgePadding, gutter\n if ((!horizontal || autoWidth) && !disable) {\n setSlidePositions();\n if (!horizontal) {\n updateContentWrapperHeight(); // <= setSlidePositions\n needContainerTransform = true;\n }\n }\n if (fixedWidth || autoWidth) {\n rightBoundary = getRightBoundary(); // autoWidth: <= viewport, slidePositions, gutter\n // fixedWidth: <= viewport, fixedWidth, gutter\n indexMax = getIndexMax(); // autoWidth: <= rightBoundary, slidePositions\n // fixedWidth: <= rightBoundary, fixedWidth, gutter\n }\n\n if (bpChanged || fixedWidth) {\n items = getOption('items');\n slideBy = getOption('slideBy');\n itemsChanged = items !== itemsTem;\n\n if (itemsChanged) {\n if (!fixedWidth && !autoWidth) { indexMax = getIndexMax(); } // <= items\n // check index before transform in case\n // slider reach the right edge then items become bigger\n updateIndex();\n }\n }\n \n if (bpChanged) {\n if (disable !== disableTem) {\n if (disable) {\n disableSlider();\n } else {\n enableSlider(); // <= slidePositions, rightBoundary, indexMax\n }\n }\n }\n\n if (freezable && (bpChanged || fixedWidth || autoWidth)) {\n freeze = getFreeze(); // <= autoWidth: slidePositions, gutter, viewport, rightBoundary\n // <= fixedWidth: fixedWidth, gutter, rightBoundary\n // <= others: items\n\n if (freeze !== freezeTem) {\n if (freeze) {\n doContainerTransform(getContainerTransformValue(getStartIndex(0)));\n freezeSlider();\n } else {\n unfreezeSlider();\n needContainerTransform = true;\n }\n }\n }\n\n resetVariblesWhenDisable(disable || freeze); // controls, nav, touch, mouseDrag, arrowKeys, autoplay, autoplayHoverPause, autoplayResetOnVisibility\n if (!autoplay) { autoplayHoverPause = autoplayResetOnVisibility = false; }\n\n if (arrowKeys !== arrowKeysTem) {\n arrowKeys ?\n addEvents(doc, docmentKeydownEvent) :\n removeEvents(doc, docmentKeydownEvent);\n }\n if (controls !== controlsTem) {\n if (controls) {\n if (controlsContainer) {\n showElement(controlsContainer);\n } else {\n if (prevButton) { showElement(prevButton); }\n if (nextButton) { showElement(nextButton); }\n }\n } else {\n if (controlsContainer) {\n hideElement(controlsContainer);\n } else {\n if (prevButton) { hideElement(prevButton); }\n if (nextButton) { hideElement(nextButton); }\n }\n }\n }\n if (nav !== navTem) {\n nav ?\n showElement(navContainer) :\n hideElement(navContainer);\n }\n if (touch !== touchTem) {\n touch ?\n addEvents(container, touchEvents, options.preventScrollOnTouch) :\n removeEvents(container, touchEvents);\n }\n if (mouseDrag !== mouseDragTem) {\n mouseDrag ?\n addEvents(container, dragEvents) :\n removeEvents(container, dragEvents);\n }\n if (autoplay !== autoplayTem) {\n if (autoplay) {\n if (autoplayButton) { showElement(autoplayButton); }\n if (!animating && !autoplayUserPaused) { startAutoplay(); }\n } else {\n if (autoplayButton) { hideElement(autoplayButton); }\n if (animating) { stopAutoplay(); }\n }\n }\n if (autoplayHoverPause !== autoplayHoverPauseTem) {\n autoplayHoverPause ?\n addEvents(container, hoverEvents) :\n removeEvents(container, hoverEvents);\n }\n if (autoplayResetOnVisibility !== autoplayResetOnVisibilityTem) {\n autoplayResetOnVisibility ?\n addEvents(doc, visibilityEvent) :\n removeEvents(doc, visibilityEvent);\n }\n\n if (bpChanged) {\n if (fixedWidth !== fixedWidthTem || center !== centerTem) { needContainerTransform = true; }\n\n if (autoHeight !== autoHeightTem) {\n if (!autoHeight) { innerWrapper.style.height = ''; }\n }\n\n if (controls && controlsText !== controlsTextTem) {\n prevButton.innerHTML = controlsText[0];\n nextButton.innerHTML = controlsText[1];\n }\n\n if (autoplayButton && autoplayText !== autoplayTextTem) {\n var i = autoplay ? 1 : 0,\n html = autoplayButton.innerHTML,\n len = html.length - autoplayTextTem[i].length;\n if (html.substring(len) === autoplayTextTem[i]) {\n autoplayButton.innerHTML = html.substring(0, len) + autoplayText[i];\n }\n }\n } else {\n if (center && (fixedWidth || autoWidth)) { needContainerTransform = true; }\n }\n\n if (itemsChanged || fixedWidth && !autoWidth) {\n pages = getPages();\n updateNavVisibility();\n }\n\n indChanged = index !== indexTem;\n if (indChanged) { \n events.emit('indexChanged', info());\n needContainerTransform = true;\n } else if (itemsChanged) {\n if (!indChanged) { additionalUpdates(); }\n } else if (fixedWidth || autoWidth) {\n doLazyLoad(); \n updateSlideStatus();\n updateLiveRegion();\n }\n\n if (itemsChanged && !carousel) { updateGallerySlidePositions(); }\n\n if (!disable && !freeze) {\n // non-meduaqueries: IE8\n if (bpChanged && !CSSMQ) {\n // middle wrapper styles\n if (autoHeight !== autoheightTem || speed !== speedTem) {\n update_carousel_transition_duration();\n }\n\n // inner wrapper styles\n if (edgePadding !== edgePaddingTem || gutter !== gutterTem) {\n innerWrapper.style.cssText = getInnerWrapperStyles(edgePadding, gutter, fixedWidth, speed, autoHeight);\n }\n\n if (horizontal) {\n // container styles\n if (carousel) {\n container.style.width = getContainerWidth(fixedWidth, gutter, items);\n }\n\n // slide styles\n var str = getSlideWidthStyle(fixedWidth, gutter, items) + \n getSlideGutterStyle(gutter);\n\n // remove the last line and\n // add new styles\n removeCSSRule(sheet, getCssRulesLength(sheet) - 1);\n addCSSRule(sheet, '#' + slideId + ' > .tns-item', str, getCssRulesLength(sheet));\n }\n }\n\n // auto height\n if (autoHeight) { doAutoHeight(); }\n\n if (needContainerTransform) {\n doContainerTransformSilent();\n indexCached = index;\n }\n }\n\n if (bpChanged) { events.emit('newBreakpointEnd', info(e)); }\n }\n\n\n\n\n\n // === INITIALIZATION FUNCTIONS === //\n function getFreeze () {\n if (!fixedWidth && !autoWidth) {\n var a = center ? items - (items - 1) / 2 : items;\n return slideCount <= a;\n }\n\n var width = fixedWidth ? (fixedWidth + gutter) * slideCount : slidePositions[slideCount],\n vp = edgePadding ? viewport + edgePadding * 2 : viewport + gutter;\n\n if (center) {\n vp -= fixedWidth ? (viewport - fixedWidth) / 2 : (viewport - (slidePositions[index + 1] - slidePositions[index] - gutter)) / 2;\n }\n\n return width <= vp;\n }\n\n function setBreakpointZone () {\n breakpointZone = 0;\n for (var bp in responsive) {\n bp = parseInt(bp); // convert string to number\n if (windowWidth >= bp) { breakpointZone = bp; }\n }\n }\n\n // (slideBy, indexMin, indexMax) => index\n var updateIndex = (function () {\n return loop ? \n carousel ?\n // loop + carousel\n function () {\n var leftEdge = indexMin,\n rightEdge = indexMax;\n\n leftEdge += slideBy;\n rightEdge -= slideBy;\n\n // adjust edges when has edge paddings\n // or fixed-width slider with extra space on the right side\n if (edgePadding) {\n leftEdge += 1;\n rightEdge -= 1;\n } else if (fixedWidth) {\n if ((viewport + gutter)%(fixedWidth + gutter)) { rightEdge -= 1; }\n }\n\n if (cloneCount) {\n if (index > rightEdge) {\n index -= slideCount;\n } else if (index < leftEdge) {\n index += slideCount;\n }\n }\n } :\n // loop + gallery\n function() {\n if (index > indexMax) {\n while (index >= indexMin + slideCount) { index -= slideCount; }\n } else if (index < indexMin) {\n while (index <= indexMax - slideCount) { index += slideCount; }\n }\n } :\n // non-loop\n function() {\n index = Math.max(indexMin, Math.min(indexMax, index));\n };\n })();\n\n function disableUI () {\n if (!autoplay && autoplayButton) { hideElement(autoplayButton); }\n if (!nav && navContainer) { hideElement(navContainer); }\n if (!controls) {\n if (controlsContainer) {\n hideElement(controlsContainer);\n } else {\n if (prevButton) { hideElement(prevButton); }\n if (nextButton) { hideElement(nextButton); }\n }\n }\n }\n\n function enableUI () {\n if (autoplay && autoplayButton) { showElement(autoplayButton); }\n if (nav && navContainer) { showElement(navContainer); }\n if (controls) {\n if (controlsContainer) {\n showElement(controlsContainer);\n } else {\n if (prevButton) { showElement(prevButton); }\n if (nextButton) { showElement(nextButton); }\n }\n }\n }\n\n function freezeSlider () {\n if (frozen) { return; }\n\n // remove edge padding from inner wrapper\n if (edgePadding) { innerWrapper.style.margin = '0px'; }\n\n // add class tns-transparent to cloned slides\n if (cloneCount) {\n var str = 'tns-transparent';\n for (var i = cloneCount; i--;) {\n if (carousel) { addClass(slideItems[i], str); }\n addClass(slideItems[slideCountNew - i - 1], str);\n }\n }\n\n // update tools\n disableUI();\n\n frozen = true;\n }\n\n function unfreezeSlider () {\n if (!frozen) { return; }\n\n // restore edge padding for inner wrapper\n // for mordern browsers\n if (edgePadding && CSSMQ) { innerWrapper.style.margin = ''; }\n\n // remove class tns-transparent to cloned slides\n if (cloneCount) {\n var str = 'tns-transparent';\n for (var i = cloneCount; i--;) {\n if (carousel) { removeClass(slideItems[i], str); }\n removeClass(slideItems[slideCountNew - i - 1], str);\n }\n }\n\n // update tools\n enableUI();\n\n frozen = false;\n }\n\n function disableSlider () {\n if (disabled) { return; }\n\n sheet.disabled = true;\n container.className = container.className.replace(newContainerClasses.substring(1), '');\n removeAttrs(container, ['style']);\n if (loop) {\n for (var j = cloneCount; j--;) {\n if (carousel) { hideElement(slideItems[j]); }\n hideElement(slideItems[slideCountNew - j - 1]);\n }\n }\n\n // vertical slider\n if (!horizontal || !carousel) { removeAttrs(innerWrapper, ['style']); }\n\n // gallery\n if (!carousel) { \n for (var i = index, l = index + slideCount; i < l; i++) {\n var item = slideItems[i];\n removeAttrs(item, ['style']);\n removeClass(item, animateIn);\n removeClass(item, animateNormal);\n }\n }\n\n // update tools\n disableUI();\n\n disabled = true;\n }\n\n function enableSlider () {\n if (!disabled) { return; }\n\n sheet.disabled = false;\n container.className += newContainerClasses;\n doContainerTransformSilent();\n\n if (loop) {\n for (var j = cloneCount; j--;) {\n if (carousel) { showElement(slideItems[j]); }\n showElement(slideItems[slideCountNew - j - 1]);\n }\n }\n\n // gallery\n if (!carousel) { \n for (var i = index, l = index + slideCount; i < l; i++) {\n var item = slideItems[i],\n classN = i < index + items ? animateIn : animateNormal;\n item.style.left = (i - index) * 100 / items + '%';\n addClass(item, classN);\n }\n }\n\n // update tools\n enableUI();\n\n disabled = false;\n }\n\n function updateLiveRegion () {\n var str = getLiveRegionStr();\n if (liveregionCurrent.innerHTML !== str) { liveregionCurrent.innerHTML = str; }\n }\n\n function getLiveRegionStr () {\n var arr = getVisibleSlideRange(),\n start = arr[0] + 1,\n end = arr[1] + 1;\n return start === end ? start + '' : start + ' to ' + end; \n }\n\n function getVisibleSlideRange (val) {\n if (val == null) { val = getContainerTransformValue(); }\n var start = index, end, rangestart, rangeend;\n\n // get range start, range end for autoWidth and fixedWidth\n if (center || edgePadding) {\n if (autoWidth || fixedWidth) {\n rangestart = - (parseFloat(val) + edgePadding);\n rangeend = rangestart + viewport + edgePadding * 2;\n }\n } else {\n if (autoWidth) {\n rangestart = slidePositions[index];\n rangeend = rangestart + viewport;\n }\n }\n\n // get start, end\n // - check auto width\n if (autoWidth) {\n slidePositions.forEach(function(point, i) {\n if (i < slideCountNew) {\n if ((center || edgePadding) && point <= rangestart + 0.5) { start = i; }\n if (rangeend - point >= 0.5) { end = i; }\n }\n });\n\n // - check percentage width, fixed width\n } else {\n\n if (fixedWidth) {\n var cell = fixedWidth + gutter;\n if (center || edgePadding) {\n start = Math.floor(rangestart/cell);\n end = Math.ceil(rangeend/cell - 1);\n } else {\n end = start + Math.ceil(viewport/cell) - 1;\n }\n\n } else {\n if (center || edgePadding) {\n var a = items - 1;\n if (center) {\n start -= a / 2;\n end = index + a / 2;\n } else {\n end = index + a;\n }\n\n if (edgePadding) {\n var b = edgePadding * items / viewport;\n start -= b;\n end += b;\n }\n\n start = Math.floor(start);\n end = Math.ceil(end);\n } else {\n end = start + items - 1;\n }\n }\n\n start = Math.max(start, 0);\n end = Math.min(end, slideCountNew - 1);\n }\n\n return [start, end];\n }\n\n function doLazyLoad () {\n if (lazyload && !disable) {\n getImageArray.apply(null, getVisibleSlideRange()).forEach(function (img) {\n if (!hasClass(img, imgCompleteClass)) {\n // stop propagation transitionend event to container\n var eve = {};\n eve[TRANSITIONEND] = function (e) { e.stopPropagation(); };\n addEvents(img, eve);\n\n addEvents(img, imgEvents);\n\n // update src\n img.src = getAttr(img, 'data-src');\n\n // update srcset\n var srcset = getAttr(img, 'data-srcset');\n if (srcset) { img.srcset = srcset; }\n\n addClass(img, 'loading');\n }\n });\n }\n }\n\n function onImgLoaded (e) {\n imgLoaded(getTarget(e));\n }\n\n function onImgFailed (e) {\n imgFailed(getTarget(e));\n }\n\n function imgLoaded (img) {\n addClass(img, 'loaded');\n imgCompleted(img);\n }\n\n function imgFailed (img) {\n addClass(img, 'failed');\n imgCompleted(img);\n }\n\n function imgCompleted (img) {\n addClass(img, 'tns-complete');\n removeClass(img, 'loading');\n removeEvents(img, imgEvents);\n }\n\n function getImageArray (start, end) {\n var imgs = [];\n while (start <= end) {\n forEach(slideItems[start].querySelectorAll('img'), function (img) { imgs.push(img); });\n start++;\n }\n\n return imgs;\n }\n\n // check if all visible images are loaded\n // and update container height if it's done\n function doAutoHeight () {\n var imgs = getImageArray.apply(null, getVisibleSlideRange());\n raf(function(){ imgsLoadedCheck(imgs, updateInnerWrapperHeight); });\n }\n\n function imgsLoadedCheck (imgs, cb) {\n // directly execute callback function if all images are complete\n if (imgsComplete) { return cb(); }\n\n // check selected image classes otherwise\n imgs.forEach(function (img, index) {\n if (hasClass(img, imgCompleteClass)) { imgs.splice(index, 1); }\n });\n\n // execute callback function if selected images are all complete\n if (!imgs.length) { return cb(); }\n\n // otherwise execute this functiona again\n raf(function(){ imgsLoadedCheck(imgs, cb); });\n } \n\n function additionalUpdates () {\n doLazyLoad(); \n updateSlideStatus();\n updateLiveRegion();\n updateControlsStatus();\n updateNavStatus();\n }\n\n\n function update_carousel_transition_duration () {\n if (carousel && autoHeight) {\n middleWrapper.style[TRANSITIONDURATION] = speed / 1000 + 's';\n }\n }\n\n function getMaxSlideHeight (slideStart, slideRange) {\n var heights = [];\n for (var i = slideStart, l = Math.min(slideStart + slideRange, slideCountNew); i < l; i++) {\n heights.push(slideItems[i].offsetHeight);\n }\n\n return Math.max.apply(null, heights);\n }\n\n // update inner wrapper height\n // 1. get the max-height of the visible slides\n // 2. set transitionDuration to speed\n // 3. update inner wrapper height to max-height\n // 4. set transitionDuration to 0s after transition done\n function updateInnerWrapperHeight () {\n var maxHeight = autoHeight ? getMaxSlideHeight(index, items) : getMaxSlideHeight(cloneCount, slideCount),\n wp = middleWrapper ? middleWrapper : innerWrapper;\n\n if (wp.style.height !== maxHeight) { wp.style.height = maxHeight + 'px'; }\n }\n\n // get the distance from the top edge of the first slide to each slide\n // (init) => slidePositions\n function setSlidePositions () {\n slidePositions = [0];\n var attr = horizontal ? 'left' : 'top',\n attr2 = horizontal ? 'right' : 'bottom',\n base = slideItems[0].getBoundingClientRect()[attr];\n\n forEach(slideItems, function(item, i) {\n // skip the first slide\n if (i) { slidePositions.push(item.getBoundingClientRect()[attr] - base); }\n // add the end edge\n if (i === slideCountNew - 1) { slidePositions.push(item.getBoundingClientRect()[attr2] - base); }\n });\n }\n\n // update slide\n function updateSlideStatus () {\n var range = getVisibleSlideRange(),\n start = range[0],\n end = range[1];\n\n forEach(slideItems, function(item, i) {\n // show slides\n if (i >= start && i <= end) {\n if (hasAttr(item, 'aria-hidden')) {\n removeAttrs(item, ['aria-hidden', 'tabindex']);\n addClass(item, slideActiveClass);\n }\n // hide slides\n } else {\n if (!hasAttr(item, 'aria-hidden')) {\n setAttrs(item, {\n 'aria-hidden': 'true',\n 'tabindex': '-1'\n });\n removeClass(item, slideActiveClass);\n }\n }\n });\n }\n\n // gallery: update slide position\n function updateGallerySlidePositions () {\n var l = index + Math.min(slideCount, items);\n for (var i = slideCountNew; i--;) {\n var item = slideItems[i];\n\n if (i >= index && i < l) {\n // add transitions to visible slides when adjusting their positions\n addClass(item, 'tns-moving');\n\n item.style.left = (i - index) * 100 / items + '%';\n addClass(item, animateIn);\n removeClass(item, animateNormal);\n } else if (item.style.left) {\n item.style.left = '';\n addClass(item, animateNormal);\n removeClass(item, animateIn);\n }\n\n // remove outlet animation\n removeClass(item, animateOut);\n }\n\n // removing '.tns-moving'\n setTimeout(function() {\n forEach(slideItems, function(el) {\n removeClass(el, 'tns-moving');\n });\n }, 300);\n }\n\n // set tabindex on Nav\n function updateNavStatus () {\n // get current nav\n if (nav) {\n navCurrentIndex = navClicked >= 0 ? navClicked : getCurrentNavIndex();\n navClicked = -1;\n\n if (navCurrentIndex !== navCurrentIndexCached) {\n var navPrev = navItems[navCurrentIndexCached],\n navCurrent = navItems[navCurrentIndex];\n\n setAttrs(navPrev, {\n 'tabindex': '-1',\n 'aria-label': navStr + (navCurrentIndexCached + 1)\n });\n removeClass(navPrev, navActiveClass);\n \n setAttrs(navCurrent, {'aria-label': navStr + (navCurrentIndex + 1) + navStrCurrent});\n removeAttrs(navCurrent, 'tabindex');\n addClass(navCurrent, navActiveClass);\n\n navCurrentIndexCached = navCurrentIndex;\n }\n }\n }\n\n function getLowerCaseNodeName (el) {\n return el.nodeName.toLowerCase();\n }\n\n function isButton (el) {\n return getLowerCaseNodeName(el) === 'button';\n }\n\n function isAriaDisabled (el) {\n return el.getAttribute('aria-disabled') === 'true';\n }\n\n function disEnableElement (isButton, el, val) {\n if (isButton) {\n el.disabled = val;\n } else {\n el.setAttribute('aria-disabled', val.toString());\n }\n }\n\n // set 'disabled' to true on controls when reach the edges\n function updateControlsStatus () {\n if (!controls || rewind || loop) { return; }\n\n var prevDisabled = (prevIsButton) ? prevButton.disabled : isAriaDisabled(prevButton),\n nextDisabled = (nextIsButton) ? nextButton.disabled : isAriaDisabled(nextButton),\n disablePrev = (index <= indexMin) ? true : false,\n disableNext = (!rewind && index >= indexMax) ? true : false;\n\n if (disablePrev && !prevDisabled) {\n disEnableElement(prevIsButton, prevButton, true);\n }\n if (!disablePrev && prevDisabled) {\n disEnableElement(prevIsButton, prevButton, false);\n }\n if (disableNext && !nextDisabled) {\n disEnableElement(nextIsButton, nextButton, true);\n }\n if (!disableNext && nextDisabled) {\n disEnableElement(nextIsButton, nextButton, false);\n }\n }\n\n // set duration\n function resetDuration (el, str) {\n if (TRANSITIONDURATION) { el.style[TRANSITIONDURATION] = str; }\n }\n\n function getSliderWidth () {\n return fixedWidth ? (fixedWidth + gutter) * slideCountNew : slidePositions[slideCountNew];\n }\n\n function getCenterGap (num) {\n if (num == null) { num = index; }\n\n var gap = edgePadding ? gutter : 0;\n return autoWidth ? ((viewport - gap) - (slidePositions[num + 1] - slidePositions[num] - gutter))/2 :\n fixedWidth ? (viewport - fixedWidth) / 2 :\n (items - 1) / 2;\n }\n\n function getRightBoundary () {\n var gap = edgePadding ? gutter : 0,\n result = (viewport + gap) - getSliderWidth();\n\n if (center && !loop) {\n result = fixedWidth ? - (fixedWidth + gutter) * (slideCountNew - 1) - getCenterGap() :\n getCenterGap(slideCountNew - 1) - slidePositions[slideCountNew - 1];\n }\n if (result > 0) { result = 0; }\n\n return result;\n }\n\n function getContainerTransformValue (num) {\n if (num == null) { num = index; }\n\n var val;\n if (horizontal && !autoWidth) {\n if (fixedWidth) {\n val = - (fixedWidth + gutter) * num;\n if (center) { val += getCenterGap(); }\n } else {\n var denominator = TRANSFORM ? slideCountNew : items;\n if (center) { num -= getCenterGap(); }\n val = - num * 100 / denominator;\n }\n } else {\n val = - slidePositions[num];\n if (center && autoWidth) {\n val += getCenterGap();\n }\n }\n\n if (hasRightDeadZone) { val = Math.max(val, rightBoundary); }\n\n val += (horizontal && !autoWidth && !fixedWidth) ? '%' : 'px';\n\n return val;\n }\n\n function doContainerTransformSilent (val) {\n resetDuration(container, '0s');\n doContainerTransform(val);\n }\n\n function doContainerTransform (val) {\n if (val == null) { val = getContainerTransformValue(); }\n container.style[transformAttr] = transformPrefix + val + transformPostfix;\n }\n\n function animateSlide (number, classOut, classIn, isOut) {\n var l = number + items;\n if (!loop) { l = Math.min(l, slideCountNew); }\n\n for (var i = number; i < l; i++) {\n var item = slideItems[i];\n\n // set item positions\n if (!isOut) { item.style.left = (i - index) * 100 / items + '%'; }\n\n if (animateDelay && TRANSITIONDELAY) {\n item.style[TRANSITIONDELAY] = item.style[ANIMATIONDELAY] = animateDelay * (i - number) / 1000 + 's';\n }\n removeClass(item, classOut);\n addClass(item, classIn);\n \n if (isOut) { slideItemsOut.push(item); }\n }\n }\n\n // make transfer after click/drag:\n // 1. change 'transform' property for mordern browsers\n // 2. change 'left' property for legacy browsers\n var transformCore = (function () {\n return carousel ?\n function () {\n resetDuration(container, '');\n if (TRANSITIONDURATION || !speed) {\n // for morden browsers with non-zero duration or \n // zero duration for all browsers\n doContainerTransform();\n // run fallback function manually \n // when duration is 0 / container is hidden\n if (!speed || !isVisible(container)) { onTransitionEnd(); }\n\n } else {\n // for old browser with non-zero duration\n jsTransform(container, transformAttr, transformPrefix, transformPostfix, getContainerTransformValue(), speed, onTransitionEnd);\n }\n\n if (!horizontal) { updateContentWrapperHeight(); }\n } :\n function () {\n slideItemsOut = [];\n\n var eve = {};\n eve[TRANSITIONEND] = eve[ANIMATIONEND] = onTransitionEnd;\n removeEvents(slideItems[indexCached], eve);\n addEvents(slideItems[index], eve);\n\n animateSlide(indexCached, animateIn, animateOut, true);\n animateSlide(index, animateNormal, animateIn);\n\n // run fallback function manually \n // when transition or animation not supported / duration is 0\n if (!TRANSITIONEND || !ANIMATIONEND || !speed || !isVisible(container)) { onTransitionEnd(); }\n };\n })();\n\n function render (e, sliderMoved) {\n if (updateIndexBeforeTransform) { updateIndex(); }\n\n // render when slider was moved (touch or drag) even though index may not change\n if (index !== indexCached || sliderMoved) {\n // events\n events.emit('indexChanged', info());\n events.emit('transitionStart', info());\n if (autoHeight) { doAutoHeight(); }\n\n // pause autoplay when click or keydown from user\n if (animating && e && ['click', 'keydown'].indexOf(e.type) >= 0) { stopAutoplay(); }\n\n running = true;\n transformCore();\n }\n }\n\n /*\n * Transfer prefixed properties to the same format\n * CSS: -Webkit-Transform => webkittransform\n * JS: WebkitTransform => webkittransform\n * @param {string} str - property\n *\n */\n function strTrans (str) {\n return str.toLowerCase().replace(/-/g, '');\n }\n\n // AFTER TRANSFORM\n // Things need to be done after a transfer:\n // 1. check index\n // 2. add classes to visible slide\n // 3. disable controls buttons when reach the first/last slide in non-loop slider\n // 4. update nav status\n // 5. lazyload images\n // 6. update container height\n function onTransitionEnd (event) {\n // check running on gallery mode\n // make sure trantionend/animationend events run only once\n if (carousel || running) {\n events.emit('transitionEnd', info(event));\n\n if (!carousel && slideItemsOut.length > 0) {\n for (var i = 0; i < slideItemsOut.length; i++) {\n var item = slideItemsOut[i];\n // set item positions\n item.style.left = '';\n\n if (ANIMATIONDELAY && TRANSITIONDELAY) { \n item.style[ANIMATIONDELAY] = '';\n item.style[TRANSITIONDELAY] = '';\n }\n removeClass(item, animateOut);\n addClass(item, animateNormal);\n }\n }\n\n /* update slides, nav, controls after checking ...\n * => legacy browsers who don't support 'event' \n * have to check event first, otherwise event.target will cause an error \n * => or 'gallery' mode: \n * + event target is slide item\n * => or 'carousel' mode: \n * + event target is container, \n * + event.property is the same with transform attribute\n */\n if (!event || \n !carousel && event.target.parentNode === container || \n event.target === container && strTrans(event.propertyName) === strTrans(transformAttr)) {\n\n if (!updateIndexBeforeTransform) { \n var indexTem = index;\n updateIndex();\n if (index !== indexTem) { \n events.emit('indexChanged', info());\n\n doContainerTransformSilent();\n }\n } \n\n if (nested === 'inner') { events.emit('innerLoaded', info()); }\n running = false;\n indexCached = index;\n }\n }\n\n }\n\n // # ACTIONS\n function goTo (targetIndex, e) {\n if (freeze) { return; }\n\n // prev slideBy\n if (targetIndex === 'prev') {\n onControlsClick(e, -1);\n\n // next slideBy\n } else if (targetIndex === 'next') {\n onControlsClick(e, 1);\n\n // go to exact slide\n } else {\n if (running) {\n if (preventActionWhenRunning) { return; } else { onTransitionEnd(); }\n }\n\n var absIndex = getAbsIndex(), \n indexGap = 0;\n\n if (targetIndex === 'first') {\n indexGap = - absIndex;\n } else if (targetIndex === 'last') {\n indexGap = carousel ? slideCount - items - absIndex : slideCount - 1 - absIndex;\n } else {\n if (typeof targetIndex !== 'number') { targetIndex = parseInt(targetIndex); }\n\n if (!isNaN(targetIndex)) {\n // from directly called goTo function\n if (!e) { targetIndex = Math.max(0, Math.min(slideCount - 1, targetIndex)); }\n\n indexGap = targetIndex - absIndex;\n }\n }\n\n // gallery: make sure new page won't overlap with current page\n if (!carousel && indexGap && Math.abs(indexGap) < items) {\n var factor = indexGap > 0 ? 1 : -1;\n indexGap += (index + indexGap - slideCount) >= indexMin ? slideCount * factor : slideCount * 2 * factor * -1;\n }\n\n index += indexGap;\n\n // make sure index is in range\n if (carousel && loop) {\n if (index < indexMin) { index += slideCount; }\n if (index > indexMax) { index -= slideCount; }\n }\n\n // if index is changed, start rendering\n if (getAbsIndex(index) !== getAbsIndex(indexCached)) {\n render(e);\n }\n\n }\n }\n\n // on controls click\n function onControlsClick (e, dir) {\n if (running) {\n if (preventActionWhenRunning) { return; } else { onTransitionEnd(); }\n }\n var passEventObject;\n\n if (!dir) {\n e = getEvent(e);\n var target = getTarget(e);\n\n while (target !== controlsContainer && [prevButton, nextButton].indexOf(target) < 0) { target = target.parentNode; }\n\n var targetIn = [prevButton, nextButton].indexOf(target);\n if (targetIn >= 0) {\n passEventObject = true;\n dir = targetIn === 0 ? -1 : 1;\n }\n }\n\n if (rewind) {\n if (index === indexMin && dir === -1) {\n goTo('last', e);\n return;\n } else if (index === indexMax && dir === 1) {\n goTo('first', e);\n return;\n }\n }\n\n if (dir) {\n index += slideBy * dir;\n if (autoWidth) { index = Math.floor(index); }\n // pass e when click control buttons or keydown\n render((passEventObject || (e && e.type === 'keydown')) ? e : null);\n }\n }\n\n // on nav click\n function onNavClick (e) {\n if (running) {\n if (preventActionWhenRunning) { return; } else { onTransitionEnd(); }\n }\n \n e = getEvent(e);\n var target = getTarget(e), navIndex;\n\n // find the clicked nav item\n while (target !== navContainer && !hasAttr(target, 'data-nav')) { target = target.parentNode; }\n if (hasAttr(target, 'data-nav')) {\n var navIndex = navClicked = Number(getAttr(target, 'data-nav')),\n targetIndexBase = fixedWidth || autoWidth ? navIndex * slideCount / pages : navIndex * items,\n targetIndex = navAsThumbnails ? navIndex : Math.min(Math.ceil(targetIndexBase), slideCount - 1);\n goTo(targetIndex, e);\n\n if (navCurrentIndex === navIndex) {\n if (animating) { stopAutoplay(); }\n navClicked = -1; // reset navClicked\n }\n }\n }\n\n // autoplay functions\n function setAutoplayTimer () {\n autoplayTimer = setInterval(function () {\n onControlsClick(null, autoplayDirection);\n }, autoplayTimeout);\n\n animating = true;\n }\n\n function stopAutoplayTimer () {\n clearInterval(autoplayTimer);\n animating = false;\n }\n\n function updateAutoplayButton (action, txt) {\n setAttrs(autoplayButton, {'data-action': action});\n autoplayButton.innerHTML = autoplayHtmlStrings[0] + action + autoplayHtmlStrings[1] + txt;\n }\n\n function startAutoplay () {\n setAutoplayTimer();\n if (autoplayButton) { updateAutoplayButton('stop', autoplayText[1]); }\n }\n\n function stopAutoplay () {\n stopAutoplayTimer();\n if (autoplayButton) { updateAutoplayButton('start', autoplayText[0]); }\n }\n\n // programaitcally play/pause the slider\n function play () {\n if (autoplay && !animating) {\n startAutoplay();\n autoplayUserPaused = false;\n }\n }\n function pause () {\n if (animating) {\n stopAutoplay();\n autoplayUserPaused = true;\n }\n }\n\n function toggleAutoplay () {\n if (animating) {\n stopAutoplay();\n autoplayUserPaused = true;\n } else {\n startAutoplay();\n autoplayUserPaused = false;\n }\n }\n\n function onVisibilityChange () {\n if (doc.hidden) {\n if (animating) {\n stopAutoplayTimer();\n autoplayVisibilityPaused = true;\n }\n } else if (autoplayVisibilityPaused) {\n setAutoplayTimer();\n autoplayVisibilityPaused = false;\n }\n }\n\n function mouseoverPause () {\n if (animating) { \n stopAutoplayTimer();\n autoplayHoverPaused = true;\n }\n }\n\n function mouseoutRestart () {\n if (autoplayHoverPaused) { \n setAutoplayTimer();\n autoplayHoverPaused = false;\n }\n }\n\n // keydown events on document \n function onDocumentKeydown (e) {\n e = getEvent(e);\n var keyIndex = [KEYS.LEFT, KEYS.RIGHT].indexOf(e.keyCode);\n\n if (keyIndex >= 0) {\n onControlsClick(e, keyIndex === 0 ? -1 : 1);\n }\n }\n\n // on key control\n function onControlsKeydown (e) {\n e = getEvent(e);\n var keyIndex = [KEYS.LEFT, KEYS.RIGHT].indexOf(e.keyCode);\n\n if (keyIndex >= 0) {\n if (keyIndex === 0) {\n if (!prevButton.disabled) { onControlsClick(e, -1); }\n } else if (!nextButton.disabled) {\n onControlsClick(e, 1);\n }\n }\n }\n\n // set focus\n function setFocus (el) {\n el.focus();\n }\n\n // on key nav\n function onNavKeydown (e) {\n e = getEvent(e);\n var curElement = doc.activeElement;\n if (!hasAttr(curElement, 'data-nav')) { return; }\n\n // var code = e.keyCode,\n var keyIndex = [KEYS.LEFT, KEYS.RIGHT, KEYS.ENTER, KEYS.SPACE].indexOf(e.keyCode),\n navIndex = Number(getAttr(curElement, 'data-nav'));\n\n if (keyIndex >= 0) {\n if (keyIndex === 0) {\n if (navIndex > 0) { setFocus(navItems[navIndex - 1]); }\n } else if (keyIndex === 1) {\n if (navIndex < pages - 1) { setFocus(navItems[navIndex + 1]); }\n } else {\n navClicked = navIndex;\n goTo(navIndex, e);\n }\n }\n }\n\n function getEvent (e) {\n e = e || win.event;\n return isTouchEvent(e) ? e.changedTouches[0] : e;\n }\n function getTarget (e) {\n return e.target || win.event.srcElement;\n }\n\n function isTouchEvent (e) {\n return e.type.indexOf('touch') >= 0;\n }\n\n function preventDefaultBehavior (e) {\n e.preventDefault ? e.preventDefault() : e.returnValue = false;\n }\n\n function getMoveDirectionExpected () {\n return getTouchDirection(toDegree(lastPosition.y - initPosition.y, lastPosition.x - initPosition.x), swipeAngle) === options.axis;\n }\n\n function onPanStart (e) {\n if (running) {\n if (preventActionWhenRunning) { return; } else { onTransitionEnd(); }\n }\n\n if (autoplay && animating) { stopAutoplayTimer(); }\n \n panStart = true;\n if (rafIndex) {\n caf(rafIndex);\n rafIndex = null;\n }\n\n var $ = getEvent(e);\n events.emit(isTouchEvent(e) ? 'touchStart' : 'dragStart', info(e));\n\n if (!isTouchEvent(e) && ['img', 'a'].indexOf(getLowerCaseNodeName(getTarget(e))) >= 0) {\n preventDefaultBehavior(e);\n }\n\n lastPosition.x = initPosition.x = $.clientX;\n lastPosition.y = initPosition.y = $.clientY;\n if (carousel) {\n translateInit = parseFloat(container.style[transformAttr].replace(transformPrefix, ''));\n resetDuration(container, '0s');\n }\n }\n\n function onPanMove (e) {\n if (panStart) {\n var $ = getEvent(e);\n lastPosition.x = $.clientX;\n lastPosition.y = $.clientY;\n\n if (carousel) {\n if (!rafIndex) { rafIndex = raf(function(){ panUpdate(e); }); }\n } else {\n if (moveDirectionExpected === '?') { moveDirectionExpected = getMoveDirectionExpected(); }\n if (moveDirectionExpected) { preventScroll = true; }\n }\n\n if (preventScroll) { e.preventDefault(); }\n }\n }\n\n function panUpdate (e) {\n if (!moveDirectionExpected) {\n panStart = false;\n return;\n }\n caf(rafIndex);\n if (panStart) { rafIndex = raf(function(){ panUpdate(e); }); }\n\n if (moveDirectionExpected === '?') { moveDirectionExpected = getMoveDirectionExpected(); }\n if (moveDirectionExpected) {\n if (!preventScroll && isTouchEvent(e)) { preventScroll = true; }\n\n try {\n if (e.type) { events.emit(isTouchEvent(e) ? 'touchMove' : 'dragMove', info(e)); }\n } catch(err) {}\n\n var x = translateInit,\n dist = getDist(lastPosition, initPosition);\n if (!horizontal || fixedWidth || autoWidth) {\n x += dist;\n x += 'px';\n } else {\n var percentageX = TRANSFORM ? dist * items * 100 / ((viewport + gutter) * slideCountNew): dist * 100 / (viewport + gutter);\n x += percentageX;\n x += '%';\n }\n\n container.style[transformAttr] = transformPrefix + x + transformPostfix;\n }\n }\n\n function onPanEnd (e) {\n if (panStart) {\n if (rafIndex) {\n caf(rafIndex);\n rafIndex = null;\n }\n if (carousel) { resetDuration(container, ''); }\n panStart = false;\n\n var $ = getEvent(e);\n lastPosition.x = $.clientX;\n lastPosition.y = $.clientY;\n var dist = getDist(lastPosition, initPosition);\n\n if (Math.abs(dist)) {\n // drag vs click\n if (!isTouchEvent(e)) {\n // prevent \"click\"\n var target = getTarget(e);\n addEvents(target, {'click': function preventClick (e) {\n preventDefaultBehavior(e);\n removeEvents(target, {'click': preventClick});\n }}); \n }\n\n if (carousel) {\n rafIndex = raf(function() {\n if (horizontal && !autoWidth) {\n var indexMoved = - dist * items / (viewport + gutter);\n indexMoved = dist > 0 ? Math.floor(indexMoved) : Math.ceil(indexMoved);\n index += indexMoved;\n } else {\n var moved = - (translateInit + dist);\n if (moved <= 0) {\n index = indexMin;\n } else if (moved >= slidePositions[slideCountNew - 1]) {\n index = indexMax;\n } else {\n var i = 0;\n while (i < slideCountNew && moved >= slidePositions[i]) {\n index = i;\n if (moved > slidePositions[i] && dist < 0) { index += 1; }\n i++;\n }\n }\n }\n\n render(e, dist);\n events.emit(isTouchEvent(e) ? 'touchEnd' : 'dragEnd', info(e));\n });\n } else {\n if (moveDirectionExpected) {\n onControlsClick(e, dist > 0 ? -1 : 1);\n }\n }\n }\n }\n\n // reset\n if (options.preventScrollOnTouch === 'auto') { preventScroll = false; }\n if (swipeAngle) { moveDirectionExpected = '?'; } \n if (autoplay && !animating) { setAutoplayTimer(); }\n }\n\n // === RESIZE FUNCTIONS === //\n // (slidePositions, index, items) => vertical_conentWrapper.height\n function updateContentWrapperHeight () {\n var wp = middleWrapper ? middleWrapper : innerWrapper;\n wp.style.height = slidePositions[index + items] - slidePositions[index] + 'px';\n }\n\n function getPages () {\n var rough = fixedWidth ? (fixedWidth + gutter) * slideCount / viewport : slideCount / items;\n return Math.min(Math.ceil(rough), slideCount);\n }\n\n /*\n * 1. update visible nav items list\n * 2. add \"hidden\" attributes to previous visible nav items\n * 3. remove \"hidden\" attrubutes to new visible nav items\n */\n function updateNavVisibility () {\n if (!nav || navAsThumbnails) { return; }\n\n if (pages !== pagesCached) {\n var min = pagesCached,\n max = pages,\n fn = showElement;\n\n if (pagesCached > pages) {\n min = pages;\n max = pagesCached;\n fn = hideElement;\n }\n\n while (min < max) {\n fn(navItems[min]);\n min++;\n }\n\n // cache pages\n pagesCached = pages;\n }\n }\n\n function info (e) {\n return {\n container: container,\n slideItems: slideItems,\n navContainer: navContainer,\n navItems: navItems,\n controlsContainer: controlsContainer,\n hasControls: hasControls,\n prevButton: prevButton,\n nextButton: nextButton,\n items: items,\n slideBy: slideBy,\n cloneCount: cloneCount,\n slideCount: slideCount,\n slideCountNew: slideCountNew,\n index: index,\n indexCached: indexCached,\n displayIndex: getCurrentSlide(),\n navCurrentIndex: navCurrentIndex,\n navCurrentIndexCached: navCurrentIndexCached,\n pages: pages,\n pagesCached: pagesCached,\n sheet: sheet,\n isOn: isOn,\n event: e || {},\n };\n }\n\n return {\n version: '2.9.2',\n getInfo: info,\n events: events,\n goTo: goTo,\n play: play,\n pause: pause,\n isOn: isOn,\n updateSliderHeight: updateInnerWrapperHeight,\n refresh: initSliderTransform,\n destroy: destroy,\n rebuild: function() {\n return tns(extend(options, optionsElements));\n }\n };\n};\n","// get css-calc \n// @return - false | calc | -webkit-calc | -moz-calc\n// @usage - var calc = getCalc(); \nimport { getBody } from './getBody.js';\nimport { setFakeBody } from './setFakeBody.js';\nimport { resetFakeBody } from './resetFakeBody.js';\n\nexport function calc() {\n var doc = document, \n body = getBody(),\n docOverflow = setFakeBody(body),\n div = doc.createElement('div'), \n result = false;\n\n body.appendChild(div);\n try {\n var str = '(10px * 10)',\n vals = ['calc' + str, '-moz-calc' + str, '-webkit-calc' + str],\n val;\n for (var i = 0; i < 3; i++) {\n val = vals[i];\n div.style.width = val;\n if (div.offsetWidth === 100) { \n result = val.replace(str, ''); \n break;\n }\n }\n } catch (e) {}\n \n body.fake ? resetFakeBody(body, docOverflow) : div.remove();\n\n return result;\n}","// get subpixel support value\n// @return - boolean\nimport { getBody } from './getBody.js';\nimport { setFakeBody } from './setFakeBody.js';\nimport { resetFakeBody } from './resetFakeBody.js';\n\nexport function percentageLayout() {\n // check subpixel layout supporting\n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n wrapper = doc.createElement('div'),\n outer = doc.createElement('div'),\n str = '',\n count = 70,\n perPage = 3,\n supported = false;\n\n wrapper.className = \"tns-t-subp2\";\n outer.className = \"tns-t-ct\";\n\n for (var i = 0; i < count; i++) {\n str += '
';\n }\n\n outer.innerHTML = str;\n wrapper.appendChild(outer);\n body.appendChild(wrapper);\n\n supported = Math.abs(wrapper.getBoundingClientRect().left - outer.children[count - perPage].getBoundingClientRect().left) < 2;\n\n body.fake ? resetFakeBody(body, docOverflow) : wrapper.remove();\n\n return supported;\n}","import { getBody } from './getBody.js';\nimport { setFakeBody } from './setFakeBody.js';\nimport { resetFakeBody } from './resetFakeBody.js';\n\nexport function mediaquerySupport () {\n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n div = doc.createElement('div'),\n style = doc.createElement('style'),\n rule = '@media all and (min-width:1px){.tns-mq-test{position:absolute}}',\n position;\n\n style.type = 'text/css';\n div.className = 'tns-mq-test';\n\n body.appendChild(style);\n body.appendChild(div);\n\n if (style.styleSheet) {\n style.styleSheet.cssText = rule;\n } else {\n style.appendChild(doc.createTextNode(rule));\n }\n\n position = window.getComputedStyle ? window.getComputedStyle(div).position : div.currentStyle['position'];\n\n body.fake ? resetFakeBody(body, docOverflow) : div.remove();\n\n return position === \"absolute\";\n}","import { getBody } from './getBody.js';\nimport { setFakeBody } from './setFakeBody.js';\nimport { resetFakeBody } from './resetFakeBody.js';\n\nexport function has3DTransforms(tf){\n if (!tf) { return false; }\n if (!window.getComputedStyle) { return false; }\n \n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n el = doc.createElement('p'),\n has3d,\n cssTF = tf.length > 9 ? '-' + tf.slice(0, -9).toLowerCase() + '-' : '';\n\n cssTF += 'transform';\n\n // Add it to the body to get the computed style\n body.insertBefore(el, null);\n\n el.style[tf] = 'translate3d(1px,1px,1px)';\n has3d = window.getComputedStyle(el).getPropertyValue(cssTF);\n\n body.fake ? resetFakeBody(body, docOverflow) : el.remove();\n\n return (has3d !== undefined && has3d.length > 0 && has3d !== \"none\");\n}\n","export function getSlideId() {\n var id = window.tnsId;\n window.tnsId = !id ? 1 : id + 1;\n \n return 'tns' + window.tnsId;\n}","// create and append style sheet\nexport function createStyleSheet (media) {\n // Create the