{"version":3,"sources":["webpack:///./node_modules/@tarekraafat/autocomplete.js/dist/autoComplete.min.js","webpack:///./node_modules/ui-core/utility/js/no-focusable-svg.js","webpack:///./node_modules/ui-core/utility/js/observe-dom.js","webpack:///./node_modules/ui-core/plugins/cookies/js/cookies.js","webpack:///./node_modules/ui-core/basic/lists/js/list.js","webpack:///./node_modules/ui-core/components/alert-popup/js/alert-popup.js","webpack:///./node_modules/ui-core/components/modal/js/modal.js","webpack:///./node_modules/ui-core/components/accordion/js/accordion.js","webpack:///./node_modules/ui-core/plugins/transplant/js/transplant.js","webpack:///./node_modules/ui-core/components/drop-block/js/drop-block.js","webpack:///./node_modules/ui-core/components/back-to-top/js/back-to-top.js","webpack:///./node_modules/ui-core/widgets/ad-placeholder/js/ad-placeholder.js","webpack:///./node_modules/ui-core/widgets/multi-search/js/multi-search.js","webpack:///./node_modules/ui-core/widgets/raa/js/raa.js","webpack:///./node_modules/ui-core/plugins/drawer/js/menu-accessability.js","webpack:///./node_modules/ui-core/plugins/slide/js/slide.js","webpack:///./node_modules/ui-core/widgets/menu/js/responsive-menu.js","webpack:///./node_modules/ui-core/plugins/stickybits/js/stickybits.es.js","webpack:///./node_modules/ui-theme/js/utility/_sticky.js","webpack:///./node_modules/ui-core/plugins/modal/js/modal.js","webpack:///./node_modules/ui-core/plugins/drawer/js/drawer.js","webpack:///./node_modules/ui-core/widgets/quick-search/js/quick-search.ts","webpack:///./node_modules/ui-theme/js/widgets/_quick-search.ts","webpack:///./node_modules/ui-core/widgets/ip-ranges/js/ip-ranges.ts","webpack:///./node_modules/ui-theme/js/components/_drawer.js","webpack:///./node_modules/ui-theme/js/components/slide.js","webpack:///./node_modules/@atypon/ui-bundle-generator/.generated/groups/_mobile-menu.js","webpack:///./node_modules/@atypon/ui-bundle-generator/.generated/lazy-imports.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js"],"names":["t","e","n","Object","keys","getOwnPropertySymbols","r","filter","getOwnPropertyDescriptor","enumerable","push","apply","arguments","length","i","forEach","getOwnPropertyDescriptors","defineProperties","defineProperty","Symbol","_typeof","iterator","constructor","prototype","value","configurable","writable","Array","isArray","s","from","o","TypeError","toString","call","slice","name","test","u","document","querySelector","a","createElement","append","insertAdjacentElement","parentNode","insertBefore","getAttribute","focus","setAttribute","c","String","toLowerCase","normalize","replace","l","innerHTML","class","outerHTML","f","input","dispatchEvent","CustomEvent","bubbles","detail","feedback","cancelable","p","mode","diacritics","highlight","map","join","d","indexOf","substring","Promise","data","cache","store","src","then","h","searchEngine","resultItem","match","key","done","next","resultsList","maxResults","query","matches","results","m","b","y","v","selection","index","g","isOpen","wrapper","list","removeAttribute","w","O","getElementsByTagName","tag","selected","split","cursor","classList","remove","add","id","scrollTop","offsetTop","clientHeight","A","k","L","event","j","this","HTMLInputElement","HTMLTextAreaElement","trigger","threshold","Error","noResults","DocumentFragment","concat","role","inside","element","S","E","placeHolder","placeholder","around","dest","destination","position","hidden","T","events","debounce","clearTimeout","setTimeout","keydown","keyCode","preventDefault","submit","tabSelect","blur","mousedown","click","toUpperCase","querySelectorAll","target","closest","nodeName","addEventListener","x","init","start","unInit","removeChild","removeEventListener","open","close","goTo","previous","select","search","options","instances","selector","exports","module","define","UX","noFocusableSVG","isIE","svgs","window","observeDOM","MutationObserver","WebKitMutationObserver","eventListenerSupported","obj","withMutations","observerOptions","callback","obs","mutations","addedNodes","removedNodes","childList","subtree","attributes","observe","cookies","getItem","sKey","decodeURIComponent","cookie","RegExp","encodeURIComponent","setItem","sValue","vEnd","sPath","sDomain","bSecure","sExpires","Number","Infinity","Date","toUTCString","removeItem","hasItem","aKeys","nLen","nIdx","$body","$","expandIcon","collapseIcon","on","build","control","toggleList","each","find","hide","elem","$toggle","$wrapper","$target","children","toggle","defineToggleIcons","toggleClass","hasClass","attr","closeList","removeClass","addClass","$expandableList","undefined","alertPopup","config","$actions","$approve","$cancel","$url","accessibility","set","controls","$content","after","show","removeAttr","_this","action","onClick","currentTarget","href","redirect","location","$window","modal","revers","lastItem","items","$close","accessibilityEnabled","is","focusCycle","bind","controller","check","$autofocus","tab","off","tabRevers","which","isMobile","accordion","$elements","$tabbedElements","$controllers","$tabbedControllers","isStickyBody","vPort","$responsiveElements","accVport","$responsiveTarget","collapseTabs","collapseAccordion","defaultCollapsed","hideAllBoolean","openedAccordion","hideDropBlock","initResponsive","logic","additionalControls","stopImmediatePropagation","dropBlock","$this","single","preventAccordionBehavior","tabbed","all","hideAll","parentAccordion","parent","collapseTabsByDefault","getAccordionContent","additionalAjaxSuccess","$elem","getCustomAjaxUrl","buildAjaxUrl","ajaxUrl","widgetId","dropzoneId","$parentTab","ajax","url","success","replaceWith","error","state","$accordionContent","contentTarget","slideToggle","height","accordionExpandedSingle","Event","checkExpandAll","$parent","$opened","slideUp","extraCollapseAccordionCheck","slideDown","expanded","accordionExpandedTabbed","text","$lazy","$expandElem","setViewports","parents","transplant","$element","$order","$cloneData","$clonedContainer","$direction","$remove","$targetClass","$classNames","_transplant$$target$f","clone","array","item","order","cleanDuplicateID","clonedItems","sort","html","$source","targetFor","$controler","clonedElement","ariaOwns","$targets","$controller","$parents","escape","$container","switchVal","$section","initialized","direction","pop","stopPropagation","isDataSlideTarget","disableOnMobile","dimensions","icon","first","loi","recalculate","additionalOnShow","back","$parentSection","additionalOnHide","$nested","current","ifContaind","wrapInner","nHeight","outerHeight","pOffset","offset","pLeft","left","nWidth","innerWidth","styles","container_offset","container_base","width","parent_base","top","right","css","switch","temp","backToTop","footerBackToTop","animate","body","isfooterVisible","docViewBottom","adplaceholder","elemToToggle","$multi_search","getWidgetId","widgetEl","multiSearch","el","dropdown","widgetID","topic","tagLabel","tagId","label","params","multiSearchAction","lazyload","not","truncate","lines","type","lazyLoad","getPbContext","pbContext","dataType","async","render","console","log","ready","toggleQuickSearch","val","loadInstitutionPage","selectDom","menubar","$id","$rootItems","$items","$allItems","$activeItem","vmenu","bChildOpen","enter","esc","space","up","down","bindHandlers","handleKeyDown","keypress","handleKeyPress","handleFocus","handleDocumentClick","parentsUntil","altKey","ctrlKey","menu","processMenuChoice","moveUp","moveToPrevious","moveDown","moveToNext","last","prev","eq","charAt","shiftKey","fromCharCode","slide","$slide","$contents","$slideinfo","elementvPort","nested","multi","activeSlide","oldInfo","wait","backLabel","isQueue","isRTL","displaySlideHtmlToPage","$back","customViewPorts","viewPort","responsive","additionalInitialization","facetDateChart","utils","$main","additionalResponsive","addTransition","empty","removeTransition","setBackLabel","_e$currentTarget","jcf","destroy","openingEvent","isDefaultPrevented","popupType","additionalShow","_nestSlide","clonedDiv","destroyJcf","appendTo","rebuildJcf","googletag","pubads","refresh","$coolBar","openEvent","_showSlide","slidePill","$slidedDiv","translate","one","additionalShowSlide","isInsideSlide","closingEvent","originalTarget","isLoi","beforeReturnSlideContent","$dropBlockHolder","_returnDataSlide","splice","_hideSlide","additionalHide","closeEvent","updateTarget","returnDataSlideHere","$returnDataSlideHere","additionalOff","$el","reponsiveMenu","$menuContainer","leftSectionWidth","rightSectionWidth","maxMenuItemWidth","$moreDropsown","$menu","$menuWrapper","modifyMenu","before","availableMenuWidth","menuWidth","$lastMenuItem","prepend","$moreItems","$firstMoreItem","Stickybits","stickyOnEvent","createEvent","stickyOffEvent","version","userAgent","navigator","props","customStickyChangeNumber","noStyles","stickyBitStickyOffset","parentClass","scrollEl","stickyClass","stuckClass","stickyChangeClass","useStickyClasses","useFixed","useGetBoundingClientRect","verticalPosition","positionVal","definePosition","_this$props","verticalPositionStyle","positionStyle","els","style","addInstance","initCustomEvent","_proto","stickyProp","prefix","head","isWin","se","getClosestParent","computeScrollOffsets","className","stateContainer","manageState","parentElement","getTopPosition","getBoundingClientRect","pageYOffset","documentElement","topPosition","offsetParent","it","isCustom","isTop","scrollElOffset","stickyStart","stickyChangeOffset","offsetHeight","parentBottom","stickyChange","stickyStop","innerHeight","toggleClasses","cArray","rItem","change","stop","stl","ns","pv","sticky","stuck","vp","rAFStub","rAFDummy","rAF","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","tC","scroll","scrollY","isSticky","isStuck","bottom","isStickyChange","update","updatedProps","instance","updatedProp","removeInstance","cleanup","stickybits","stickyNodes","stickyTargets","setHeaderHeight","setSticky","get","setProperty","resize","node","nodeWinOffset","outerWidth","jQuery","NAME","EVENT_KEY","JQUERY_NO_CONFLICT","fn","Default","backdrop","keyboard","DefaultType","HIDE","HIDE_PREVENTED","HIDDEN","SHOW","SHOWN","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","CLICK_DATA_API","ClassName","Selector","Modal","_classCallCheck","_config","_getConfig","_element","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_isTransitioning","_scrollbarWidth","_createClass","relatedTarget","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","_this2","hideEvent","transition","transitionDuration","Util","getTransitionDurationFromElement","TRANSITION_END","_hideModal","emulateTransitionEnd","dispose","htmlElement","removeData","handleUpdate","_objectSpread","typeCheckConfig","_triggerBackdropTransition","_this3","hideEventPrevented","defaultPrevented","modalTransitionDuration","_this4","modalBody","nodeType","Node","ELEMENT_NODE","appendChild","display","reflow","_enforceFocus","shownEvent","transitionComplete","_this5","has","_this6","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this9","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","paddingLeft","paddingRight","rect","_getScrollbarWidth","_this10","fixedContent","stickyContent","actualPadding","calculatedPadding","parseFloat","actualMargin","marginRight","calculatedMargin","padding","elements","margin","scrollDiv","scrollbarWidth","clientWidth","_jQueryInterface","_this11","getSelectorFromElement","tagName","Constructor","noConflict","autocompleteResultItem","citationSearchJournalField","citationSearch","hideAutoComplete","qsAutocomplete","qsForms","qsDropdowns","qsHeaderWrapper","qsSeriesKey","qsItems","autocompleteSelectedResultItem","citationSearchDoiField","citationSubmit","inputGroup","journalSearchHideAutocompleteWrapper","autoCompleteWrapper","searchType","seriesKey","_autoCompleteOptions","domUtils","getElement","activeDropdownJournal","selectors","hs","pts","ptgs","ptfs","ts","cs","pt","initialize","_URLParameters","URLParameters","setAutoCompleteOptions","setActiveJournal","isAutocompleteOn","browserUtils","initAutocomplete","addEventListeners","getElements","isSelectOnly","elementRenderer","ele","autoCompleteOptions","paramFormatted","innerText","record","getConfigs","quickSearchElm","autoCompleteObj","buildFetchURL","fetch","json","resultListConfig","defaultConfigs","handleAutoCompleteOptions","containsClasses","initAutoCompleteInstance","configs","onSelection","idName","Math","ceil","random","resultListDestination","autcompleteInstances","Map","QuickSearchElm","contains","onKeyDown","form","onFormSubmit","handleDropdownCollapse","registerCitationSearchEvents","autocompleteAnnouncer","announcerContainer","autocompleteLists","observer","mutationsList","mutation","submitForm","submitWithoutChoosingValue","selectedItemId","reserveSearchInputOnJournalChange","activeJournalForm","changeSubmitButtonState","onCitationSearchDoiField","hasValue","dataset","journalCitationInputs","disabled","allEmpty","validator","isNotEmpty","parameters","entries","reduce","acc","prop","term","trim","parseInt","autoCompleteMaxWords","autoCompleteMaxChars","QuickSearch","Elements","ClassList","Texts","HTMLElement","addRangeFields","addRangeSubmitButtons","updateRangesCheckboxes","updateRangesSubmitButtons","field","handleAddRangeFieldChange","checkbox","handleUpdateRangeFieldChange","anyIsEmpty","some","setSubmitButtonsDisable","anyIsChecked","checked","isDisabled","button","ipRanges","menuHeaderMainTitle","redirectPath","displayedNestedItems","nestedMenu","listPositionVars","mainScrollingList","inTimeoutTiming","outTimeoutTiming","mainScrollingListHeight","mobileTransitionTime","bodyTransitionPropertyName","bodyTransitionElapsedTime","$header","additionalControl","rebuild","original","hideNested","listPosition","handleHeightSet","handleResize","tabDesktop","escDesktop","showAdditional","showNested","siblings","$menuTitle","showNestedExtra","$parenNestedMenu","shouldNavigate","$menuHeader","hideNestedExtra","reset","$parentMenu","$dropdownToggle","$firstNestedMenu","$prevMenu","$nextMenu","handle","sub","addDataOnly","menuElements","timing","timeoutTime","addDataToElem","handleScrollBarHide","lastScrollVal","getLastPosition","scrollTo","JSON","stringify","floor","scrollVal","parse","elemsArr","parentHeightVal","subHeightVal","isSafari","duration","abs","skipCheck","elapsedTime","propertyName","iosControl","offsetY","_ux3lvl_slide_init","_ux3lvl_slide_onShow","_ux3lvl_slide_onHide","_ux3lvl_slide_onOff","main","getElementsByClassName","$reponsiveMenu","err","$list","$alertPopup","$modal","$accordion","$transplant","$dropBlock","$backToTop","$quickSearch","$ipRanges","$adplaceholder","$multiSearch","quickSearch","mobileMenuMain","toPropertyKey","_defineProperty","__esModule"],"mappings":"sFAAMA,E,OAASA,EAAE,SAAFA,IAAa,aAAa,SAASC,EAAEA,EAAED,GAAG,IAAIE,EAAEC,OAAOC,KAAKH,GAAG,GAAGE,OAAOE,sBAAsB,CAAC,IAAIC,EAAEH,OAAOE,sBAAsBJ,GAAGD,IAAIM,EAAEA,EAAEC,QAAQ,SAASP,GAAG,OAAOG,OAAOK,yBAAyBP,EAAED,GAAGS,eAAeP,EAAEQ,KAAKC,MAAMT,EAAEI,GAAG,OAAOJ,EAAE,SAASF,EAAEA,GAAG,IAAI,IAAIE,EAAE,EAAEA,EAAEU,UAAUC,OAAOX,IAAI,CAAC,IAAIY,EAAE,MAAMF,UAAUV,GAAGU,UAAUV,GAAG,GAAGA,EAAE,EAAED,EAAEE,OAAOW,IAAG,GAAIC,SAAS,SAASd,GAAGK,EAAEN,EAAEC,EAAEa,EAAEb,OAAOE,OAAOa,0BAA0Bb,OAAOc,iBAAiBjB,EAAEG,OAAOa,0BAA0BF,IAAIb,EAAEE,OAAOW,IAAIC,SAAS,SAASd,GAAGE,OAAOe,eAAelB,EAAEC,EAAEE,OAAOK,yBAAyBM,EAAEb,OAAO,OAAOD,EAAE,SAASE,EAAED,GAAG,OAAOC,EAAE,mBAAmBiB,QAAQ,UAAQC,EAASD,OAAOE,UAAS,SAASpB,GAAG,OAAAmB,EAAcnB,IAAG,SAASA,GAAG,OAAOA,GAAG,mBAAmBkB,QAAQlB,EAAEqB,cAAcH,QAAQlB,IAAIkB,OAAOI,UAAU,SAAQH,EAAQnB,KAAKA,GAAG,SAASK,EAAEL,EAAED,EAAEE,GAAG,OAAOF,KAAKC,EAAEE,OAAOe,eAAejB,EAAED,EAAE,CAACwB,MAAMtB,EAAEO,YAAW,EAAGgB,cAAa,EAAGC,UAAS,IAAKzB,EAAED,GAAGE,EAAED,EAAE,SAASa,EAAEb,GAAG,OAAO,SAASA,GAAG,GAAG0B,MAAMC,QAAQ3B,GAAG,OAAO4B,EAAE5B,GAAzC,CAA6CA,IAAI,SAASA,GAAG,GAAG,oBAAoBkB,QAAQ,MAAMlB,EAAEkB,OAAOE,WAAW,MAAMpB,EAAE,cAAc,OAAO0B,MAAMG,KAAK7B,GAA7G,CAAiHA,IAAI8B,EAAE9B,IAAI,WAAW,MAAM,IAAI+B,UAAU,wIAA/B,GAA0K,SAASD,EAAE9B,EAAED,GAAG,GAAGC,EAAE,CAAC,GAAG,iBAAiBA,EAAE,OAAO4B,EAAE5B,EAAED,GAAG,IAAIE,EAAEC,OAAOoB,UAAUU,SAASC,KAAKjC,GAAGkC,MAAM,GAAG,GAAG,MAAM,WAAWjC,GAAGD,EAAEqB,cAAcpB,EAAED,EAAEqB,YAAYc,MAAM,QAAQlC,GAAG,QAAQA,EAAEyB,MAAMG,KAAK7B,GAAG,cAAcC,GAAG,2CAA2CmC,KAAKnC,GAAG2B,EAAE5B,EAAED,QAAG,GAAQ,SAAS6B,EAAE5B,EAAED,IAAI,MAAMA,GAAGA,EAAEC,EAAEY,UAAUb,EAAEC,EAAEY,QAAQ,IAAI,IAAIX,EAAE,EAAEI,EAAE,IAAIqB,MAAM3B,GAAGE,EAAEF,EAAEE,IAAII,EAAEJ,GAAGD,EAAEC,GAAG,OAAOI,EAAE,IAAIgC,EAAE,SAAFA,EAAWrC,GAAG,MAAM,iBAAiBA,EAAEsC,SAASC,cAAcvC,GAAGA,KAAKwC,EAAE,SAAFA,EAAWxC,EAAED,GAAG,IAAIE,EAAE,iBAAiBD,EAAEsC,SAASG,cAAczC,GAAGA,EAAE,IAAI,IAAIK,KAAKN,EAAE,CAAC,IAAIc,EAAEd,EAAEM,GAAG,GAAG,WAAWA,EAAEQ,EAAE6B,OAAOzC,QAAQ,GAAG,SAASI,EAAEgC,EAAExB,EAAE,IAAI8B,sBAAsB9B,EAAE,GAAGZ,QAAQ,GAAG,WAAWI,EAAE,CAAC,IAAIyB,EAAEjB,EAAEiB,EAAEc,WAAWC,aAAa5C,EAAE6B,GAAG7B,EAAEyC,OAAOZ,GAAG,MAAMA,EAAEgB,aAAa,cAAchB,EAAEiB,aAAa1C,KAAKJ,EAAEA,EAAEI,GAAGQ,EAAEZ,EAAE+C,aAAa3C,EAAEQ,GAAG,OAAOZ,GAAGgD,EAAE,SAAFA,EAAWjD,EAAED,GAAG,OAAOC,EAAEkD,OAAOlD,GAAGmD,cAAcpD,EAAEC,EAAEoD,UAAU,OAAOC,QAAQ,mBAAmB,IAAID,UAAU,OAAOpD,GAAGsD,EAAE,SAAFA,EAAWtD,EAAEC,GAAG,OAAOuC,EAAE,OAAOzC,EAAE,CAACwD,UAAUvD,GAAG,iBAAiBC,GAAG,CAACuD,MAAMvD,KAAKwD,WAAWC,EAAE,SAAFA,EAAW1D,EAAED,GAAGA,EAAE4D,MAAMC,cAAc,IAAIC,YAAY7D,EAAE,CAAC8D,SAAQ,EAAGC,OAAOhE,EAAEiE,SAASC,YAAW,MAAOC,EAAE,SAAFA,EAAWlE,EAAED,EAAEE,GAAG,IAAII,EAAEJ,GAAG,GAAGY,EAAER,EAAE8D,KAAKrC,EAAEzB,EAAE+D,WAAWxC,EAAEvB,EAAEgE,UAAUhC,EAAEY,EAAElD,EAAE+B,GAAG,GAAG/B,EAAEmD,OAAOnD,GAAGC,EAAEiD,EAAEjD,EAAE8B,GAAG,UAAUjB,EAAE,CAAC,IAAI2B,GAAGxC,EAAEA,EAAEqD,QAAQ,KAAK,KAAKzC,OAAO8C,EAAE,EAAEQ,EAAExC,MAAMG,KAAK9B,GAAGuE,KAAK,SAASvE,EAAEE,GAAG,OAAOyD,EAAElB,GAAGH,EAAEpC,KAAKD,EAAE0D,KAAK3D,EAAE6B,EAAE0B,EAAEvD,EAAE6B,GAAG7B,EAAE2D,KAAK3D,KAAKwE,KAAK,IAAI,GAAGb,IAAIlB,EAAE,OAAO0B,MAAM,CAAC,IAAIM,EAAEnC,EAAEoC,QAAQzE,GAAG,IAAIwE,EAAE,OAAOxE,EAAED,EAAE2E,UAAUF,EAAEA,EAAExE,EAAEY,QAAUgB,EAAE7B,EAAEsD,QAAQrD,EAAEsD,EAAEtD,EAAE4B,IAAI7B,IAAIyE,EAAE,SAAFA,EAAWxE,EAAED,GAAG,OAAO,IAAI4E,SAAS,SAAS1E,EAAEI,GAAG,IAAIQ,EAAE,OAAOA,EAAEb,EAAE4E,MAAMC,OAAOhE,EAAEiE,MAAM7E,IAAI,IAAI0E,SAAS,SAAS3E,EAAEC,GAAG,MAAM,mBAAmBY,EAAEkE,IAAIlE,EAAEkE,IAAIhF,GAAGiF,KAAKhF,EAAEC,GAAGD,EAAEa,EAAEkE,QAAQC,MAAM,SAASjF,GAAG,IAAI,OAAOC,EAAEgE,SAASnD,EAAEiE,MAAM/E,EAAE2D,EAAE,WAAW1D,GAAGC,IAAI,MAAMD,GAAG,OAAOK,EAAEL,MAAMK,OAAO4E,EAAE,SAAFA,EAAWjF,EAAED,GAAG,IAAIE,EAAEF,EAAE6E,KAAKvE,EAAEN,EAAEmF,aAAarE,EAAE,GAAGZ,EAAE6E,MAAMhE,SAAS,SAASc,EAAES,GAAG,IAAIG,EAAE,SAAFA,EAAWvC,GAAG,IAAI6B,EAAE7B,EAAE2B,EAAE3B,GAAG2B,EAAES,EAAE,mBAAmBhC,EAAEA,EAAEL,EAAE8B,GAAGoC,EAAElE,EAAE8B,EAAE,CAACqC,KAAK9D,EAAE+D,WAAWrE,EAAEqE,WAAWC,UAAUtE,EAAEoF,WAAWd,YAAY,GAAGhC,EAAE,CAAC,IAAIG,EAAE,CAAC4C,MAAM/C,EAAEd,MAAMK,GAAG3B,IAAIuC,EAAE6C,IAAIpF,GAAGY,EAAEJ,KAAK+B,KAAK,GAAGvC,EAAEE,KAAK,CAAC,IAAI8C,EAAEK,EAAE,SAAStD,EAAED,GAAG,IAAIE,EAAE,oBAAoBiB,QAAQlB,EAAEkB,OAAOE,WAAWpB,EAAE,cAAc,IAAIC,EAAE,CAAC,GAAGyB,MAAMC,QAAQ3B,KAAKC,EAAE6B,EAAE9B,IAAqC,CAACC,IAAID,EAAEC,GAAG,IAAII,EAAE,EAAEQ,EAAE,SAAFA,MAAe,MAAM,CAACe,EAAEf,EAAEZ,EAAE,SAAFA,IAAa,OAAOI,GAAGL,EAAEY,OAAO,CAAC0E,MAAK,GAAI,CAACA,MAAK,EAAG/D,MAAMvB,EAAEK,OAAOL,EAAE,SAAFA,EAAWA,GAAG,MAAMA,GAAG0D,EAAE7C,GAAG,MAAM,IAAIkB,UAAU,yIAAyI,IAAIH,EAAES,GAAE,EAAGG,GAAE,EAAG,MAAM,CAACZ,EAAE,SAAFA,IAAa3B,EAAEA,EAAEgC,KAAKjC,IAAIC,EAAE,SAAFA,IAAa,IAAID,EAAEC,EAAEsF,OAAO,OAAOlD,EAAErC,EAAEsF,KAAKtF,GAAGA,EAAE,SAAFA,EAAWA,GAAGwC,GAAE,EAAGZ,EAAE5B,GAAG0D,EAAE,SAAFA,IAAa,IAAIrB,GAAG,MAAMpC,EAAC,QAASA,EAAC,SAAU,QAAQ,GAAGuC,EAAE,MAAMZ,KAA3nB,CAAioB3B,EAAEE,MAAM,IAAI,IAAImD,EAAE1B,MAAMqB,EAAEK,EAAErD,KAAKqF,MAAM9C,EAAES,EAAE1B,OAAO,MAAMvB,GAAGsD,EAAEtD,EAAEA,GAAG,QAAQsD,EAAEI,UAAUlB,OAAOvC,EAAEK,SAASO,EAAEZ,EAAEK,OAAOO,IAAI,IAAIe,EAAEf,EAAEqB,MAAM,EAAEnC,EAAEyF,YAAYC,YAAY1F,EAAEiE,SAAS,CAAC0B,MAAM1F,EAAE2F,QAAQ9E,EAAE+E,QAAQhE,GAAG8B,EAAE,UAAU3D,IAAI8F,EAAE,gBAAgBC,EAAE,wBAAwBC,EAAE,gBAAgBC,EAAE,SAAFA,EAAWhG,EAAEC,GAAGD,EAAEgE,SAASiC,UAAUlG,EAAE,CAACmG,MAAMjG,GAAGD,EAAEgE,SAAS4B,QAAQ3F,KAAKkG,EAAE,SAAFA,EAAWnG,GAAGA,EAAEoG,UAAUpG,EAAEqG,SAASrG,EAAE2D,OAAOX,aAAa6C,GAAE,GAAI7F,EAAEsG,KAAKC,gBAAgB,UAAUvG,EAAEoG,QAAO,EAAG1C,EAAE,OAAO1D,KAAKwG,EAAE,SAAFA,EAAWxG,GAAGA,EAAEoG,UAAUpG,EAAEqG,SAASrG,EAAE2D,OAAOX,aAAa6C,GAAE,GAAI7F,EAAE2D,MAAMX,aAAa8C,EAAE,IAAI9F,EAAEsG,KAAKtD,aAAa,SAAS,IAAIhD,EAAEoG,QAAO,EAAG1C,EAAE,QAAQ1D,KAAKyG,EAAE,SAAFA,EAAWzG,EAAED,GAAG,IAAIE,EAAEF,EAAEoF,WAAW9E,EAAEN,EAAEuG,KAAKI,qBAAqBzG,EAAE0G,KAAK7E,IAAI7B,EAAE2G,UAAU3G,EAAE2G,SAASC,MAAM,KAAK,GAAG9G,EAAEqG,QAAQ/F,EAAEO,OAAO,CAAC,IAAIgB,EAAES,EAAEG,EAAEzC,EAAE+G,OAAO9G,GAAGK,EAAEO,SAASZ,EAAE,GAAGA,EAAE,IAAIA,EAAEK,EAAEO,OAAO,GAAGb,EAAE+G,OAAO9G,EAAEwC,GAAG,IAAInC,EAAEmC,GAAG+D,gBAAgBR,GAAGjE,IAAIO,EAAEhC,EAAEmC,GAAGuE,WAAWC,OAAOtG,MAAM2B,EAAExB,EAAEiB,KAAKzB,EAAEL,GAAGgD,aAAa+C,GAAE,GAAIjE,IAAIF,EAAEvB,EAAEL,GAAG+G,WAAWE,IAAIvG,MAAMkB,EAAEf,EAAEiB,IAAI/B,EAAE4D,MAAMX,aAAa8C,EAAEzF,EAAEN,EAAE+G,QAAQI,IAAInH,EAAEuG,KAAKa,UAAU9G,EAAEL,GAAGoH,UAAUrH,EAAEuG,KAAKe,aAAahH,EAAEL,GAAGqH,aAAa,EAAEtH,EAAEiE,SAAS8C,OAAO/G,EAAE+G,OAAOd,EAAEjG,EAAEC,GAAG0D,EAAE,WAAW3D,KAAKuH,EAAE,SAAFA,EAAWtH,GAAGyG,EAAEzG,EAAE8G,OAAO,EAAE9G,IAAIuH,EAAE,SAAFA,EAAWvH,GAAGyG,EAAEzG,EAAE8G,OAAO,EAAE9G,IAAIwH,EAAE,SAAFA,EAAWxH,EAAED,EAAEE,IAAIA,EAAEA,GAAG,EAAEA,EAAED,EAAE8G,QAAQ,IAAI9G,EAAEgE,SAASyD,MAAM1H,EAAEiG,EAAEhG,EAAEC,GAAGyD,EAAE,YAAY1D,GAAGwG,EAAExG,KAAK,SAAS0H,EAAE1H,EAAEC,GAAG,IAAII,EAAEsH,KAAK,OAAO,IAAIhD,SAAS,SAAS9D,EAAEiB,GAAG,IAAIF,EAAES,EAAE,OAAOT,EAAE3B,KAAKoC,EAAErC,EAAE2D,iBAAiBiE,kBAAkBvF,aAAawF,oBAAoBxF,EAAEd,MAAMc,EAAEkB,WAAW,SAASvD,EAAED,EAAEE,GAAG,OAAOF,EAAEA,EAAEC,GAAGA,EAAEY,QAAQX,EAAxC,CAA2C2B,EAAE5B,EAAE0F,MAAM1F,EAAE0F,MAAM9D,GAAGA,EAAE5B,EAAE8H,QAAQ9H,EAAE+H,WAAWvD,EAAExE,EAAE4B,GAAGoD,MAAM,SAAS/E,GAAG,IAAI,OAAOD,EAAEgE,oBAAoBgE,MAAMnH,KAAKoE,EAAErD,EAAE5B,GAAGA,EAAEwF,aAAa,SAASxF,GAAG,IAAIC,EAAED,EAAEwF,YAAYnF,EAAEL,EAAEsG,KAAKzF,EAAEb,EAAEmF,WAAWrD,EAAE9B,EAAEgE,SAASpC,EAAEE,EAAE6D,QAAQtD,EAAEP,EAAE8D,QAAQ,GAAG5F,EAAE8G,QAAQ,EAAEzG,EAAEkD,UAAU,GAAG3B,EAAEhB,QAAQX,EAAEgI,UAAU,CAAC,IAAIhF,EAAE,IAAIiF,iBAAiB7F,EAAEvB,SAAS,SAASd,EAAEC,GAAG,IAAII,EAAEmC,EAAE3B,EAAE8F,IAAI5G,EAAE,CAACmH,GAAG,GAAGiB,OAAOtH,EAAEqG,GAAG,KAAKiB,OAAOlI,GAAGmI,KAAK,SAAS7E,UAAUvD,EAAEoF,MAAMiD,OAAOpF,GAAGpC,EAAC,OAAQ,CAAC2C,MAAM3C,EAAC,SAAUA,EAAEyH,SAASzH,EAAEyH,QAAQjI,EAAEL,MAAMK,EAAEqC,OAAOO,GAAGhD,EAAEqI,SAASrI,EAAEqI,QAAQjI,EAAEyB,GAAGqE,EAAEnG,QAAQwG,EAAExG,GAA5Y,CAAgZA,GAAGiD,EAAEhB,KAAK5B,IAAI,MAAML,GAAG,OAAO8B,EAAE9B,MAAM8B,IAAI0E,EAAExG,GAAGiD,EAAEhB,KAAK5B,IAAI,SAAS4C,IAAI,OAAOpC,QAAQ,IAAI0H,EAAE,SAAFA,EAAWvI,EAAED,GAAG,IAAI,IAAIE,KAAKD,EAAE,IAAI,IAAIK,KAAKL,EAAEC,GAAGF,EAAEE,EAAEI,IAAi6B,SAASmI,EAAExI,GAAG,IAAIC,EAAE0H,KAAK,OAAO,IAAIhD,SAAS,SAAStE,EAAEQ,GAAG,IAAIiB,EAAEF,EAAES,EAAE,GAAGP,EAAE9B,EAAEyI,YAAYpG,EAAE,CAAC+F,KAAK,WAAW,aAAaxG,EAAE5B,EAAEwF,aAAa0B,GAAG,iBAAgB,EAAG,iBAAgB,GAAI1E,EAAExC,EAAE2D,MAAM5D,EAAEA,EAAE,CAAC,gBAAgB6B,EAAEsF,GAAG,oBAAoB,QAAQpF,GAAG,CAAC4G,YAAY5G,KAAK9B,EAAEqG,SAAStG,EAAE,GAAGsC,KAAKrC,EAAEqG,UAAUrG,EAAEqG,QAAQ7D,EAAE,MAAMzC,EAAE,CAAC4I,OAAO3I,EAAE2D,MAAMH,MAAMxD,EAAEmC,KAAK,YAAYE,KAAKT,IAAI5B,EAAEsG,KAAK9D,EAAEZ,EAAE+E,IAAI5G,EAAE,CAAC6I,KAAK,CAAChH,EAAEiH,YAAYjH,EAAEkH,UAAU5B,GAAGtF,EAAEsF,GAAGkB,KAAK,UAAUW,OAAO,UAAUnH,EAAC,OAAQ,CAAC4B,MAAM5B,EAAC,UAAr3C,SAAFoH,EAAWhJ,GAAG,IAAIC,EAAEI,EAAEQ,EAAEiB,EAAE9B,EAAEiJ,OAAOrH,GAAG3B,EAAE,SAAFA,IAAa,OAAOyH,EAAE1H,IAAIK,EAAEL,EAAEkJ,SAAS,WAAWC,aAAatI,GAAGA,EAAEuI,YAAY,WAAW,OAAOnJ,MAAMI,KAAKgC,EAAErC,EAAEiJ,OAAOlJ,EAAE,CAAC4D,MAAM5D,EAAE,GAAG+B,GAAGA,EAAE6B,QAAQ3D,EAAEwF,aAAa,CAACc,KAAKxE,EAAE/B,EAAE,GAAG+B,EAAEwE,MAAM,KAAK9D,EAAE,CAACmB,MAAM,CAACA,MAAM,SAANA,QAAiB/B,KAAKyH,QAAQ,SAARA,QAAiBtJ,IAAI,SAASC,EAAED,GAAG,OAAOC,EAAEsJ,SAAS,KAAK,GAAG,KAAK,GAAGtJ,EAAEuJ,iBAAiB,KAAKvJ,EAAEsJ,QAAQhC,EAAEvH,GAAGwH,EAAExH,GAAG,MAAM,KAAK,GAAGA,EAAEyJ,QAAQxJ,EAAEuJ,iBAAiBxJ,EAAE+G,QAAQ,GAAGU,EAAEzH,EAAEC,GAAG,MAAM,KAAK,EAAED,EAAEyF,YAAYiE,WAAW1J,EAAE+G,QAAQ,GAAGU,EAAEzH,EAAEC,GAAG,MAAM,KAAK,GAAGD,EAAE4D,MAAMpC,MAAM,GAAGiF,EAAEzG,IAAtP,CAA2PA,EAAEC,IAAI0J,KAAK,SAALA,OAAgBlD,EAAExG,KAAKsG,KAAK,CAACqD,UAAU,SAAVA,UAAmB3J,GAAGA,EAAEuJ,kBAAkBK,MAAM,SAANA,MAAe7J,IAAI,SAASC,EAAED,GAAG,IAAIE,EAAEF,EAAEoF,WAAWwB,IAAIkD,cAAcxJ,EAAEqB,MAAMG,KAAK9B,EAAEuG,KAAKwD,iBAAiB7J,IAAIY,EAAEb,EAAE+J,OAAOC,QAAQ/J,GAAGY,GAAGA,EAAEoJ,WAAWhK,GAAGuH,EAAEzH,EAAEC,EAAEK,EAAEoE,QAAQ5D,IAArJ,CAA0Jd,EAAEC,MAAMuI,EAAE/F,GAAG,SAASzC,EAAEE,IAAID,EAAEwF,aAAa,UAAUvF,KAAKoC,EAAEtC,GAAGE,KAAKoC,EAAEtC,GAAGE,GAAGuC,EAAEzC,GAAGE,QAAQsI,EAAElG,GAAG,SAAStC,EAAEE,GAAGD,EAAED,GAAGmK,iBAAiBjK,EAAEoC,EAAEtC,GAAGE,OAA6e+I,CAAEhJ,GAAGA,EAAE4E,KAAKC,MAAM,OAAOL,EAAExE,GAAGgF,MAAM,SAAShF,GAAG,IAAI,OAAOiD,EAAEhB,KAAKhC,GAAG,MAAMD,GAAG,OAAOa,EAAEb,MAAMa,GAAG,SAASoC,IAAI,OAAOS,EAAE,OAAO1D,GAAGK,IAAI,OAAO4C,EAAEhB,KAAKhC,MAAM,SAASkK,EAAEnK,GAAG,IAAID,EAAEC,EAAEsB,UAAUvB,EAAEqK,KAAK,WAAW5B,EAAEb,OAAO5H,EAAEsK,MAAM,SAASrK,GAAG0H,EAAEC,KAAK3H,IAAID,EAAEuK,OAAO,WAAW,GAAG3C,KAAKtB,QAAQ,CAAC,IAAIrG,EAAE2H,KAAKtB,QAAQzD,WAAW5C,EAAE6C,aAAa8E,KAAKhE,MAAMgE,KAAKtB,SAASrG,EAAEuK,YAAY5C,KAAKtB,SAAS,IAAItG,EAAEwI,GAAGxI,EAAE4H,MAAMsB,QAAQ,SAASjJ,EAAEC,GAAGF,EAAEC,GAAGwK,oBAAoBvK,EAAEF,EAAEkJ,OAAOjJ,GAAGC,QAAQF,EAAE0K,KAAK,WAAWtE,EAAEwB,OAAO5H,EAAE2K,MAAM,WAAWlE,EAAEmB,OAAO5H,EAAE4K,KAAK,SAAS3K,GAAGyG,EAAEzG,EAAE2H,OAAO5H,EAAEwF,KAAK,WAAW+B,EAAEK,OAAO5H,EAAE6K,SAAS,WAAWrD,EAAEI,OAAO5H,EAAE8K,OAAO,SAAS7K,GAAGwH,EAAEG,KAAK,KAAK3H,IAAID,EAAE+K,OAAO,SAAS9K,EAAED,EAAEE,GAAG,OAAOiE,EAAElE,EAAED,EAAEE,IAAI,OAAO,SAASD,EAAED,GAAG4H,KAAKoD,QAAQhL,EAAE4H,KAAKT,GAAGlH,EAAEgL,WAAWhL,EAAEgL,WAAW,GAAG,EAAErD,KAAKxF,KAAK,eAAewF,KAAKtB,QAAQ,EAAEsB,KAAKI,UAAU,EAAEJ,KAAKuB,SAAS,EAAEvB,KAAKnC,YAAY,CAACsD,SAAS,WAAWnC,IAAI,KAAKlB,WAAW,GAAGkC,KAAKxC,WAAW,CAACwB,IAAI,MAAM,SAAS3G,GAAG,IAAID,EAAEC,EAAEmC,KAAK9B,EAAEL,EAAE+K,QAAQlK,EAAEb,EAAEwF,YAAY1D,EAAE9B,EAAEmF,WAAW,IAAI,IAAIvD,KAAKvB,EAAE,GAAG,WAAWJ,EAAEI,EAAEuB,IAAI,IAAI,IAAIY,KAAKxC,EAAE4B,KAAK5B,EAAE4B,GAAG,IAAIvB,EAAEuB,GAAG5B,EAAE4B,GAAGY,GAAGnC,EAAEuB,GAAGY,QAAQxC,EAAE4B,GAAGvB,EAAEuB,GAAG5B,EAAEiL,SAASjL,EAAEiL,UAAU,IAAIlL,EAAEc,EAAEgI,YAAYhI,EAAEgI,aAAa7I,EAAEiL,SAASpK,EAAEqG,GAAGrG,EAAEqG,IAAInH,EAAE,SAASC,EAAEkH,GAAGpF,EAAEoF,GAAGpF,EAAEoF,IAAInH,EAAE,UAAUC,EAAE2D,MAAMtB,EAAErC,EAAEiL,UAA7S,CAAwTtD,MAAMwC,EAAElI,KAAK0F,KAAK3H,GAAGwI,EAAEb,QAAQ,UAAwBxG,EAAP+J,SAAS,IAAoBC,EAAOA,EAAOD,QAAQnL,SAAkD,0BAARqL,KAAQ,mC,kBCClzRC,GAAGC,eAAiB,CAChBlB,KAAM,SAANA,OACI,GAAIiB,GAAGjJ,KAAKmJ,KAGR,IAFA,IAAMC,EAAOlJ,SAASoE,qBAAqB,OACvC7F,EAAI2K,EAAK5K,OACNC,KACH2K,EAAK3K,GAAGmC,aAAa,aAAa,M,kBCCtDyI,OAAOC,WAAc,WACjB,IAAIC,EAAmBF,OAAOE,kBAAoBF,OAAOG,uBACrDC,EAAyBJ,OAAOvB,iBAEpC,OAAO,SAAU4B,EAAKC,EAAeC,EAAiBC,GAClD,GAAIN,EAAkB,CAClB,IAAIO,EAAM,IAAIP,GAAiB,SAAUQ,GACjCJ,EACAE,EAASE,IAELA,EAAU,GAAGC,WAAWxL,QAAUuL,EAAU,GAAGE,aAAazL,SAAQqL,OAG5ElB,EAAUiB,GAAmB,CAC7BM,WAAW,EACXC,SAAS,EACTC,YAAY,GAEZV,GACAI,EAAIO,QAAQX,EAAKf,QAEdc,IACPC,EAAI5B,iBAAiB,kBAAmB+B,GAAU,GAClDH,EAAI5B,iBAAiB,iBAAkB+B,GAAU,KAvBxC,I,kBCPrB,IA0BQS,IAAU,CACVC,QAAS,SAATA,QAAmBC,GACf,OAAKA,GAIDC,mBACIvK,SAASwK,OAAOzJ,QACZ,IAAI0J,OACA,mBACIC,mBAAmBJ,GAAMvJ,QAAQ,cAAe,QAChD,+BAER,QAVD,MAef4J,QAAS,SAATA,QAAmBL,EAAMM,EAAQC,EAAMC,EAAOC,EAASC,GACnD,IAAKV,GAAQ,6CAA6CxK,KAAKwK,GAC3D,OAAO,EAEX,IAAIW,EAAW,GACf,GAAIJ,EACA,OAAQA,EAAK9L,aACT,KAAKmM,OACDD,EAAWJ,IAASM,IAAW,0CAA4C,aAAeN,EAC1F,MACJ,KAAKjK,OACDqK,EAAW,aAAeJ,EAC1B,MACJ,KAAKO,KACDH,EAAW,aAAeJ,EAAKQ,cAY3C,OARArL,SAASwK,OACLE,mBAAmBJ,GACnB,IACAI,mBAAmBE,GACnBK,GACCF,EAAU,YAAcA,EAAU,KAClCD,EAAQ,UAAYA,EAAQ,KAC5BE,EAAU,WAAa,KACrB,GAEXM,WAAY,SAAZA,WAAsBhB,EAAMQ,EAAOC,GAC/B,QAAK1F,KAAKkG,QAAQjB,KAGlBtK,SAASwK,OACLE,mBAAmBJ,GACnB,4CACCS,EAAU,YAAcA,EAAU,KAClCD,EAAQ,UAAYA,EAAQ,KAC1B,IAEXS,QAAS,SAATA,QAAmBjB,GACf,QAAKA,GAGE,IAAIG,OAAO,cAAgBC,mBAAmBJ,GAAMvJ,QAAQ,cAAe,QAAU,WAAWjB,KACnGE,SAASwK,SAGjB3M,KAAM,SAANA,OAII,IAHA,IAAI2N,EAAQxL,SAASwK,OAChBzJ,QAAQ,0DAA2D,IACnEwD,MAAM,uBACFkH,EAAOD,EAAMlN,OAAQoN,EAAO,EAAGA,EAAOD,EAAMC,IACjDF,EAAME,GAAQnB,mBAAmBiB,EAAME,IAE3C,OAAOF,IAIfzC,GAAGqB,QAAUA,G,kBCvGjB,IACQuB,EAEA3H,EAFA2H,EAAQC,EAAE,QAEV5H,EAAO,CACP6H,WAAY,eACZC,aAAc,qBAEdhE,KAAM,SAANA,OACI9D,EAAK+H,GAAGC,QACRhI,EAAKiI,WAETA,QAAS,SAATA,UACIN,EAAMI,GAAG,QAAS,4BAA4B,SAAUrO,GACpDA,EAAEuJ,iBACFjD,EAAK+H,GAAGG,WAAWN,EAAEvG,WAG7B0G,GAAI,CACAC,MAAO,SAAPA,QACmBJ,EAAE,oBAERO,MAAK,WACIP,EAAEvG,MAAM+G,KAAK,0BACnBC,WAIhBH,WAAY,SAAZA,WAAsBI,GAClB,IAAIC,EAAUD,EACVE,EAAWD,EAAQ7E,QAAQ,oBAC3B+E,EAAUD,EAASE,SAAS,0BAA0BC,SAC1D3I,EAAK4I,kBAAkBJ,GAEvBA,EAASK,YAAY,YACrBN,EAAQH,KAAK,KAAKS,YAAY7I,EAAK6H,WAAa,IAAM7H,EAAK8H,cAEvDU,EAASM,SAAS,aAClBP,EAAQQ,KAAK,iBAAiB,GAC9BN,EAAQM,KAAK,eAAe,KAE5BR,EAAQQ,KAAK,iBAAiB,GAC9BN,EAAQM,KAAK,eAAe,KAGpCC,UAAW,SAAXA,UAAqBV,GACjB,IAAIE,EAAWZ,EAAE,oBACjB5H,EAAK4I,kBAAkBJ,GACvBA,EAASS,YAAY,YACrB,IAAIR,EAAUD,EAASE,SAAS,0BAA0BL,OAC5CT,EAAE,4BAGXmB,KAAK,gBAAiB,SACtBX,KAAK,KACLc,SAASlJ,EAAK6H,YACdoB,YAAYjJ,EAAK8H,cACtBW,EAAQM,KAAK,eAAe,KAGpCH,kBAAiB,SAAjBA,kBAAkBO,QAC8BC,IAAxCD,EAAgB7K,KAAK,gBAAwE,KAAxC6K,EAAgB7K,KAAK,iBAC1E0B,EAAK6H,WAAasB,EAAgB7K,KAAK,qBAGG8K,IAA1CD,EAAgB7K,KAAK,kBAA4E,KAA1C6K,EAAgB7K,KAAK,mBAC5E0B,EAAK8H,aAAeqB,EAAgB7K,KAAK,oBAKrDyG,GAAG/E,KAAOA,G,oBCtEd,IACU2H,IAAQC,EAAE,QAChB7C,GAAGsE,WAAa,CACZC,OAAQ,CACJf,QAAS,wBACTE,QAAS,KACTc,SAAU,KACVC,SAAU,0BACVC,QAAS,yBACTC,KAAM,MAEV5F,KAAM,SAANA,OAC8CzC,KAAKsI,cAAc7F,OAC7DzC,KAAKuI,MACLvI,KAAKwI,YAETF,cAAe,CACX7F,KAAM,SAANA,OACI,IAAIgG,EAAWlC,EAAE,gBACbkC,EAASxP,QACTwP,EAASC,MAAMnC,EAAE,qBAGzBoC,KAAM,SAANA,OACIpC,EAAE,8BAA8BmB,KAAK,eAAe,IAExDV,KAAM,SAANA,OACIT,EAAE,8BAA8BqC,WAAW,iBAGnDL,IAAK,SAALA,MACIvI,KAAKiI,OAAOC,SAAWvN,SAASwH,iBAAiBnC,KAAKiI,OAAOf,SAC7DlH,KAAKiI,OAAOE,SAAWxN,SAASwH,iBAAiBnC,KAAKiI,OAAOE,UAC7DnI,KAAKiI,OAAOG,QAAUzN,SAASwH,iBAAiBnC,KAAKiI,OAAOG,UAEhEI,SAAU,SAAVA,WAAsB,IAAAK,EAAA,KAClB7I,KAAKiI,OAAOC,SAAS/O,SAAQ,SAAA2P,GACzBA,EAAOvG,iBAAiB,SAAS,SAAAlK,GAC7BwQ,EAAKE,QAAQ1Q,SAGrB2H,KAAKiI,OAAOE,SAAShP,SAAQ,SAAA2P,GACzBA,EAAOvG,iBAAiB,SAAS,SAAAlK,GAC7BwQ,EAAKC,eAGb9I,KAAKiI,OAAOG,QAAQjP,SAAQ,SAAA2P,GACxBA,EAAOvG,iBAAiB,SAAS,SAAAlK,GAC7BwQ,EAAK7B,KAAKT,EAAEuC,GAAQzG,QAAQ,kBAIxC0G,QAAS,SAATA,QAAmB1Q,GACfA,EAAEuJ,iBACF5B,KAAKiI,OAAOb,QAAU/O,EAAE2Q,cAAc7N,aAAa,eACnD6E,KAAKiI,OAAOI,KAAOhQ,EAAE2Q,cAAcC,KACnCjJ,KAAK2I,KAAK3I,KAAKiI,OAAOb,UAE1B8B,SAAU,SAAVA,SAAoBtP,GAChBkK,OAAOqF,SAASF,KAAOrP,GAE3B+O,KAAM,SAANA,KAAgBvG,GACZkE,EAAMoB,KAAK,cAAe,SAC1B1H,KAAKsI,cAAcK,OACnBpC,EAAEnE,GAAQyF,SAAS,YACnBtB,EAAEnE,GAAQsF,KAAK,QAAQ,IAE3BV,KAAM,SAANA,KAAgB5E,GACZpC,KAAKsI,cAActB,OACnBT,EAAEnE,GAAQwF,YAAY,YACtBrB,EAAEnE,GAAQwG,WAAW,SAEzBE,OAAQ,SAARA,SACI9I,KAAKkJ,SAASlJ,KAAKiI,OAAOI,S,kBCzEtC,IACQ/B,EACA8C,EAIAC,EALA/C,EAAQC,EAAE,QACV6C,EAAU7C,EAAEzC,QAIZuF,EAAQ,CACRnC,QAASX,EAAE,yBACXa,QAAS,KACTkC,QAAQ,EACRC,SAAU,KACVC,MAAO,KACPC,OAAQ,KACRC,sBAAsB,EAEtBjH,KAAM,SAANA,OACQzC,KAAK0J,sBAAsBL,EAAMf,cAAc7F,OACnD4G,EAAMjC,QAAUb,EAAE8C,EAAMnC,QAAQjK,KAAK,WACrCoM,EAAMzC,WAEV0B,cAAe,CACX7F,KAAM,SAANA,OAGI,IAAIgG,EAAWlC,EAAE,gBACbkC,EAASxP,QACTwP,EAASC,MAAMnC,EAAE,wBAGrBA,EAAE,0BAA0BxL,OAAO,6CAEvC4N,KAAM,SAANA,OACIpC,EAAE,8BAA8BmB,KAAK,eAAe,IAExDV,KAAM,SAANA,OACIT,EAAE,8BAA8BqC,WAAW,iBAGnDhC,QAAS,SAATA,UACIN,EAAMI,GAAG,QAAS,yBAAyB,SAAUrO,GACjDA,EAAEuJ,iBACFyH,EAAMnC,QAAUX,EAAEvG,MAClBqJ,EAAMjC,QAAUb,EAAE8C,EAAMnC,QAAQjK,KAAK,WACrCoM,EAAMI,OAASJ,EAAMjC,QAAQL,KAAK,UAClCsC,EAAMG,MAAQH,EAAMjC,QAAQL,KAAK,oBACjCsC,EAAMG,MAAM1C,MAAK,SAAUvI,GACnBA,IAAU8K,EAAMG,MAAMvQ,OAAS,IAC/BoQ,EAAME,SAAWhD,EAAEvG,UAG3BqJ,EAAM3C,GAAGiC,UAGbrC,EAAMI,GAAG,QAAS,UAAU,SAAUrO,GAClC,IAAI+J,EAASmE,EAAElO,EAAE+J,SACZA,EAAOuH,GAAG,oBAAsBvH,EAAOC,QAAQ,kBAAkBpJ,OAAS,GAE3EoQ,EAAM3C,GAAGM,UAIjBV,EAAMI,GAAG,QAAS,0BAA0B,SAAUrO,GAClDgR,EAAM3C,GAAGM,UAGbT,EAAE,UAAUG,GAAG,UAAW2C,EAAMO,WAAWC,KAAKR,IAEhDD,EAAQ1C,GAAG,SAAS,SAAUrO,GA/D1B,KAgEIA,EAAEsJ,UACF0H,EAAMC,QAAS,OAI3B5C,GAAI,CACAiC,KAAM,SAANA,KAAgBtQ,QACiB,IAAlBqL,GAAGoG,YACVpG,GAAGoG,WAAWC,QAElBtI,YAAW,WACP6E,EAAMoB,KAAK,cAAe,SAC1B2B,EAAMf,cAAcK,OACpB,IAAMqB,EAAaX,EAAMjC,QAAQL,KAAK,eAClCiD,EAAW/Q,OAAQ+Q,EAAW5O,QAC7BiO,EAAMI,OAAOrO,UACnB,KACHiO,EAAMjC,QAAQ/E,QAAQ,qBAAqBwF,SAAS,YACpDtB,EAAE,4BAA4BsB,SAAS,6BAE3Cb,KAAM,SAANA,OACIV,EAAMsC,WAAW,eACjBS,EAAMf,cAActB,OACpBqC,EAAMjC,QAAQ/E,QAAQ,qBAAqBuF,YAAY,aAE3DqC,IAAK,SAALA,MACIZ,EAAMI,OAAOS,IAAI,YACjBb,EAAME,SAASW,IAAI,YACnBb,EAAME,SAAS7C,GAAG,YAAY,WAC1B2C,EAAMI,OAAOrO,YAGrB+O,UAAW,SAAXA,YACId,EAAME,SAASW,IAAI,YACnBb,EAAMI,OAAOS,IAAI,YACjBb,EAAMI,OAAO/C,GAAG,YAAY,WACxB2C,EAAME,SAASnO,aAI3BwO,WAAY,SAAZA,WAAsBvR,GAxGd,KAyGAA,EAAEsJ,UACF0H,EAAMC,QAAS,GA3Gd,KA8GAjR,EAAEsJ,SAAWtJ,EAAE+R,SACXf,EAAMC,OAGPD,EAAM3C,GAAGyD,YAFTd,EAAM3C,GAAGuD,SAQzBvG,GAAG2F,MAAQA,G,wBC1HP/C,EACA+D,EAEAC,E,OAHAhE,EAAQC,EAAE,QACV8D,GAAW,GAEXC,EAAY,CACZC,UAAWhE,EAAE,cACbiE,gBAAiBjE,EAAE,qBACnBkE,aAAclE,EAAE,uBAChBmE,mBAAoBnE,EAAE,8BACtB8D,UAAU,EACVM,cAAc,EACdC,MAAO,YACPC,oBAAqBtE,EAAE,0BACvBuE,SAAU,GACVC,kBAAmB,GACnBC,cAAc,EACdC,mBAAmB,EACnBC,kBAAkB,EAClBC,gBAAgB,EAChBC,gBAAiB,EACjBC,eAAe,EAEf5I,KAAM,SAANA,OACI6H,EAAUgB,iBACVhB,EAAUiB,MAAMhF,EAAE,sBAClB+D,EAAU1D,UACV0D,EAAUkB,sBAEdA,mBAAoB,SAApBA,uBACA5E,QAAS,SAATA,UACIN,EAAMI,GAAG,QAAS,uBAAuB,SAAUrO,GAC/CA,EAAEoT,2BAEgC,cAA9BnF,EAAMoB,KAAK,gBAAkC4C,EAAUe,eACvD3H,GAAGgI,UAAUhF,GAAGM,OAEpB,IAAMU,EAAOnB,EAAEvG,MAAM2J,GAAG,uBAExB,KAAIpD,EAAEvG,MAAMyH,SAAS,aAAgD,cAAhCjO,EAAOkO,KAAsC,IAATA,GAAkB2C,GAA3F,CAGIhS,EAAEuJ,iBACF,IAAM+J,EAAQpF,EAAEvG,MAChBsK,EAAU5D,GAAGY,OAAOsE,OAAOD,GAG/BpF,EAAEvG,MAAMG,QAAQ,8BAGhBmG,EAAMI,GAAG,QAAS,8BAA8B,SAAUrO,GACtD,IAAMqP,EAAOnB,EAAEvG,MAAM2J,GAAG,uBAExB,KACIpD,EAAEvG,MAAMyH,SAAS,aACgB,cAAhCjO,EAAOkO,KAAsC,IAATA,GAAkB2C,GACvDC,EAAUuB,yBAAyBtF,EAAEvG,QAHzC,CAOI3H,EAAEuJ,iBACF,IAAM+J,EAAQpF,EAAEvG,MAChBsK,EAAU5D,GAAGY,OAAOwE,OAAOH,OAMnCrF,EAAMI,GAAG,QAAS,eAAe,SAAUrO,GACvCA,EAAEuJ,iBACF,IAAM+J,EAAQpF,EAAEvG,MAChBsK,EAAU5D,GAAGY,OAAOyE,IAAIJ,MAIhCpF,EAAE5L,UAAU+L,GAAG4D,EAAUM,MAAQ,OAAO,WAEpCP,GAAW,KAGf9D,EAAE5L,UAAU+L,GAAG4D,EAAUM,MAAQ,QAAQ,WAErCP,GAAW,MAGnBkB,MAAO,SAAPA,MAAiBtE,GACTqD,EAAUa,gBACVb,EAAU0B,UAGd1B,EAAUE,gBAAkBvD,EAE5BqD,EAAUE,gBAAgB1D,MAAK,WAC3B,IAAI6E,EAAQpF,EAAEvG,MACViM,EAAkBN,EAAMtJ,QAAQ,cAEhC4J,EAAgBC,OAAO,4BAA4BjT,SACnDqR,EAAUY,iBAAmBe,EAAgBC,SAASjP,KAAK,sBAG/D0O,EAAM5E,KAAK,0BAA0BD,MAAK,SAAUvI,GAChD,IAAIoN,EAAQpF,EAAEvG,MACd,GAAIsK,EAAUY,kBAAmD,QAA/BZ,EAAUY,iBAA4B,CACpE,GAAIZ,EAAUuB,yBAAyBF,GACnC,OAGCrB,EAAU6B,sBAAsBnM,OACjCzB,IAAU+L,EAAUc,iBACnBO,EAAMlE,SAAS,sBAShBkE,EAAM/D,YAAY,YAClB+D,EAAM5E,KAAK,8BAA8BW,KAAK,gBAAiB,SAC/DiE,EAAM5E,KAAK,8BAA8BC,SATzC2E,EAAM9D,SAAS,YACf8D,EAAM5E,KAAK,8BAA8BW,KAAK,gBAAiB,QAC/DiE,EAAM5E,KAAK,8BAA8B4B,OACrCgD,EAAM5E,KAAK,mBAAmB9N,QAC9BqR,EAAU8B,oBAAoBT,EAAM5E,KAAK,0BAQjD4E,EAAM9D,SAAS,YACf8D,EAAM5E,KAAK,8BAA8BW,KAAK,gBAAiB,QAC/DiE,EAAM5E,KAAK,8BAA8B4B,cAKzDwD,sBAAuB,SAAvBA,wBACI,OAAO7B,EAAUU,cAErBqB,sBAAuB,SAAvBA,sBAAiCC,KACjCC,iBAAkB,SAAlBA,iBAA4BD,KAC5BE,aAAc,SAAdA,aAAwBF,GACpB,IAAIG,EAGJ,QAD6C,IAAlCH,EAAM5E,KAAK,oBAAwE,SAAlC4E,EAAM5E,KAAK,mBAEnE+E,EAAUnC,EAAUiC,iBAAiBD,OAClC,CACH,IAAMI,EAAWJ,EAAM5E,KAAK,iBACtBiF,EAAaL,EAAM5E,KAAK,mBAE9B+E,EACI,2CAFcpH,mBAAmBkB,EAAE,wBAAwBmB,KAAK,YAIhE,aACAgF,EACA,eACAC,EAER,OAAOF,GAEXL,oBAAqB,SAArBA,oBAA+BE,GAC3B,IAAIG,EAAUnC,EAAUkC,aAAaF,GACjCM,EAAaN,EAAMJ,SACvB3F,EAAEsG,KAAK,CACHC,IAAKL,EACLM,QAAS,SAATA,QAAmB9P,GACfqP,EAAMjK,QAAQ,0BAA0BqF,KAAK,kBAAmB,QAChE4E,EAAMU,YAAY/P,GACd2P,EAAW7F,KAAK,qBAAqB9N,QACrCqR,EAAUiB,MAAMqB,EAAW7F,KAAK,sBAEpC6F,EAAW7F,KAAK,uBAAuB1H,SACvCiL,EAAU+B,sBAAsBO,IAEpCK,MAAO,SAAPA,aAGRvG,GAAI,CACAY,OAAQ,CACJsE,OAAQ,SAARA,OAAkBD,GACd,IAAIuB,EACAC,EAAoBxB,EAAM/N,KAAK,uBACnC,QAAiD,IAAtC+N,EAAMjE,KAAK,uBAAwC,CAC1D,IAAM0F,EAAgBzB,EAAMjE,KAAK,uBACjCyF,EAAoB5G,EAAE6G,GAE1BD,EAAkBE,YAAY,KAAK,WAC3B1B,EAAMO,SAASzE,SAAS,uBACxBlB,EAAE,qBAAqB+G,OAAO,QAC9BhD,EAAUK,aAAeuC,MAGjCvB,EAAMnE,YAAY,YAElB,IAAML,EAAWwE,EAAMtJ,QAAQ,yBAE/B6K,IAA0C,SAAhCvB,EAAMjE,KAAK,kBACrBiE,EAAMjE,KAAK,gBAAiBwF,GAC5B,IAAMK,EAA0BhH,EAAEiH,MAAM,4BACxCjH,EAAE5L,UAAUwF,QAAQoN,EAAyB,CAAC5B,EAAOwB,IACjDhG,EAASlO,QAAQqR,EAAU5D,GAAG+G,eAAe9B,EAAOuB,EAAO/F,IAEnE2E,OAAQ,SAARA,OAAkBH,GACd,IAAM+B,EAAU/B,EAAMtJ,QAAQ,0BACxBsL,EAAUhC,EAAMtJ,QAAQ,qBAAqBgF,SAAS,aAEtD6F,IAA0C,SAAhCvB,EAAMjE,KAAK,kBAC3BiE,EAAMjE,KAAK,gBAAiBwF,GAC5B,IAAM/F,EAAWwE,EAAMtJ,QAAQ,yBAC3B8E,EAASlO,QAAQqR,EAAU5D,GAAG+G,eAAe9B,EAAOuB,EAAO/F,GAC1DuG,EAAQjG,SAAS,YAkBlBiG,EAAQrG,SAAS,8BAA8BuG,QAAQ,KAAK,WACxDjC,EAAM/D,YAAY,YAClB8F,EAAQ9F,YAAY,iBAnBpB0C,EAAUW,mBAAqBX,EAAUuD,4BAA4BH,KACrEC,EAAQtG,SAAS,8BAA8BuG,QAAQ,KAE3DF,EAAQrG,SAAS,8BAA8ByG,UAAU,KAAK,YACtDxD,EAAUW,mBAAqBX,EAAUuD,4BAA4BH,KACrEC,EAAQ/F,YAAY,YAGxB8F,EAAQ7F,SAAS,YACuB,SAApC6F,EAAQhG,KAAK,oBAAiCgG,EAAQ3G,KAAK,mBAAmB9N,QAC9EqR,EAAU8B,oBAAoBsB,EAAQ3G,KAAK,oBAE/CuD,EAAU5D,GAAGqH,SAASpC,GACtB,IAAMqC,EAA0BzH,EAAEiH,MAAM,4BACxCjH,EAAE5L,UAAUwF,QAAQ6N,EAAyB,CAACrC,SAU1DI,IAAK,SAALA,IAAeJ,GACX,IAAIxE,EAAWwE,EAAMtJ,QAAQ,yBACzB6K,IAA0C,SAAhCvB,EAAMjE,KAAK,kBAGzB,GADAiE,EAAMjE,KAAK,gBAAiBwF,GACxBA,EAAO,CACP/F,EAASJ,KAAK,0BAA0Bc,SAAS,YACjDV,EACKJ,KAAK,mDACLc,SAAS,YACTH,KAAK,gBAAiBwF,GAC3B/F,EAASJ,KAAK,mDAAmD+G,UAAU,KAE3EnC,EAAMsC,KAAK,YAEX,IAAMC,EAAQ/G,EAASJ,KAAK,qBAC5BmH,EAAMpH,MAAK,WACiC,SAApCoH,EAAMxG,KAAK,sBAAmCwG,EAAMnH,KAAK,mBAAmB9N,QAC5EqR,EAAU8B,oBAAoB8B,EAAMnH,KAAK,4BAIjDI,EAASJ,KAAK,0BAA0Ba,YAAY,YACpDT,EACKJ,KAAK,mDACLa,YAAY,YACZF,KAAK,gBAAiBwF,GAC3B/F,EAASJ,KAAK,mDAAmD6G,QAAQ,KAEzEjC,EAAMsC,KAAK,gBAIvBF,SAAU,SAAVA,SAAoBpC,KACpB8B,eAAgB,SAAhBA,eAA0B9B,EAAOuB,EAAO/F,GACpC,IAAIgH,EACAhH,EAASlO,SACTkV,EAAchH,EAASJ,KAAK,gBAG5BoH,EAAYlV,QAAgD,SAAtCkV,EAAYzG,KAAK,mBACvCyG,EAAYzG,KAAK,gBAAiBwF,GAC9BA,EAAOiB,EAAYF,KAAK,YACvBE,EAAYF,KAAK,iBAIlCjC,QAAS,SAATA,UAEI1B,EAAUC,UAAUzD,MAAK,WACrB,IAAI6E,EAAQpF,EAAEvG,MACd2L,EAAM5E,KAAK,uBAAuBW,KAAK,gBAAiB,SACnDiE,EAAM5E,KAAK,uBAAuBU,SAAS,YAErCkE,EAAM5E,KAAK,uBAAuBU,SAAS,YAClDkE,EAAM5E,KAAK,uBAAuBW,KAAK,gBAAiB,QAExDiE,EAAM5E,KAAK,uBAAuBa,YAAY,YAJ9C+D,EAAM5E,KAAK,uBAAuBC,WAQ9CsE,eAAgB,SAAhBA,iBACQhB,EAAUO,oBAAoB5R,QAC9BqR,EAAUO,oBAAoB/D,MAAK,SAAUvI,GACzC+L,EAAUS,kBAAkBxM,GAASgI,EAAEvG,MACvCsK,EAAUQ,SAASvM,GAASgI,EAAEvG,MAAM/C,KAAK,mBACzCqN,EAAU8D,aAAa7P,OAInCsP,4BAA6B,SAA7BA,4BAAuCH,GACnC,OAAOpD,EAAUW,mBAErBmD,aAAc,SAAdA,aAAwB7P,GACpBgI,EAAE5L,UAAU+L,GAAG4D,EAAUQ,SAASvM,GAAS,OAAO,WAC9C,IAAI6D,EAASkI,EAAUS,kBAAkBxM,GACrC6D,EAAOnF,KAAK,qBAAuBqN,EAAUQ,SAASvM,KACtD6D,EAAOyF,SAAS,wBACwB,eAApCzF,EAAOnF,KAAK,qBACZmF,EAAOyF,SAAS,wBAEpByC,EAAUiB,MAAMjB,EAAUS,kBAAkBxM,GAAOwI,KAAK,0BAIhER,EAAE5L,UAAU+L,GAAG4D,EAAUQ,SAASvM,GAAS,QAAQ,WAE/C,IAAI6D,EAASkI,EAAUS,kBAAkBxM,GACrC6D,EAAOnF,KAAK,qBAAuBqN,EAAUQ,SAASvM,KACtD6D,EAAOwF,YAAY,6CACnBxF,EAAO2E,KAAK,8BAA8B4B,cAM5CjC,GAAGY,OAAOsE,OAAS,SAAUD,GACnC,IAAIuB,EACAC,EAAoBxB,EAAM/N,KAAK,uBACnC,QAAiD,IAAtC+N,EAAMjE,KAAK,uBAAwC,CAC1D,IAAM0F,EAAgBzB,EAAMjE,KAAK,uBACjCyF,EAAoB5G,EAAE6G,GAE1BD,EAAkBE,YAAY,KAAK,WAC3B1B,EAAMO,SAASzE,SAAS,uBACxBlB,EAAE,qBAAqB+G,OAAO,QAC9BhD,EAAUK,aAAeuC,MAGjCvB,EAAMnE,YAAY,YAElB,IAAML,EAAWwE,EAAMtJ,QAAQ,yBAE/B6K,IAA0C,SAAhCvB,EAAMjE,KAAK,kBACrBiE,EAAMjE,KAAK,gBAAiBwF,GAC5B,IAAMK,EAA0BhH,EAAEiH,MAAM,4BACxCjH,EAAE5L,UAAUwF,QAAQoN,EAAyB,CAAC5B,EAAOwB,IACjDhG,EAASlO,QAAQqR,EAAU5D,GAAG+G,eAAe9B,EAAOuB,EAAO/F,IAInEmD,EAAU5D,GAAGY,OAAOyE,IAAM,SAAUJ,GAChC,IAAIxE,EAAWwE,EAAMtJ,QAAQ,yBACzB6K,IAA0C,SAAhCvB,EAAMjE,KAAK,kBAGzB,GADAiE,EAAMjE,KAAK,gBAAiBwF,GACxBA,EAAO,CACP/F,EAASJ,KAAK,0BAA0Bc,SAAS,YACjDV,EACKJ,KAAK,mDACLc,SAAS,YACTH,KAAK,gBAAiBwF,GAC3B/F,EAASJ,KAAK,mDAAmD+G,UAAU,KAE3EnC,EAAMsC,KAAK,YAEX,IAAMC,EAAQ/G,EAASJ,KAAK,qBAC5BmH,EAAMpH,MAAK,WACiC,SAApCoH,EAAMxG,KAAK,sBAAmCwG,EAAMnH,KAAK,mBAAmB9N,QAC5EqR,EAAU8B,oBAAoB8B,EAAMnH,KAAK,4BAIjDI,EAASJ,KAAK,0BAA0Ba,YAAY,YACpDT,EACKJ,KAAK,mDACLa,YAAY,YACZF,KAAK,gBAAiBwF,GAC3B/F,EAASJ,KAAK,mDAAmD6G,QAAQ,KAEzEjC,EAAMsC,KAAK,eAKnB3D,EAAUuB,yBAA2B,SAAUF,GAC3C,QAASA,EAAM0C,QAAQ,qDAAqDpV,QAMpFyK,GAAG4G,UAAYA,G,kBCvYnB,IACQgE,IAAa,CACbC,SAAU,KACVnH,QAAS,KACToH,OAAQ,KACRC,WAAY,KACZC,iBAAkB,KAClB9D,MAAO,YAEPnI,KAAM,SAANA,OACqB8D,EAAE,8BAERO,MAAK,SAAUvI,GACtB,IAAIoN,EAAQpF,EAAEvG,MAWd,GATAsO,EAAWC,SAAW5C,EAAM1O,KAAK,cACjCqR,EAAWlH,QAAUb,EAAEoF,EAAM1O,KAAK,WAClCqR,EAAWK,WAAapI,EAAEoF,EAAM1O,KAAK,cACrCqR,EAAWE,OAAS7C,EAAM1O,KAAK,oBAE/BqR,EAAWM,QAAUjD,EAAM1O,KAAK,UAChCqR,EAAWO,aAAelD,EAAM1O,KAAK,gBACrCqR,EAAWQ,YAAcnD,EAAM1O,KAAK,eAEN,OAA1BqR,EAAWK,iBAAwD,IAA1BL,EAAWK,WAA4B,CAYnD,IAAAI,EAXD,SAAxBT,EAAWC,SACXD,EAAWC,SAAW5C,EAEtB2C,EAAWC,SAAW5C,EAAM5E,KAAKuH,EAAWC,UAEhDD,EAAWG,WAAaH,EAAWC,SAC9BS,OAAM,GAAM,GACZpG,WAAW,eACXlB,KAAK,wBAAyB4G,EAAWE,QAE9CF,EAAWU,QACPV,EAAWO,eACXP,EAAWlH,QAAQL,KAAK,uBAAuBc,SAASyG,EAAWO,cACxB,QAA3CE,EAAAT,EAAWlH,QAAQL,KAAK,2BAAmB,IAAAgI,GAA3CA,EAA6CnG,WAAW,mBAExD0F,EAAWQ,aACXR,EAAWC,SAAS1G,SAASyG,EAAWQ,cAEjB,IAAvBR,EAAWM,SACXN,EAAWjP,aAEZ,CACHiP,EAAWlH,QAAUuE,EAErB,IAAMsD,EAAQtD,EAAM1O,KAAK,UAAUiC,MAAM,KACzCqH,EAAEO,KAAKmI,GAAO,SAAU1Q,EAAO2Q,GAE3BZ,EAAWC,SAAWhI,EAAE2I,GACxBZ,EAAWG,WAAaH,EAAWC,SAC9BS,OAAM,GAAM,GACZtH,KAAK,wBAAyB4G,EAAWE,QAC9CF,EAAWU,QAEPV,EAAWO,cACXP,EAAWC,SAAS1G,SAASyG,EAAWO,cAGxCP,EAAWQ,aACXR,EAAWlH,QAAQL,KAAK,uBAAuBc,SAASyG,EAAWQ,cAE5C,IAAvBR,EAAWM,SACXN,EAAWjP,gBAK3BiP,EAAWa,SAGfH,MAAO,SAAPA,QACQV,EAAWC,SAAS9G,SAAS,YAE7B6G,EAAWlH,QAAQL,KAAK,uBAAuB9N,QAAU,IACrDqV,EAAWlH,QAAQuC,GAAG,MACtB2E,EAAWlH,QAAQrM,OAAO,wCAE1BuT,EAAWlH,QAAQrM,OAAO,0CAG9BuT,EAAWI,iBAAmBJ,EAAWlH,QAAQL,KAAK,uBAClDuH,EAAWG,WAAW9E,GAAG,QACzB2E,EAAWI,iBAAiB3T,OAAO,4CACnCuT,EAAWI,iBAAmBJ,EAAWlH,QACpCL,KAAK,2BACLc,SAASyG,EAAWQ,eAIjCR,EAAWI,iBAAiB3T,OAAOuT,EAAWG,YAC9CH,EAAWC,SAAS1G,SAAS,UAE7ByG,EAAWc,qBAEfD,MAAO,SAAPA,QACI,IAAIE,EAAcf,EAAWI,iBAAiBrH,WAE9CgI,EAAYC,MAAK,SAAUzU,EAAGsD,GAC1B,OAAOoI,EAAE1L,GAAGoC,KAAK,oBAAsBsJ,EAAEpI,GAAGlB,KAAK,uBAGrDqR,EAAWI,iBAAiBa,KAAKF,IAErChQ,OAAQ,SAARA,SACQiP,EAAWlH,QACXkH,EAAWC,SAASlP,SAEpBiP,EAAWkB,QAAQnQ,UAG3B+P,iBAAkB,SAAlBA,mBACI,IAAI7P,EACAkQ,EACAC,EACArF,GAAW,EACXsF,EAAgBrB,EAAWlH,SAE1BuI,GAAiBA,EAAc1W,QAAU,GAAK0W,EAAclI,SAAS,sBAE1ElI,EAAKoQ,EAAcjI,KAAK,QAEpBiI,EAAcjI,KAAK,KAAMnI,EAAK,WAElCoQ,EAAc5I,KAAK,2CAA2CD,MAAK,WAC/D,IAAI6E,EAAQpF,EAAEvG,MACd2L,EAAM9D,SAAS,mBACf,IAAItI,EAAKoM,EAAMjE,KAAK,MAChBkI,EAAWjE,EAAMjE,KAAK,aAEtBnI,GACAoM,EAAMjE,KAAK,KAAMnI,EAAK,WAEtBqQ,GACAjE,EAAMjE,KACF,YACAiE,EACKjE,KAAK,aACLxI,MAAM,KACNvC,KAAI,SAAA4C,GAAE,OAAIA,EAAK,aACf3C,KAAK,UAItB6S,EAAYE,EAAcjI,KAAK,wBAG3BgI,EAAanJ,EAAE,uBAAyBkJ,EAAY,KAC/CpF,GACDqF,EAAWhI,KAAK,CAAC,gBAAiB+H,EAAY,YAElDlJ,EAAE5L,UAAU+L,GAAG4H,EAAW1D,MAAQ,OAAO,WAErCP,GAAW,EACXqF,EAAWhI,KAAK,CAAC,gBAAiB+H,OAEtClJ,EAAE5L,UAAU+L,GAAG4H,EAAW1D,MAAQ,QAAQ,WAEtCP,GAAW,EACXqF,EAAWhI,KAAK,CAAC,gBAAiB+H,EAAY,mBAK9D/L,GAAG4K,WAAaA,G,kBCpKpB,IACQlF,EACA9C,EAEAoF,EAHAtC,EAAU7C,EAAEzC,QACZwC,EAAQC,EAAE,QAEVmF,EAAY,CACZjB,aAAclE,EAAE,wBAChBsJ,SAAU,KACVC,YAAa,KACb1I,QAAS,KACT2I,SAAU,KACVrC,QAAS,KACTsC,OAAQ,GACRC,WAAY1J,EAAE,cACd2J,UAAW,KACXC,SAAU5J,EAAE,sBACZqE,MAAO,YACPP,UAAU,EACV+F,aAAa,EACbC,UAAW,OACXC,IAAK,OAEL7N,KAAM,SAANA,OACIiJ,EAAU9E,WAGdA,QAAS,SAATA,UACQ8E,EAAU0E,cAGd1E,EAAU0E,aAAc,EAExB7J,EAAE5L,UAAU+L,GAAG,QAAS,wBAAwB,SAAUrO,GACtDA,EAAEuJ,iBACFvJ,EAAEkY,kBAEF,IAAM9R,EAAS8H,EAAEvG,MAAMyH,SAAS,YAC5B+I,EAAoBjK,EAAEvG,MAAM2J,GAAG,uBAC/B8G,EAAkBlK,EAAEvG,MAAM/C,KAAK,mBAAoB,EAKvD,GAHAyO,EAAUoE,YAAcvJ,EAAEvG,MAC1B0L,EAAU3E,KAAK3E,SAEX3D,EACAiN,EAAUhF,GAAGM,WACV,CACH,GAAI0E,EAAUrB,YAAmC,IAAtBmG,GAA+BC,GACtD,OAEA/E,EAAUhF,GAAGiC,KAAKtQ,OAK9BkO,EAAE5L,UAAU+L,GACR,QACA,6EACA,SAAUrO,GACNqT,EAAUhF,GAAGM,UAIrBoC,EAAQ1C,GAAG,UAAU,WACQ,MAArBgF,EAAUgC,SACVhC,EAAU3E,KAAK2J,gBAIvBnK,EAAE5L,UAAU+L,GAAGgF,EAAUd,MAAQ,OAAO,WAEpCc,EAAUrB,UAAW,KAEzB9D,EAAE5L,UAAU+L,GAAGgF,EAAUd,MAAQ,QAAQ,WAErCc,EAAUrB,UAAW,OAG7B3D,GAAI,CACAiC,KAAM,SAANA,KAAgBtQ,GAGPqT,EAAUoE,YAAYzN,QAAQ,sBAAsBpJ,aACzB,IAAjByK,GAAGoG,YACVpG,GAAGoG,WAAWC,MAAM1R,GAIxBqT,EAAUtE,UACVsE,EAAUoE,YAAY3P,QAAQ,iBAAkB,CAACuL,IAEjDA,EAAUtE,QAAQS,SAAS,YAC3B6D,EAAUoE,YAAYjI,SAAS,YAC/BvB,EAAMoB,KAAK,cAAe,aAC1BgE,EAAUtE,QAAQ/E,QAAQ,qBAAqBwF,SAAS,YACxD6D,EAAS,OAAQiF,OAEjBjF,EAAUtE,QAAQL,KAAK,qBAAqB6J,QAAQxV,QAGpDsQ,EAAUoE,YAAYpI,KAAK,CAAC,gBAAiB,SAC7CgE,EAAUtE,QAAQwB,WAAW,eAGf8C,EAAUtE,QAAQL,KAAK,QAAQ9N,OAAS,GAElDyS,EAAUtE,QAAQL,KAAK,cAAcD,MAAK,WACtCpD,GAAGmN,IAAInK,GAAGoK,YAAYvK,EAAEvG,UAGhC0L,EAAUoE,YAAY3P,QAAQ,mBAAoB,CAACuL,KAEvDA,EAAUqF,oBAEd/J,KAAM,SAANA,OAEQ0E,EAAUtE,UACVsE,EAAUoE,YAAY3P,QAAQ,kBAAmB,CAACuL,IAGlDA,EAAUoE,YAAYlI,YAAY,YAClC8D,EAAUtE,QAAQQ,YAAY,YAI1B8D,EAAUtE,QAAQM,KAAK,UACvBgE,EAAUtE,QAAQwB,WAAW,SAGjC8C,EAAUtE,QAAQ/E,QAAQ,oCAAoCuF,YAAY,YAE1E8D,EAAUtE,QAAQ/E,QAAQ,qBAAqBuF,YAAY,YAE3D8D,EAAS,OAAQsF,OAGjBtF,EAAUoE,YAAYpI,KAAK,CAAC,gBAAiB,UAC7CgE,EAAUtE,QAAQM,KAAK,CAAC,cAAe,SAGnCgE,EAAUuF,gBAAkBvF,EAAUuF,eAAehY,QAErDyS,EAAUoE,YAAcvJ,EACpB,wBAA0BmF,EAAUuF,eAAevJ,KAAK,qBAAuB,MAEnFgE,EAAU3E,KAAK3E,UAGmB,cAA9BkE,EAAMoB,KAAK,iBACXpB,EAAMsC,WAAW,eACjBrC,EAAE,cAAcqB,YAAY,gBAGhC8D,EAAUtE,SACVsE,EAAUtE,QAAQL,KAAK,eAAehF,OAE1C2J,EAAUoE,YAAY3P,QAAQ,mBAAoB,CAACuL,KAEvDA,EAAUwF,oBAEdlB,OAAQ,SAARA,SAG6B,MAArBtE,EAAUtE,SACVsE,EAAUhF,GAAGM,SAIzBD,KAAM,CACF3E,OAAQ,SAARA,SAEI,GAAImE,EAAE,uBAAuBtN,OAAQ,CACjCyS,EAAUmE,SAAWtJ,EAAE,uBACvBmF,EAAUtE,QAAUb,EAChB,sBAAwBmF,EAAUoE,YAAYpI,KAAK,sBAAwB,KAE/EgE,EAAUyE,SAAWzE,EAAUtE,QAC/B,IAAM+J,EAAUzF,EAAUyE,SAAS9B,QAAQ,sBACvC8C,EAAQlY,OACRyS,EAAUuF,eAAiBE,EAE3BzF,EAAUuF,eAAiB,KAE/BvF,EAAU3E,KAAKmF,WAGvBA,OAAQ,SAARA,SAGIR,EAAUgC,QAAU,KACpBhC,EAAUqE,SAAWxJ,EAAE,uBAEnBmF,EAAUqE,SAAS9W,SACnByS,EAAUqE,SAASjJ,MAAK,WACpB,IAAMsK,EAAU1F,EAAUoE,YAAYpI,KAAK,sBAG3C,IAAoC,IAFpBnB,EAAEvG,MAAM/C,KAAK,gBAAgBiC,MAAM,KAErCpC,QAAQsU,GAElB,OADA1F,EAAUgC,QAAUnH,EAAEvG,OACf,KAIU,MAArB0L,EAAUgC,UACVhC,EAAU3E,KAAK2J,aACfhF,EAAU3E,KAAKsK,gBAI3BA,WAAY,SAAZA,aAEQ3F,EAAUgC,QAAQ3G,KAAK,cAAc9N,SAAWyS,EAAUtE,QAAQL,KAAK,cAAc9N,QACrFyS,EAAUtE,QAAQkK,UAAU,kCAGpCZ,WAAY,SAAZA,aAGI,IAAIa,EAAU7F,EAAUgC,QAAQ8D,cAC5BC,EAAU/F,EAAUgC,QAAQgE,SAC5BC,EAAQF,EAAQG,KAChBC,EAASnG,EAAUgC,QAAQoE,aAC3BC,EAAS,GACTC,EAAmBP,EAEvB/F,EAAUuE,WAAa1J,EAAE,cACrBmF,EAAUuE,WAAWhX,SACrB+Y,EAAmBtG,EAAUuE,WAAWyB,UAG5C,IACIO,EADmBD,EAAiBJ,KACFlG,EAAUuE,WAAWiC,QACvDC,EAAcN,EAASF,EAa3B,GAXIjG,EAAUgC,QAAQ3G,KAAK,kBAAkB9N,SACzCsY,EAAU7F,EAAUgC,QAAQ3G,KAAK,kBAAkByK,eAGnD9F,EAAUgC,QAAQoE,eAAiBpG,EAAUoE,YAAYgC,eACzDD,EAASnG,EAAUgC,QAAQjG,SAAS,iBAAmB,GAAK,OACxDiE,EAAUrB,WACVwH,EAASnG,EAAUgC,QAAQjG,SAAS,iBAAmB,GAAK,SAIhE0K,EAAcF,EACdF,EAAS,CACLK,IAAKb,EACLc,MAAO,MACPH,MAAOL,OAER,CACHE,EAAS,CACLK,IAAKb,EACLW,MAAOL,GAEX,IAAIxB,EAAY3E,EAAUgC,QAAQzQ,KAAK,iBAAmByO,EAAU2E,UAEpE,OAAQA,GACJ,IAAK,OACL,IAAK,QACD0B,EAAO1B,GAAa,MACpB,MACJ,IAAK,SACD,IAAIqB,EAAShG,EAAUtE,QAAQ0K,aAAe,EAAIpG,EAAUgC,QAAQoE,aACpEC,EAAa,KAAI,eAAHvR,OAAkBkR,EAAM,QAIlDhG,EAAUtE,QAAQkL,IAAIP,KAG9BQ,OAAQ,CACJ5B,KAAM,SAANA,OAEI,OADAjF,EAAUwE,UAAYxE,EAAUoE,YAAYpI,KAAK,kBACzCgE,EAAUwE,WACd,IAAK,OACD,MACJ,IAAK,SACDxE,EAAUoE,YAAY/I,KAAK,KAAKc,SAAS,eACzC,MACJ,QACI6D,EAAUoE,YAAY/I,KAAK,KAAKc,SAAS6D,EAAUwE,aAG/Dc,KAAM,SAANA,OACItF,EAAUjB,aAAa3D,MAAK,WACxB,IAAI0L,EAAOjM,EAAEvG,MAAM0H,KAAK,kBACxB,OAAQ8K,GACJ,IAAK,OACD,MACJ,IAAK,SACD9G,EAAUoE,YAAY/I,KAAK,KAAKa,YAAY,eAC5C,MACJ,aACiBG,IAATyK,GAAoB9G,EAAUoE,YAAY/I,KAAK,KAAKa,YAAY4K,SAMxFzB,iBAAkB,SAAlBA,qBAEAG,iBAAkB,SAAlBA,sBAGJxN,GAAGgI,UAAYA,G,kBCnTnB,IACQtC,EACA9C,EAEAmM,EAHArJ,EAAU7C,EAAEzC,QACZwC,EAAQC,EAAE,QAEVkM,EAAY,CACZ9R,QAAS,eACT+R,gBAAiB,sBAEjBjQ,KAAM,SAANA,OACIgQ,EAAU3I,cAEdA,WAAY,SAAZA,aACIxD,EAAMI,GAAG,QAAS+L,EAAU9R,SAAS,SAAUtI,GAC3CA,EAAEuJ,iBACF2E,EAAE,cAAcoM,QAAQ,CAACnT,UAAW,GAAI,KACxC+G,EAAE5L,SAASiY,MAAM7L,KAAK,cAAc6J,QAAQxV,WAGhDgO,EAAQ1C,GAAG,UAAU,WACbH,EAAEkM,EAAUC,iBAAiBzZ,SACzBsN,EAAEvG,MAAMR,YAAc+G,EAAE,UAAU+G,SAClC/G,EAAEkM,EAAUC,iBAAiB7K,SAAS,2BAEtCtB,EAAEkM,EAAUC,iBAAiB9K,YAAY,iDAGzCrB,EAAEvG,MAAMR,YAAc,KACtB+G,EAAEkM,EAAUC,iBAAiB7K,SAAS,yBAGtC4K,EAAU1I,MAAM8I,kBAChBtM,EAAEkM,EAAUC,iBAAiB7K,SAAS,uBAEtCtB,EAAEkM,EAAUC,iBAAiB9K,YAAY,4BAKzDmC,MAAO,CACH8I,gBAAiB,SAAjBA,kBACI,IAAIC,EAAgBvM,EAAEzC,QAAQtE,YAAc+G,EAAEzC,QAAQwJ,SAEtD,OADmB/G,EAAE,UAAUmL,SAASU,KACjBU,KAKnCpP,GAAG+O,UAAYA,G,kBC/CnB,IACUM,IAAgB,CAClBtQ,KAAM,SAANA,OACI8D,EAAE,qBAAqBG,GAAG,SAAS,SAAUrO,GACzCA,EAAEuJ,iBACF,IAAMoR,EAAe,IAAMzM,EAAEvG,MAAM/C,KAAK,UACxCsJ,EAAEyM,GAAc3F,mBAI5B3J,GAAGqP,cAAgBA,G,mBCVvB,WACI,IACIE,EADA3M,EAAQC,EAAE,QAId,SAAS2M,YAAYjM,GACjB,IAAIkM,EAAWlM,EAAKoH,QAAQ,oBAAoB,GAGhD,OAFe8E,EAAW5M,EAAE4M,GAAUlW,KAAK,aAAe,GAW9D,IAAMmW,EAAc,CAChB3Q,KAAM,SAANA,OACI2Q,EAAYxM,WAEhBA,QAAS,SAATA,UACIN,EAAMI,GAAG,QAAS,sCAAsC,WACpD,IAAI2M,EAAK9M,EAAEvG,MAEXoT,EAAY7K,IAAI2D,OAAOmH,GACvBD,EAAY1M,GAAGxD,OAAOoQ,SAASD,MAGnC/M,EAAMI,GAAG,QAAS,kBAAkB,WAChC,IAAI2M,EAAK9M,EAAEvG,MACPuT,EAAWL,YAAYG,GAE3BD,EAAY7K,IAAI2D,OAAOmH,GACvBD,EAAYI,MAAMnU,OAAOkU,OAGjC7M,GAAI,CACAxD,OAAQ,CACJoQ,SAAU,SAAVA,SAAoBrM,GAChB,IAAIwM,EAAWxM,EAAKhK,KAAK,SACrByW,EAAQzM,EAAKhK,KAAK,SAClBsW,EAAWL,YAAYjM,GAE3BmM,EAAYI,MAAMlU,IAAImU,EAAUC,EAAOH,MAInDC,MAAO,CACHlU,IAAK,SAALA,IAAeqU,EAAOpU,EAAIgU,GACtB,IAAIK,EAAS,CACTC,kBAAmB,aACnBH,MAAOnU,EACPkU,SAAUE,EACVjH,SAAU6G,GAGdH,EAAYvG,KAAK+G,IAErBvU,OAAQ,SAARA,OAAkBkU,GACd,IAAIK,EAAS,CACTC,kBAAmB,cACnBnH,SAAU6G,GAGdH,EAAYvG,KAAK+G,IAErBE,SAAU,SAAVA,WAMIvN,EAAE,uBAAuBwN,IAAI,0BAA0BC,SAAS,CAC5DC,MAAO,EACPC,KAAM,OACNrM,SAAU,eAGdtB,EAAE,6BAA6BwN,IAAI,0BAA0BC,SAAS,CAClEC,MAAO,EACPC,KAAM,OACNrM,SAAU,eAGdpG,YAjBA,SAAS0S,WACL5N,EAAE,cAAclH,SAChBkH,EAAE,cAAcqB,YAAY,aAAaC,SAAS,iBAejC,MAG7BU,IAAK,CACD2D,OAAQ,SAARA,OAAkBjF,GACdgM,EAAgB1M,EAAEU,EAAKoH,QAAQ,iBAAiB,MAGxDxB,KAAM,SAANA,KAAgB+G,GACZA,EAAkB,UAlF1B,SAASQ,eACL,IAAIC,EAAY9N,EAAE,sBAAsBmB,KAAK,WAC7C,OAAO2M,GAAwB,GAgFLD,GAEtB7N,EAAEsG,KAAK,CACHqH,KAAM,MACNpH,IAAK,sCACLwH,SAAU,OACVrX,KAAM2W,EACNW,OAAO,EACPxH,QAAS,SAATA,QAAmBwC,GACf6D,EAAYoB,OAAOjF,GACnB6D,EAAYI,MAAMM,YAEtB7G,MAAO,SAAPA,MAAiBA,GACbwH,QAAQC,IAAIzH,OAIxBuH,OAAQ,SAARA,OAAkBjF,GACd0D,EAAc1D,KAAK,IACnB0D,EAAcjG,YAAYuC,KAIlC7L,GAAG0P,YAAcA,EAtHrB,I,kBCAA7M,EAAE5L,UAAUga,OAAM,WAEdpO,EAAE5L,UAAU+L,GAAG,QAAS,4BAA4B,SAAU5G,GAC1DA,EAAM8B,iBACN9B,EAAMyQ,kBACNhK,EAAEvG,MAAMwH,YAAY,UACpBjB,EAAE,4DAA4DiB,YAAY,UACtEjB,EAAE,gBAAgBoD,GAAG,aACrBiL,uBAIRrO,EAAE5L,UAAU+L,GAAG,SAAS,SAAUrO,GAEC,eAA3BkO,EAAElO,EAAE+J,QAAQsF,KAAK,OACU,eAA3BnB,EAAElO,EAAE+J,QAAQsF,KAAK,OAChBnB,EAAE,wCAAwCkB,SAAS,WAEpDlB,EAAE,wCAAwCsB,SAAS,aAK3DtB,EAAE,qDAAqDG,GAAG,sBAAsB,WAC3EH,EAAE,iDAAiDsO,MAAM5b,OAEpDsN,EAAE,uCAAuCqC,WAAW,YADpDrC,EAAE,uCAAuCmB,KAAK,WAAY,eAKpEnB,EAAE,0CAA0CmB,KAAK,WAAY,YAE7DnB,EAAE,wCAAwCG,GAAG,sBAAsB,WAC9DH,EAAEvG,MAAM6U,MAAM5b,OAETsN,EAAE,yCAAyCqC,WAAW,YADtDrC,EAAE,yCAAyCmB,KAAK,WAAY,eAKlEnB,EAAE,oBACF9E,YAAW,WACP8E,EAAE,mBAAmB+L,IAAI,aAAc,aACxC,KAIP/L,EAAE,qCAAqCG,GAAG,sBAAsB,WAC3DH,EAAE,qCAAqCsO,MAAM5b,OAExCsN,EAAE,sCAAsCqC,WAAW,YADnDrC,EAAE,sCAAsCmB,KAAK,WAAY,kBAiBvE5D,OAAOgR,oBAJP,SAASA,oBAAoBC,GACzB,IAAI9L,EAAO1C,EAAEwO,GAAWF,MACxB1L,SAASF,KAAOA,I,kBC/DpB,SAAS+L,QAAQ3c,EAAGD,GACf4H,KAAKiV,IAAM1O,EAAE,IAAMlO,GACf2H,KAAKkV,WAAalV,KAAKiV,IAAI5N,SAAS,MACpCrH,KAAKmV,OAASnV,KAAKiV,IAAIlO,KAAK,cAC5B/G,KAAK+P,SAAW/P,KAAKiV,IAAIlO,KAAK,gBAC9B/G,KAAKoV,UAAYpV,KAAK+P,SAASzQ,IAAIU,KAAKmV,QACxCnV,KAAKqV,YAAc,KACnBrV,KAAKsV,MAAQld,EACb4H,KAAKuV,YAAa,EAClBvV,KAAKxH,KAAO,CACTyR,IAAK,EACLuL,MAAO,GACPC,IAAK,GACLC,MAAO,GACP9D,KAAM,GACN+D,GAAI,GACJtD,MAAO,GACPuD,KAAM,IAEV5V,KAAK6V,eAEbb,QAAQrb,UAAUkc,aAAe,WAC7B,IAAIxd,EAAI2H,KAERA,KAAKoV,UAAU1T,SAAQ,SAAUtJ,GAC7B,OAAOC,EAAEyd,cAAcvP,EAAEvG,MAAO5H,MAEhC4H,KAAKoV,UAAUW,UAAS,SAAU3d,GAC9B,OAAOC,EAAE2d,eAAezP,EAAEvG,MAAO5H,MAErC4H,KAAKoV,UAAUha,OAAM,SAAUhD,GAC3B,OAAOC,EAAE4d,YAAY1P,EAAEvG,MAAO5H,MAElCmO,EAAE5L,UAAUsH,OAAM,SAAU7J,GACxB,OAAOC,EAAE6d,oBAAoB9d,OAIzC4c,QAAQrb,UAAUsc,YAAc,SAAU5d,EAAGD,GACzC,GAAI,MAAQ4H,KAAKqV,YAAarV,KAAKqV,YAAchd,OAC5C,GAAIA,EAAE,KAAO2H,KAAKqV,YAAY,GAAI,OAAO,EAC9C,IAAMnc,EAAI8G,KAAKqV,YAAYc,aAAa,OAAOxd,OAAO,MACtD,GACKqH,KAAKoV,UAAUxN,YAAY,iCAC5B5H,KAAKqV,YAAY1L,GAAG,YACd3J,KAAKqV,YAAYxN,SAAS,sBAC1B7H,KAAKqV,YAAYxN,SAAS,cAChC3O,EAAE2O,SAAS,cACX,IAAM7H,KAAKsV,MAEX,GAAI,IAAMtV,KAAKuV,WAAY,CACbld,EAAE6T,SACVvC,GAAG,aACD,SAAWtR,EAAEqP,KAAK,kBAClBrP,EAAEwP,SAAS,SAASR,SAAS,MAAMK,KAAK,cAAe,cACxD1H,KAAKsV,OAAQ,EACxB,OAAO,GAGXN,QAAQrb,UAAUmc,cAAgB,SAAUzd,EAAGD,GAC3C,IAAMc,EAAIb,EAAE6T,SACZ,GAAI9T,EAAEge,QAAUhe,EAAEie,QAAS,OAAO,EAElC,OAAQje,EAAEuJ,SACN,KAAK3B,KAAKxH,KAAKyR,IACXjK,KAAKiV,IAAIlO,KAAK,MAAMW,KAAK,cAAe,QACpC1H,KAAKoV,UAAUxN,YAAY,oBAC1B5H,KAAKqV,YAAc,KACdrV,KAAKuV,WACf,MACJ,KAAKvV,KAAKxH,KAAKid,IACX,KAAI/R,GAAG4S,KAAKpP,QAAQjO,OAAS,GAQzB,OACIC,EAAEyQ,GAAG,aACEtR,EAAEuP,YAAY,SAASP,SAAS,MAAMuJ,QAAQlJ,KAAK,cAAe,QAASrP,EAAE+C,UAC5E4E,KAAKqV,YAAcnc,EAAEgT,SACvB7T,EAAEuP,YAAY,SACb5H,KAAKuV,YAAa,EACnBvV,KAAKqV,YAAYja,QACjBlC,EAAEwO,KAAK,cAAe,SAC5BtP,EAAEmY,mBACF,EAbJ7M,GAAG4S,KAAK5P,GAAGM,OACXtD,GAAG4S,KAAKpP,QAAQ9L,QAgBxB,KAAK4E,KAAKxH,KAAKgd,MACf,KAAKxV,KAAKxH,KAAKkd,MAEX,OADUrd,EAAE6T,SAENvC,GAAG,aACEtR,EAAEwP,SAAS,SAASR,SAAS,MAAMuJ,QAAQlJ,KAAK,cAAe,SAC/D1H,KAAKuV,YAAa,EACnBvV,KAAKuW,kBAAkBle,GACvBA,EAAE0O,KAAK,iBAAiBA,KAAK,KAAK3L,UACjC4E,KAAKuW,kBAAkBle,GACxB2H,KAAKoV,UAAUxN,YAAY,uCAC3B5H,KAAKoV,UAAUxN,YAAY,uCAC3B5H,KAAKiV,IAAIlO,KAAK,MAAMgN,IAAI,YAAYrM,KAAK,cAAe,QACvD1H,KAAKqV,YAAc,MAC1Bjd,EAAEmY,mBACF,EAER,KAAKvQ,KAAKxH,KAAKoZ,KACX,OACI,IAAM5R,KAAKsV,OAASpc,EAAEyQ,GAAG,YAClB3J,KAAKqV,YAAcrV,KAAKwW,OAAOne,GAC/B2H,KAAKqV,YAAcrV,KAAKyW,eAAepe,GAC9C2H,KAAKqV,YAAYja,QACjBhD,EAAEmY,mBACF,EAER,KAAKvQ,KAAKxH,KAAK6Z,MACX,OACI,IAAMrS,KAAKsV,OAASpc,EAAEyQ,GAAG,YAClB3J,KAAKqV,YAAcrV,KAAK0W,SAASre,GACjC2H,KAAKqV,YAAcrV,KAAK2W,WAAWte,GAC1C2H,KAAKqV,YAAYja,QACjBhD,EAAEmY,mBACF,EAER,KAAKvQ,KAAKxH,KAAKmd,GACX,OACI,IAAM3V,KAAKsV,OAASpc,EAAEyQ,GAAG,YAClB3J,KAAKqV,YAAcrV,KAAKyW,eAAepe,GACvC2H,KAAKqV,YAAcrV,KAAKwW,OAAOne,GACtC2H,KAAKqV,YAAYja,QACjBhD,EAAEmY,mBACF,EAER,KAAKvQ,KAAKxH,KAAKod,KACX,OACI,IAAM5V,KAAKsV,OAASpc,EAAEyQ,GAAG,YAClB3J,KAAKqV,YAAcrV,KAAK2W,WAAWte,GACnC2H,KAAKqV,YAAcrV,KAAK0W,SAASre,GACxC2H,KAAKqV,YAAYja,QACjBhD,EAAEmY,mBACF,EAIZ,OAAO,GAGXyE,QAAQrb,UAAUgd,WAAa,SAAUte,GACrC,IAAIwC,EACAzC,EAAIC,EAAE6T,SACNhT,EAAId,EAAEiP,SAAS,MACfpN,EAAIf,EAAED,OACNP,EAAIQ,EAAEqF,MAAMlG,GACZC,EAAI,KACR,GAAIF,EAAEuR,GAAG,YACCrR,EAAI2B,EAAI,EAAIvB,EAAIL,EAAEuF,OAAS1E,EAAE0X,QAAU,SAAWvY,EAAEqP,KAAK,mBAC3DrP,EAAEuP,YAAY,SAEd,WADA/M,EAAIxC,EAAEgP,SAAS,MAAMuJ,SACPlJ,KAAK,iBAAmB7M,EAAE6M,KAAK,cAAe,QAAU1H,KAAKuV,YAAa,IAEvFld,EAAEuP,YAAY,cAAe,SAAWtP,EAAEoP,KAAK,kBAAoB,IAAM1H,KAAKuV,aAC/Ejd,EAAEuP,SAAS,UACXhN,EAAIvC,EAAE+O,SAAS,MAAMuJ,SACnBlJ,KAAK,cAAe,eAEvB,GAAI,SAAWrP,EAAEqP,KAAK,iBACzBrP,EAAEwP,SAAS,SAEVvP,GADDuC,EAAIxC,EAAEgP,SAAS,MAAMuJ,SACdvJ,SAAS,MAAMuJ,QAAU/V,EAAE6M,KAAK,cAAe,SAAW1H,KAAKuV,YAAa,MAChF,CACH,GAAI,IAAMvV,KAAKsV,MAAO,OAAOjd,EAC7B,IAAIiF,EAAI,KACJnD,EAAI,MAEFmD,EAAIjF,EAAE8d,aAAa,OAAOxd,OAAO,MAAMob,IAAI,aAC3CrM,KAAK,cAAe,QACtBpK,EAAEyJ,KAAK,MAAMa,YAAY,oBACzBtK,EAAEsZ,OAAO1K,SAAStE,YAAY,oBAC7BzN,EAAImD,EAAEsZ,OAAO1K,SAGd,UADC5T,GADAI,EAAIsH,KAAKkV,WAAW3W,MAAMpE,IAClB6F,KAAKkV,WAAWjc,OAAS,EAAIkB,EAAEyD,OAASoC,KAAKkV,WAAWtE,SACpDlJ,KAAK,kBAAoBpP,EAAE+O,SAAS,MAAMpO,OAAS,IAEhEX,EAAEuP,SAAS,SACXhN,EAAIvC,EAAE+O,SAAS,MAAMuJ,QACpBtY,EAAIuC,EAAEwM,SAAS,MAAMuJ,QAAU/V,EAAE6M,KAAK,cAAe,SAAW1H,KAAKuV,YAAa,GAG3F,OAAOjd,GAGX0c,QAAQrb,UAAU8c,eAAiB,SAAUpe,GACzC,IAAIC,EACAF,EAAIC,EAAE6T,SACNhT,EAAId,EAAEiP,SAAS,MACfpN,GAAKf,EAAED,OAAQC,EAAEqF,MAAMlG,IACvBK,EAAI,KACR,GAAIN,EAAEuR,GAAG,YACCjR,EAAIuB,EAAI,EAAI5B,EAAEwe,OAAS3d,EAAE0d,OAAS,SAAWve,EAAEqP,KAAK,kBAEtD,WADApP,EAAID,EAAEuP,YAAY,SAASP,SAAS,MAAMuJ,SAC5BlJ,KAAK,iBAAmBpP,EAAEoP,KAAK,cAAe,QAAU1H,KAAKuV,YAAa,GAEvFld,EAAEuP,YAAY,oBAAqB,SAAWlP,EAAEgP,KAAK,kBAAoB,IAAM1H,KAAKuV,aACrF7c,EAAEmP,SAAS,UACXvP,EAAII,EAAE2O,SAAS,MAAMuJ,SACnBlJ,KAAK,cAAe,cAEvB,CACH,IAAM7M,EAAIzC,EAAE8T,SACR5O,EAAIzC,EAAEqR,SAEN,IAAMlM,KAAKsV,OAAShY,EAAEqM,GAAG,aAEpBvR,EAAEsP,KAAK,cAAe,QACvBrP,EAAEuP,YAAY,oBACd/M,EAAE+M,YAAY,qBAEblP,GADAuB,EAAI+F,KAAKkV,WAAW3W,MAAM1D,IAClB,EAAIA,EAAEgc,OAAS7W,KAAKkV,WAAW0B,QACtC/O,SAAS,oBACX,SAAWnP,EAAEgP,KAAK,mBAElBpP,EAAI,KACJI,EAAE2O,SAAS,MAAMpO,OAAS,KACpBX,EAAII,EAAEmP,SAAS,SAASR,SAAS,MAAMuJ,SACvClJ,KAAK,cAAe,SACrB1H,KAAKuV,YAAa,EAClB7c,EAAIJ,EAAE+O,SAAS,MAAMuJ,YAG7BlY,EAAIN,EAAE8T,SACH9T,EAAEsP,KAAK,cAAe,QACtBrP,EAAEuP,YAAY,oBACdlP,EAAEkP,YAAY,SACd,IAAM5H,KAAKsV,QAAUtV,KAAKuV,YAAa,IAEnD,OAAO7c,GAGXsc,QAAQrb,UAAU+c,SAAW,SAAUre,EAAGD,GACtC,IAAIc,EAAIb,EAAE6T,SACNjS,EAAIf,EAAEmO,SAAS,MAAM0M,IAAI,cACzBrb,EAAIuB,EAAEhB,OACNX,EAAI2B,EAAEsE,MAAMlG,GACZwC,EAAI,KACJyC,EAAI,KACR,GAAIpE,EAAEyQ,GAAG,YACL,MAAO,SAAWtR,EAAEqP,KAAK,iBACnBrP,GAECwC,GADCyC,EAAIjF,EAAEwP,SAAS,SAASR,SAAS,MAAMuJ,SAClCvJ,SAAS,MAAMuJ,QACtBtT,EAAEoK,KAAK,cAAe,SACrB1H,KAAKuV,YAAa,EACnB1a,GACV,GAAIzC,EAAG,CACH,IAAI+B,GAAI,EACJO,EAAIpC,EAAI,EACZ,IAAKoC,IAAMhC,IAAMgC,EAAI,GAAIA,IAAMpC,GAAK,CAEhC,GADU2B,EAAE6c,GAAGpc,GAAG6U,OAAOwH,OAAO,GAC1Bvb,gBAAkBpD,EAAG,CACvB+B,GAAI,EACJ,OAEHO,GAAK,KAAUhC,IAAMgC,EAAI,GAE9B,OAAO,IAAMP,GAAMU,EAAIZ,EAAE6c,GAAGpc,GAAKrC,EAAEuP,YAAY,iCAAkC/M,GAAKxC,EAE1F,OAAQwC,EAAInC,EAAI,EAAIJ,EAAI2B,EAAE6c,GAAGxe,EAAI,GAAK2B,EAAE2W,QAAUvY,EAAEuP,YAAY,iCAAkC/M,GAGtGma,QAAQrb,UAAU6c,OAAS,SAAUne,GACjC,IAAID,EAAIC,EAAE6T,SACNhT,EAAId,EAAEiP,SAAS,MAAM0M,IAAI,cACzB9Z,GAAKf,EAAED,OAAQC,EAAEqF,MAAMlG,IACvBK,EAAI,KACR,OAAON,EAAEuR,GAAG,YACNtR,GACEK,EAAIuB,EAAI,EAAIf,EAAE4d,GAAG7c,EAAI,GAAKf,EAAE0d,OAASve,EAAEuP,YAAY,iCAAkClP,IAGjGsc,QAAQrb,UAAUqc,eAAiB,SAAU3d,EAAGD,GAC5C,GAAIA,EAAEge,QAAUhe,EAAEie,SAAWje,EAAE4e,SAAU,OAAO,EAEhD,OAAQ5e,EAAEuJ,SACN,KAAK3B,KAAKxH,KAAKyR,IACX,OAAO,EACX,KAAKjK,KAAKxH,KAAKid,IACf,KAAKzV,KAAKxH,KAAKgd,MACf,KAAKxV,KAAKxH,KAAKkd,MACf,KAAK1V,KAAKxH,KAAKmd,GACf,KAAK3V,KAAKxH,KAAKod,KACf,KAAK5V,KAAKxH,KAAKoZ,KACf,KAAK5R,KAAKxH,KAAK6Z,MACX,OAAOja,EAAEmY,mBAAmB,EAChC,QACI,IAAIrX,EAAIqC,OAAO0b,aAAa7e,EAAEgS,OAC9B,OAAQpK,KAAKqV,YAAcrV,KAAK0W,SAASre,EAAGa,GAAK8G,KAAKqV,YAAYja,QAAShD,EAAEmY,mBAAmB,EAExG,OAAO,GAIXyE,QAAQrb,UAAUuc,oBAAsB,SAAU7d,GAE9C,OADQ2H,KAAKiV,IAAIlO,KAAK,MAAMgN,IAAI,YAE1BrM,KAAK,cAAe,QACtB1H,KAAKoV,UAAUxN,YAAY,uCAC1B5H,KAAKqV,YAAc,MACpB,GAIRL,QAAQrb,UAAU4c,kBAAoB,SAAUle,GAC5C,IAAID,GAAKC,EAAE6T,SAASxE,KAAK,MAAOrP,EAAEqP,KAAK,MAAOrP,EAAE4E,KAAK,SACrD,GAAI,MAAQ7E,EACR,GAAIA,EAAEoD,cAAcsB,QAAQ,WAAa,EAAG,CAC9BgH,OAAOhB,KAAK1K,EAAG,UACvBgD,aACC0I,OAAOqF,SAASF,KAAO7Q,EAClC,IAAM6B,EAAI5B,EAAE0O,KAAK,KACjB,MAAQ9M,IAAM6J,OAAOqF,SAASF,KAAOhP,EAAE,GAAGgP,OAE9CnF,OAAOkR,QAAUA,S,kBCpUjB,IACU1O,EAEF4Q,EAFE5Q,EAAQC,EAAE,QAEZ2Q,EAAQ,CACRC,OAAQ,KACR/P,QAAS,KACTgQ,UAAW,KACXC,WAAY,KACZnQ,QAAS,KACT2P,KAAM,KACNxM,UAAU,EACVO,MAAO,YACP0M,aAAc,KACdtG,MAAM,EACNuG,QAAQ,EACRC,OAAO,EACPC,YAAa,EACbC,QAAS,GACTxN,IAAK,KACL8E,MAAO,KACP2I,MAAM,EACNC,UAAW,OACXrN,UAAW,KACXsN,SAAS,EACTC,OAAO,EAEPrV,KAAM,SAANA,OACIyU,EAAMC,OACF,oIACAD,EAAMU,UACN,kGAEJV,EAAM3M,UAAYhE,EAAE2Q,EAAMC,QAC1BD,EAAMa,yBAENb,EAAME,UAAYF,EAAM3M,UAAUxD,KAAK,qBACvCmQ,EAAMG,WAAaH,EAAM3M,UAAUxD,KAAK,mBACxCmQ,EAAMc,MAAQd,EAAM3M,UAAUxD,KAAK,kBACnCmQ,EAAMhQ,QAAUX,EAAE,iBAElB2Q,EAAMI,aAAeJ,EAAMtM,MAC3BsM,EAAMtM,MAAQ,GAEdsM,EAAMe,kBAENf,EAAMhQ,QAAQJ,MAAK,SAAUvI,GACzB2Y,EAAMnN,MAAMmO,SAAS3R,EAAEvG,MAAOzB,GAC9B2Y,EAAMiB,WAAW5Z,MAGrB2Y,EAAMkB,2BACNlB,EAAMtQ,UACNsQ,EAAM1L,qBACuB,oBAAlB6M,gBACPA,eAAezR,UAGflD,GAAG4U,OAAS5U,GAAG4U,MAAMR,UACrBZ,EAAMY,OAAQ,IAGtBC,uBAAwB,SAAxBA,yBACI,IAAIQ,EAAQhS,EAAE,QACVgS,EAAMtf,OAAS,EAAGsf,EAAMxd,OAAOmc,EAAM3M,WACpCjE,EAAMvL,OAAOmc,EAAM3M,YAE5B6N,yBAA0B,SAA1BA,6BACAD,WAAY,SAAZA,WAAsB5Z,GAClBgI,EAAE5L,UAAU+L,GAAGwQ,EAAMtM,MAAMrM,GAAS,OAAO,WAEvC2Y,EAAMhN,KAAM,EAEZ3D,EAAE,iBAAiBO,MAAK,WAChBP,EAAEvG,MAAM/C,KAAK,cAAgBia,EAAMtM,MAAMrM,IACzCgI,EAAEvG,MAAM6H,SAAS,sBAK7BtB,EAAE5L,UAAU+L,GAAGwQ,EAAMtM,MAAMrM,GAAS,QAAQ,SAAUlG,GAElD6e,EAAMhN,KAAM,EACZgN,EAAMxQ,GAAGwD,IAAI7R,GAEbkO,EAAE,iBAAiBO,MAAK,WAChBP,EAAEvG,MAAM/C,KAAK,cAAgBia,EAAMtM,MAAMrM,IACzCgI,EAAEvG,MAAM4H,YAAY,sBAKhCrB,EAAE5L,UAAU+L,GAAGwQ,EAAMI,aAAe,OAAO,SAAUjf,GAEjD6e,EAAM7M,UAAW,EACjB6M,EAAM3M,UAAU+H,IAAI,aAAc,GAC9B/L,EAAE,qBAAqBtN,SACvBie,EAAMlG,MAAO,EACbkG,EAAMxQ,GAAGM,KAAK3O,OAItBkO,EAAE5L,UAAU+L,GAAGwQ,EAAMI,aAAe,QAAQ,SAAUjf,GAElD6e,EAAM7M,UAAW,EACb9D,EAAE,qBAAqBtN,SACvBie,EAAMlG,MAAO,EACbkG,EAAMxQ,GAAGM,KAAK3O,OAItB6e,EAAMsB,wBAEVA,qBAAsB,SAAtBA,yBACA5R,QAAS,SAATA,UACIN,EAAMI,GAAG,QAAS,iBAAiB,SAAUrO,GACzC,OAAI6e,EAAMW,SAAWX,EAAM7M,UACvBhS,EAAEoT,2BACFlF,EAAEvG,MAAMkK,IAAI,UACL,IAEXgN,EAAMW,SAAU,EAEZtR,EAAEvG,MAAMyH,SAAS,YACjBpP,EAAEkY,uBACFlY,EAAEuJ,uBAIF2E,EAAEvG,MAAMyH,SAAS,kBACjBpP,EAAEkY,kBACFlY,EAAEuJ,iBACFsV,EAAMuB,gBACNvB,EAAMhQ,QAAUX,EAAEvG,MAClBkX,EAAM9P,QAAUb,EAAE2Q,EAAMhQ,QAAQjK,KAAK,iBACrCia,EAAMlG,MAAO,EAETzK,EAAEvG,MAAM2J,GAAG,mBAAqBjG,GAAGuG,IAAIF,MAAM2O,MAAMnS,EAAEvG,OACrDyB,YAAW,WACPyV,EAAMxQ,GAAGiC,KAAKtQ,KACf,KAEH6e,EAAMxQ,GAAGiC,KAAKtQ,SAK1BiO,EAAMI,GAAG,QAAS,kCAAkC,SAAUrO,GACtDkO,EAAEvG,MAAMyH,SAAS,kBACjBpP,EAAEuJ,iBAGNsV,EAAMlG,MAAO,EACbkG,EAAMxQ,GAAGM,KAAK3O,OAGtBmT,mBAAoB,SAApBA,uBACAiN,cAAe,SAAfA,gBACIlS,EAAE,+BAA+B+L,IAAI,aAAc,cAEvDqG,iBAAkB,SAAlBA,mBACIpS,EAAE,+BAA+B+L,IAAI,aAAc,KAEvD2F,gBAAiB,SAAjBA,kBACQ1R,EAAE,iBAAiBtN,SACnBie,EAAMI,aAAe,cAG7BsB,aAAc,SAAdA,eACI1B,EAAMc,MAAMzI,KAAK,mDAAqD2H,EAAMU,YAEhFlR,GAAI,CACAiC,KAAM,SAANA,KAAgBtQ,GAAG,IAAAwgB,EACftS,EAAE5L,UAAUwF,QAAQ,aACF,oBAAP2Y,KACPA,IAAIC,QAAQxS,EAAE,yBAOlB,IAAMyS,EAAezS,EAAEiH,MAAM,cAE7B,GADAjH,EAAE5L,UAAUwF,QAAQ6Y,EAAc,CAAC9B,KAC/B8B,EAAaC,qBAAjB,CAIkC,cAA9B3S,EAAMoB,KAAK,gBACXhE,GAAGoG,WAAWC,MAAM1R,IAGpB6e,EAAMhQ,QAAQyC,GAAG,uBAA0BuN,EAAMhQ,QAAQjK,KAAK,kBAAqBia,EAAM7M,SAExF/D,EAAMsB,YAAY,0BADnBtB,EAAMuB,SAAS,0BAGnBqP,EAAMK,OAASL,EAAMhQ,QAAQmH,QAAQ,qBAAqBpV,OAAS,EACnEie,EAAMM,MACFN,EAAMhQ,QAAQ7E,QAAQ,cAAcpJ,OAAS,GAAKie,EAAMhQ,QAAQyC,GAAG,gCACnEuN,EAAMhQ,QAAQ7E,QAAQ,kBAAkBpJ,OAAS,IACjDie,EAAMK,QAAS,EACfL,EAAMM,OAAQ,GAGlB,IAAM0B,EAA2B,QAAlBL,EAAGxgB,EAAE2Q,qBAAa,IAAA6P,OAAA,EAAfA,EAAiB1d,aAAa,iBAC5C+d,GAAWhC,EAAM3M,UAAU7C,KAAK,OAAsB,SAAdwR,EAAuB,OAASA,GAE5EhC,EAAMxQ,GAAGyS,iBAETjC,EAAMG,WAAWrQ,OAAOY,YAAY,YACpCsP,EAAMU,UAAY,OAClBV,EAAM0B,eAEF1B,EAAMK,QACNL,EAAMxQ,GAAG0S,aAGTlC,EAAMM,QACoB,IAAtBN,EAAMO,cACNP,EAAMlG,MAAO,EACbkG,EAAMxQ,GAAGM,KAAK3O,IAGlB6e,EAAMO,cACNP,EAAM3M,UACD1C,SAAS,iBACTd,KAAK,qBACLhM,OAAO,wCAA0Cmc,EAAMO,YAAc,YAC1EP,EAAME,UAAY7Q,EAAE,YAAc2Q,EAAMO,cAG5CP,EAAME,UAAU1P,KAAK,kBAAmBwP,EAAMhQ,QAAQjK,KAAK,iBAEvDia,EAAM9P,QAAQK,SAAS,eACvByP,EAAM9P,QAAQ/E,QAAQ,iBAAiB0E,KAAK,cAAca,YAAY,UACtEsP,EAAM9P,QAAQS,SAAS,WAG3B,IAAI8L,EAAQuD,EAAMhQ,QAAQ+G,OACtBiJ,EAAMhQ,QAAQyC,GAAG,kBACjBgK,EAAQuD,EAAMhQ,QAAQjK,KAAK,WAI3Bia,EAAMhQ,QAAQO,SAAS,QAAUyP,EAAMhQ,QAAQmH,QAAQ,uBAAuBpV,OAAS,KACvF0a,EAAQ,WAGZ,IAAI0F,EAAYnC,EAAM9P,QAAQC,WAE9B6P,EAAMxQ,GAAG4S,WAAWD,GAEhBnC,EAAMhQ,QAAQyC,GAAG,uBACjBuN,EAAMlI,MAAQkI,EAAMhQ,QAAQjK,KAAK,eAEb,SAAhBia,EAAMlI,QACNqK,EAAYnC,EAAM9P,UAGtB8P,EAAMlI,MAAQ,GAGlBkI,EAAMQ,QAAQ5e,KAAK6a,GACnBuD,EAAMG,WAAW9H,KAAKoE,GAERuD,EAAM9P,QAAQL,KAAK,QAAQ9N,OAAS,GAE9Cie,EAAME,UAAUrc,OAAOse,EAAU9J,QACjChJ,EAAE,+BAA+BlH,SACjC6X,EAAME,UAAUrQ,KAAK,cAAcD,MAAK,WACpCpD,GAAGmN,IAAInK,GAAGoK,YAAYvK,EAAEvG,YAGR,SAAhBkX,EAAMlI,MACFkI,EAAMK,QAAUL,EAAMM,MACtBN,EAAM9P,QAAQsB,MAAM,iDAEpBwO,EAAM9P,QAAQsB,MAAM,2CAGpBwO,EAAMK,QAAUL,EAAMM,MACtBN,EAAM9P,QAAQrM,OAAO,iDAErBmc,EAAM9P,QAAQrM,OAAO,2CAI7Bse,EAAUE,SAASrC,EAAME,WAEzBF,EAAMxQ,GAAG8S,WAAWtC,EAAME,YAML,oBAAdqC,gBAAyD,IAArBA,UAAUC,QACrDD,UAAUC,SAASC,UAEvBrT,EAAMuB,SAAS,+BAA+BH,KAAK,cAAe,SAClEwP,EAAMc,MAAM5c,QAEZ,IAAMwe,EAAWrT,EAAE,YACfqT,EAAS3gB,QACT2gB,EAAS/R,SAAS,SAStB,IAAMgS,EAAYtT,EAAEiH,MAAM,gBAEtB0J,EAAMS,MACNlW,YAAW,WACPyV,EAAMxQ,GAAGoT,aACT5C,EAAMxQ,GAAGqT,YACTxT,EAAE5L,UAAUwF,QAAQ0Z,EAAW,CAAC3C,MACjC,KACHA,EAAMS,MAAO,IAEbT,EAAMxQ,GAAGoT,aACTvT,EAAE5L,UAAUwF,QAAQ0Z,EAAW,CAAC3C,KAGpC3Q,EAAE5L,UAAUwF,QAAQ,eAExB2Z,WAAY,SAAZA,aACI,IAEIE,EAAa9C,EAAM3M,WACnB2M,EAAMK,QAAUL,EAAMM,SACtBwC,EAAa9C,EAAME,YAGlBF,EAAM3M,UAAU9C,SAAS,aAAeyP,EAAMM,QAC/CwC,EAAazT,EAAE,gCAEnB,IAAI0T,EAAY,IAAHzZ,OAVI,QAWb0W,EAAMY,QACNmC,EAZa,QAejBD,EACK1H,IAAI,YAAa,cAAF9R,OAAgByZ,EAAS,MACxC/P,MACAgQ,IAAI,oDAAoD,SAAU7hB,GAC/DA,EAAEkY,kBACF2G,EAAMW,SAAU,EAChBX,EAAMyB,sBAEdzB,EAAMG,WAAW1O,OAAOd,SAAS,YACjCqP,EAAM3M,UAAU1C,SAAS,YACzBqP,EAAMxQ,GAAGyT,uBAEbf,WAAY,SAAZA,aACIlC,EAAMO,cACNP,EAAME,UAAUrc,OAAO,wCAA0Cmc,EAAMO,YAAc,YACrFP,EAAME,UAAY7Q,EAAE,YAAc2Q,EAAMO,cAE5C0B,eAAgB,SAAhBA,mBACAgB,oBAAqB,SAArBA,wBACAJ,UAAW,SAAXA,cACA/S,KAAM,SAANA,KAAgB3O,GACZ,IAAM+hB,EAAgB7T,EAAElO,EAAE+J,QAAQC,QAAQ,YAAYpJ,OAKlDohB,EAAe9T,EAAEiH,MAAM,eAE3B,GADAjH,EAAE5L,UAAUwF,QAAQka,EAAc,CAACnD,KAC/BmD,EAAapB,qBAAjB,CAUA,QANiB,IAAN5gB,GAAqBkO,EAAE,YAAYkB,SAAS,cAC9C2S,IACDlD,EAAMlG,MAAO,IAIjBkG,EAAMlG,KAAM,CACZkG,EAAMuB,gBACNvB,EAAMG,WAAWrQ,OAAOY,YAAY,YAEpCsP,EAAMK,QAAS,EAEW,IAAtBL,EAAMO,aACNP,EAAMK,QAAS,EACfL,EAAME,UAAYF,EAAM3M,UAAUlD,SAAS,sBAE3C6P,EAAME,UAAY7Q,EAAE,YAAc2Q,EAAMO,aAE5CP,EAAMxQ,GAAG4S,WAAWpC,EAAME,WAE1B,IAAIkD,EAAiB/T,EAAE2Q,EAAME,UAAU1P,KAAK,oBACvC4S,IACDA,EAAiBhU,GAGrB,IAAMiU,EAAQrD,EAAM3M,UAAUxD,KAAK,QAAQ9N,OAAS,EAIpD,GAFAie,EAAMxQ,GAAG8T,2BAELD,EAAO,CACP,IAAME,EAAmBlU,EAAE,0BAC3BkU,EAAiB1f,OAAOmc,EAAME,UAAU7H,QACxCkL,EAAiB1T,KAAK,cAAcD,MAAK,WACrCpD,GAAGmN,IAAInK,GAAGoK,YAAYvK,EAAEvG,eAGxBkX,EAAME,UAAUrQ,KAAK,qBAAqB9N,QAC1Cie,EAAME,UAAUrQ,KAAK,qBAAqB1H,SAE9C6X,EAAMxQ,GAAGgU,iBAAiBJ,GAC1BpD,EAAMxQ,GAAG8S,WAAWc,GASxB,GANApD,EAAMQ,QAAQiD,OAAOzD,EAAMO,YAAa,GACxCP,EAAMG,WAAW9H,KAAK2H,EAAMQ,QAAQR,EAAMO,YAAc,IACpDP,EAAMhQ,SACNgQ,EAAMhQ,QAAQ9L,QAGd8b,EAAMK,OACNL,EAAMO,cACNP,EAAMxQ,GAAGkU,aACL1D,EAAMM,OACNN,EAAME,UAAU/X,SAEpB6X,EAAME,UAAY7Q,EAAE,YAAc2Q,EAAMO,aACd,IAAtBP,EAAMO,cACNP,EAAME,UAAYF,EAAM3M,UAAUlD,SAAS,0BAE5C,CACH6P,EAAMO,YAAc,EACpBlR,EAAE,cAAcqB,YAAY,eAC5BtB,EAAMsB,YAAY,+BAA+BgB,WAAW,eAC5D,IAAMgR,EAAWrT,EAAE,YACfqT,EAAS3gB,QACT2gB,EAAShS,YAAY,SAGzBsP,EAAMxQ,GAAGkU,aACT1D,EAAM3M,UAAU3C,YAAY,YAC5BsP,EAAM3M,UAAU3B,WAAW,QAQ/B,GANAsO,EAAMG,WAAW1O,OAAOd,SAAS,YAEjCqP,EAAMU,UAAY,OAClBV,EAAM0B,eACN1B,EAAMxQ,GAAGmU,eAAexiB,GAEpB6e,EAAM3M,UAAU9C,SAAS,iBAAkB,CAC3C,KAAOyP,EAAMO,YAAc,GACvBP,EAAMO,cACNP,EAAMxQ,GAAGM,KAAK3O,QAID,IAANA,IACNkO,EAAElO,EAAE+J,QAAQqF,SAAS,kBAAoBlB,EAAElO,EAAE2Q,eAAevB,SAAS,mBAChD,IAAtByP,EAAMO,aAENP,EAAMxQ,GAAGwD,IAAI7R,GAIhB+hB,QAAgC,IAAN/hB,GAAqBkO,EAAElO,EAAE+J,QAAQC,QAAQ,cAAcpJ,QAClFie,EAAMxQ,GAAGwD,IAAI7R,GAGjB6e,EAAMyB,mBAMe,oBAAdc,gBAAyD,IAArBA,UAAUC,QACrDD,UAAUC,SAASC,UAIvB,IAAMmB,EAAavU,EAAEiH,MAAM,gBAC3BjH,EAAE5L,UAAUwF,QAAQ2a,EAAY,CAAC5D,MAErC0D,WAAY,SAAZA,aACI,IAAIG,EAAe7D,EAAM3M,UACrB2M,EAAMK,SAAQwD,EAAe7D,EAAME,WAEvC2D,EACKzI,IAAI,YAAa,mBACjBpI,MACAgQ,IAAI,oDAAoD,SAAU7hB,GAC/DA,EAAEkY,kBACE2G,EAAMlG,OACDkG,EAAMK,OACNhR,EAAEvG,MAAMX,SADM6X,EAAME,UAAUsB,aAInDgC,iBAAkB,SAAlBA,iBAA4BJ,GACxB,IAAMU,EACF9D,EAAMK,QAAUL,EAAMM,MAAQ,6BAA+B,uBAC3DyD,EACc,SAAhB/D,EAAMlI,MAAmBzI,EAAEyU,GAAuBzU,EAAEyU,EAAqBV,GAC7EpD,EAAME,UAAU/P,WAAWkS,SAAS0B,EAAqB/O,UACzD+O,EAAqB5b,UAEzBwb,eAAgB,SAAhBA,eAA0BxiB,KAC1BmiB,yBAA0B,SAA1BA,6BACAtQ,IAAK,SAALA,IAAe7R,GAOX,GANA6e,EAAMG,WAAWrQ,OAAOY,YAAY,YAEpCrB,EAAE,iBAAiBqB,YAAY,eAEjBsP,EAAM3M,UAAUxD,KAAK,QAAQ9N,OAAS,EAEzC,CACPie,EAAME,UAAY7Q,EAAE,QAAQlE,QAAQ,qBAEpC,IAAMoY,EAAmBlU,EAAE,0BAC3BkU,EAAiB1f,OAAOmc,EAAME,UAAU7H,QACxCkL,EAAiB1T,KAAK,cAAcD,MAAK,WACrCpD,GAAGmN,IAAInK,GAAGoK,YAAYvK,EAAEvG,UAGhCuG,EAAE,cAAcqB,YAAY,eAC5BtB,EAAMsB,YAAY,+BAA+BgB,WAAW,eAC5DrC,EAAE,YAAYqB,YAAY,SAC1BsP,EAAME,UAAYF,EAAM3M,UAAUlD,SAAS,qBAC3C6P,EAAM3M,UACD+H,IAAI,YAAa,mBACjBpI,MACAgQ,IAAI,oDAAoD,SAAU7hB,GAC/DA,EAAEkY,kBACF2G,EAAM3M,UAAU3C,YAAY,YACxBsP,EAAMhN,MACN3D,EAAE,YAAYqB,YAAY,iBAC1BsP,EAAME,UAAUsB,YAG5BxB,EAAMhN,KAAM,EACZgN,EAAMxQ,GAAGwU,cAAc7iB,IAE3B6iB,cAAe,SAAfA,cAAyB7iB,KACzBihB,WAAY,SAAZA,WAAsB6B,GACA,oBAAPrC,KACPA,IAAIC,QAAQoC,EAAIpU,KAAK,UAG7ByS,WAAY,SAAZA,WAAsB2B,GACA,oBAAPrC,KACPA,IAAIpd,QAAQyf,EAAIpU,KAAK,WAIjCgD,MAAO,CACHmO,SAAU,SAAVA,SAAoBiD,EAAK5c,QACe,IAAzB4c,EAAIle,KAAK,YAChBia,EAAMtM,MAAMrM,GAAS4c,EAAIle,KAAK,aAE9Bke,EAAIle,KAAK,WAAYia,EAAMI,cAC3BJ,EAAMtM,MAAMrM,GAAS2Y,EAAMI,iBAM3C5T,GAAGwT,MAAQA,G,kBCxjBf,IACQ5Q,EACA8U,EADA9U,EAAQC,EAAE,QACV6U,EAAgB,CAChBxQ,MAAO,YACP0M,aAAc,KACdjN,UAAU,EACVgR,eAAgB9U,EAAE,8BAClB+U,iBAAkB,KAClBC,kBAAmB,KACnBC,iBAAkB,IAClBC,cAAelV,EAAE,kDACjBmV,MAAOnV,EAAE,sCACToV,aAAcpV,EAAE,wBAEhB9D,KAAM,SAANA,OACI2Y,EAAc9D,aAAe8D,EAAcxQ,MAC3CwQ,EAAcxQ,MAAQ,GACtBrE,EAAE,8BAA8BO,MAAK,SAAUvI,GAC3C6c,EAAcrR,MAAMmO,SAAS3Z,EAAOgI,EAAEvG,OACtCob,EAAcjD,WAAW5Z,MAE7B6c,EAAcxU,UACdwU,EAAc1U,GAAGC,SAGrBwR,WAAY,SAAZA,WAAsB5Z,GAClBgI,EAAE5L,UAAU+L,GAAG0U,EAAcxQ,MAAMrM,GAAS,OAAO,WAC/C6c,EAAc/Q,UAAW,EAEzB9D,EAAE,8BAA8BO,MAAK,WAC7BP,EAAEvG,MAAM/C,KAAK,cAAgBme,EAAcxQ,MAAMrM,IACjDgI,EAAEvG,MAAM6H,SAAS,sCAK7BtB,EAAE5L,UAAU+L,GAAG0U,EAAcxQ,MAAMrM,GAAS,QAAQ,WAChD6c,EAAc/Q,UAAW,EAEzB9D,EAAE,8BAA8BO,MAAK,WAC7BP,EAAEvG,MAAM/C,KAAK,cAAgBme,EAAcxQ,MAAMrM,IACjDgI,EAAEvG,MAAM4H,YAAY,uCAMpChB,QAAS,SAATA,UACIL,EAAEzC,QAAQ4C,GAAG,UAAU,WACnB0U,EAAcQ,gBAGlBtV,EAAMI,GAAG,WAAY,+CAA+C,SAAUrO,GACtEkO,EAAEvG,MAAMqO,QAAQ,kBAAkBpV,OAAS,IAAMsN,EAAEvG,MAAMkM,SAASzE,SAAS,kBAC3ElB,EAAE,wDACGwN,IAAIxN,EAAEvG,MAAMkM,UACZtE,YAAY,cAEjBrB,EAAE,oCAAoCwN,IAAIxN,EAAEvG,MAAMkM,UAAUtE,YAAY,cAG5ErB,EAAEvG,MAAMkM,SAAS1E,YAAY,cACxBjB,EAAEvG,MAAMkM,SAASzE,SAAS,cAG3BlB,EAAEvG,MAAMkM,SAAStE,YAAY,kBAF7BrB,EAAEvG,MAAMkM,SAASrE,SAAS,qBAMlCvB,EAAMrE,OAAM,SAAU5J,GAClBkO,EAAE,gDAAgDqB,YAAY,kBAGtElB,GAAI,CACAC,MAAO,SAAPA,QACIyU,EAAcO,aAAahT,OAC3ByS,EAAcQ,aAEdna,YAAW,WACP2Z,EAAcQ,eACf,OAGXA,WAAY,SAAZA,aACIrV,EAAE,8BAA8BO,MAAK,WAIjC,GAHAsU,EAAcC,eAAiB9U,EAAEvG,MACjCob,EAAcK,cAAgBL,EAAcC,eAAetU,KAAK,kBAE3DqU,EAAcC,eAAe5T,SAAS,gCAyDlC2T,EAAcK,cAAchU,SAAS,YACtC2T,EAAcK,cAAc5T,SAAS,UACrCuT,EAAcK,cAAcI,OAAOT,EAAcK,cAAc1U,KAAK,mBAAmBwI,QACvF6L,EAAcK,cAAc1U,KAAK,mBAAmB2R,aA5DgB,CACxE0C,EAAcE,iBAAmBF,EAAcC,eAAetU,KAAK,iBAAiBmL,QACpFkJ,EAAcG,kBAAoBH,EAAcC,eAAetU,KAAK,kBAAkBmL,QACtFkJ,EAAcM,MAAQN,EAAcC,eAAetU,KAAK,gBACxDqU,EAAcO,aAAeP,EAAcC,eAAetU,KAAK,wBAE/D,IAAM+U,EACFV,EAAcC,eAAenJ,SAC5BkJ,EAAcE,iBAAmBF,EAAcG,kBAAoB,IACpEQ,EAAYX,EAAcM,MAAMxJ,QAEpC,GAAI4J,EAAqB,GAAKC,EAAY,EACtC,GAAIA,EAAYD,EACZ,KAAOC,EAAYD,GAAoB,CACnC,IAAME,EAAgBZ,EAAcM,MAC/B3U,KAAK,oDACL6P,OACL,KAAIoF,EAAc/iB,OAAS,GAQvB,MAPAmiB,EAAcK,cAAc7T,YAAY,UACxCwT,EAAcK,cACT1U,KAAK,oBACLkV,QAAQD,EAAc,GAAGlgB,WAC9BkgB,EAAc3c,SACd0c,EAAYX,EAAcM,MAAMxJ,aAKrC,GACH4J,EAAqBC,EAAYX,EAAcI,mBAC9CJ,EAAcK,cAAchU,SAAS,UACxC,CACE,KAAOqU,EAAqBC,GAAW,CACnC,IAAMG,EAAad,EAAcK,cAAc1U,KAC3C,qCAEEoV,EAAiBD,EAAWtL,QAClC,KAAIuL,EAAeljB,OAAS,GAUxB,MATAmiB,EAAcK,cAAcI,OAAOM,EAAe,GAAGrgB,WAEjDogB,EAAWjjB,QAAU,GACrBmiB,EAAcK,cAAc5T,SAAS,UAGzCsU,EAAe9c,SACf0c,EAAYX,EAAcM,MAAMxJ,QAMpC6J,EAAYD,GACZV,EAAcQ,mBAatC7R,MAAO,CACHmO,SAAU,SAAVA,SAAoB3Z,EAAO4c,QACY,IAAxBA,EAAIle,KAAK,aAAuD,KAAzBke,EAAIle,KAAK,YACvDme,EAAcxQ,MAAMrM,GAAS4c,EAAIle,KAAK,aAEtCke,EAAIle,KAAK,WAAYme,EAAc9D,cACnC8D,EAAcxQ,MAAMrM,GAAS6c,EAAc9D,iBAM3D5T,GAAG0X,cAAgBA,G,0DCtGnBgB,EAEJ,WACE,IAAMC,EAAgB1hB,SAAS2hB,YAAY,eACvCC,EAAiB5hB,SAAS2hB,YAAY,eAI1C,SAASF,WAAWha,EAAQ+B,GAC1B,IAAIhK,OAAmB,IAARgK,EAAsBA,EAAM,GAC3CnE,KAAKwc,QAAU,QACfxc,KAAKyc,UAAY3Y,OAAO4Y,UAAUD,WAAa,yCAC/Czc,KAAK2c,MAAQ,CACXC,yBAA0BziB,EAAEyiB,0BAA4B,KACxDC,SAAU1iB,EAAE0iB,WAAY,EACxBC,sBAAuB3iB,EAAE2iB,uBAAyB,EAClDC,YAAa5iB,EAAE4iB,aAAe,sBAC9BC,SAAgC,iBAAf7iB,EAAE6iB,SAAwBriB,SAASC,cAAcT,EAAE6iB,UAAY7iB,EAAE6iB,UAAYlZ,OAC9FmZ,YAAa9iB,EAAE8iB,aAAe,eAC9BC,WAAY/iB,EAAE+iB,YAAc,cAC5BC,kBAAmBhjB,EAAEgjB,mBAAqB,uBAC1CC,iBAAkBjjB,EAAEijB,mBAAoB,EACxCC,SAAUljB,EAAEkjB,WAAY,EACxBC,yBAA0BnjB,EAAEmjB,2BAA4B,EACxDC,iBAAkBpjB,EAAEojB,kBAAoB,OAS1Cvd,KAAK2c,MAAMa,YAAcxd,KAAKyd,kBAAoB,QAClDzd,KAAKqD,UAAY,GACjB,IAAIqa,EAAc1d,KAAK2c,MACnBa,EAAcE,EAAYF,YAC1BD,EAAmBG,EAAYH,iBAC/BV,EAAWa,EAAYb,SACvBC,EAAwBY,EAAYZ,sBACpCM,EAAmBM,EAAYN,iBAC/BO,EAA6C,QAArBJ,GAA+BV,EAA0C,GAA/BC,EAAwB,KAC1Fc,EAAgC,UAAhBJ,EAA0BA,EAAc,GAC5Dxd,KAAK6d,IAAwB,iBAAXzb,EAAsBzH,SAASwH,iBAAiBC,GAAUA,EACtE,WAAYpC,KAAK6d,MAAM7d,KAAK6d,IAAM,CAAC7d,KAAK6d,MAE9C,IAAK,IAAI3kB,EAAI,EAAGA,EAAI8G,KAAK6d,IAAI5kB,OAAQC,IAAK,CACxC,IAAIma,EAAKrT,KAAK6d,IAAI3kB,GAElBma,EAAGyK,MAAMP,GAAoBI,EAC7BtK,EAAGyK,MAAM3c,SAAWyc,GAEA,UAAhBJ,GAA2BJ,IAE7Bpd,KAAKqD,UAAUvK,KAAKkH,KAAK+d,YAAY1K,EAAIrT,KAAK2c,SAjDpDN,EAAc2B,gBAAgB,aAAa,GAAM,EAAO,IACxDzB,EAAeyB,gBAAgB,cAAc,GAAM,EAAO,IA8D1D,IAAIC,EAAS7B,WAAWziB,UA8TxB,OA5TAskB,EAAOR,eAAiB,SAASA,iBAC/B,IAAIS,EAEJ,GAAIle,KAAK2c,MAAMU,SACba,EAAa,YACR,CAIL,IAHA,IAAIC,EAAS,CAAC,GAAI,MAAO,WAAY,QAAS,QAC1C1jB,EAAOE,SAASyjB,KAAKN,MAEhB5kB,EAAI,EAAGA,EAAIilB,EAAOllB,OAAQC,GAAK,EACtCuB,EAAK0G,SAAWgd,EAAOjlB,GAAK,SAG9BglB,EAAazjB,EAAK0G,SAAW1G,EAAK0G,SAAW,QAC7C1G,EAAK0G,SAAW,GAGlB,OAAO+c,GA4BTD,EAAOF,YAAc,SAASA,YAAY1K,EAAIsJ,GAC5C,IAAI9T,EAAQ7I,KAERkP,EAAO,CACTmE,GAAIA,EACJnH,OAAQmH,EAAGpY,WACX0hB,MAAOA,GAET3c,KAAKqe,MAAQre,KAAK2c,MAAMK,WAAalZ,OACrC,IAAIwa,EAAKte,KAAKqe,MAAQva,OAAS9D,KAAKue,iBAAiBrP,EAAKmE,GAAInE,EAAKyN,MAAMK,UAUzE,OATAhd,KAAKwe,qBAAqBtP,GAC1BA,EAAKhD,OAAOuS,WAAa,IAAM9B,EAAMI,YACrC7N,EAAKhC,MAAQ,UAEbgC,EAAKwP,eAAiB,WACpB,OAAO7V,EAAM8V,YAAYzP,IAG3BoP,EAAG/b,iBAAiB,SAAU2M,EAAKwP,gBAC5BxP,GAYT+O,EAAOM,iBAAmB,SAASA,iBAAiBlL,EAAI5V,GAEtD,IAAIlB,EAAIkB,EACJpF,EAAIgb,EACR,GAAIhb,EAAEumB,gBAAkBriB,EAAG,OAAOA,EAElC,KAAOlE,EAAEumB,gBAAkBriB,GACzBlE,EAAIA,EAAEumB,cAIR,OAAOriB,GAWT0hB,EAAOY,eAAiB,SAASA,eAAexL,GAC9C,GAAIrT,KAAK2c,MAAMW,yBACb,OAAOjK,EAAGyL,wBAAwB1M,KAAOpS,KAAK2c,MAAMK,SAAS+B,aAAepkB,SAASqkB,gBAAgBxf,WAGvG,IAAIyf,EAAc,EAElB,GACEA,EAAc5L,EAAG5T,UAAYwf,QACtB5L,EAAKA,EAAG6L,cAEjB,OAAOD,GAaThB,EAAOO,qBAAuB,SAASA,qBAAqBtP,GAC1D,IAAIiQ,EAAKjQ,EACL3S,EAAI4iB,EAAGxC,MACPtJ,EAAK8L,EAAG9L,GACRnH,EAASiT,EAAGjT,OACZkT,GAAYpf,KAAKqe,OAA2B,UAAlB9hB,EAAEihB,YAC5B6B,EAA+B,WAAvB9iB,EAAEghB,iBACV+B,EAAiBF,EAAWpf,KAAK6e,eAAetiB,EAAEygB,UAAY,EAC9DuC,EAAcH,EAAWpf,KAAK6e,eAAe3S,GAAUoT,EAAiBtf,KAAK6e,eAAe3S,GAC5FsT,EAAoD,OAA/BjjB,EAAEqgB,yBAAoCrgB,EAAEqgB,yBAA2BvJ,EAAGoM,aAC3FC,EAAeH,EAAcrT,EAAOuT,aACxCN,EAAGzN,OAAS4N,EAAiB/iB,EAAEugB,sBAC/BqC,EAAGI,YAAcF,EAAQE,EAAcJ,EAAGzN,OAAS,EACnDyN,EAAGQ,aAAeR,EAAGI,YAAcC,EACnCL,EAAGS,WAAaP,EAAQK,GAAgBrM,EAAGoM,aAAeN,EAAGzN,QAAUgO,EAAe5b,OAAO+b,aAW/F5B,EAAO6B,cAAgB,SAASA,cAAczM,EAAI3a,EAAGmC,GACnD,IAAIxC,EAAIgb,EACJ0M,EAAS1nB,EAAEomB,UAAUvf,MAAM,KAC3BrE,IAA4B,IAAvBklB,EAAOjjB,QAAQjC,IAAWklB,EAAOjnB,KAAK+B,GAC/C,IAAImlB,EAAQD,EAAOjjB,QAAQpE,IACZ,IAAXsnB,GAAcD,EAAOpF,OAAOqF,EAAO,GACvC3nB,EAAEomB,UAAYsB,EAAOnjB,KAAK,MAY5BqhB,EAAOU,YAAc,SAASA,YAAYzP,GAExC,IAAIiQ,EAAKjQ,EACL7W,EAAI8mB,EAAG9L,GACP9W,EAAI4iB,EAAGxC,MACPzP,EAAQiS,EAAGjS,MACXxK,EAAQyc,EAAGI,YACXU,EAASd,EAAGQ,aACZO,EAAOf,EAAGS,WACVO,EAAM9nB,EAAEylB,MAERsC,EAAK7jB,EAAEsgB,SACPwD,EAAK9jB,EAAEihB,YACPc,EAAK/hB,EAAEygB,SACPsD,EAAS/jB,EAAE0gB,YACX0C,EAAepjB,EAAE4gB,kBACjBoD,EAAQhkB,EAAE2gB,WACVsD,EAAKjkB,EAAEghB,iBACP8B,EAAe,WAAPmB,EAQRC,EAAU,SAASC,SAAS3kB,GAC9BA,KAGE4kB,EAAO3gB,KAAKqe,QAAkBva,OAAO8c,uBAAyB9c,OAAO+c,0BAA4B/c,OAAOgd,6BAA+Bhd,OAAOid,0BAA1HN,EAUpBO,EAAKhhB,KAAK8f,cACVmB,EAASjhB,KAAKqe,MAAQva,OAAOod,SAAWpd,OAAOib,YAAcT,EAAG9e,UAEhE2hB,EAAW9B,GAAS4B,GAAUve,IAAoB,WAAVwK,GAAgC,UAAVA,GAC9DkU,EAAUH,GAAUf,GAAkB,WAAVhT,EAFhB+T,EAASve,GAASue,EAASf,IAAmB,YAAVhT,GAAiC,UAAVA,IAYzEiS,EAAGjS,MAAQ,SACXyT,GAAI,WACFK,EAAG3oB,EAAGkoB,EAAOD,GACbH,EAAIhf,SAAWkf,EACXD,IACJD,EAAIkB,OAAS,GACblB,EAAIK,GAAMjkB,EAAEugB,sBAAwB,KACpCzkB,EAAE4D,cAAcogB,QAET8E,GACThC,EAAGjS,MAAQ,UACXyT,GAAI,WACFK,EAAG3oB,EAAGioB,GACNU,EAAG3oB,EAAGkoB,GACK,UAAPF,IAAgBF,EAAIhf,SAAW,IACnC9I,EAAE4D,cAAcsgB,OAET6E,IACTjC,EAAGjS,MAAQ,QACXyT,GAAI,WACFK,EAAG3oB,EAAGioB,EAAQC,GACH,UAAPF,GAAkBD,IACtBD,EAAI/N,IAAM,GACV+N,EAAIkB,OAAS,IACblB,EAAIhf,SAAW,gBAInB,IAAImgB,EAAiBL,GAAUhB,GAAUgB,GAAUf,EAC3Be,EAAShB,EAAS,GAAKgB,EAASf,EAItDS,GAAI,WACFK,EAAG3oB,EAAGsnB,MAEC2B,GACTX,GAAI,WACFK,EAAG3oB,EARI,OAQKsnB,OAKlB1B,EAAOsD,OAAS,SAASA,OAAOC,QACT,IAAjBA,IACFA,EAAe,MAGjB,IAAK,IAAItoB,EAAI,EAAGA,EAAI8G,KAAKqD,UAAUpK,OAAQC,GAAK,EAAG,CACjD,IAAIuoB,EAAWzhB,KAAKqD,UAAUnK,GAG9B,GAFA8G,KAAKwe,qBAAqBiD,GAEtBD,EACF,IAAK,IAAIE,KAAeF,EACtBC,EAAS9E,MAAM+E,GAAeF,EAAaE,GAKjD,OAAO1hB,MASTie,EAAO0D,eAAiB,SAASA,eAAeF,GAC9C,IAAIppB,EAAIopB,EAASpO,GACb9W,EAAIklB,EAAS9E,MACbqE,EAAKhhB,KAAK8f,cACdznB,EAAEylB,MAAM3c,SAAW,GACnB9I,EAAEylB,MAAMvhB,EAAEghB,kBAAoB,GAC9ByD,EAAG3oB,EAAGkE,EAAE0gB,aACR+D,EAAG3oB,EAAGkE,EAAE2gB,YACR8D,EAAG3oB,EAAE4C,WAAYsB,EAAEwgB,cAUrBkB,EAAO2D,QAAU,SAASA,UACxB,IAAK,IAAI1oB,EAAI,EAAGA,EAAI8G,KAAKqD,UAAUpK,OAAQC,GAAK,EAAG,CACjD,IAAIuoB,EAAWzhB,KAAKqD,UAAUnK,GAC9BuoB,EAAS9E,MAAMK,SAASna,oBAAoB,SAAU4e,EAAS/C,gBAC/D1e,KAAK2hB,eAAeF,GAGtBzhB,KAAK2e,aAAc,EACnB3e,KAAKqD,UAAY,IAGZ+Y,WAhYT,GA6YeyF,MAJf,SAASA,WAAWzf,EAAQjI,GAC1B,OAAO,IAAIiiB,EAAWha,EAAQjI,KCzchC,SAAWoM,EAAG7C,GACV,IAAM4c,EAAS,CACXwB,YAAa,GACbC,cACI,2GACJtf,KAAI,SAAJA,OACIzC,KAAK8hB,YAAcnnB,SAASwH,iBAAiBnC,KAAK+hB,eAClD/hB,KAAKgiB,kBACLhiB,KAAKiiB,aAETD,gBAAe,SAAfA,kBAEIzb,EAAE,QACG2b,IAAI,GACJpE,MAAMqE,YAAY,kBAAmB5b,EAAE,WAAWsZ,cAAgB,MAGvEtZ,EAAEzC,QAAQse,QAAO,WAEb7b,EAAE,QACG2b,IAAI,GACJpE,MAAMqE,YAAY,kBAAmB5b,EAAE,WAAWsZ,cAAgB,SAG3EtZ,EAAE5L,UAAU+L,GAAG,eAAe,WAC1BH,EAAE,QACG2b,IAAI,GACJpE,MAAMqE,YAAY,kBAAmB5b,EAAE,WAAWsZ,cAAgB,UAG/EoC,UAAS,SAATA,aACSve,EAAGjJ,KAAKmJ,QAAUF,EAAGjJ,KAAKmJ,OAAS,KAGxCie,EAAW,GAADrhB,OAAIR,KAAK+hB,cAAa,iCAAiC,CAAC3E,kBAAkB,IACpFpd,KAAK8hB,YAAY3oB,SAAQ,SAAUkpB,GAC/B,IAAMC,EAAgBD,EAAKvD,wBAC3BuD,EAAKvE,MAAMlM,KAAO0Q,EAAc1Q,KAAO,KACvCyQ,EAAKvE,MAAM5L,MAAQoQ,EAAcpQ,MAAQ,KACzCmQ,EAAKvE,MAAMzL,MAAQvO,OAAOye,WAAaD,EAAcjQ,MAAQ,WAKzE9L,GAAE,WACE+Z,EAAO7d,UA7Cf,CA+CG+f,OAAQ9e,I,gtBCjCX,IAAM+e,EAAO,QAGPC,EAAY,IAAHliB,OADE,YAGXmiB,EAAqBpc,IAAEqc,GAAGH,GAG1BI,EAAU,CACZC,UAAU,EACVC,UAAU,EACV3nB,OAAO,EACPuN,MAAM,GAGJqa,EAAc,CAChBF,SAAU,mBACVC,SAAU,UACV3nB,MAAO,UACPuN,KAAM,WAGJ6E,EAAQ,CACVyV,KAAM,OAAFziB,OAASkiB,GACbQ,eAAgB,gBAAF1iB,OAAkBkiB,GAChCS,OAAQ,SAAF3iB,OAAWkiB,GACjBU,KAAM,OAAF5iB,OAASkiB,GACbW,MAAO,QAAF7iB,OAAUkiB,GACfY,QAAS,UAAF9iB,OAAYkiB,GACnBa,OAAQ,SAAF/iB,OAAWkiB,GACjBc,cAAe,gBAAFhjB,OAAkBkiB,GAC/Be,gBAAiB,kBAAFjjB,OAAoBkiB,GACnCgB,gBAAiB,kBAAFljB,OAAoBkiB,GACnCiB,kBAAmB,oBAAFnjB,OAAsBkiB,GACvCkB,eAAgB,QAAFpjB,OAAUkiB,GAASliB,OA9BhB,cAiCfqjB,EACU,0BADVA,EAEkB,0BAFlBA,EAGQ,iBAHRA,EAII,aAJJA,GAKI,OALJA,GAMI,KANJA,GAOM,eAGNC,GACM,gBADNA,GAEU,cAFVA,GAGW,wBAHXA,GAIY,yBAJZA,GAKa,oDALbA,GAMc,cASdC,GAAK,WACP,SAAAA,MAAYpjB,EAASsH,GAAQ+b,IAAA,KAAAD,OACzB/jB,KAAKikB,QAAUjkB,KAAKkkB,WAAWjc,GAC/BjI,KAAKmkB,SAAWxjB,EAChBX,KAAKokB,QAAUzjB,EAAQ/F,cAAckpB,IACrC9jB,KAAKqkB,UAAY,KACjBrkB,KAAKskB,UAAW,EAChBtkB,KAAKukB,oBAAqB,EAC1BvkB,KAAKwkB,sBAAuB,EAC5BxkB,KAAKykB,kBAAmB,EACxBzkB,KAAK0kB,gBAAkB,EAG3B,OAAAC,IAAAZ,MAAA,EAAArmB,IAAA,SAAA9D,MAYA,SAAA0N,OAAOsd,GACH,OAAO5kB,KAAKskB,SAAWtkB,KAAKgH,OAAShH,KAAK2I,KAAKic,KAClD,CAAAlnB,IAAA,OAAA9D,MAED,SAAA+O,KAAKic,GAAe,IAAA/b,EAAA,KAChB,IAAI7I,KAAKskB,WAAYtkB,KAAKykB,iBAA1B,CAIIle,IAAEvG,KAAKmkB,UAAU1c,SAASoc,MAC1B7jB,KAAKykB,kBAAmB,GAG5B,IAAMI,EAAYte,IAAEiH,MAAMA,EAAM4V,KAAM,CAClCwB,kBAGJre,IAAEvG,KAAKmkB,UAAUhkB,QAAQ0kB,GAErB7kB,KAAKskB,UAAYO,EAAU5L,uBAI/BjZ,KAAKskB,UAAW,EAEhBtkB,KAAK8kB,kBACL9kB,KAAK+kB,gBAEL/kB,KAAKglB,gBAELhlB,KAAKilB,kBACLjlB,KAAKklB,kBAEL3e,IAAEvG,KAAKmkB,UAAUzd,GAAG8G,EAAMgW,cAAeM,IAAuB,SAAAhkB,GAAK,OAAI+I,EAAK7B,KAAKlH,MAEnFyG,IAAEvG,KAAKokB,SAAS1d,GAAG8G,EAAMmW,mBAAmB,WACxCpd,IAAEsC,EAAKsb,UAAUjK,IAAI1M,EAAMkW,iBAAiB,SAAA5jB,GACpCyG,IAAEzG,EAAMsC,QAAQuH,GAAGd,EAAKsb,YACxBtb,EAAK2b,sBAAuB,SAKxCxkB,KAAKmlB,eAAc,kBAAMtc,EAAKuc,aAAaR,UAC9C,CAAAlnB,IAAA,OAAA9D,MAED,SAAAoN,KAAKlH,GAAO,IAAAulB,EAAA,KAKR,GAJIvlB,GACAA,EAAM8B,iBAGL5B,KAAKskB,WAAYtkB,KAAKykB,iBAA3B,CAIA,IAAMa,EAAY/e,IAAEiH,MAAMA,EAAMyV,MAIhC,GAFA1c,IAAEvG,KAAKmkB,UAAUhkB,QAAQmlB,GAEpBtlB,KAAKskB,WAAYgB,EAAUrM,qBAAhC,CAIAjZ,KAAKskB,UAAW,EAChB,IAAMiB,EAAahf,IAAEvG,KAAKmkB,UAAU1c,SAASoc,IAgB7C,GAdI0B,IACAvlB,KAAKykB,kBAAmB,GAG5BzkB,KAAKilB,kBACLjlB,KAAKklB,kBAEL3e,IAAE5L,UAAUuP,IAAIsD,EAAM8V,SAEtB/c,IAAEvG,KAAKmkB,UAAUvc,YAAYic,IAE7Btd,IAAEvG,KAAKmkB,UAAUja,IAAIsD,EAAMgW,eAC3Bjd,IAAEvG,KAAKokB,SAASla,IAAIsD,EAAMmW,mBAEtB4B,EAAY,CACZ,IAAMC,EAAqBC,IAAKC,iCAAiC1lB,KAAKmkB,UAEtE5d,IAAEvG,KAAKmkB,UACFjK,IAAIuL,IAAKE,gBAAgB,SAAA7lB,GAAK,OAAIulB,EAAKO,WAAW9lB,MAClD+lB,qBAAqBL,QAE1BxlB,KAAK4lB,iBAEZ,CAAAloB,IAAA,UAAA9D,MAED,SAAAksB,UACI,CAAChiB,OAAQ9D,KAAKmkB,SAAUnkB,KAAKokB,SAASjrB,SAAQ,SAAA4sB,GAAW,OAAIxf,IAAEwf,GAAa7b,IAAIwY,MAOhFnc,IAAE5L,UAAUuP,IAAIsD,EAAM8V,SAEtB/c,IAAEyf,WAAWhmB,KAAKmkB,SA1LT,YA4LTnkB,KAAKikB,QAAU,KACfjkB,KAAKmkB,SAAW,KAChBnkB,KAAKokB,QAAU,KACfpkB,KAAKqkB,UAAY,KACjBrkB,KAAKskB,SAAW,KAChBtkB,KAAKukB,mBAAqB,KAC1BvkB,KAAKwkB,qBAAuB,KAC5BxkB,KAAKykB,iBAAmB,KACxBzkB,KAAK0kB,gBAAkB,OAC1B,CAAAhnB,IAAA,eAAA9D,MAED,SAAAqsB,eACIjmB,KAAKglB,kBAGT,CAAAtnB,IAAA,aAAA9D,MAEA,SAAAsqB,WAAWjc,GAMP,OALAA,EAAMie,4BAAA,GACCrD,GACA5a,GAEPwd,IAAKU,gBAAgB1D,EAAMxa,EAAQ+a,GAC5B/a,IACV,CAAAvK,IAAA,6BAAA9D,MAED,SAAAwsB,6BAA6B,IAAAC,EAAA,KACzB,GAA8B,WAA1BrmB,KAAKikB,QAAQnB,SAAuB,CACpC,IAAMwD,EAAqB/f,IAAEiH,MAAMA,EAAM0V,gBAGzC,GADA3c,IAAEvG,KAAKmkB,UAAUhkB,QAAQmmB,GACrBA,EAAmBC,iBACnB,OAGJvmB,KAAKmkB,SAAS/kB,UAAUE,IAAIukB,IAE5B,IAAM2C,EAA0Bf,IAAKC,iCAAiC1lB,KAAKmkB,UAE3E5d,IAAEvG,KAAKmkB,UACFjK,IAAIuL,IAAKE,gBAAgB,WACtBU,EAAKlC,SAAS/kB,UAAUC,OAAOwkB,OAElCgC,qBAAqBW,GAC1BxmB,KAAKmkB,SAAS/oB,aAEd4E,KAAKgH,SAEZ,CAAAtJ,IAAA,eAAA9D,MAED,SAAAwrB,aAAaR,GAAe,IAAA6B,EAAA,KAClBlB,EAAahf,IAAEvG,KAAKmkB,UAAU1c,SAASoc,IACvC6C,EAAY1mB,KAAKokB,QAAUpkB,KAAKokB,QAAQxpB,cAAckpB,IAAuB,KAE9E9jB,KAAKmkB,SAASlpB,YAAc+E,KAAKmkB,SAASlpB,WAAW0rB,WAAaC,KAAKC,cAExElsB,SAASiY,KAAKkU,YAAY9mB,KAAKmkB,UAGnCnkB,KAAKmkB,SAASrG,MAAMiJ,QAAU,QAC9B/mB,KAAKmkB,SAASvlB,gBAAgB,eAC9BoB,KAAKmkB,SAAS9oB,aAAa,cAAc,GAErCkL,IAAEvG,KAAKokB,SAAS3c,SAASoc,IAAyB6C,EAClDA,EAAUlnB,UAAY,EAEtBQ,KAAKmkB,SAAS3kB,UAAY,EAG1B+lB,GACAE,IAAKuB,OAAOhnB,KAAKmkB,UAGrB5d,IAAEvG,KAAKmkB,UAAUtc,SAASgc,IAEtB7jB,KAAKikB,QAAQ7oB,OACb4E,KAAKinB,gBAGT,IAAMC,EAAa3gB,IAAEiH,MAAMA,EAAM6V,MAAO,CACpCuB,kBAGEuC,EAAqB,SAArBA,qBACEV,EAAKxC,QAAQ7oB,OACbqrB,EAAKtC,SAAS/oB,QAElBqrB,EAAKhC,kBAAmB,EACxBle,IAAEkgB,EAAKtC,UAAUhkB,QAAQ+mB,IAG7B,GAAI3B,EAAY,CACZ,IAAMC,EAAqBC,IAAKC,iCAAiC1lB,KAAKokB,SAEtE7d,IAAEvG,KAAKokB,SAASlK,IAAIuL,IAAKE,eAAgBwB,GAAoBtB,qBAAqBL,QAElF2B,MAEP,CAAAzpB,IAAA,gBAAA9D,MAED,SAAAqtB,gBAAgB,IAAAG,EAAA,KACZ7gB,IAAE5L,UACGuP,IAAIsD,EAAM8V,SACV5c,GAAG8G,EAAM8V,SAAS,SAAAxjB,GAEXnF,WAAamF,EAAMsC,QACnBglB,EAAKjD,WAAarkB,EAAMsC,QACsB,IAA9CmE,IAAE6gB,EAAKjD,UAAUkD,IAAIvnB,EAAMsC,QAAQnJ,QAEnCmuB,EAAKjD,SAAS/oB,aAG7B,CAAAsC,IAAA,kBAAA9D,MAED,SAAAqrB,kBAAkB,IAAAqC,EAAA,KACVtnB,KAAKskB,UAAYtkB,KAAKikB,QAAQlB,SAC9Bxc,IAAEvG,KAAKmkB,UAAUzd,GAAG8G,EAAMiW,iBAAiB,SAAA3jB,GA5ShC,KA6SHA,EAAMsK,OACNkd,EAAKlB,gCAGLpmB,KAAKskB,UACb/d,IAAEvG,KAAKmkB,UAAUja,IAAIsD,EAAMiW,mBAElC,CAAA/lB,IAAA,kBAAA9D,MAED,SAAAsrB,kBAAkB,IAAAqC,EAAA,KACVvnB,KAAKskB,SACL/d,IAAEzC,QAAQ4C,GAAG8G,EAAM+V,QAAQ,SAAAzjB,GAAK,OAAIynB,EAAKtB,aAAanmB,MAEtDyG,IAAEzC,QAAQoG,IAAIsD,EAAM+V,UAE3B,CAAA7lB,IAAA,aAAA9D,MAED,SAAAgsB,aAAa,IAAA4B,EAAA,KACTxnB,KAAKmkB,SAASrG,MAAMiJ,QAAU,OAC9B/mB,KAAKmkB,SAAS9oB,aAAa,eAAe,GAC1C2E,KAAKmkB,SAASvlB,gBAAgB,cAC9BoB,KAAKykB,kBAAmB,EACxBzkB,KAAKmlB,eAAc,WACf5e,IAAE5L,SAASiY,MAAMhL,YAAYic,GAC7B2D,EAAKC,oBACLD,EAAKE,kBACLnhB,IAAEihB,EAAKrD,UAAUhkB,QAAQqN,EAAM2V,aAEtC,CAAAzlB,IAAA,kBAAA9D,MAED,SAAA+tB,kBACQ3nB,KAAKqkB,YACL9d,IAAEvG,KAAKqkB,WAAWhlB,SAClBW,KAAKqkB,UAAY,QAExB,CAAA3mB,IAAA,gBAAA9D,MAED,SAAAurB,cAAc7gB,GAAU,IAAAsjB,EAAA,KACdjV,EAAUpM,IAAEvG,KAAKmkB,UAAU1c,SAASoc,IAAkBA,GAAiB,GAE7E,GAAI7jB,KAAKskB,UAAYtkB,KAAKikB,QAAQnB,SAAU,CA4BxC,GA3BA9iB,KAAKqkB,UAAY1pB,SAASG,cAAc,OACxCkF,KAAKqkB,UAAU5F,UAAYoF,EAEvBlR,GACA3S,KAAKqkB,UAAUjlB,UAAUE,IAAIqT,GAGjCpM,IAAEvG,KAAKqkB,WAAW9K,SAAS5e,SAASiY,MAEpCrM,IAAEvG,KAAKmkB,UAAUzd,GAAG8G,EAAMgW,eAAe,SAAA1jB,GACjC8nB,EAAKpD,qBACLoD,EAAKpD,sBAAuB,EAG5B1kB,EAAMsC,SAAWtC,EAAMkJ,eAI3B4e,EAAKxB,gCAGLzT,GACA8S,IAAKuB,OAAOhnB,KAAKqkB,WAGrB9d,IAAEvG,KAAKqkB,WAAWxc,SAASgc,KAEtBvf,EACD,OAGJ,IAAKqO,EAED,YADArO,IAIJ,IAAMujB,EAA6BpC,IAAKC,iCAAiC1lB,KAAKqkB,WAE9E9d,IAAEvG,KAAKqkB,WAAWnK,IAAIuL,IAAKE,eAAgBrhB,GAAUuhB,qBAAqBgC,QACvE,IAAK7nB,KAAKskB,UAAYtkB,KAAKqkB,UAAW,CACzC9d,IAAEvG,KAAKqkB,WAAWzc,YAAYic,IAE9B,IAAMiE,EAAiB,SAAjBA,iBACFF,EAAKD,kBACDrjB,GACAA,KAIR,GAAIiC,IAAEvG,KAAKmkB,UAAU1c,SAASoc,IAAiB,CAC3C,IAAMgE,EAA6BpC,IAAKC,iCAAiC1lB,KAAKqkB,WAE9E9d,IAAEvG,KAAKqkB,WACFnK,IAAIuL,IAAKE,eAAgBmC,GACzBjC,qBAAqBgC,QAE1BC,SAEGxjB,GACPA,MAOR,CAAA5G,IAAA,gBAAA9D,MAEA,SAAAorB,gBACI,IAAM+C,EAAqB/nB,KAAKmkB,SAAS6D,aAAertB,SAASqkB,gBAAgBtf,cAE5EM,KAAKukB,oBAAsBwD,IAC5B/nB,KAAKmkB,SAASrG,MAAMmK,YAAc,GAAHznB,OAAMR,KAAK0kB,gBAAe,OAGzD1kB,KAAKukB,qBAAuBwD,IAC5B/nB,KAAKmkB,SAASrG,MAAMoK,aAAe,GAAH1nB,OAAMR,KAAK0kB,gBAAe,SAEjE,CAAAhnB,IAAA,oBAAA9D,MAED,SAAA6tB,oBACIznB,KAAKmkB,SAASrG,MAAMmK,YAAc,GAClCjoB,KAAKmkB,SAASrG,MAAMoK,aAAe,KACtC,CAAAxqB,IAAA,kBAAA9D,MAED,SAAAkrB,kBACI,IAAMqD,EAAOxtB,SAASiY,KAAKkM,wBAC3B9e,KAAKukB,mBAAqB4D,EAAKvW,KAAOuW,EAAK9V,MAAQvO,OAAOgO,WAC1D9R,KAAK0kB,gBAAkB1kB,KAAKooB,uBAC/B,CAAA1qB,IAAA,gBAAA9D,MAED,SAAAmrB,gBAAgB,IAAAsD,EAAA,KACZ,GAAIroB,KAAKukB,mBAAoB,CAGzB,IAAM+D,EAAe,GAAG/tB,MAAMD,KAAKK,SAASwH,iBAAiB2hB,KACvDyE,EAAgB,GAAGhuB,MAAMD,KAAKK,SAASwH,iBAAiB2hB,KAG9Dvd,IAAE+hB,GAAcxhB,MAAK,SAACvI,EAAOoC,GACzB,IAAM6nB,EAAgB7nB,EAAQmd,MAAMoK,aAC9BO,EAAoBliB,IAAE5F,GAAS2R,IAAI,iBACzC/L,IAAE5F,GACG1D,KAAK,gBAAiBurB,GACtBlW,IAAI,gBAAiB,GAAF9R,OAAKkoB,WAAWD,GAAqBJ,EAAK3D,gBAAe,UAIrFne,IAAEgiB,GAAezhB,MAAK,SAACvI,EAAOoC,GAC1B,IAAMgoB,EAAehoB,EAAQmd,MAAM8K,YAC7BC,EAAmBtiB,IAAE5F,GAAS2R,IAAI,gBACxC/L,IAAE5F,GACG1D,KAAK,eAAgB0rB,GACrBrW,IAAI,eAAgB,GAAF9R,OAAKkoB,WAAWG,GAAoBR,EAAK3D,gBAAe,UAInF,IAAM8D,EAAgB7tB,SAASiY,KAAKkL,MAAMoK,aACpCO,EAAoBliB,IAAE5L,SAASiY,MAAMN,IAAI,iBAC/C/L,IAAE5L,SAASiY,MACN3V,KAAK,gBAAiBurB,GACtBlW,IAAI,gBAAiB,GAAF9R,OAAKkoB,WAAWD,GAAqBzoB,KAAK0kB,gBAAe,OAGrFne,IAAE5L,SAASiY,MAAM/K,SAASgc,KAC7B,CAAAnmB,IAAA,kBAAA9D,MAED,SAAA8tB,kBAEI,IAAMY,EAAe,GAAG/tB,MAAMD,KAAKK,SAASwH,iBAAiB2hB,KAC7Dvd,IAAE+hB,GAAcxhB,MAAK,SAACvI,EAAOoC,GACzB,IAAMmoB,EAAUviB,IAAE5F,GAAS1D,KAAK,iBAChCsJ,IAAE5F,GAASqlB,WAAW,iBACtBrlB,EAAQmd,MAAMoK,aAAeY,GAAoB,MAIrD,IAAMC,EAAW,GAAGxuB,MAAMD,KAAKK,SAASwH,iBAAiB,GAAD3B,OAAIsjB,MAC5Dvd,IAAEwiB,GAAUjiB,MAAK,SAACvI,EAAOoC,GACrB,IAAMqoB,EAASziB,IAAE5F,GAAS1D,KAAK,qBACT,IAAX+rB,GACPziB,IAAE5F,GAAS2R,IAAI,eAAgB0W,GAAQhD,WAAW,mBAK1D,IAAM8C,EAAUviB,IAAE5L,SAASiY,MAAM3V,KAAK,iBACtCsJ,IAAE5L,SAASiY,MAAMoT,WAAW,iBAC5BrrB,SAASiY,KAAKkL,MAAMoK,aAAeY,GAAoB,KAC1D,CAAAprB,IAAA,qBAAA9D,MAED,SAAAwuB,qBAEI,IAAMa,EAAYtuB,SAASG,cAAc,OACzCmuB,EAAUxK,UAAYoF,EACtBlpB,SAASiY,KAAKkU,YAAYmC,GAC1B,IAAMC,EAAiBD,EAAUnK,wBAAwB5M,MAAQ+W,EAAUE,YAE3E,OADAxuB,SAASiY,KAAKhQ,YAAYqmB,GACnBC,KAGX,EAAAxrB,IAAA,UAAAwkB,IAhbA,SAAAA,MACI,MA7EQ,UA8EX,CAAAxkB,IAAA,UAAAwkB,IAED,SAAAA,MACI,OAAOW,IACV,CAAAnlB,IAAA,mBAAA9D,MA4aD,SAAOwvB,iBAAiBnhB,EAAQ2c,GAC5B,OAAO5kB,KAAK8G,MAAK,WACb,IAAI7J,EAAOsJ,IAAEvG,MAAM/C,KA/fd,YAggBCgnB,EAAOiC,0CAAA,GACNrD,GACAtc,IAAEvG,MAAM/C,QACW,WAAlBzD,IAAOyO,IAAuBA,EAASA,EAAS,IAQxD,GALKhL,IACDA,EAAO,IAAI8mB,MAAM/jB,KAAMikB,GACvB1d,IAAEvG,MAAM/C,KAxgBP,WAwgBsBA,IAGL,iBAAXgL,EAAqB,CAC5B,QAA4B,IAAjBhL,EAAKgL,GACZ,MAAM,IAAI7N,UAAU,oBAADoG,OAAqByH,EAAM,MAElDhL,EAAKgL,GAAQ2c,QACNX,EAAQtb,MACf1L,EAAK0L,KAAKic,UArdf,GAieXre,IAAE5L,UAAU+L,GAAG8G,EAAMoW,eAAgBE,IAAsB,SAAUhkB,GAAO,IACpEsC,EADoEinB,EAAA,KAElE/lB,EAAWmiB,IAAK6D,uBAAuBtpB,MAEzCsD,IACAlB,EAASzH,SAASC,cAAc0I,IAGpC,IAAM2E,EAAS1B,IAAEnE,GAAQnF,KAriBZ,YAsiBP,SAAQipB,4BAAA,GAED3f,IAAEnE,GAAQnF,QACVsJ,IAAEvG,MAAM/C,QAGA,MAAjB+C,KAAKupB,SAAoC,SAAjBvpB,KAAKupB,SAC7BzpB,EAAM8B,iBAGV,IAAMwF,EAAUb,IAAEnE,GAAQ8X,IAAI1M,EAAM4V,MAAM,SAAAyB,GAClCA,EAAU5L,sBAKd7R,EAAQ8S,IAAI1M,EAAM2V,QAAQ,WAClB5c,IAAE8iB,GAAM1f,GAAG,aACX0f,EAAKjuB,cAKjB2oB,GAAMqF,iBAAiB9uB,KAAKiM,IAAEnE,GAAS6F,EAAQjI,SASnDuG,IAAEqc,GAAGH,GAAQsB,GAAMqF,iBACnB7iB,IAAEqc,GAAGH,GAAM+G,YAAczF,GACzBxd,IAAEqc,GAAGH,GAAMgH,WAAa,WAEpB,OADAljB,IAAEqc,GAAGH,GAAQE,EACNoB,GAAMqF,kB,mCAGFrF,I,GC1lBPzd,GACA8C,GAKAkN,G,qjFCGR,gC,+CAAsC,OAAlB,YAAkB,MAAtC,CAAoB,MAEpB,kF,OACI,EAAAoT,uBAAyB,qBACzB,EAAAC,2BAA6B,gDAC7B,EAAAC,eAAiB,yBACjB,EAAAC,iBAAmB,qB,EACvB,OALwB,gBAKxB,UALA,CAAwB,MAOxB,kF,OACI,EAAAC,eAAiB,IAAI,KAAkB,uBACvC,EAAAC,QAAU,IAAI,KAAkB,6FAChC,EAAAC,YAAc,IAAI,KAAkB,yBACpC,EAAAC,gBAAkB,IAAI,KAAkB,yBAA0B,YAClE,EAAAC,YAAc,mBACd,EAAAC,QAAU,8BACV,EAAAP,eAAiB,+BACjB,EAAAQ,+BAAiC,4CACjC,EAAAT,2BAA6B,IAAI,KAAkB,kDACnD,EAAAU,uBAAyB,IAAI,KAAkB,uDAC/C,EAAAC,eAAiB,IAAI,KAAkB,4BACvC,EAAAC,WAAa,eACb,EAAAC,qCAAuC,0CACvC,EAAAC,oBAAsB,wB,EAC1B,OAfwB,gBAexB,UAfA,CAAwB,MAiBxB,iF,OACI,EAAAV,QAA8B,GAC9B,EAAAC,YAAkC,GAClC,EAAAF,eAA0C,G,EAK9C,OARuB,eAQvB,SARA,CAAuB,MA2BvB,GACI,YAAmBzW,EAA6BqX,EAA2BC,GAAxD,KAAAtX,KAA6B,KAAAqX,aAA2B,KAAAC,aAkXhE,GA9Wf,WAkDI,qBAAqBjsB,GAAA,KAAAA,UA0TzB,OAjWI,sBAAc,4CAAmB,C,IAAjC,WACI,OAAOsB,KAAK4qB,sB,gCAIhB,sBAAc,yCAAgB,C,IAA9B,WACI,OAAO,G,gCAIX,sBAAc,mDAA0B,C,IAAxC,WACI,OAAO,G,gCAIX,sBAAc,0DAAiC,C,IAA/C,WACI,OAAO,G,gCAGX,sBAAc,0CAAiB,C,IAA/B,WACI,OAAO5qB,KAAK6qB,SAASC,WAAW,sBAAsB9qB,KAAK+qB,sBAAqB,UAAW/qB,KAAK+oB,SAASkB,kB,gCAG7G,sBAAc,8CAAqB,C,IAAnC,WACI,OAAOjqB,KAAK6qB,SAASxoB,QAAQrC,KAAKgrB,UAAUT,WAAYvqB,KAAK+oB,SAASsB,wBAAwBloB,iBAAiB,U,gCAGnH,sBAAc,sCAAa,C,IAA3B,WACI,MAAO,CACH8oB,GAAI,mBACJC,IAAK,wBACLC,KAAM,kBACNC,KAAM,uBACNC,GAAI,aACJC,GAAI,mBACJC,GAAI,yB,gCAMZ,sBAAAC,WAAA,WACIxrB,KAAKyrB,eAAiBzrB,KAAK0rB,cAC3B1rB,KAAK2rB,yBACL3rB,KAAK4rB,mBACL5rB,KAAK+oB,SAASyC,WAAWxrB,KAAKtB,SAC1BsB,KAAK+oB,SAASe,eAAe7wB,QAAU+G,KAAK6rB,mBAAqB7rB,KAAK8rB,aAAaloB,MACnF5D,KAAK+rB,mBAET/rB,KAAKgsB,oBACLhsB,KAAK6qB,SAASoB,YAAYjsB,KAAKgrB,UAAUP,qBAAqBtxB,SAAQ,SAACwH,EAASzH,GAC5EyH,EAAQtF,aAAa,aAAc,wCAQ3C,sBAAAuwB,iBAAA,W,QACI5rB,KAAK+qB,sBACgC,QADR,EAA2D,QAA3D,EAAA/qB,KAAK6qB,SAASC,WAAc9qB,KAAKgrB,UAAUb,QAAO,iBAAS,eAClFhvB,aAAa,0BAAkB,eAC/BO,QAAQ,MAAO,KAGzB,sBAAAiwB,uBAAA,WACI3rB,KAAK4qB,qBAAuB,CAAEsB,cAAc,IAGtC,sBAAAC,gBAAV,SAA0Bjd,EAAMjS,GAC5B,IAAImvB,GAE0C,IAA1CpsB,KAAKqsB,oBAAoBH,aACzBE,EAAMzxB,SAASG,cAAc,QAE7BsxB,EAAMzxB,SAASG,cAAc,MACzBmO,KAAOhM,EAAKrD,MAAMkT,IAG1Bsf,EAAI3N,UAAY,2BAChB2N,EAAIxwB,UAAY,oCAAoCqB,EAAKrD,MAAM8C,UAAS,UAGpEO,EAAKrD,MAAM0yB,iBACXF,EAAIxwB,UAAY,wCAAwCqB,EAAKrD,MAAM0yB,eAAc,WAAWF,EAAIxwB,WAEpGsT,EAAK7T,aAAa,aAAc+wB,EAAIG,WACpCrd,EAAKtT,UAAY,GACjBsT,EAAK4X,YAAYsF,IAGrB,sBAAc,uCAAc,C,IAA5B,WACI,MAAO,CACHhsB,UAAW,EACXmB,SAAU,IACV/D,WAAY,CACRmD,QAASX,KAAKmsB,gBAAgBtiB,KAAK7J,MACnCnE,MAAUmE,KAAKZ,UAAUsqB,uBAAsB,SAEnDnsB,aAAc,SAACQ,EAAOyuB,GAClB,OAAOA,EAAO9vB,WAAa8vB,EAAO7Y,S,gCAKpC,sBAAA8Y,WAAV,SAAqBC,EAAgCC,GAArD,WACI,OAAO,SAAP,CACI1vB,KAAM,CACFG,IAAK,wD,yEACK0P,EAAM9M,KAAK4sB,cAAcF,IAEd,GAAMG,MAAM/f,IADzB,M,OAEO,SADM,SACKggB,Q,OAAlB,MAAO,CAAP,EAAO,U,OAEP,MAAO,CAAC,EAAD,YAGf5vB,OAAO,GAEXoG,SAAU,WAAM,OAAAopB,EAAerZ,IAC/BxV,YAAamC,KAAK+sB,iBAAiBL,IAChC1sB,KAAKgtB,iBAIN,sBAAAC,0BAAV,SAAoCb,GAGhCpsB,KAAKqsB,oBAAoBH,aAAelsB,KAAK6qB,SAASqC,gBAAgBd,EAAKpsB,KAAKZ,UAAUuqB,6BAGpF,sBAAAwD,yBAAV,SAAmCT,GAC/B1sB,KAAKitB,0BAA0BP,EAAerZ,IAC9C,IAAIsZ,EAAgC,GAC9BS,EAAUptB,KAAKysB,WAAWC,EAAgBC,GAGhD,OAFAA,EAAkB,IAAI,KAAaS,GACnCptB,KAAK6qB,SAAStoB,iBAAiBmqB,EAAerZ,GAAI,YAAarT,KAAKqtB,YAAYxjB,KAAK7J,OAC9E2sB,GAID,sBAAAI,iBAAV,SAA2BL,GAA3B,WACI,MAAO,CACH5uB,WAAY,GACZ0W,QAAQ,EACR8Y,OAAQ,gBAAkBC,KAAKC,KAAqB,IAAhBD,KAAKE,UACzC5xB,MAAO,qBACPqF,YAAa,WAAM,SAAKwsB,sBAAsBhB,MAI5C,sBAAAgB,sBAAV,SAAgChB,GAC5B,OAAI1sB,KAAK6qB,SAASxoB,QAAQrC,KAAKgrB,UAAUpB,eAAgB8C,EAAerZ,IAC7DqZ,EAAerZ,GAAGuL,cAEtB8N,EAAerZ,GAAGuL,cAAcA,eAIjC,sBAAAmN,iBAAV,sBACI/rB,KAAK2tB,qBAAuB,IAAIC,IAChC5tB,KAAK+oB,SAASe,eAAe3wB,SAAQ,SAACwH,EAASzH,G,MAC3CyH,EAAQtF,aAAa,OAAQ,UAC7B,IAAIqxB,EAAiB,IAAImB,GAAeltB,EAAS,KAAM,MAGnDA,EAAQie,cAAcxf,UAAU0uB,SAAS,oBACzCpB,EAAe/B,UAAyG,QAA7F,IAAKE,SAASC,WAA6B,EAAKE,UAAUd,YAAavpB,EAAQie,sBAAc,eAAEhlB,MAC1H8yB,EAAehC,WAAa,WAGhC,EAAKiD,qBAAqBplB,IACtBmkB,EACA,EAAKS,yBAAyBT,QAK1C,sBAAAV,kBAAA,sBACQhsB,KAAK6rB,mBAAqB7rB,KAAK8rB,aAAaloB,MAC5C5D,KAAK+oB,SAASe,eAAe3wB,SAAQ,SAAA6C,GACjCA,EAAMuG,iBAAiB,UAAW,EAAKwrB,UAAUlkB,KAAK,EAAM7N,OAIpEgE,KAAK+oB,SAASgB,QAAQ5wB,SAAQ,SAAA60B,GAC1BA,EAAKzrB,iBAAiB,SAAU,EAAK0rB,aAAapkB,KAAK,EAAMmkB,OAG7DhuB,KAAK+oB,SAASiB,aAAehqB,KAAK+oB,SAASiB,YAAY/wB,OAAS,GAChE+G,KAAK+oB,SAASiB,YAAY7wB,SAAQ,SAAA+V,GAC9BA,EAAK3M,iBAAiB,QAAS,EAAK2rB,uBAAuBrkB,KAAK,EAAMqF,OAI9ElP,KAAKmuB,+BACLnuB,KAAKouB,yBAGC,sBAAAA,sBAAV,WACI,IAAMC,EAAqB1zB,SAASC,cAAc,6CAC5C0zB,EAAoB3zB,SAASwH,iBAAiB,8BAU9CosB,EAAW,IAAIvqB,kBATI,SAASwqB,GAC9BA,EAAcr1B,SAAQ,SAAAs1B,GACfA,EAASrsB,OAAOiF,SAASpO,OACxBo1B,EAAmBzyB,UAAe6yB,EAASrsB,OAAOiF,SAASpO,OAAM,kEAEjEo1B,EAAmBzyB,UAAY,kCAK3C0yB,EAAkBn1B,SAAQ,SAAAwH,GACtB4tB,EAASzpB,QAAQnE,EAAS,CAAEgE,WAAW,QAKrC,sBAAAspB,aAAV,SAAuBD,EAAuB31B,G,MAEvB,MADwF,QAAxF,EAAA2H,KAAK6qB,SAASC,WAA6B9qB,KAAKgrB,UAAUlB,eAAexmB,SAAU0qB,UAAK,eAAEp0B,QAEzGkK,OAAOqF,SAASF,KAAO,mBACvB5Q,EAAEuJ,kBAEFosB,EAAKnsB,UAIH,sBAAAwrB,YAAV,SAAsBvtB,IAC4B,IAA1CE,KAAKqsB,oBAAoBH,aAEzBpsB,EAAMsC,OAAOxI,MAAQkG,EAAM1D,OAAOkC,UAAU1E,MAAM+Z,MAElD7P,OAAOqF,SAASF,KAAOnJ,EAAM1D,OAAOkC,UAAU1E,MAAMkT,KAKlD,sBAAAihB,UAAV,SAAoB/xB,EAAyB3D,GAA7C,WACI,GAAkB,KAAdA,EAAEsJ,QAAgB,CAElB,IAAM+sB,WAAa,WAAM,SAAK7D,SAASxoB,QAAQ,OAAQrG,GAAOC,cAAc,IAAIuR,MAAM,SAAU,CAAErR,SAAS,EAAMG,YAAY,MAC7H,GAAI0D,KAAK2uB,2BAA4B,CACjC,GAAI3uB,KAAK6qB,SAASC,WAAW9qB,KAAKgrB,UAAUZ,+BAAgCpqB,KAAKtB,SAC7E,OAEJ,OAAOgwB,aACJ,GAAoB,KAAhB1yB,EAAMpC,MACb,OAEJ80B,eAIE,sBAAAR,uBAAV,SAAiChf,EAAmB7W,GAChD,IAAMu2B,EAAiB1f,EAAK3P,GAC5B,GAAIS,KAAK+qB,wBAA0B6D,EAE/B1f,EAAKtQ,gBAAgB,eACrB6C,YAAW,WACPyN,EAAK7T,aAAa,cAAe,cAClC,QAEH,GAAI2E,KAAK6uB,mCACL,GAAI7uB,KAAK8uB,kBAAmB,CACxB,IAAM9yB,EAAQgE,KAAK6qB,SAASC,WAA6B9qB,KAAKgrB,UAAUlB,eAAexmB,SAAUtD,KAAK8uB,mBACtG9uB,KAAK+qB,sBAAwB6D,EAC7B5yB,EAAMpC,MAAQoC,EAAMpC,YAGxBoG,KAAK+qB,sBAAwB6D,GAK/B,sBAAAT,6BAAV,WACSnuB,KAAK6qB,SAASqC,gBAAgBltB,KAAKtB,QAASsB,KAAKZ,UAAUwqB,kBAIhE5pB,KAAK6qB,SAAStoB,iBAAiBvC,KAAK+oB,SAASe,eAAgB,QAAS9pB,KAAK+uB,wBAAwBllB,KAAK7J,OAExGA,KAAK6qB,SAAStoB,iBAAiBvC,KAAK+oB,SAASsB,uBAAwB,QAASrqB,KAAK+uB,wBAAwBllB,KAAK7J,OAChHA,KAAK6qB,SAAStoB,iBAAiBvC,KAAK+oB,SAASsB,uBAAwB,QAASrqB,KAAKgvB,yBAAyBnlB,KAAK7J,OAEjHA,KAAK+uB,4BAGC,sBAAAC,yBAAV,sBACQ5C,EAAMpsB,KAAK+oB,SAASsB,uBACpB4E,EAAyB,KAAd7C,EAAIxyB,MAEnBwyB,EAAI/wB,aAAa,OAAQ4zB,EAAW7C,EAAI8C,QAAQ10B,KAAO,IAEvDwF,KAAKmvB,sBAAsBh2B,SAAQ,SAAC6C,GAEG,iBAA/BA,EAAMb,aAAa,SACiB,iBAApCa,EAAMb,aAAa,cACY,cAA/Ba,EAAMb,aAAa,UAIY,qBAA/Ba,EAAMb,aAAa,SACnB,EAAK0vB,SAAS/K,cACV,EAAK+K,SAASxoB,QAAQ,EAAK2oB,UAAUR,qCAAsCxuB,GAC3E,EAAKoD,UAAUyqB,iBACfoF,GAKRjzB,EAAMozB,SAAWH,OAIf,sBAAAF,wBAAV,WACI,IAAIM,GAAW,GAGXrvB,KAAKsvB,UAAUC,WAAWvvB,KAAK+oB,SAASY,6BACxC3pB,KAAKsvB,UAAUC,WAAWvvB,KAAK+oB,SAASsB,2BAExCgF,GAAW,GAIXA,EACArvB,KAAK+oB,SAASuB,eAAejvB,aAAa,WAAY,QAEtD2E,KAAK+oB,SAASuB,eAAe1rB,gBAAgB,aAI3C,sBAAAguB,cAAV,SAAwBjsB,GACpB,IAAM6uB,EAAaj3B,OAAOk3B,QAAQzvB,KAAK0rB,eAAegE,QAAO,SAACC,EAAK,G,IAACjyB,EAAG,KAAEkyB,EAAI,KACnEh2B,EAAQ+G,EAAQ0S,GAAG6b,QAAQU,GAIjC,OAHIh2B,GACA+1B,EAAI72B,KAAQ4E,EAAG,IAAI9D,GAEhB+1B,IACR,IACGE,EAAOlvB,EAAQ0S,GAAGzZ,MAAMk2B,OAAOp0B,QAAQ,SAAU,KACvD,OACIm0B,EAAK3wB,MAAM,KAAKjG,QAAU82B,SAASpvB,EAAQ0S,GAAG6b,QAAQc,uBACtDH,EAAK52B,QAAU82B,SAASpvB,EAAQ0S,GAAG6b,QAAQe,sBAEpC,GAGJ,gDAAgD5qB,mBAAmBwqB,GAAK,IAAIL,EAAW5yB,KAC1F,KACH,aAAmC,YAAvB+D,EAAQ+pB,WAA2B,WAAa/pB,EAAQgqB,UAAY,KAxWrF,YADC,e,yBACuB,O,6CAExB,YADC,e,yBACoB,O,0CAJnBuF,YAAW,YADhB,aAAkB,GAAWC,GAAUC,GAAWC,I,gCAmDjBC,eAlD5BJ,aAAN,G,ilCCrEA,oC,+CACA,OADwB,gBACxB,UADA,CAAwB,IAGxB,kF,OACI,EAAA1F,qCAAuC,2B,EAC3C,OAFwB,gBAExB,UAFA,CAAwB,IAIxB,mC,+CAEA,OAFuB,eAEvB,SAFA,CAAuB,IAmBR,GARf,mC,+CAKA,OAL0B,kBAEZ,sBAAAuC,iBAAV,SAA2BL,GACvB,OAAO,6CAAK,YAAMK,iBAAgB,UAACL,IAAe,CAAEvrB,SAAU,gBAHhE+uB,YAAW,wBADhB,aAAkB,GAAW,GAAU,GAAW,KAC7CA,aAAN,CAA0B,I,w9BCT1B,gC,+CACA,OADoB,YACpB,MADA,CAAoB,MAGpB,oC,+CACA,OADwB,gBACxB,UADA,CAAwB,MAGxB,kF,OACI,EAAAK,eAAiB,IAAI,KAAkB,gDACvC,EAAAC,sBAAwB,IAAI,KAAkB,8CAC9C,EAAAC,uBAAyB,IAAI,KAAkB,sGAC/C,EAAAC,0BAA4B,IAAI,KAAkB,iD,EACtD,OALwB,gBAKxB,UALA,CAAwB,MAOxB,iF,OACI,EAAAH,eAA0C,GAC1C,EAAAC,sBAAkD,GAClD,EAAAC,uBAAkD,GAClD,EAAAC,0BAAsD,G,EAC1D,OALuB,eAKvB,SALA,CAAuB,MAiDR,GAtCf,WAII,kBAAqBhyB,GAAA,KAAAA,UAgCzB,OA7BI,mBAAA8sB,WAAA,WACIxrB,KAAK+oB,SAASyC,WAAWxrB,KAAKtB,SAC9BsB,KAAKgsB,qBAGT,mBAAAA,kBAAA,sBACIhsB,KAAK+oB,SAASwH,eAAep3B,SAAQ,SAACw3B,GAClCA,EAAMpuB,iBAAiB,QAAS,EAAKquB,0BAA0B/mB,KAAK,EAAM8mB,OAE9E3wB,KAAK+oB,SAAS0H,uBAAuBt3B,SAAQ,SAAA03B,GACzCA,EAAStuB,iBAAiB,SAAU,EAAKuuB,6BAA6BjnB,KAAK,EAAMgnB,QAI/E,mBAAAD,0BAAV,WACI,IAAMG,EAAa/wB,KAAK+oB,SAASwH,eAAeS,MAAK,SAAAL,GAAS,MAAuB,KAAvBA,EAAM/2B,MAAMk2B,UAC1E9vB,KAAKixB,wBAAwBjxB,KAAK+oB,SAASyH,sBAAuBO,IAG5D,mBAAAD,6BAAV,WACI,IAAMI,EAAelxB,KAAK+oB,SAAS0H,uBAAuBO,MAAK,SAAAH,GAAY,OAAAA,EAASM,WACpFnxB,KAAKixB,wBAAwBjxB,KAAK+oB,SAAS2H,2BAA4BQ,IAGjE,mBAAAD,wBAAV,SAAkChiB,EAAsCmiB,QAAtC,IAAAniB,MAAA,IAC9BA,EAAM9V,SAAQ,SAAAk4B,GACVA,EAAOjC,SAAWgC,MA/B1B,oBADC,e,iCACuB,O,0CAFtBE,SAAQ,oBADb,aAAkB,GAAW,GAAU,GAAW,I,wCAKjBhB,eAJ5BgB,UAAN,G,4BH/BQhrB,GAAQC,EAAE,QACV6C,GAAU7C,EAAEzC,QAKZwS,GAAO,CACPpP,QAASX,EAAE,uBACXa,QAAS,KACTkC,QAAQ,EACRC,SAAU,KACVC,MAAO,KACPoB,MAAO,CAAC,aACRP,UAAU,EACVknB,oBAAqB,GACrBC,cAAc,EACdC,sBAAsB,EACtBC,gBAAY3pB,EACZ4pB,iBAAkB,CACdC,kBAAmBrrB,EAAE,YACrBsrB,gBAAiB,KACjBC,iBAAkB,KAClBC,yBAAyB,EACzBC,qBAAsB,IACtBC,2BAA4B,YAC5BC,0BAA2B,KAG/BzvB,KAAM,SAANA,OACI8D,EAAE,aAAaO,MAAK,SAAUvI,GAC1B+X,GAAKlP,QAAUb,EAAEvG,MACjB,IAAMmyB,EAAU7b,GAAKlP,QAAQL,KAAK,gBAClCuP,GAAKib,oBAAsBY,EAAQlkB,OACnCqI,GAAKkb,aAAeW,EAAQl1B,KAAK,eACjCqZ,GAAKvM,MAAMmO,SAAS3Z,GACpB+X,GAAK6B,WAAW5Z,MAEpBgI,EAAE,iCAAiCmB,KAAK,gBAAiB,SACzD4O,GAAK9M,MAAQjD,EAAE,aAAaQ,KAAK,oBACjCuP,GAAK1P,UACL0P,GAAK8b,qBAGTja,WAAY,SAAZA,WAAsB5Z,GAClBgI,EAAE5L,UAAU+L,GAAG4P,GAAK1L,MAAMrM,GAAS,OAAO,WAEtC+X,GAAKjM,UAAW,EAChB9D,EAAE,aAAaO,MAAK,WACZP,EAAEvG,MAAM+G,KAAK,gBAAgB9J,KAAK,cAAgBqZ,GAAK1L,MAAMrM,KAC7DgI,EAAEvG,MAAM6H,SAAS,aACjBtB,EAAE,iCAAiCsB,SAAS,qCAC5CyO,GAAK5P,GAAG2rB,QAAQla,oBAK5B5R,EAAE5L,UAAU+L,GAAG4P,GAAK1L,MAAMrM,GAAS,QAAQ,WAEvC+X,GAAKjM,UAAW,EAChB9D,EAAE,aAAaO,MAAK,WACZP,EAAEvG,MAAM+G,KAAK,gBAAgB9J,KAAK,cAAgBqZ,GAAK1L,MAAMrM,KAC7DgI,EAAEvG,MAAM4H,YAAY,aACpBrB,EAAE,iCAAiCqB,YAAY,qCAC/C0O,GAAK5P,GAAG2rB,QAAQC,mBAMhC1rB,QAAS,SAATA,UACIN,GAAMI,GAAG,QAAS,uBAAuB,SAAUrO,GAC/CA,EAAEuJ,iBACF0U,GAAKpP,QAAUX,EAAEvG,MACjBsW,GAAKlP,QAAUb,EAAE,IAAM+P,GAAKpP,QAAQjK,KAAK,WAEzCqZ,GAAK9M,MAAQ8M,GAAKlP,QAAQL,KAAK,oBAC/BuP,GAAK9M,MAAM1C,MAAK,SAAUvI,GAClBA,IAAU+X,GAAK9M,MAAMvQ,OAAS,IAC9Bqd,GAAK/M,SAAWhD,EAAEvG,UAI1BsW,GAAK5P,GAAGiC,KAAKtQ,MAGjBiO,GAAMI,GAAG,QAAS,gCAAgC,SAAUrO,GACxDA,EAAEuJ,iBACF0U,GAAK5P,GAAGM,KAAK3O,MAGjBiO,GAAMI,GAAG,SAAS,SAAUrO,GACnBkO,EAAElO,EAAE+J,QAAQC,QAAQ,qBAAqBpJ,QAC1CsN,EAAE,4BAA4BqB,YAAY,SAGzCrB,EAAElO,EAAE+J,QAAQqF,SAAS,iBACrBlB,EAAElO,EAAE+J,QAAQiM,QAAQ,kCACpB9H,EAAElO,EAAE+J,QAAQiM,QAAQ,uBAAuBpV,SAC5CsN,EAAE,oCAAoCtN,QAEtCqd,GAAK5P,GAAGM,KAAK3O,MAIrBiO,GAAMI,GAAG,QAAS,eAAe,SAAUrO,GACV,MAAzBkO,EAAEvG,MAAM0H,KAAK,SACbrP,EAAEuJ,oBAIV0E,GAAMI,GAAG,iBAAkB,4BAA4B,SAAUrO,GAC7DA,EAAEuJ,iBACF0U,GAAKob,WAAanrB,EAAEvG,MACpBsW,GAAK5P,GAAG6Q,OAAOlf,MAEnBiO,GAAMI,GAAG,QAAS,gBAAgB,SAAUrO,GACxCA,EAAEuJ,iBAEE0U,GAAKjM,UACLiM,GAAK5P,GAAG6rB,YAAW,GAEvBl6B,EAAEkY,qBAENjK,GAAMI,GAAG,UAAW,qCAAqC,SAAUrO,GAC3Die,GAAKjM,UA1HR,KA2HQhS,EAAEsJ,SAAWtJ,EAAE+R,SACXkM,GAAKhN,OAGNgN,GAAK5P,GAAGyD,YAFRmM,GAAK5P,GAAGuD,UASxB3D,GAAM4b,IAAI,GAAG3f,iBAAiB,gBAAiB+T,GAAK5P,GAAG8rB,aAAaC,iBACpErpB,GAAQ1C,GAAG,SAAU4P,GAAK5P,GAAG8rB,aAAaE,cAE1CtpB,GAAQ1C,GAAG,SAAS,SAAUrO,GAC1Bie,GAAKhN,UAAYjR,EAAE2e,UA1IlB,IA0I8B3e,EAAEsJ,SAC5B2U,GAAKjM,WACDhS,EAAEsJ,SAAWtJ,EAAE+R,MAChBkM,GAAK5P,GAAGisB,WAAWt6B,EAAGie,GAAKhN,OAAQjR,EAAEsJ,SA5I5C,MA+IQtJ,EAAEsJ,SAAWtJ,EAAE+R,QAChBkM,GAAK5P,GAAGksB,WAAWv6B,QAKnC+5B,kBAAmB,SAAnBA,sBACA1rB,GAAI,CACAiC,KAAM,SAANA,YACgC,IAAjBjF,GAAGoG,YACVpG,GAAGoG,WAAWC,QAElBzD,GAAMuB,SAAS,eAAeH,KAAK,cAAe,QAClD4O,GAAKpP,QAAQW,SAAS,YAEtByO,GAAKlP,QAAQ/E,QAAQ,aAAaiQ,IAAI,MAAOlJ,GAAQ5J,aACrD+G,EAAE,iBACGqB,YAAY,SACZ0K,IAAI,MAAOlJ,GAAQ5J,YAAc+G,EAAE,UAAU+G,UAClD/G,EAAE,yBAAyB+L,IAAI,MAAOlJ,GAAQ5J,YAAc+G,EAAE,UAAU+G,UACxE/G,EAAE,iCAAiCmB,KAAK,gBAAiB,QACzD4O,GAAKlP,QAAQM,KAAK,QAAS,6BAC3B4O,GAAKpP,QAAQ9L,QACbkb,GAAK5P,GAAGmsB,kBAEZA,eAAgB,SAAhBA,mBACAC,WAAY,SAAZA,aACIxc,GAAK5P,GAAG8rB,aAAa9vB,MAAM,MAC3B4T,GAAKob,WAAW9zB,KAAK,mBAAmB4J,YAAY,oBACpD8O,GAAKob,WAAWxlB,SAAS1E,YAAY,uBACrC8O,GAAKob,WAAW3qB,KAAK,KAAKS,YAAY,kBACtC8O,GAAKob,WAAWxlB,SAAS6mB,SAAS,MAAMvrB,YAAY,cACpD8O,GAAKob,WAAWlqB,YAAY,cAC5BjB,EAAE,uBAAuBsB,SAAS,mBAClC,IAAMmrB,EAAa1c,GAAKob,WAAWniB,OAE/BhJ,EAAE,gBAAgBtN,QAClBsN,EAAE,gBAAgBgJ,KAAKyjB,GAE3B1c,GAAKmb,sBAAuB,EAE5Bnb,GAAK5P,GAAGusB,mBAEZA,gBAAiB,SAAjBA,oBACAV,WAAY,SAAZA,aAA8C,IAEtCW,EAFcC,EAAcn6B,UAAAC,OAAA,QAAA8O,IAAA/O,UAAA,IAAAA,UAAA,GAC5Bo6B,EAAc7sB,EAAE,qBAGU,IAAnB+P,GAAKob,YACZpb,GAAK5P,GAAG8rB,aAAa9vB,MAAM,OAC3BwwB,EAAmB5c,GAAKob,WAAWxlB,SAASA,SAC5CoK,GAAKob,WAAawB,EAAiBhnB,SAASnF,KAAK,qBAEjDmsB,EAAiBnsB,KAAK,qBAAqBa,YAAY,oBACvDsrB,EAAiBnsB,KAAK,wBAAwBa,YAAY,uBAC1DsrB,EAAiBnsB,KAAK,eAAea,YAAY,cACjDrB,EAAE,uBAAuBqB,YAAY,mBAEjCsrB,EAAiBzrB,SAAS,oBAC1B2rB,EAAYrsB,KAAK,QAAQwI,KAAK+G,GAAKob,WAAW3qB,KAAK,QAAQwI,QAEvD+G,GAAKkb,cAAgB2B,IAAmB7c,GAAKmb,qBAC7C92B,SAASwO,SAAWmN,GAAKkb,cAEzB4B,EAAY7jB,KAAK+G,GAAKib,qBACtBjb,GAAKmb,sBAAuB,IAIpCnb,GAAKob,WAAa0B,EAGtB9c,GAAK5P,GAAG2sB,mBAEZA,gBAAiB,SAAjBA,oBACArsB,KAAM,SAANA,OACQsP,GAAKjM,UAELiM,GAAK5P,GAAG6rB,aAEZjc,GAAKpP,QAAQU,YAAY,YACzBrB,EAAE,qBAAqB+L,IAAI,MAAO,GAClC/L,EAAE,iBAAiBsB,SAAS,SAASyK,IAAI,MAAO/L,EAAE,UAAU+G,UAC5D/G,EAAE,yBAAyB+L,IAAI,MAAO/L,EAAE,UAAU+G,UAClDhH,GAAMsC,WAAW,eAAehB,YAAY,eAC5CrB,EAAE,iCAAiCmB,KAAK,gBAAiB,SACzD4O,GAAK5P,GAAG8rB,aAAac,SAEzBtjB,OAAQ,SAARA,SACIsG,GAAK5P,GAAGM,OACRsP,GAAKpP,QAAQ9L,SAEjB6O,IAAK,SAALA,MACIqM,GAAKpP,QAAQgD,MACboM,GAAK/M,SAASW,MAAMxD,GAAG,YAAY,WAC/B4P,GAAKpP,QAAQ9L,YAGrB+O,UAAW,SAAXA,YACImM,GAAK/M,SAASW,MACdoM,GAAKpP,QAAQgD,MAAMxD,GAAG,YAAY,WAC9B4P,GAAK/M,SAASnO,YAGtBu3B,WAAY,SAAZA,WAAsBt6B,EAAGiR,EAAQ3H,GAC7B,IAAIyF,EAAUb,EAAElO,EAAE+J,QACdmxB,EAAcnsB,EAAQ/E,QAAQ,mBAC9BmxB,EAAkBjtB,EAAE,qBAGnBa,EAAQ/E,QAAQ,MAAMpJ,SACvBu6B,EAAgB5rB,YAAY,SAC5BrB,EAAE,aAAaqB,YAAY,aAG3BR,EAAQK,SAAS,qBAEU,IAAvB8rB,EAAYt6B,SACVs6B,EAAY9rB,SAAS,aAAwD,IAAzC8rB,EAAYxsB,KAAK,aAAa9N,QAEpEu6B,EAAgB5rB,YAAY,SAC5BrB,EAbW,mBAaKqB,YAAY,YAC5BR,EAAQ/E,QAAQ,KAAKwF,SAAS,SAC9BT,EAAQ2rB,SAfG,mBAeoBlrB,SAAS,cAExC0rB,EAAYxsB,KAAK,UAAUa,YAAY,SACvC2rB,EAAYxsB,KAAK,aAAaa,YAAY,YAC1CR,EAAQ/E,QAAQ,KAAKwF,SAAS,SAC9BT,EAAQ2rB,SApBG,mBAoBoBlrB,SAAS,aA9Q7C,IAgRKlG,GACA4E,EAAElO,EAAE+J,QAAQC,QAAQ,KAAKwF,SAAS,UAGtCT,EAAQ/E,QAAQ,MAAM0E,KAAK,UAAUa,YAAY,UAGzDgrB,WAAY,SAAZA,WAAsBv6B,GAClBkO,EAAElO,EAAE+J,QAAQC,QAAQ,qBAAqBuF,YAAY,UAEzDyqB,QAAS,CACLla,WAAY,SAAZA,aACI7B,GAAK5P,GAAGM,QAEZsrB,SAAU,SAAVA,WACIhc,GAAK5P,GAAGM,OACRsP,GAAKlP,QAAQuB,SAGrB4O,OAAQ,SAARA,OAAkBlf,GAEVie,GAAKjM,UACLiM,GAAK5P,GAAGosB,cAGhBN,aAAc,CACV9vB,MAAO,SAAPA,MAAiB2N,GACb,GAAKiG,GAAKob,YAAerhB,GAAciG,GAAKjM,SAA5C,CACA,IAAIopB,EAAmBnd,GAAKob,WAAW9gB,QACvC,GAAK6iB,EAAiBpxB,QAAQ,YAAYpJ,OAE1C,OAAQoX,GACJ,IAAK,KACD,IAAIqjB,EAAYD,EAAiBpxB,QAAQ,6BACrCsxB,EAAYF,EAAiB71B,KAAK,mBACtC0Y,GAAK5P,GAAG8rB,aAAaoB,OACjB,CAAC/c,KAAM6c,EAAW91B,KAAM+1B,EAAWznB,OAAQwnB,EAAWG,IAAKF,GAC3D,MAGJ,MAEJ,IAAK,MACD,IAAIG,EAAcL,EAAiBhsB,SAAS,eACxCisB,EAAYD,EAAiB71B,KAAK,mBAClC+1B,EAAYF,EAAiBpxB,QAAQ,6BACzCiU,GAAK5P,GAAG8rB,aAAaoB,OACjB,CAAC/c,KAAM6c,EAAW91B,KAAM+1B,EAAWznB,OAAQynB,EAAWE,IAAKH,GAC3D,MACAI,MAOhBF,OAAQ,SAARA,OAAkBG,GAA2C,IAA7B1jB,EAASrX,UAAAC,OAAA,QAAA8O,IAAA/O,UAAA,GAAAA,UAAA,GAAG,GAAI86B,EAAW96B,UAAAC,OAAA,EAAAD,UAAA,QAAA+O,EACnDisB,EAAuB,OAAd3jB,EAAqB,EAAIiG,GAAKqb,iBAAiBK,qBAAuB,EAC/EiC,EACkB,OAAd5jB,GAAsBiG,GAAKqb,iBAAiBE,gBACtCvb,GAAKqb,iBAAiBE,gBACR,QAAdxhB,GAAuBiG,GAAKqb,iBAAiBG,iBAC7Cxb,GAAKqb,iBAAiBG,iBACtBxb,GAAKqb,iBAAiBK,qBAAuB,EAG3D,GADA1b,GAAK5P,GAAG8rB,aAAa0B,cAAcH,EAAald,OAC5B,IAAhBid,IAEJxd,GAAK5P,GAAG8rB,aAAa2B,oBAAoB,CAACJ,EAAald,KAAMkd,EAAan2B,OAEtEm2B,EAAan2B,KAAK3E,QAAQ,CAC1B,IAAIm7B,EAAgB9d,GAAK5P,GAAG8rB,aAAa6B,gBAAgBN,EAAan2B,MAEtE6D,YAAW,WACP6U,GAAK5P,GAAG8rB,aAAa8B,SACjBP,EACA1jB,EACA+jB,GAAgC,EAChCJ,KAELC,KAGXC,cAAe,SAAfA,cAAyB5nB,GACrB,GAAIA,EAAMrT,OAAQ,CACd,IAAIkvB,EAAO7b,EAAM4V,IAAI,GAAGpD,wBAExBxS,EAAM5E,KACF,gBACA6sB,KAAKC,UAAU,CACXnT,OAAQkM,KAAKkH,MAAMtM,EAAK9G,QACxBqT,UAAWnH,KAAKkH,MAAMnoB,EAAMsE,QAAQpR,kBAKpD60B,gBAAiB,SAAjBA,gBAA2B/nB,GACvB,OAAOA,EAAM5E,KAAK,kBAAoB6sB,KAAKI,MAAMroB,EAAM5E,KAAK,kBAAkBgtB,WAElFP,oBAAqB,SAArBA,oBAA+BS,GAC3BA,EAASz7B,SAAQ,SAAAmT,GACbA,EAAMzE,SAAS,oBAEVyE,EAAM5E,KAAK,uCACZ4E,EAAM5E,KAAK,oCAAqC,QAChD4E,EAAM5F,GAAG,iBAAiB,SAAArO,GACtBiU,EAAM1E,YAAY,4BAKlC0sB,SAAU,SAAVA,SAAoBP,EAAc1jB,EAAWzW,GAAmB,IAAZo6B,EAAMh7B,UAAAC,OAAA,QAAA8O,IAAA/O,UAAA,GAAAA,UAAA,GAAG,EACrD67B,EACIve,GAAKqb,iBAAiBI,yBACrBgC,EAAa7nB,OAAO2T,cAAgBkU,EAAa7nB,OAAOoB,UAC7DwnB,EACIxe,GAAKqb,iBAAiBI,yBACrBgC,EAAaF,IAAIhU,cAAgBkU,EAAaF,IAAIvmB,UAEvD5J,GAAG4U,MAAMyc,aACTD,GAA8B,KAGhB,OAAdzkB,GACA0jB,EAAa7nB,OACRoG,IAAI,CAAC,aAAcuiB,EAAiBvnB,OAAQunB,EAAiB,aAAc,WAC3EntB,KAAK,0BAA2B,QACrCqsB,EAAaF,IACRvhB,IAAI,CAAC,aAAcwiB,EAAcxnB,OAAQwnB,EAAc,aAAc,SACrEptB,KAAK,0BAA2B,QAErCqsB,EAAa7nB,OAAOjT,QAChB86B,EAAa7nB,OAAOyG,QAChB,CACInT,UAAW,GAEf,CACIw1B,SAAUzH,KAAK0H,IAAIr7B,EAAQm6B,EAAa7nB,OAAO1M,aAAe,IAAM,EAAIw0B,IAIpFD,EAAaF,IAAIlhB,QACb,CACInT,UAAW5F,GAEf,CACIo7B,SAAUzH,KAAK0H,IAAIr7B,EAAQm6B,EAAa7nB,OAAO1M,aAAe,IAAM,EAAIw0B,KAG3D,QAAd3jB,IACP0jB,EAAa7nB,OAAOoG,IAAI,CACpB,aAAcuiB,EACdvnB,OAAQunB,EACR,aAAc,SAElBd,EAAaF,IACRvhB,IAAI,CAAC,aAAc,GAAIhF,OAAQ,GAAI,aAAc,KACjD1E,WAAW,2BAEhBmrB,EAAa7nB,OAAOjT,QAChB86B,EAAa7nB,OAAOyG,QAChB,CACInT,UAAW5F,GAEf,CACIo7B,SAAUzH,KAAK0H,IAAIr7B,EAAQm6B,EAAa7nB,OAAO1M,aAAe,IAAM,EAAIw0B,MAK5FtB,aAAc,SAAdA,aAAwBr6B,GAChBie,GAAKpP,QAAQO,SAAS,aACtB6O,GAAK5P,GAAG8rB,aAAaC,gBAAgB,GAAI,CAACyC,WAAW,KAG7DzC,gBAAiB,SAAjBA,kBAAiD,IAAtBp6B,EAACW,UAAAC,OAAA,QAAA8O,IAAA/O,UAAA,GAAAA,UAAA,GAAG,GAAIoK,EAAOpK,UAAAC,OAAA,QAAA8O,IAAA/O,UAAA,GAAAA,UAAA,GAAG,IAEpCsd,GAAKpP,QAAQO,SAAS,aACnBpP,EAAE88B,cAAgB7e,GAAKqb,iBAAiBO,2BACxC75B,EAAE+8B,eAAiB9e,GAAKqb,iBAAiBM,6BACvB,IAAtB7uB,EAAQ8xB,aAGR5e,GAAKqb,iBAAiBI,wBAClBjuB,OAAO0N,YAAc8E,GAAKqb,iBAAiBC,kBAAkB,GAAG9S,wBAAwB1M,IAC5FkE,GAAKqb,iBAAiBC,kBACjB7qB,KAAK,oCACLzH,IAAIgX,GAAKqb,iBAAiBC,mBAC1Btf,IAAI,CACDhF,OAAQgJ,GAAKqb,iBAAiBI,wBAC9B,aAAczb,GAAKqb,iBAAiBI,4BAIpDuB,MAAO,SAAPA,QACIhd,GAAKqb,iBAAiBC,kBACjB7qB,KAAK,8CACLzH,IAAIgX,GAAKqb,iBAAiBC,mBAC1BhpB,WAAW,yCACX0J,IAAI,CAAC,aAAc,GAAIhF,OAAQ,GAAI,aAAc,KACjDqF,QACG,CACInT,UAAW,GAEf,MAKpBuK,MAAO,CACHmO,SAAU,SAAVA,SAAoB3Z,GACZ+X,GAAKlP,QAAQL,KAAK,gBAAgBW,KAAK,mBACvC4O,GAAK1L,MAAMrM,GAAS+X,GAAKlP,QAAQL,KAAK,gBAAgBW,KAAK,qBAM3EhE,GAAG4S,KAAOA,GIjfd,WAEI,IAAIhQ,EAAQC,EAAE,QAEV+P,EAAQ5S,GAAG4S,KAAO5S,GAAG4S,MAAQ,GAEjCA,EAAK7T,KAAO,WACR8D,EAAE,aAAaO,MAAK,SAAUvI,GAC1B+X,EAAKib,oBAAsBhrB,EAAEvG,MAAM+G,KAAK,gBAAgBkH,OACxDqI,EAAKlP,QAAUb,EAAEvG,MACjBsW,EAAKvM,MAAMmO,SAAS3Z,GACpB+X,EAAK6B,WAAW5Z,MAEpB+X,EAAK9M,MAAQjD,EAAE,aAAaQ,KAAK,oBACjCuP,EAAK+e,aACL/e,EAAK1P,UACL0P,EAAK8b,qBAGT9b,EAAK+e,WAAa,WACV9uB,EAAE,QAAQkB,SAAS,SACnBnB,EAAMI,GAAG,QAAS,gCAAgC,SAAUrO,GACxDkO,EAAEzC,QAAQtE,UAAU8W,EAAKgf,YAG7BhvB,EAAMI,GAAG,QAAS,uBAAuB,SAAUrO,GAC/Cie,EAAKgf,QAAUhvB,EAAMrJ,KAAK,YAAc6G,OAAOib,YAC/CzY,EAAMrJ,KAAK,UAAWqZ,EAAKgf,cAKvChf,EAAK5P,GAAG6rB,WAAa,WAAkC,IAE/CW,EAFuBC,EAAcn6B,UAAAC,OAAA,QAAA8O,IAAA/O,UAAA,IAAAA,UAAA,GACrCo6B,EAAc7sB,EAAE,qBAGU,IAAnB+P,EAAKob,YACZpb,EAAK5P,GAAG8rB,aAAa9vB,MAAM,OAC3BwwB,EAAmB5c,EAAKob,WAAWxlB,SAASA,SAC5CoK,EAAKob,WAAawB,EAAiBhnB,SAASnF,KAAK,qBAEjDmsB,EAAiBnsB,KAAK,qBAAqBa,YAAY,oBACvDsrB,EAAiBnsB,KAAK,wBAAwBa,YAAY,uBAC1DsrB,EAAiBnsB,KAAK,eAAea,YAAY,cAC7CsrB,EAAiBvpB,GAAG,aAAapD,EAAE,uBAAuBqB,YAAY,mBAEtEsrB,EAAiBzrB,SAAS,oBAC1B2rB,EAAYrsB,KAAK,QAAQwI,KAAK+G,EAAKob,WAAW3qB,KAAK,QAAQwI,QAEvD+G,EAAKkb,cAAgB2B,IAAmB7c,EAAKmb,qBAC7C92B,SAASwO,SAAWmN,EAAKkb,cAEzB4B,EAAY7jB,KAAK+G,EAAKib,qBACtBjb,EAAKmb,sBAAuB,IAIpCnb,EAAKob,WAAa0B,EAGtB9c,EAAK5P,GAAG2sB,mBAGZ/c,EAAK8b,kBAAoB,WACrB9rB,EAAMI,GAAG,QAAS,gCAAgC,SAAUrO,GACxDA,EAAEuJ,iBACF0U,EAAK5P,GAAGM,KAAK3O,GACbie,EAAKlP,QAAQM,KAAK,QAAS,gCAnEvC,G,QCDA,SAAWhE,GACP,IACI6xB,EAAoBC,EAAsBC,EAAsBC,EADhEpvB,EAAQC,EAAE,QAEV2Q,EAAQxT,EAAGwT,MAEfA,EAAMtM,MAAQ,YAId2qB,EAAqBre,EAAMzU,KAC3B+yB,EAAuBte,EAAMxQ,GAAGiC,KAChC8sB,EAAuBve,EAAMxQ,GAAGM,KAChC0uB,EAAsBxe,EAAMxQ,GAAGwD,IAE/BgN,EAAMzU,KAAO,WACT8yB,EAAmBx8B,MAAMiH,KAAMhH,WAC/Bke,EAAMc,MAAMtQ,KAAK,WAAY,OAGjCwP,EAAMxQ,GAAGiC,KAAO,WACZ6sB,EAAqBz8B,MAAMiH,KAAMhH,WACjCke,EAAMc,MAAMpP,WAAW,aAG3BsO,EAAMxQ,GAAGM,KAAO,WACZyuB,EAAqB18B,MAAMiH,KAAMhH,WACjCke,EAAMc,MAAMtQ,KAAK,WAAY,OAGjCwP,EAAMxQ,GAAGwD,IAAM,WACXwrB,EAAoB38B,MAAMiH,KAAMhH,WAChCke,EAAMc,MAAMtQ,KAAK,WAAY,OAGjCwP,EAAMiB,WAAa,SAAU5Z,GACzBgI,EAAE5L,UAAU+L,GAAGwQ,EAAMtM,MAAMrM,GAAS,OAAO,WAEvC2Y,EAAMhN,KAAM,EACZgN,EAAM3M,UAAU+H,IAAI,YAAa,IAEjC/L,EAAE,iBAAiBO,MAAK,WAChBP,EAAEvG,MAAM/C,KAAK,cAAgBia,EAAMtM,MAAMrM,IACzCgI,EAAEvG,MAAM6H,SAAS,sBAK7BtB,EAAE5L,UAAU+L,GAAGwQ,EAAMtM,MAAMrM,GAAS,QAAQ,SAAUlG,GAElD6e,EAAMhN,KAAM,EACZgN,EAAMxQ,GAAGwD,IAAI7R,GACb6e,EAAM3M,UAAU+H,IAAI,YAAa,IAEjC/L,EAAE,iBAAiBO,MAAK,WAChBP,EAAEvG,MAAM/C,KAAK,cAAgBia,EAAMtM,MAAMrM,IACzCgI,EAAEvG,MAAM4H,YAAY,sBAKhCrB,EAAE5L,UAAU+L,GAAGwQ,EAAMI,aAAe,OAAO,SAAUjf,GAEjD6e,EAAM7M,UAAW,EACjB6M,EAAM3M,UAAU+H,IAAI,aAAc,GAElC4E,EAAMlG,MAAO,EACqB,UAA9B1K,EAAMoB,KAAK,gBACXwP,EAAMxQ,GAAGM,KAAK3O,MAItBkO,EAAE5L,UAAU+L,GAAGwQ,EAAMI,aAAe,QAAQ,SAAUjf,GAElD6e,EAAM7M,UAAW,EAEjB6M,EAAMlG,MAAO,EACqB,UAA9B1K,EAAMoB,KAAK,gBACXwP,EAAMxQ,GAAGM,KAAK3O,OA7E9B,CAiFGqL,I,WC5CoBiyB,GA/BV,SAAPA,KAAQjyB,GACV,IAAMgY,EAAQ3hB,MAAMJ,UAAUY,MAAMD,KAAKK,SAASi7B,uBAAuB,gBACrEze,EAASpd,MAAMJ,UAAUY,MAAMD,KAAKK,SAASi7B,uBAAuB,iBACpEC,EAAiB97B,MAAMJ,UAAUY,MAAMD,KAAKK,SAASi7B,uBAAuB,wBAEpF,IACYla,EAAMziB,QACNyK,EAAG4S,KAAK7T,KAAKiZ,GAEnB,MAAOoa,GACLrhB,QAAQxH,MAAM6oB,GAGtB,IACY3e,EAAOle,QACPyK,EAAGwT,MAAMzU,KAAK0U,GAEpB,MAAO2e,GACLrhB,QAAQxH,MAAM6oB,GAGtB,IACYD,EAAe58B,QACfyK,EAAG0X,cAAc3Y,KAAKozB,GAE5B,MAAOC,GACLrhB,QAAQxH,MAAM6oB,KC+GHH,UAhHN,SAAPA,KAAQjyB,GACV,IAAMqyB,EAAQh8B,MAAMJ,UAAUY,MAAMD,KAAKK,SAASi7B,uBAAuB,oBACrEI,EAAcj8B,MAAMJ,UAAUY,MAAMD,KAAKK,SAASi7B,uBAAuB,uBACzEK,EAASl8B,MAAMJ,UAAUY,MAAMD,KAAKK,SAASi7B,uBAAuB,UACpEM,EAAan8B,MAAMJ,UAAUY,MAAMD,KAAKK,SAASi7B,uBAAuB,cACxEO,EAAcp8B,MAAMJ,UAAUY,MAAMD,KAAKK,SAASwH,iBAAiB,+BACnEi0B,EAAar8B,MAAMJ,UAAUY,MAAMD,KAAKK,SAASwH,iBAAiB,yBAClEk0B,EAAat8B,MAAMJ,UAAUY,MAAMD,KAAKK,SAASi7B,uBAAuB,gBACxEU,EAAev8B,MAAMJ,UAAUY,MAAMD,KAAKK,SAASi7B,uBAAuB,iBAC1EW,EAAY57B,SAASC,cAAc,mBACnC47B,EAAiBz8B,MAAMJ,UAAUY,MAAMD,KAAKK,SAASi7B,uBAAuB,qBAC5Ea,EAAe18B,MAAMJ,UAAUY,MAAMD,KAAKK,SAASi7B,uBAAuB,iBAElF,IACQlyB,EAAGC,eAAelB,OACpB,MAAOqzB,GACLrhB,QAAQxH,MAAM6oB,GAGtB,IACYC,EAAM98B,QACNyK,EAAG/E,KAAK8D,KAAKszB,GAEnB,MAAOD,GACLrhB,QAAQxH,MAAM6oB,GAGtB,IACYE,EAAY/8B,QACZyK,EAAGsE,WAAWvF,KAAKuzB,GAEzB,MAAOF,GACLrhB,QAAQxH,MAAM6oB,GAGtB,IACYG,EAAOh9B,QACPyK,EAAG2F,MAAM5G,KAAKwzB,GAEpB,MAAOH,GACLrhB,QAAQxH,MAAM6oB,GAGtB,IACYI,EAAWj9B,QACXyK,EAAG4G,UAAU7H,KAAKyzB,GAExB,MAAOJ,GACLrhB,QAAQxH,MAAM6oB,GAGtB,IACYK,EAAYl9B,QACZyK,EAAG4K,WAAW7L,KAAK0zB,GAEzB,MAAOL,GACLrhB,QAAQxH,MAAM6oB,GAGtB,IACYM,EAAWn9B,QACXyK,EAAGgI,UAAUjJ,KAAK2zB,GAExB,MAAON,GACLrhB,QAAQxH,MAAM6oB,GAGtB,IACYO,EAAWp9B,QACXyK,EAAG+O,UAAUhQ,KAAK4zB,GAExB,MAAOP,GACLrhB,QAAQxH,MAAM6oB,GAGtB,IACYQ,EAAar9B,SACbyK,EAAGgzB,YAAcJ,EACZ35B,KAAI,SAAAuS,GAAI,OAAE,IAAIghB,GAAYhhB,GAAMsc,iBAE3C,MAAOsK,GACLrhB,QAAQxH,MAAM6oB,GAGtB,IACYS,IACA7yB,EAAG4tB,SAAW,IAAIA,GAASiF,GAAW/K,cAE5C,MAAOsK,GACLrhB,QAAQxH,MAAM6oB,GAGtB,IACYU,EAAev9B,QACfyK,EAAGqP,cAActQ,KAAK+zB,GAE5B,MAAOV,GACLrhB,QAAQxH,MAAM6oB,GAGtB,IACYW,EAAax9B,QACbyK,EAAG0P,YAAY3Q,KAAKg0B,GAE1B,MAAOX,GACLrhB,QAAQxH,MAAM6oB,GAGtBa,GAAejzB,K,mBC5If,IAAIkzB,EAAgB,EAAQ,IAS5BpzB,EAAOD,QARP,SAASszB,gBAAgBx+B,EAAGK,EAAGN,GAC7B,OAAQM,EAAIk+B,EAAcl+B,MAAOL,EAAIE,OAAOe,eAAejB,EAAGK,EAAG,CAC/DkB,MAAOxB,EACPS,YAAY,EACZgB,cAAc,EACdC,UAAU,IACPzB,EAAEK,GAAKN,EAAGC,GAEiBmL,EAAOD,QAAQuzB,YAAa,EAAMtzB,EAAOD,QAAiB,QAAIC,EAAOD","file":"js/vendors~lazy-imports-5e4d50f798b2089eeca8.js","sourcesContent":["var e,t;e=this,t=function(){\"use strict\";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var s,u=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return u=e.done,e},e:function(e){a=!0,s=e},f:function(){try{u||null==n.return||n.return()}finally{if(a)throw s}}}}(n.keys);try{for(l.s();!(c=l.n()).done;)a(c.value)}catch(e){l.e(e)}finally{l.f()}}else a()})),n.filter&&(i=n.filter(i));var s=i.slice(0,t.resultsList.maxResults);t.feedback={query:e,matches:i,results:s},f(\"results\",t)},m=\"aria-expanded\",b=\"aria-activedescendant\",y=\"aria-selected\",v=function(e,n){e.feedback.selection=t({index:n},e.feedback.results[n])},g=function(e){e.isOpen||((e.wrapper||e.input).setAttribute(m,!0),e.list.removeAttribute(\"hidden\"),e.isOpen=!0,f(\"open\",e))},w=function(e){e.isOpen&&((e.wrapper||e.input).setAttribute(m,!1),e.input.setAttribute(b,\"\"),e.list.setAttribute(\"hidden\",\"\"),e.isOpen=!1,f(\"close\",e))},O=function(e,t){var n=t.resultItem,r=t.list.getElementsByTagName(n.tag),o=!!n.selected&&n.selected.split(\" \");if(t.isOpen&&r.length){var s,u,a=t.cursor;e>=r.length&&(e=0),e<0&&(e=r.length-1),t.cursor=e,a>-1&&(r[a].removeAttribute(y),o&&(u=r[a].classList).remove.apply(u,i(o))),r[e].setAttribute(y,!0),o&&(s=r[e].classList).add.apply(s,i(o)),t.input.setAttribute(b,r[t.cursor].id),t.list.scrollTop=r[e].offsetTop-t.list.clientHeight+r[e].clientHeight+5,t.feedback.cursor=t.cursor,v(t,e),f(\"navigate\",t)}},A=function(e){O(e.cursor+1,e)},k=function(e){O(e.cursor-1,e)},L=function(e,t,n){(n=n>=0?n:e.cursor)<0||(e.feedback.event=t,v(e,n),f(\"selection\",e),w(e))};function j(e,n){var r=this;return new Promise((function(i,o){var s,u;return s=n||((u=e.input)instanceof HTMLInputElement||u instanceof HTMLTextAreaElement?u.value:u.innerHTML),function(e,t,n){return t?t(e):e.length>=n}(s=e.query?e.query(s):s,e.trigger,e.threshold)?d(e,s).then((function(n){try{return e.feedback instanceof Error?i():(h(s,e),e.resultsList&&function(e){var n=e.resultsList,r=e.list,i=e.resultItem,o=e.feedback,s=o.matches,u=o.results;if(e.cursor=-1,r.innerHTML=\"\",s.length||n.noResults){var c=new DocumentFragment;u.forEach((function(e,n){var r=a(i.tag,t({id:\"\".concat(i.id,\"_\").concat(n),role:\"option\",innerHTML:e.match,inside:c},i.class&&{class:i.class}));i.element&&i.element(r,e)})),r.append(c),n.element&&n.element(r,o),g(e)}else w(e)}(e),c.call(r))}catch(e){return o(e)}}),o):(w(e),c.call(r));function c(){return i()}}))}var S=function(e,t){for(var n in e)for(var r in e[n])t(n,r)},T=function(e){var n,r,i,o=e.events,s=(n=function(){return j(e)},r=e.debounce,function(){clearTimeout(i),i=setTimeout((function(){return n()}),r)}),u=e.events=t({input:t({},o&&o.input)},e.resultsList&&{list:o?t({},o.list):{}}),a={input:{input:function(){s()},keydown:function(t){!function(e,t){switch(e.keyCode){case 40:case 38:e.preventDefault(),40===e.keyCode?A(t):k(t);break;case 13:t.submit||e.preventDefault(),t.cursor>=0&&L(t,e);break;case 9:t.resultsList.tabSelect&&t.cursor>=0&&L(t,e);break;case 27:t.input.value=\"\",w(t)}}(t,e)},blur:function(){w(e)}},list:{mousedown:function(e){e.preventDefault()},click:function(t){!function(e,t){var n=t.resultItem.tag.toUpperCase(),r=Array.from(t.list.querySelectorAll(n)),i=e.target.closest(n);i&&i.nodeName===n&&L(t,e,r.indexOf(i))}(t,e)}}};S(a,(function(t,n){(e.resultsList||\"input\"===n)&&(u[t][n]||(u[t][n]=a[t][n]))})),S(u,(function(t,n){e[t].addEventListener(n,u[t][n])}))};function E(e){var n=this;return new Promise((function(r,i){var o,s,u;if(o=e.placeHolder,u={role:\"combobox\",\"aria-owns\":(s=e.resultsList).id,\"aria-haspopup\":!0,\"aria-expanded\":!1},a(e.input,t(t({\"aria-controls\":s.id,\"aria-autocomplete\":\"both\"},o&&{placeholder:o}),!e.wrapper&&t({},u))),e.wrapper&&(e.wrapper=a(\"div\",t({around:e.input,class:e.name+\"_wrapper\"},u))),s&&(e.list=a(s.tag,t({dest:[s.destination,s.position],id:s.id,role:\"listbox\",hidden:\"hidden\"},s.class&&{class:s.class}))),T(e),e.data.cache)return d(e).then((function(e){try{return c.call(n)}catch(e){return i(e)}}),i);function c(){return f(\"init\",e),r()}return c.call(n)}))}function x(e){var t=e.prototype;t.init=function(){E(this)},t.start=function(e){j(this,e)},t.unInit=function(){if(this.wrapper){var e=this.wrapper.parentNode;e.insertBefore(this.input,this.wrapper),e.removeChild(this.wrapper)}var t;S((t=this).events,(function(e,n){t[e].removeEventListener(n,t.events[e][n])}))},t.open=function(){g(this)},t.close=function(){w(this)},t.goTo=function(e){O(e,this)},t.next=function(){A(this)},t.previous=function(){k(this)},t.select=function(e){L(this,null,e)},t.search=function(e,t,n){return p(e,t,n)}}return function e(t){this.options=t,this.id=e.instances=(e.instances||0)+1,this.name=\"autoComplete\",this.wrapper=1,this.threshold=1,this.debounce=0,this.resultsList={position:\"afterend\",tag:\"ul\",maxResults:5},this.resultItem={tag:\"li\"},function(e){var t=e.name,r=e.options,i=e.resultsList,o=e.resultItem;for(var s in r)if(\"object\"===n(r[s]))for(var a in e[s]||(e[s]={}),r[s])e[s][a]=r[s][a];else e[s]=r[s];e.selector=e.selector||\"#\"+t,i.destination=i.destination||e.selector,i.id=i.id||t+\"_list_\"+e.id,o.id=o.id||t+\"_result\",e.input=u(e.selector)}(this),x.call(this,e),E(this)}},\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).autoComplete=t();\n","(function () {\n UX.noFocusableSVG = {\n init: function () {\n if (UX.test.isIE) {\n const svgs = document.getElementsByTagName('svg');\n let i = svgs.length;\n while (i--) {\n svgs[i].setAttribute('focusable', false);\n }\n }\n },\n };\n})();\n","/**\n * Observe changes in the DOM of a specified element.\n *\n * @param {Element} obj - The DOM element to observe for changes.\n * @param {boolean} withMutations - A flag to control detailed mutation information.\n * @param {MutationObserverInit} [observerOptions] - Options for the MutationObserver.\n * @param {function} callback - The function to call when DOM changes occur.\n */\nwindow.observeDOM = (function () {\n let MutationObserver = window.MutationObserver || window.WebKitMutationObserver,\n eventListenerSupported = window.addEventListener;\n\n return function (obj, withMutations, observerOptions, callback) {\n if (MutationObserver) {\n let obs = new MutationObserver(function (mutations) {\n if (withMutations) {\n callback(mutations);\n } else {\n if (mutations[0].addedNodes.length || mutations[0].removedNodes.length) callback();\n }\n });\n let options = observerOptions || {\n childList: true,\n subtree: true,\n attributes: true,\n };\n if (obj) {\n obs.observe(obj, options);\n }\n } else if (eventListenerSupported) {\n obj.addEventListener('DOMNodeInserted', callback, false);\n obj.addEventListener('DOMNodeRemoved', callback, false);\n }\n };\n})();\n","/*eslint-disable*/\n(function () {\n /*\\\n |*|\n |*| :: cookies.js ::\n |*|\n |*| A complete cookies reader/writer framework with full unicode support.\n |*|\n |*| Revision #1 - September 4, 2014\n |*|\n |*| https://developer.mozilla.org/en-US/docs/Web/API/document.cookie\n |*| https://developer.mozilla.org/User:fusionchess\n |*| https://github.com/madmurphy/cookies.js\n |*|\n |*| This framework is released under the GNU Public License, version 3 or later.\n |*| http://www.gnu.org/licenses/gpl-3.0-standalone.html\n |*|\n |*| Syntaxes:\n |*|\n |*| * docCookies.setItem(name, value[, end[, path[, domain[, secure]]]])\n |*| * docCookies.getItem(name)\n |*| * docCookies.removeItem(name[, path[, domain]])\n |*| * docCookies.hasItem(name)\n |*| * docCookies.keys()\n |*|\n \\*/\n\n var cookies = {\n getItem: function (sKey) {\n if (!sKey) {\n return null;\n }\n return (\n decodeURIComponent(\n document.cookie.replace(\n new RegExp(\n '(?:(?:^|.*;)\\\\s*' +\n encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, '\\\\$&') +\n '\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$'\n ),\n '$1'\n )\n ) || null\n );\n },\n setItem: function (sKey, sValue, vEnd, sPath, sDomain, bSecure) {\n if (!sKey || /^(?:expires|max\\-age|path|domain|secure)$/i.test(sKey)) {\n return false;\n }\n var sExpires = '';\n if (vEnd) {\n switch (vEnd.constructor) {\n case Number:\n sExpires = vEnd === Infinity ? '; expires=Fri, 31 Dec 9999 23:59:59 GMT' : '; max-age=' + vEnd;\n break;\n case String:\n sExpires = '; expires=' + vEnd;\n break;\n case Date:\n sExpires = '; expires=' + vEnd.toUTCString();\n break;\n }\n }\n document.cookie =\n encodeURIComponent(sKey) +\n '=' +\n encodeURIComponent(sValue) +\n sExpires +\n (sDomain ? '; domain=' + sDomain : '') +\n (sPath ? '; path=' + sPath : '') +\n (bSecure ? '; secure' : '');\n return true;\n },\n removeItem: function (sKey, sPath, sDomain) {\n if (!this.hasItem(sKey)) {\n return false;\n }\n document.cookie =\n encodeURIComponent(sKey) +\n '=; expires=Thu, 01 Jan 1970 00:00:00 GMT' +\n (sDomain ? '; domain=' + sDomain : '') +\n (sPath ? '; path=' + sPath : '');\n return true;\n },\n hasItem: function (sKey) {\n if (!sKey) {\n return false;\n }\n return new RegExp('(?:^|;\\\\s*)' + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, '\\\\$&') + '\\\\s*\\\\=').test(\n document.cookie\n );\n },\n keys: function () {\n var aKeys = document.cookie\n .replace(/((?:^|\\s*;)[^\\=]+)(?=;|$)|^\\s*|\\s*(?:\\=[^;]*)?(?:\\1|$)/g, '')\n .split(/\\s*(?:\\=[^;]*)?;\\s*/);\n for (var nLen = aKeys.length, nIdx = 0; nIdx < nLen; nIdx++) {\n aKeys[nIdx] = decodeURIComponent(aKeys[nIdx]);\n }\n return aKeys;\n },\n };\n\n UX.cookies = cookies;\n})();\n","(function () {\n let $body = $('body');\n\n let list = {\n expandIcon: 'icon-add_box',\n collapseIcon: 'icon-squared-minus',\n\n init: function () {\n list.on.build();\n list.control();\n },\n control: function () {\n $body.on('click', '.expandable-list__toggle', function (e) {\n e.preventDefault();\n list.on.toggleList($(this));\n });\n },\n on: {\n build: function () {\n let $wrapper = $('.expandable-list');\n\n $wrapper.each(function () {\n let $target = $(this).find('.expandable-list__body');\n $target.hide();\n });\n },\n\n toggleList: function (elem) {\n let $toggle = elem,\n $wrapper = $toggle.closest('.expandable-list'),\n $target = $wrapper.children('.expandable-list__body').toggle();\n list.defineToggleIcons($wrapper);\n\n $wrapper.toggleClass('js--open');\n $toggle.find('i').toggleClass(list.expandIcon + ' ' + list.collapseIcon);\n\n if ($wrapper.hasClass('js--open')) {\n $toggle.attr('aria-expanded', true);\n $target.attr('aria-hidden', false);\n } else {\n $toggle.attr('aria-expanded', false);\n $target.attr('aria-hidden', true);\n }\n },\n closeList: function (elem) {\n let $wrapper = $('.expandable-list');\n list.defineToggleIcons($wrapper);\n $wrapper.removeClass('js--open');\n let $target = $wrapper.children('.expandable-list__body').hide();\n let $toggle = $('.expandable-list__toggle');\n\n $toggle\n .attr('aria-expanded', 'false')\n .find('i')\n .addClass(list.expandIcon)\n .removeClass(list.collapseIcon);\n $target.attr('aria-hidden', true);\n },\n },\n defineToggleIcons($expandableList) {\n if ($expandableList.data('expand-icon') !== undefined && $expandableList.data('expand-icon') !== '') {\n list.expandIcon = $expandableList.data('expand-icon');\n }\n\n if ($expandableList.data('collapse-icon') !== undefined && $expandableList.data('collapse-icon') !== '') {\n list.collapseIcon = $expandableList.data('collapse-icon');\n }\n },\n };\n\n UX.list = list; // add to global namespace\n})();\n","(function () {\n const $body = $('body');\n UX.alertPopup = {\n config: {\n $toggle: '[data-toggle=\"alert\"]',\n $target: null,\n $actions: null,\n $approve: '[data-action=\"approve\"]',\n $cancel: '[data-action=\"cancel\"]',\n $url: null,\n },\n init: function () {\n if (config.enableAlertPopupAccessibility) this.accessibility.init();\n this.set();\n this.controls();\n },\n accessibility: {\n init: function () {\n let $content = $('main.content');\n if ($content.length) {\n $content.after($('.ux-modal-alert'));\n }\n },\n show: function () {\n $('.content, .footer, .header').attr('aria-hidden', true);\n },\n hide: function () {\n $('.content, .footer, .header').removeAttr('aria-hidden');\n },\n },\n set: function () {\n this.config.$actions = document.querySelectorAll(this.config.$toggle);\n this.config.$approve = document.querySelectorAll(this.config.$approve);\n this.config.$cancel = document.querySelectorAll(this.config.$cancel);\n },\n controls: function () {\n this.config.$actions.forEach(action => {\n action.addEventListener('click', e => {\n this.onClick(e);\n });\n });\n this.config.$approve.forEach(action => {\n action.addEventListener('click', e => {\n this.action();\n });\n });\n this.config.$cancel.forEach(action => {\n action.addEventListener('click', e => {\n this.hide($(action).closest('.alert'));\n });\n });\n },\n onClick: function (e) {\n e.preventDefault();\n this.config.$target = e.currentTarget.getAttribute('data-target');\n this.config.$url = e.currentTarget.href;\n this.show(this.config.$target);\n },\n redirect: function (value) {\n window.location.href = value;\n },\n show: function (target) {\n $body.attr('data-active', 'modal');\n this.accessibility.show();\n $(target).addClass('js--open');\n $(target).attr('open', true);\n },\n hide: function (target) {\n this.accessibility.hide();\n $(target).removeClass('js--open');\n $(target).removeAttr('open');\n },\n action: function () {\n this.redirect(this.config.$url);\n },\n };\n})();\n","(function () {\n var $body = $('body'),\n $window = $(window),\n tabKey = 9,\n shift = 16;\n\n var modal = {\n $toggle: $('[data-toggle=\"modal\"]'),\n $target: null,\n revers: false,\n lastItem: null,\n items: null,\n $close: null,\n accessibilityEnabled: true,\n\n init: function () {\n if (this.accessibilityEnabled) modal.accessibility.init();\n modal.$target = $(modal.$toggle.data('target'));\n modal.control();\n },\n accessibility: {\n init: function () {\n // Move every modal outside of content in order to be able hide and show page content for screen readers\n // @note: for some reason, it is not working with tab trap correctly, when we append it to body - after(.content) works fine\n var $content = $('main.content');\n if ($content.length) {\n $content.after($('.ux-modal-container'));\n }\n // Text for close buttons\n $('[data-dismiss=\"modal\"]').append('Close modal');\n },\n show: function () {\n $('.content, .footer, .header').attr('aria-hidden', true);\n },\n hide: function () {\n $('.content, .footer, .header').removeAttr('aria-hidden');\n },\n },\n control: function () {\n $body.on('click', '[data-toggle=\"modal\"]', function (e) {\n e.preventDefault();\n modal.$toggle = $(this);\n modal.$target = $(modal.$toggle.data('target'));\n modal.$close = modal.$target.find('.close');\n modal.items = modal.$target.find('a, button, input');\n modal.items.each(function (index) {\n if (index === modal.items.length - 1) {\n modal.lastItem = $(this);\n }\n });\n modal.on.show();\n });\n\n $body.on('click', '.modal', function (e) {\n var target = $(e.target);\n if (!target.is('.modal__dialog') && !target.closest('.modal__dialog').length > 0) {\n //e.preventDefault();\n modal.on.hide();\n }\n });\n\n $body.on('click', '[data-dismiss=\"modal\"]', function (e) {\n modal.on.hide();\n });\n\n $('.modal').on('keydown', modal.focusCycle.bind(modal));\n\n $window.on('keyup', function (e) {\n if (e.keyCode === shift) {\n modal.revers = false;\n }\n });\n },\n on: {\n show: function (e) {\n if (typeof UX.controller !== 'undefined') {\n UX.controller.check();\n }\n setTimeout(function () {\n $body.attr('data-active', 'modal');\n modal.accessibility.show();\n const $autofocus = modal.$target.find('[autofocus]');\n if ($autofocus.length) $autofocus.focus();\n else modal.$close.focus();\n }, 250);\n modal.$target.closest(\"[class*='sticko']\").addClass('js--open');\n $('#externalEmailDialogForm').addClass('pairing-management-modal');\n },\n hide: function () {\n $body.removeAttr('data-active');\n modal.accessibility.hide();\n modal.$target.closest(\"[class*='sticko']\").removeClass('js--open');\n },\n tab: function () {\n modal.$close.off('focusout');\n modal.lastItem.off('focusout');\n modal.lastItem.on('focusout', function () {\n modal.$close.focus();\n });\n },\n tabRevers: function () {\n modal.lastItem.off('focusout');\n modal.$close.off('focusout');\n modal.$close.on('focusout', function () {\n modal.lastItem.focus();\n });\n },\n },\n focusCycle: function (e) {\n if (e.keyCode === shift) {\n modal.revers = true;\n }\n\n if ((e.keyCode || e.which) === tabKey) {\n if (!modal.revers) {\n modal.on.tab();\n } else {\n modal.on.tabRevers();\n }\n }\n },\n };\n\n UX.modal = modal; // add to global namespace\n})();\n","(function () {\n var $body = $('body'),\n isMobile = false;\n\n var accordion = {\n $elements: $('.accordion'),\n $tabbedElements: $('.accordion-tabbed'),\n $controllers: $('.accordion__control'), //@todo: remove ambiguous DOM searches for elements that are unused and move other into init function\n $tabbedControllers: $('.accordion-tabbed__control'),\n isMobile: false,\n isStickyBody: false,\n vPort: 'screen-sm',\n $responsiveElements: $('[data-accordion-vport]'),\n accVport: [],\n $responsiveTarget: [],\n collapseTabs: false,\n collapseAccordion: true, // collapse accordion on open new accordion\n defaultCollapsed: true, // collapse accordion on pageload\n hideAllBoolean: true,\n openedAccordion: 0,\n hideDropBlock: true,\n\n init: function () {\n accordion.initResponsive();\n accordion.logic($('.accordion-tabbed')); // collapse all accordions on page load\n accordion.control();\n accordion.additionalControls();\n },\n additionalControls: function () {},\n control: function () {\n $body.on('click', '.accordion__control', function (e) {\n e.stopImmediatePropagation();\n // This check is needed on Safari browser in order to close the dropblock if its opened\n if ($body.attr('data-active') === 'dropBlock' && accordion.hideDropBlock) {\n UX.dropBlock.on.hide();\n }\n const attr = $(this).is('[data-slide-target]');\n // Check if its external link or if its slide controll and mobile view port\n if ($(this).hasClass('external') || (typeof attr !== typeof undefined && attr !== false && isMobile)) {\n return; // do nothing\n } else {\n e.preventDefault();\n const $this = $(this);\n accordion.on.toggle.single($this);\n }\n\n $(this).trigger('accordion:controlClick');\n });\n if (config.enableAccordionTypeSingle || config.enableAccordionTypeSubsection) {\n $body.on('click', '.accordion-tabbed__control', function (e) {\n const attr = $(this).is('[data-slide-target]');\n // Check if its external link or if its slide controll and mobile view port or prevent accordion behavior\n if (\n $(this).hasClass('external') ||\n (typeof attr !== typeof undefined && attr !== false && isMobile) ||\n accordion.preventAccordionBehavior($(this))\n ) {\n return; // do nothing\n } else {\n e.preventDefault();\n const $this = $(this);\n accordion.on.toggle.tabbed($this);\n }\n });\n }\n\n if (config.enableAccordionExpandAll) {\n $body.on('click', '.expand-all', function (e) {\n e.preventDefault();\n const $this = $(this);\n accordion.on.toggle.all($this);\n });\n }\n\n $(document).on(accordion.vPort + '-on', function () {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n isMobile = true;\n });\n\n $(document).on(accordion.vPort + '-off', function () {\n // Waiting for custom event that will be triggered by controller.js to deactivate responsive effects\n isMobile = false;\n });\n },\n logic: function (elem) {\n if (accordion.hideAllBoolean) {\n accordion.hideAll();\n }\n\n accordion.$tabbedElements = elem;\n\n accordion.$tabbedElements.each(function () {\n var $this = $(this),\n parentAccordion = $this.closest('.accordion');\n\n if (parentAccordion.parent('[data-default-collapsed]').length) {\n accordion.defaultCollapsed = parentAccordion.parent().data('default-collapsed');\n }\n\n $this.find('.accordion-tabbed__tab').each(function (index) {\n var $this = $(this);\n if (accordion.defaultCollapsed || accordion.defaultCollapsed === 'all') {\n if (accordion.preventAccordionBehavior($this)) {\n return;\n }\n if (\n !accordion.collapseTabsByDefault(this) &&\n index === accordion.openedAccordion &&\n !$this.hasClass('accordion__closed')\n ) {\n $this.addClass('js--open');\n $this.find('.accordion-tabbed__control').attr('aria-expanded', 'true');\n $this.find('.accordion-tabbed__content').show();\n if ($this.find('.accordion-lazy').length) {\n accordion.getAccordionContent($this.find('.accordion-lazy'));\n }\n } else {\n $this.removeClass('js--open');\n $this.find('.accordion-tabbed__control').attr('aria-expanded', 'false');\n $this.find('.accordion-tabbed__content').hide();\n }\n } else {\n $this.addClass('js--open');\n $this.find('.accordion-tabbed__control').attr('aria-expanded', 'true');\n $this.find('.accordion-tabbed__content').show();\n }\n });\n });\n },\n collapseTabsByDefault: function () {\n return accordion.collapseTabs;\n },\n additionalAjaxSuccess: function ($elem) {},\n getCustomAjaxUrl: function ($elem) {},\n buildAjaxUrl: function ($elem) {\n let ajaxUrl;\n var hasCustomUrl =\n typeof $elem.attr('data-custom-url') !== 'undefined' && $elem.attr('data-custom-url') === 'true';\n if (hasCustomUrl) {\n ajaxUrl = accordion.getCustomAjaxUrl($elem);\n } else {\n const widgetId = $elem.attr('data-widgetid');\n const dropzoneId = $elem.attr('data-dropzoneid');\n const pbContext = encodeURIComponent($('meta[name=pbContext]').attr('content'));\n ajaxUrl =\n '/pb/widgets/accordion/loadTab?pbContext=' +\n pbContext +\n '&widgetId=' +\n widgetId +\n '&dropZoneId=' +\n dropzoneId;\n }\n return ajaxUrl;\n },\n getAccordionContent: function ($elem) {\n var ajaxUrl = accordion.buildAjaxUrl($elem);\n var $parentTab = $elem.parent();\n $.ajax({\n url: ajaxUrl,\n success: function (data) {\n $elem.closest('.accordion-tabbed__tab').attr('data-ajaxLoaded', 'true');\n $elem.replaceWith(data);\n if ($parentTab.find('.accordion-tabbed').length) {\n accordion.logic($parentTab.find('.accordion-tabbed'));\n }\n $parentTab.find('.accordion__spinner').remove();\n accordion.additionalAjaxSuccess($parentTab);\n },\n error: function () {},\n });\n },\n on: {\n toggle: {\n single: function ($this) {\n let state;\n var $accordionContent = $this.next('.accordion__content');\n if (typeof $this.attr('data-content-target') !== 'undefined') {\n const contentTarget = $this.attr('data-content-target');\n $accordionContent = $(contentTarget);\n }\n $accordionContent.slideToggle(200, function () {\n if ($this.parent().hasClass('article-accordion')) {\n $('.article-row-left').height('auto');\n accordion.isStickyBody = state;\n }\n });\n $this.toggleClass('js--open');\n\n const $wrapper = $this.closest('.expandable-accordion');\n\n state = !($this.attr('aria-expanded') === 'true');\n $this.attr('aria-expanded', state);\n const accordionExpandedSingle = $.Event('accordion:expandedSingle');\n $(document).trigger(accordionExpandedSingle, [$this, $accordionContent]);\n if ($wrapper.length) accordion.on.checkExpandAll($this, state, $wrapper);\n },\n tabbed: function ($this) {\n const $parent = $this.closest('.accordion-tabbed__tab');\n const $opened = $this.closest('.accordion-tabbed').children('.js--open');\n\n const state = !($this.attr('aria-expanded') === 'true');\n $this.attr('aria-expanded', state);\n const $wrapper = $this.closest('.expandable-accordion');\n if ($wrapper.length) accordion.on.checkExpandAll($this, state, $wrapper);\n if (!$parent.hasClass('js--open')) {\n if (accordion.collapseAccordion || accordion.extraCollapseAccordionCheck($parent)) {\n $opened.children('.accordion-tabbed__content').slideUp(200);\n }\n $parent.children('.accordion-tabbed__content').slideDown(200, function () {\n if (accordion.collapseAccordion || accordion.extraCollapseAccordionCheck($parent)) {\n $opened.removeClass('js--open');\n }\n\n $parent.addClass('js--open');\n if ($parent.attr('data-ajaxLoaded') !== 'true' && $parent.find('.accordion-lazy').length) {\n accordion.getAccordionContent($parent.find('.accordion-lazy'));\n }\n accordion.on.expanded($this);\n const accordionExpandedTabbed = $.Event('accordion:expandedTabbed');\n $(document).trigger(accordionExpandedTabbed, [$this]);\n });\n } else {\n $parent.children('.accordion-tabbed__content').slideUp(200, function () {\n $this.removeClass('js--open');\n $parent.removeClass('js--open');\n // @fixme: work with aria-expanded is missing here, so it doesn't work correct\n });\n }\n },\n all: function ($this) {\n var $wrapper = $this.closest('.expandable-accordion');\n var state = !($this.attr('aria-expanded') === 'true');\n\n $this.attr('aria-expanded', state);\n if (state) {\n $wrapper.find('.accordion-tabbed__tab').addClass('js--open');\n $wrapper\n .find('.accordion__control, .accordion-tabbed__control')\n .addClass('js--open')\n .attr('aria-expanded', state);\n $wrapper.find('.accordion__content, .accordion-tabbed__content').slideDown(200);\n\n $this.text('Hide All');\n\n const $lazy = $wrapper.find('[data-ajaxLoaded]');\n $lazy.each(function () {\n if ($lazy.attr('[data-ajaxLoaded]') !== 'true' && $lazy.find('.accordion-lazy').length) {\n accordion.getAccordionContent($lazy.find('.accordion-lazy'));\n }\n });\n } else {\n $wrapper.find('.accordion-tabbed__tab').removeClass('js--open');\n $wrapper\n .find('.accordion__control, .accordion-tabbed__control')\n .removeClass('js--open')\n .attr('aria-expanded', state);\n $wrapper.find('.accordion__content, .accordion-tabbed__content').slideUp(200);\n\n $this.text('Expand All');\n }\n },\n },\n expanded: function ($this) {},\n checkExpandAll: function ($this, state, $wrapper) {\n let $expandElem;\n if ($wrapper.length) {\n $expandElem = $wrapper.find('.expand-all');\n }\n\n if ($expandElem.length && $expandElem.attr('aria-expanded') === 'true') {\n $expandElem.attr('aria-expanded', state);\n if (state) $expandElem.text('Hide All');\n else $expandElem.text('Expand All');\n }\n },\n },\n hideAll: function () {\n //Hide accordion content on load (in case of disabled JS, the accordion should be open)\n accordion.$elements.each(function () {\n var $this = $(this);\n $this.find('.accordion__control').attr('aria-expanded', 'false');\n if (!$this.find('.accordion__content').hasClass('js--open')) {\n $this.find('.accordion__content').hide();\n } else if ($this.find('.accordion__content').hasClass('js--open')) {\n $this.find('.accordion__control').attr('aria-expanded', 'true');\n } else {\n $this.find('.accordion__content').removeClass('js--open');\n }\n });\n },\n initResponsive: function () {\n if (accordion.$responsiveElements.length) {\n accordion.$responsiveElements.each(function (index) {\n accordion.$responsiveTarget[index] = $(this);\n accordion.accVport[index] = $(this).data('accordion-vport');\n accordion.setViewports(index);\n });\n }\n },\n extraCollapseAccordionCheck: function ($parent) {\n return accordion.collapseAccordion;\n },\n setViewports: function (index) {\n $(document).on(accordion.accVport[index] + '-on', function () {\n var target = accordion.$responsiveTarget[index];\n if (target.data('accordion-vport') === accordion.accVport[index]) {\n target.addClass('accordion-vport--res');\n if (target.data('accordion-option') === 'with-arrow') {\n target.addClass('accordion-with-arrow');\n }\n accordion.logic(accordion.$responsiveTarget[index].find('.accordion-tabbed'));\n }\n });\n\n $(document).on(accordion.accVport[index] + '-off', function () {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n var target = accordion.$responsiveTarget[index];\n if (target.data('accordion-vport') === accordion.accVport[index]) {\n target.removeClass('accordion-vport--res accordion-with-arrow');\n target.find('.accordion-tabbed__content').show();\n }\n });\n },\n };\n if (config.enableAccordionTypeSubsection || config.enableAccordionTypeSingle) {\n accordion.on.toggle.single = function ($this) {\n let state;\n var $accordionContent = $this.next('.accordion__content');\n if (typeof $this.attr('data-content-target') !== 'undefined') {\n const contentTarget = $this.attr('data-content-target');\n $accordionContent = $(contentTarget);\n }\n $accordionContent.slideToggle(200, function () {\n if ($this.parent().hasClass('article-accordion')) {\n $('.article-row-left').height('auto');\n accordion.isStickyBody = state;\n }\n });\n $this.toggleClass('js--open');\n\n const $wrapper = $this.closest('.expandable-accordion');\n\n state = !($this.attr('aria-expanded') === 'true');\n $this.attr('aria-expanded', state);\n const accordionExpandedSingle = $.Event('accordion:expandedSingle');\n $(document).trigger(accordionExpandedSingle, [$this, $accordionContent]);\n if ($wrapper.length) accordion.on.checkExpandAll($this, state, $wrapper);\n };\n }\n if (config.enableAccordionExpandAll) {\n accordion.on.toggle.all = function ($this) {\n var $wrapper = $this.closest('.expandable-accordion');\n var state = !($this.attr('aria-expanded') === 'true');\n\n $this.attr('aria-expanded', state);\n if (state) {\n $wrapper.find('.accordion-tabbed__tab').addClass('js--open');\n $wrapper\n .find('.accordion__control, .accordion-tabbed__control')\n .addClass('js--open')\n .attr('aria-expanded', state);\n $wrapper.find('.accordion__content, .accordion-tabbed__content').slideDown(200);\n\n $this.text('Hide All');\n\n const $lazy = $wrapper.find('[data-ajaxLoaded]');\n $lazy.each(function () {\n if ($lazy.attr('[data-ajaxLoaded]') !== 'true' && $lazy.find('.accordion-lazy').length) {\n accordion.getAccordionContent($lazy.find('.accordion-lazy'));\n }\n });\n } else {\n $wrapper.find('.accordion-tabbed__tab').removeClass('js--open');\n $wrapper\n .find('.accordion__control, .accordion-tabbed__control')\n .removeClass('js--open')\n .attr('aria-expanded', state);\n $wrapper.find('.accordion__content, .accordion-tabbed__content').slideUp(200);\n\n $this.text('Expand All');\n }\n };\n }\n if (config.enableAccordionBehaviorOnlyOnSpecificViewPort) {\n accordion.preventAccordionBehavior = function ($this) {\n return !!$this.parents('[data-accordion-vport]:not(.accordion-vport--res)').length;\n };\n }\n if (!config.enableAccordionBehaviorOnlyOnSpecificViewPort) {\n accordion.preventAccordionBehavior = () => true;\n }\n UX.accordion = accordion; // add to global namespace\n})();\n","(function () {\n var transplant = {\n $element: null,\n $target: null,\n $order: null,\n $cloneData: null,\n $clonedContainer: null,\n vPort: 'screen-sm',\n\n init: function () {\n var transArray = $('[data-toggle=\"transplant\"]');\n\n transArray.each(function (index) {\n var $this = $(this);\n\n transplant.$element = $this.data('transplant');\n transplant.$target = $($this.data('target'));\n transplant.$direction = $($this.data('direction'));\n transplant.$order = $this.data('transplant-order');\n\n transplant.$remove = $this.data('remove');\n transplant.$targetClass = $this.data('target-class');\n transplant.$classNames = $this.data('class-names');\n\n if (transplant.$direction === 'to' || typeof transplant.$direction === 'undefined') {\n if (transplant.$element === 'self') {\n transplant.$element = $this;\n } else {\n transplant.$element = $this.find(transplant.$element);\n }\n transplant.$cloneData = transplant.$element\n .clone(true, true)\n .removeAttr('data-toggle')\n .attr('data-transplant-order', transplant.$order);\n\n transplant.clone();\n if (transplant.$targetClass) {\n transplant.$target.find('.transplanted-clone').addClass(transplant.$targetClass);\n transplant.$target.find('[data-pb-widget]')?.removeAttr('data-pb-widget');\n }\n if (transplant.$classNames) {\n transplant.$element.addClass(transplant.$classNames);\n }\n if (transplant.$remove === true) {\n transplant.remove();\n }\n } else {\n transplant.$target = $this;\n\n const array = $this.data('target').split(',');\n $.each(array, function (index, item) {\n // go through selectors\n transplant.$element = $(item);\n transplant.$cloneData = transplant.$element\n .clone(true, true)\n .attr('data-transplant-order', transplant.$order);\n transplant.clone();\n\n if (transplant.$targetClass) {\n transplant.$element.addClass(transplant.$targetClass);\n }\n\n if (transplant.$classNames) {\n transplant.$target.find('.transplanted-clone').addClass(transplant.$classNames);\n }\n if (transplant.$remove === true) {\n transplant.remove();\n }\n });\n }\n });\n transplant.order();\n },\n\n clone: function () {\n if (transplant.$element.hasClass('cloned')) return;\n\n if (transplant.$target.find('.transplanted-clone').length <= 0) {\n if (transplant.$target.is('ul')) {\n transplant.$target.append('
  • ');\n } else {\n transplant.$target.append('
    ');\n }\n\n transplant.$clonedContainer = transplant.$target.find('.transplanted-clone');\n if (transplant.$cloneData.is('li')) {\n transplant.$clonedContainer.append('');\n transplant.$clonedContainer = transplant.$target\n .find('.transplanted-clone__ul')\n .addClass(transplant.$classNames);\n }\n }\n\n transplant.$clonedContainer.append(transplant.$cloneData);\n transplant.$element.addClass('cloned');\n\n transplant.cleanDuplicateID();\n },\n order: function () {\n var clonedItems = transplant.$clonedContainer.children();\n\n clonedItems.sort(function (a, b) {\n return $(a).data('transplant-order') - $(b).data('transplant-order');\n });\n\n transplant.$clonedContainer.html(clonedItems);\n },\n remove: function () {\n if (transplant.$target) {\n transplant.$element.remove();\n } else {\n transplant.$source.remove();\n }\n },\n cleanDuplicateID: function () {\n var id,\n targetFor,\n $controler,\n isMobile = false,\n clonedElement = transplant.$target;\n\n if (!clonedElement || clonedElement.length <= 0 || clonedElement.hasClass('cloned-with-ids')) return;\n\n id = clonedElement.attr('id');\n if (id) {\n clonedElement.attr('id', id + '-cloned');\n }\n clonedElement.find('[id]:not(.cloned-with-ids), [aria-owns]').each(function () {\n var $this = $(this);\n $this.addClass('cloned-with-ids');\n var id = $this.attr('id'),\n ariaOwns = $this.attr('aria-owns');\n\n if (id) {\n $this.attr('id', id + '-cloned');\n }\n if (ariaOwns) {\n $this.attr(\n 'aria-owns',\n $this\n .attr('aria-owns')\n .split(' ')\n .map(id => id + '-cloned')\n .join(' ')\n );\n }\n });\n targetFor = clonedElement.attr('data-db-target-of');\n\n if (targetFor) {\n $controler = $('[data-db-target-for=' + targetFor + ']');\n if (!isMobile) {\n $controler.attr({'aria-controls': targetFor + '-cloned'});\n }\n $(document).on(transplant.vPort + '-on', function () {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n isMobile = true;\n $controler.attr({'aria-controls': targetFor});\n });\n $(document).on(transplant.vPort + '-off', function () {\n // Waiting for custom event that will be triggered by controller.js to deactivate responsive effects\n isMobile = false;\n $controler.attr({'aria-controls': targetFor + '-cloned'});\n });\n }\n },\n };\n UX.transplant = transplant; // add to global namespace\n})();\n","// tabs.js calls UX.dropBlock.init(); on line 260\n// profile-menu.js calls UX.dropBlock.init(); on line 53\n\n(function () {\n var $window = $(window),\n $body = $('body');\n\n var dropBlock = {\n $controllers: $('[data-db-target-for]'),\n $targets: null, // Holds all targets in Dom\n $controller: null, // Current drop down controller\n $target: null, // Current target down controller element\n $parents: null, // Hodls all parents in Dom\n $parent: null, // Current parent element\n escape: 27,\n $container: $('.container'),\n switchVal: null,\n $section: $('.dropBlock__holder'),\n vPort: 'screen-sm',\n isMobile: false,\n initialized: false,\n direction: 'left', // left , right\n pop: 'down', // up , down\n\n init: function () {\n dropBlock.control();\n },\n\n control: function () {\n if (dropBlock.initialized) {\n return;\n }\n dropBlock.initialized = true;\n\n $(document).on('click', '[data-db-target-for]', function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n const isOpen = $(this).hasClass('js--open'),\n isDataSlideTarget = $(this).is('[data-slide-target]'),\n disableOnMobile = $(this).data('db-sm-disable') || false;\n\n dropBlock.$controller = $(this);\n dropBlock.find.target();\n\n if (isOpen) {\n dropBlock.on.hide();\n } else {\n if (dropBlock.isMobile && (isDataSlideTarget !== false || disableOnMobile)) {\n return;\n } else {\n dropBlock.on.show(e);\n }\n }\n });\n\n $(document).on(\n 'click',\n '.coolBar:not(.loi__banner) [data-db-target-of] a:not([data-slide-target])',\n function (e) {\n dropBlock.on.hide();\n }\n );\n\n $window.on('resize', function () {\n if (dropBlock.$parent != null) {\n dropBlock.find.dimensions();\n }\n });\n\n $(document).on(dropBlock.vPort + '-on', function () {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n dropBlock.isMobile = true;\n });\n $(document).on(dropBlock.vPort + '-off', function () {\n // Waiting for custom event that will be triggered by controller.js to deactivate responsive effects\n dropBlock.isMobile = false;\n });\n },\n on: {\n show: function (e) {\n // show target element\n\n if (!dropBlock.$controller.closest('.dropBlock__holder').length) {\n if (typeof UX.controller != 'undefined') {\n UX.controller.check(e);\n }\n }\n\n if (dropBlock.$target) {\n dropBlock.$controller.trigger('dropBlock:open', [dropBlock]);\n\n dropBlock.$target.addClass('js--open');\n dropBlock.$controller.addClass('js--open');\n $body.attr('data-active', 'dropBlock');\n dropBlock.$target.closest(\"[class*='sticko']\").addClass('js--open');\n dropBlock.switch.icon();\n // Move focus to active inner component, or leave focus on control\n dropBlock.$target.find('.active :tabbable').first().focus();\n\n // Accessibility\n dropBlock.$controller.attr({'aria-expanded': 'true'});\n dropBlock.$target.removeAttr('aria-hidden');\n\n // @fixme - this should not be here at all - it should be moved to proper component\n const isLoi = dropBlock.$target.find('.loi').length > 0;\n if (isLoi) {\n dropBlock.$target.find('.loi__list').each(function () {\n UX.loi.on.recalculate($(this));\n });\n }\n dropBlock.$controller.trigger('dropBlock:opened', [dropBlock]);\n }\n dropBlock.additionalOnShow();\n },\n hide: function () {\n // hide target element\n if (dropBlock.$target) {\n dropBlock.$controller.trigger('dropBlock:close', [dropBlock]);\n\n // Close current target\n dropBlock.$controller.removeClass('js--open');\n dropBlock.$target.removeClass('js--open');\n // Play nicely with others ...\n // For plugins which don't use js--open class but uses .hide .show methods instead, reset them ...\n // For example LOA accordion\n if (dropBlock.$target.attr('style')) {\n dropBlock.$target.removeAttr('style');\n }\n // Explicitly for our accordion working as a drop-block\n dropBlock.$target.closest(\"[class*='accordion-tabbed__tab']\").removeClass('js--open');\n\n dropBlock.$target.closest(\"[class*='sticko']\").removeClass('js--open');\n\n dropBlock.switch.back();\n\n // Accessibility - Inform screen readers\n dropBlock.$controller.attr({'aria-expanded': 'false'});\n dropBlock.$target.attr({'aria-hidden': 'true'});\n\n // Nested dropBlocks close handling\n if (dropBlock.$parentSection && dropBlock.$parentSection.length) {\n // Nested ones - set parent after closing self - will close parent in second round\n dropBlock.$controller = $(\n '[data-db-target-for=\"' + dropBlock.$parentSection.attr('data-db-target-of') + '\"]'\n );\n dropBlock.find.target();\n } else {\n // If we want to close last drop block, than there is no more active component\n if ($body.attr('data-active') === 'dropBlock') {\n $body.removeAttr('data-active');\n $('body, html').removeClass('lock-screen'); // @todo investigate if this is needed for drop Blocks or was copied out of other component\n }\n }\n if (dropBlock.$target) {\n dropBlock.$target.find('input:focus').blur();\n }\n dropBlock.$controller.trigger('dropBlock:closed', [dropBlock]);\n }\n dropBlock.additionalOnHide();\n },\n escape: function () {\n // hide target if user clicks escape key\n // @fixme this seems unused and deprecated by controller.js\n if (dropBlock.$target != null) {\n dropBlock.on.hide();\n }\n },\n },\n find: {\n target: function () {\n // get the target element if existed\n if ($('[data-db-target-of]').length) {\n dropBlock.$targets = $('[data-db-target-of]');\n dropBlock.$target = $(\n '[data-db-target-of=' + dropBlock.$controller.attr('data-db-target-for') + ']'\n );\n dropBlock.$section = dropBlock.$target;\n const $nested = dropBlock.$section.parents('.dropBlock__holder');\n if ($nested.length) {\n dropBlock.$parentSection = $nested;\n } else {\n dropBlock.$parentSection = null;\n }\n dropBlock.find.parent();\n }\n },\n parent: function () {\n // get the parent element if existed\n\n dropBlock.$parent = null;\n dropBlock.$parents = $('[data-db-parent-of]');\n\n if (dropBlock.$parents.length) {\n dropBlock.$parents.each(function () {\n const current = dropBlock.$controller.attr('data-db-target-for');\n let parentFor = $(this).data('db-parent-of').split(',');\n\n if (parentFor.indexOf(current) !== -1) {\n dropBlock.$parent = $(this);\n return false;\n }\n });\n\n if (dropBlock.$parent != null) {\n dropBlock.find.dimensions();\n dropBlock.find.ifContaind();\n }\n }\n },\n ifContaind: function () {\n // check if it parent or target has container element\n if (dropBlock.$parent.find('.container').length && !dropBlock.$target.find('.container').length) {\n dropBlock.$target.wrapInner(\"
    \");\n }\n },\n dimensions: function () {\n // count the top and left position of the target element based on teh parent element\n\n var nHeight = dropBlock.$parent.outerHeight(),\n pOffset = dropBlock.$parent.offset(),\n pLeft = pOffset.left,\n nWidth = dropBlock.$parent.innerWidth(),\n styles = {},\n container_offset = pOffset;\n\n dropBlock.$container = $('.container');\n if (dropBlock.$container.length) {\n container_offset = dropBlock.$container.offset();\n }\n\n const container_left = container_offset.left,\n container_base = container_left + dropBlock.$container.width(),\n parent_base = nWidth + pLeft;\n\n if (dropBlock.$parent.find('.scrollThenFix').length) {\n nHeight = dropBlock.$parent.find('.scrollThenFix').outerHeight();\n }\n\n if (dropBlock.$parent.innerWidth() === dropBlock.$controller.innerWidth()) {\n nWidth = dropBlock.$parent.hasClass('no-auto-width') ? '' : 'auto';\n if (dropBlock.isMobile) {\n nWidth = dropBlock.$parent.hasClass('no-auto-width') ? '' : '100%';\n }\n }\n\n if (parent_base > container_base) {\n styles = {\n top: nHeight,\n right: '0px',\n width: nWidth,\n };\n } else {\n styles = {\n top: nHeight,\n width: nWidth,\n };\n let direction = dropBlock.$parent.data('db-direction') || dropBlock.direction;\n /*eslint-disable*/\n switch (direction) {\n case 'left':\n case 'right':\n styles[direction] = '0px';\n break;\n case 'center':\n let offset = dropBlock.$target.innerWidth() / 2 - dropBlock.$parent.innerWidth();\n styles['left'] = `calc(-50% - ${offset}px)`;\n }\n /*eslint-enable*/\n }\n dropBlock.$target.css(styles);\n },\n },\n switch: {\n icon: function () {\n dropBlock.switchVal = dropBlock.$controller.attr('data-db-switch');\n switch (dropBlock.switchVal) {\n case 'none':\n break;\n case 'rotate':\n dropBlock.$controller.find('i').addClass('js--rotated');\n break;\n default:\n dropBlock.$controller.find('i').addClass(dropBlock.switchVal);\n }\n },\n back: function () {\n dropBlock.$controllers.each(function () {\n var temp = $(this).attr('data-db-switch');\n switch (temp) {\n case 'none':\n break;\n case 'rotate':\n dropBlock.$controller.find('i').removeClass('js--rotated');\n break;\n default:\n if (temp !== undefined) dropBlock.$controller.find('i').removeClass(temp);\n }\n });\n },\n },\n\n additionalOnShow: function () {},\n\n additionalOnHide: function () {},\n };\n\n UX.dropBlock = dropBlock; // add to global namespace\n})();\n","(function () {\n var $window = $(window),\n $body = $('body');\n\n var backToTop = {\n element: '.back-to-top',\n footerBackToTop: 'footer .back-to-top',\n\n init: function () {\n backToTop.controller();\n },\n controller: function () {\n $body.on('click', backToTop.element, function (e) {\n e.preventDefault();\n $('html, body').animate({scrollTop: 0}, 600);\n $(document.body).find(':focusable').first().focus();\n });\n\n $window.on('scroll', function () {\n if ($(backToTop.footerBackToTop).length) {\n if ($(this).scrollTop() > $('header').height()) {\n $(backToTop.footerBackToTop).addClass('back-to-top__is-visible');\n } else {\n $(backToTop.footerBackToTop).removeClass('back-to-top__is-visible back-to-top__fade-out');\n }\n\n if ($(this).scrollTop() > 400) {\n $(backToTop.footerBackToTop).addClass('back-to-top__fade-out');\n }\n\n if (backToTop.check.isfooterVisible()) {\n $(backToTop.footerBackToTop).addClass('back-to-top__static');\n } else {\n $(backToTop.footerBackToTop).removeClass('back-to-top__static');\n }\n }\n });\n },\n check: {\n isfooterVisible: function () {\n var docViewBottom = $(window).scrollTop() + $(window).height();\n var backToTopPos = $('footer').offset().top;\n return backToTopPos <= docViewBottom;\n },\n },\n };\n\n UX.backToTop = backToTop;\n})();\n","(function () {\n const adplaceholder = {\n init: function () {\n $('.js__toggleAdForm').on('click', function (e) {\n e.preventDefault();\n const elemToToggle = '#' + $(this).data('toggle');\n $(elemToToggle).slideToggle();\n });\n },\n };\n UX.adplaceholder = adplaceholder; // add to global namespace\n})();\n","(function () {\n var $body = $('body'),\n $multi_search;\n\n // get the 'data-widget-id' attribute from the current generated widget\n function getWidgetId(elem) {\n var widgetEl = elem.parents('[data-widget-id]')[0];\n var widgetId = widgetEl ? $(widgetEl).data('widget-id') : '';\n\n return widgetId;\n }\n\n // get The content attribute from the meta tag in the head\n function getPbContext() {\n var pbContext = $('[name=\"pbContext\"]').attr('content');\n return pbContext ? pbContext : '';\n }\n\n const multiSearch = {\n init: function () {\n multiSearch.control();\n },\n control: function () {\n $body.on('click', '.multi-search__dropblock__holder a', function () {\n var el = $(this);\n\n multiSearch.set.parent(el);\n multiSearch.on.select.dropdown(el);\n });\n\n $body.on('click', 'a.remove-topic', function () {\n var el = $(this);\n var widgetID = getWidgetId(el);\n\n multiSearch.set.parent(el);\n multiSearch.topic.remove(widgetID);\n });\n },\n on: {\n select: {\n dropdown: function (elem) {\n var tagLabel = elem.data('label');\n var tagId = elem.data('value');\n var widgetID = getWidgetId(elem);\n\n multiSearch.topic.add(tagLabel, tagId, widgetID);\n },\n },\n },\n topic: {\n add: function (label, id, widgetID) {\n var params = {\n multiSearchAction: 'applyTopic',\n tagId: id,\n tagLabel: label,\n widgetId: widgetID,\n };\n\n multiSearch.ajax(params);\n },\n remove: function (widgetID) {\n var params = {\n multiSearchAction: 'removeTopic',\n widgetId: widgetID,\n };\n\n multiSearch.ajax(params);\n },\n lazyload: function () {\n function lazyLoad() {\n $('.lazy-load').remove();\n $('.delayLoad').removeClass('delayLoad').addClass('delayedLoad');\n }\n\n $('.creative-work .loa').not(\"[data-truncate='none']\").truncate({\n lines: 2,\n type: 'list',\n addClass: 'loa-height',\n });\n\n $('.card .creative-work .loa').not(\"[data-truncate='none']\").truncate({\n lines: 1,\n type: 'list',\n addClass: 'loa-height',\n });\n\n setTimeout(lazyLoad, 10);\n },\n },\n set: {\n parent: function (elem) {\n $multi_search = $(elem.parents('.multi-search')[0]);\n },\n },\n ajax: function (params) {\n params['pbContext'] = getPbContext();\n\n $.ajax({\n type: 'GET',\n url: '/pb/widgets/multiSearch/updateTopic',\n dataType: 'html',\n data: params,\n async: true,\n success: function (html) {\n multiSearch.render(html);\n multiSearch.topic.lazyload();\n },\n error: function (error) {\n console.log(error);\n },\n });\n },\n render: function (html) {\n $multi_search.html('');\n $multi_search.replaceWith(html);\n },\n };\n\n UX.multiSearch = multiSearch;\n})();\n","$(document).ready(function () {\n // display user login popup - loginBar\n $(document).on('click', '#indivLogin, #guestLogin', function (event) {\n event.preventDefault();\n event.stopPropagation();\n $(this).toggleClass('active');\n $('.navigation-login-dropdown-container:not(.login-options)').toggleClass('hidden');\n if ($('.search-open').is(':visible')) {\n toggleQuickSearch(); /*eslint-disable-line*/\n }\n });\n\n $(document).on('click', function (e) {\n if (\n $(e.target).attr('id') !== 'indivLogin' &&\n $(e.target).attr('id') !== 'guestLogin' &&\n !$('.navigation-login-dropdown-container').hasClass('hidden')\n ) {\n $('.navigation-login-dropdown-container').addClass('hidden');\n }\n });\n\n // enable sumbit btn for access token widget\n $('#accessTokenForm div.input-group input[type=text]').on('keyup input change', function () {\n !$('#accessTokenForm div.input-group #tokenAccess').val().length\n ? $('#accessTokenForm input[type=submit]').attr('disabled', 'disabled')\n : $('#accessTokenForm input[type=submit]').removeAttr('disabled');\n });\n\n // enable sumbit btn for access token widget\n $('.registration-popup input[type=submit]').attr('disabled', 'disabled');\n\n $('.registration-popup input[type=text]').on('keyup input change', function () {\n !$(this).val().length\n ? $('.registration-form input[type=submit]').attr('disabled', 'disabled')\n : $('.registration-form input[type=submit]').removeAttr('disabled');\n });\n\n // display verification code hidden msg after 3m\n if ($('#check-if-exist')) {\n setTimeout(function () {\n $('#hidden-message').css('visibility', 'visible');\n }, 30000);\n }\n\n // enable sumbit btn for 2-step widget\n $('#check-if-exist input[type=input]').on('keyup input change', function () {\n !$('#check-if-exist input[type=input]').val().length\n ? $('#check-if-exist input[type=submit]').attr('disabled', 'disabled')\n : $('#check-if-exist input[type=submit]').removeAttr('disabled');\n });\n});\n\n// this is not required anymore\n// $(window).on('load', function () {\n// // recaptcha load\n// if ($('.g-recaptcha').length) {\n// loadRecaptcha(); /*eslint-disable-line*/\n// }\n// });\n\nfunction loadInstitutionPage(selectDom) {\n var href = $(selectDom).val();\n location.href = href;\n}\nwindow.loadInstitutionPage = loadInstitutionPage; // add to global namespace\n","function menubar(e, t) {\n (this.$id = $('#' + e)),\n (this.$rootItems = this.$id.children('li')),\n (this.$items = this.$id.find('.menu-item')),\n (this.$parents = this.$id.find('.menu-parent')),\n (this.$allItems = this.$parents.add(this.$items)),\n (this.$activeItem = null),\n (this.vmenu = t),\n (this.bChildOpen = !1),\n (this.keys = {\n tab: 9,\n enter: 13,\n esc: 27,\n space: 32,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n }),\n this.bindHandlers();\n}\nmenubar.prototype.bindHandlers = function () {\n var e = this;\n\n this.$allItems.keydown(function (t) {\n return e.handleKeyDown($(this), t);\n }),\n this.$allItems.keypress(function (t) {\n return e.handleKeyPress($(this), t);\n }),\n this.$allItems.focus(function (t) {\n return e.handleFocus($(this), t);\n }),\n $(document).click(function (t) {\n return e.handleDocumentClick(t);\n });\n};\n\nmenubar.prototype.handleFocus = function (e, t) {\n if (null == this.$activeItem) this.$activeItem = e;\n else if (e[0] !== this.$activeItem[0]) return !0;\n const i = this.$activeItem.parentsUntil('div').filter('li');\n if (\n (this.$allItems.removeClass('menu-focus menu-focus-checked'),\n this.$activeItem.is('.checked')\n ? this.$activeItem.addClass('menu-focus-checked')\n : this.$activeItem.addClass('menu-focus'),\n i.addClass('menu-focus'),\n 1 === this.vmenu)\n )\n if (1 === this.bChildOpen) {\n const s = e.parent();\n s.is('#menubar') &&\n 'true' === e.attr('aria-haspopup') &&\n e.addClass('hover').children('ul').attr('aria-hidden', 'false');\n } else this.vmenu = !1;\n return !0;\n};\n\nmenubar.prototype.handleKeyDown = function (e, t) {\n const i = e.parent();\n if (t.altKey || t.ctrlKey) return !0;\n /*eslint-disable*/\n switch (t.keyCode) {\n case this.keys.tab:\n this.$id.find('ul').attr('aria-hidden', 'true'),\n this.$allItems.removeClass('menu-focus hover'),\n (this.$activeItem = null),\n 0 === this.bChildOpen;\n break;\n case this.keys.esc:\n if (UX.menu.$toggle.length > 0) {\n //if (e.keyCode === escKey) {\n\n //e.preventDefault();\n UX.menu.on.hide();\n UX.menu.$toggle.focus();\n //}\n } else {\n return (\n i.is('#menubar')\n ? (e.removeClass('hover').children('ul').first().attr('aria-hidden', 'true'), e.focus())\n : ((this.$activeItem = i.parent()),\n e.removeClass('hover'),\n (this.bChildOpen = !1),\n this.$activeItem.focus(),\n i.attr('aria-hidden', 'true')),\n t.stopPropagation(),\n !1\n );\n }\n\n case this.keys.enter:\n case this.keys.space:\n const s = e.parent();\n return (\n s.is('#menubar')\n ? (e.addClass('hover').children('ul').first().attr('aria-hidden', 'false'),\n (this.bChildOpen = !0),\n this.processMenuChoice(e),\n e.find('ul > li:first').find('a').focus())\n : (this.processMenuChoice(e),\n this.$allItems.removeClass('menu-hover menu-hover-checked hover'),\n this.$allItems.removeClass('menu-focus menu-focus-checked hover'),\n this.$id.find('ul').not('#menubar').attr('aria-hidden', 'true'),\n (this.$activeItem = null)),\n t.stopPropagation(),\n !1\n );\n case this.keys.left:\n return (\n 1 === this.vmenu && i.is('#menubar')\n ? (this.$activeItem = this.moveUp(e))\n : (this.$activeItem = this.moveToPrevious(e)),\n this.$activeItem.focus(),\n t.stopPropagation(),\n !1\n );\n case this.keys.right:\n return (\n 1 === this.vmenu && i.is('#menubar')\n ? (this.$activeItem = this.moveDown(e))\n : (this.$activeItem = this.moveToNext(e)),\n this.$activeItem.focus(),\n t.stopPropagation(),\n !1\n );\n case this.keys.up:\n return (\n 1 === this.vmenu && i.is('#menubar')\n ? (this.$activeItem = this.moveToPrevious(e))\n : (this.$activeItem = this.moveUp(e)),\n this.$activeItem.focus(),\n t.stopPropagation(),\n !1\n );\n case this.keys.down:\n return (\n 1 === this.vmenu && i.is('#menubar')\n ? (this.$activeItem = this.moveToNext(e))\n : (this.$activeItem = this.moveDown(e)),\n this.$activeItem.focus(),\n t.stopPropagation(),\n !1\n );\n }\n /*eslint-enable*/\n return !0;\n};\n\nmenubar.prototype.moveToNext = function (e) {\n let a;\n let t = e.parent(),\n i = t.children('li'),\n s = i.length,\n r = i.index(e),\n n = null;\n if (t.is('#menubar')) {\n if (((n = s - 1 > r ? e.next() : i.first()), 'true' === e.attr('aria-haspopup'))) {\n e.removeClass('hover');\n a = e.children('ul').first();\n 'false' === a.attr('aria-hidden') && (a.attr('aria-hidden', 'true'), (this.bChildOpen = !0));\n }\n if ((e.removeClass('menu-focus'), 'true' === n.attr('aria-haspopup') && 1 === this.bChildOpen)) {\n n.addClass('hover');\n a = n.children('ul').first();\n a.attr('aria-hidden', 'false');\n }\n } else if ('true' === e.attr('aria-haspopup')) {\n e.addClass('hover');\n a = e.children('ul').first();\n (n = a.children('li').first()), a.attr('aria-hidden', 'false'), (this.bChildOpen = !0);\n } else {\n if (1 === this.vmenu) return e;\n let h = null,\n o = null;\n if (\n ((h = e.parentsUntil('div').filter('ul').not('#menubar')),\n h.attr('aria-hidden', 'true'),\n h.find('li').removeClass('menu-focus hover'),\n h.last().parent().removeClass('menu-focus hover'),\n (o = h.last().parent()),\n (r = this.$rootItems.index(o)),\n (n = r < this.$rootItems.length - 1 ? o.next() : this.$rootItems.first()),\n 'true' === n.attr('aria-haspopup') && n.children('ul').length > 0)\n ) {\n n.addClass('hover');\n a = n.children('ul').first();\n (n = a.children('li').first()), a.attr('aria-hidden', 'false'), (this.bChildOpen = !0);\n }\n }\n return n;\n};\n\nmenubar.prototype.moveToPrevious = function (e) {\n let n;\n let t = e.parent(),\n i = t.children('li'),\n s = (i.length, i.index(e)),\n r = null;\n if (t.is('#menubar')) {\n if (((r = s > 0 ? e.prev() : i.last()), 'true' === e.attr('aria-haspopup'))) {\n n = e.removeClass('hover').children('ul').first();\n 'false' === n.attr('aria-hidden') && (n.attr('aria-hidden', 'true'), (this.bChildOpen = !0));\n }\n if ((e.removeClass('menu-focus hover'), 'true' === r.attr('aria-haspopup') && 1 === this.bChildOpen)) {\n r.addClass('hover');\n n = r.children('ul').first();\n n.attr('aria-hidden', 'false');\n }\n } else {\n const a = t.parent(),\n h = a.parent();\n\n if (1 !== this.vmenu && h.is('#menubar')) {\n if (\n (t.attr('aria-hidden', 'true'),\n e.removeClass('menu-focus hover'),\n a.removeClass('menu-focus hover'),\n (s = this.$rootItems.index(a)),\n (r = s > 0 ? a.prev() : this.$rootItems.last()),\n r.addClass('menu-focus hover'),\n 'true' === r.attr('aria-haspopup'))\n ) {\n n = null;\n r.children('ul').length > 0 &&\n ((n = r.addClass('hover').children('ul').first()),\n n.attr('aria-hidden', 'false'),\n (this.bChildOpen = !0),\n (r = n.children('li').first()));\n }\n } else\n (r = t.parent()),\n t.attr('aria-hidden', 'true'),\n e.removeClass('menu-focus hover'),\n r.removeClass('hover'),\n 1 === this.vmenu && (this.bChildOpen = !1);\n }\n return r;\n};\n\nmenubar.prototype.moveDown = function (e, t) {\n let i = e.parent(),\n s = i.children('li').not('.separator'),\n r = s.length,\n n = s.index(e),\n a = null,\n h = null;\n if (i.is('#menubar'))\n return 'true' !== e.attr('aria-haspopup')\n ? e\n : ((h = e.addClass('hover').children('ul').first()),\n (a = h.children('li').first()),\n h.attr('aria-hidden', 'false'),\n (this.bChildOpen = !0),\n a);\n if (t) {\n let o = !1,\n u = n + 1;\n for (u === r && (u = 0); u !== n; ) {\n const l = s.eq(u).html().charAt(0);\n if (l.toLowerCase() === t) {\n o = !0;\n break;\n }\n (u += 1), u === r && (u = 0);\n }\n return 1 === o ? ((a = s.eq(u)), e.removeClass('menu-focus menu-focus-checked'), a) : e;\n }\n return (a = r - 1 > n ? s.eq(n + 1) : s.first()), e.removeClass('menu-focus menu-focus-checked'), a;\n};\n\nmenubar.prototype.moveUp = function (e) {\n let t = e.parent(),\n i = t.children('li').not('.separator'),\n s = (i.length, i.index(e)),\n r = null;\n return t.is('#menubar')\n ? e\n : ((r = s > 0 ? i.eq(s - 1) : i.last()), e.removeClass('menu-focus menu-focus-checked'), r);\n};\n\nmenubar.prototype.handleKeyPress = function (e, t) {\n if (t.altKey || t.ctrlKey || t.shiftKey) return !0;\n /*eslint-disable*/\n switch (t.keyCode) {\n case this.keys.tab:\n return !0;\n case this.keys.esc:\n case this.keys.enter:\n case this.keys.space:\n case this.keys.up:\n case this.keys.down:\n case this.keys.left:\n case this.keys.right:\n return t.stopPropagation(), !1;\n default:\n var i = String.fromCharCode(t.which);\n return (this.$activeItem = this.moveDown(e, i)), this.$activeItem.focus(), t.stopPropagation(), !1;\n }\n return !0;\n /*eslint-enable*/\n};\n\nmenubar.prototype.handleDocumentClick = function (e) {\n var t = this.$id.find('ul').not('#menubar');\n return (\n t.attr('aria-hidden', 'true'),\n this.$allItems.removeClass('menu-focus menu-focus-checked hover'),\n (this.$activeItem = null),\n !0\n );\n};\n\nmenubar.prototype.processMenuChoice = function (e) {\n var t = (e.parent().attr('id'), e.attr('id'), e.data('href'));\n if (null != t)\n if (t.toLowerCase().indexOf('legacy.') > 0) {\n const i = window.open(t, '_blank');\n i.focus();\n } else window.location.href = t;\n const s = e.find('a');\n null != s && (window.location.href = s[0].href);\n};\nwindow.menubar = menubar;\n","(function () {\n const $body = $('body');\n\n var slide = {\n $slide: null,\n $target: null,\n $contents: null,\n $slideinfo: null,\n $toggle: null,\n prev: null,\n isMobile: false,\n vPort: 'screen-sm',\n elementvPort: null,\n back: false,\n nested: false,\n multi: false,\n activeSlide: 0,\n oldInfo: [],\n off: null,\n clone: null,\n wait: false,\n backLabel: 'back',\n $elements: null,\n isQueue: false,\n isRTL: false,\n\n init: function () {\n slide.$slide =\n '';\n\n slide.$elements = $(slide.$slide);\n slide.displaySlideHtmlToPage();\n\n slide.$contents = slide.$elements.find('.w-slide__content');\n slide.$slideinfo = slide.$elements.find('.w-slide__title');\n slide.$back = slide.$elements.find('.w-slide__back');\n slide.$toggle = $('.w-slide__btn');\n\n slide.elementvPort = slide.vPort;\n slide.vPort = [];\n\n slide.customViewPorts();\n\n slide.$toggle.each(function (index) {\n slide.check.viewPort($(this), index);\n slide.responsive(index);\n });\n\n slide.additionalInitialization();\n slide.control();\n slide.additionalControls();\n if (typeof facetDateChart != 'undefined') {\n facetDateChart.control(); /*eslint-disable-line*/\n }\n\n if (UX.utils && UX.utils.isRTL()) {\n slide.isRTL = true;\n }\n },\n displaySlideHtmlToPage: () => {\n let $main = $('main');\n if ($main.length > 0) $main.append(slide.$elements);\n else $body.append(slide.$elements);\n },\n additionalInitialization: function () {},\n responsive: function (index) {\n $(document).on(slide.vPort[index] + '-on', function () {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n slide.off = false;\n\n $('.w-slide__btn').each(function () {\n if ($(this).data('ctrl-res') === slide.vPort[index]) {\n $(this).addClass('slide-active');\n }\n });\n });\n\n $(document).on(slide.vPort[index] + '-off', function (e) {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n slide.off = true;\n slide.on.off(e);\n\n $('.w-slide__btn').each(function () {\n if ($(this).data('ctrl-res') === slide.vPort[index]) {\n $(this).removeClass('slide-active');\n }\n });\n });\n\n $(document).on(slide.elementvPort + '-on', function (e) {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n slide.isMobile = true;\n slide.$elements.css('margin-top', 0);\n if ($('.w-slide.js--open').length) {\n slide.back = true;\n slide.on.hide(e);\n }\n });\n\n $(document).on(slide.elementvPort + '-off', function (e) {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n slide.isMobile = false;\n if ($('.w-slide.js--open').length) {\n slide.back = true;\n slide.on.hide(e);\n }\n });\n\n slide.additionalResponsive();\n },\n additionalResponsive: function () {},\n control: function () {\n $body.on('click', '.w-slide__btn', function (e) {\n if (slide.isQueue && slide.isMobile) {\n e.stopImmediatePropagation();\n $(this).off('click');\n return false;\n }\n slide.isQueue = true;\n\n if ($(this).hasClass('disable')) {\n e.stopPropagation();\n e.preventDefault();\n return;\n }\n\n if ($(this).hasClass('slide-active')) {\n e.stopPropagation();\n e.preventDefault();\n slide.addTransition();\n slide.$toggle = $(this);\n slide.$target = $(slide.$toggle.data('slide-target'));\n slide.back = false;\n\n if ($(this).is('[id*=pane-pcw]') && UX.tab.check.empty($(this))) {\n setTimeout(function () {\n slide.on.show(e);\n }, 3000);\n } else {\n slide.on.show(e);\n }\n }\n });\n\n $body.on('click', '.w-slide__back, .w-slide__hide', function (e) {\n if ($(this).hasClass('w-slide__back')) {\n e.preventDefault();\n }\n\n slide.back = true;\n slide.on.hide(e);\n });\n },\n additionalControls: function () {},\n addTransition: function () {\n $('.w-slide, .w-slide__content').css('transition', 'all 250ms');\n },\n removeTransition: function () {\n $('.w-slide, .w-slide__content').css('transition', '');\n },\n customViewPorts: function () {\n if ($('.journal-home').length) {\n slide.elementvPort = 'screen-md';\n }\n },\n setBackLabel: function () {\n slide.$back.html('' + slide.backLabel);\n },\n on: {\n show: function (e) {\n $(document).trigger('UX-detach');\n if (typeof jcf != 'undefined') {\n jcf.destroy($('.range-slider__range')); /*eslint-disable-line*/\n }\n\n /**\n * Fire \"open\" event\n * this event is Cancelable: which means if e.preventDefault() is called then the slide will not open.\n */\n const openingEvent = $.Event('slide:open');\n $(document).trigger(openingEvent, [slide]);\n if (openingEvent.isDefaultPrevented()) {\n return;\n }\n\n if ($body.attr('data-active') !== 'undefined') {\n UX.controller.check(e);\n }\n\n if (slide.$toggle.is('[data-full-screen]') && !slide.$toggle.data('[full-screen]') && !slide.isMobile)\n $body.addClass('w-slide__not-fullWidth');\n else $body.removeClass('w-slide__not-fullWidth');\n\n slide.nested = slide.$toggle.parents('.w-slide__content').length > 0;\n slide.multi =\n slide.$toggle.closest('.pill-list').length > 0 || slide.$toggle.is('[data-slide-target*=\"#pill\"]');\n if (slide.$toggle.closest('.w-slide__pill').length > 0) {\n slide.nested = false;\n slide.multi = true;\n }\n\n const popupType = e.currentTarget?.getAttribute('aria-haspopup');\n if (popupType) slide.$elements.attr('role', popupType === 'true' ? 'menu' : popupType);\n\n slide.on.additionalShow();\n\n slide.$slideinfo.hide().removeClass('js--open');\n slide.backLabel = 'back';\n slide.setBackLabel();\n\n if (slide.nested) {\n slide.on._nestSlide();\n }\n\n if (slide.multi) {\n if (slide.activeSlide !== 0) {\n slide.back = true;\n slide.on.hide(e);\n }\n\n slide.activeSlide++;\n slide.$elements\n .addClass('w-slide__pill')\n .find('.w-slide__content')\n .append('
    ');\n slide.$contents = $('.nested--' + slide.activeSlide);\n }\n\n slide.$contents.attr('original-target', slide.$toggle.data('slide-target'));\n\n if (slide.$target.hasClass('tab__pane')) {\n slide.$target.closest('.tab__content').find('.tab__pane').removeClass('active');\n slide.$target.addClass('active');\n }\n\n let label = slide.$toggle.text();\n if (slide.$toggle.is('[data-label]')) {\n label = slide.$toggle.data('label');\n }\n\n //LIT-163835\n if (slide.$toggle.hasClass('loa') || slide.$toggle.parents('.loa.mobile-authors').length > 0) {\n label = 'AUTHORS';\n }\n\n let clonedDiv = slide.$target.children();\n\n slide.on.destroyJcf(clonedDiv);\n\n if (slide.$toggle.is('[data-slide-clone]')) {\n slide.clone = slide.$toggle.data('slide-clone');\n\n if (slide.clone === 'self') {\n clonedDiv = slide.$target;\n }\n } else {\n slide.clone = '';\n }\n\n slide.oldInfo.push(label);\n slide.$slideinfo.html(label);\n\n const isLoi = slide.$target.find('.loi').length > 0;\n if (isLoi) {\n slide.$contents.append(clonedDiv.html());\n $('.dropBlock-loi__holder .loi').remove();\n slide.$contents.find('.loi__list').each(function () {\n UX.loi.on.recalculate($(this));\n });\n } else {\n if (slide.clone === 'self') {\n if (slide.nested || slide.multi) {\n slide.$target.after('
    ');\n } else {\n slide.$target.after('
    ');\n }\n } else {\n if (slide.nested || slide.multi) {\n slide.$target.append('
    ');\n } else {\n slide.$target.append('
    ');\n }\n }\n\n clonedDiv.appendTo(slide.$contents);\n\n slide.on.rebuildJcf(slide.$contents);\n }\n\n // This is needed for refreshing the google ads iframe\n // because we are cloning it into element\n // for more info: https://stackoverflow.com/questions/435391/refresh-a-div-that-has-a-google-ad-inside-it/12083756#12083756\n if (typeof googletag !== 'undefined' && typeof googletag.pubads !== 'undefined') { /*eslint-disable-line*/\n googletag.pubads().refresh(); /*eslint-disable-line*/\n }\n $body.addClass('lock-screen slide-is-active').attr('data-active', 'slide');\n slide.$back.focus();\n\n const $coolBar = $('.coolBar');\n if ($coolBar.length) {\n $coolBar.addClass('slide');\n }\n /*\n $('.w-slide__title').truncate({\n lines: 1\n });\n */\n\n // \"opened\" event\n const openEvent = $.Event('slide:opened');\n\n if (slide.wait) {\n setTimeout(function () {\n slide.on._showSlide();\n slide.on.slidePill();\n $(document).trigger(openEvent, [slide]);\n }, 150);\n slide.wait = false;\n } else {\n slide.on._showSlide();\n $(document).trigger(openEvent, [slide]);\n }\n\n $(document).trigger('UX-attach');\n },\n _showSlide: function () {\n var slideWidth = '100%';\n\n var $slidedDiv = slide.$elements;\n if (slide.nested || slide.multi) {\n $slidedDiv = slide.$contents;\n }\n\n if (!slide.$elements.hasClass('js--open') && slide.multi) {\n $slidedDiv = $('[class*=nested--], .w-slide');\n }\n let translate = `-${slideWidth}`;\n if (slide.isRTL) {\n translate = slideWidth;\n }\n\n $slidedDiv\n .css('transform', `translateX(${translate})`)\n .off()\n .one('transitionend webkitTransitionEnd oTransitionEnd', function (e) {\n e.stopPropagation();\n slide.isQueue = false;\n slide.removeTransition();\n });\n slide.$slideinfo.show().addClass('js--open');\n slide.$elements.addClass('js--open');\n slide.on.additionalShowSlide();\n },\n _nestSlide: function () {\n slide.activeSlide++;\n slide.$contents.append('
    ');\n slide.$contents = $('.nested--' + slide.activeSlide);\n },\n additionalShow: function () {},\n additionalShowSlide: function () {},\n slidePill: function () {},\n hide: function (e) {\n const isInsideSlide = $(e.target).closest('.w-slide').length;\n /**\n * Fire \"close\" event\n * this event is Cancelable: which means if e.preventDefault() is called then the slide will not close.\n */\n var closingEvent = $.Event('slide:close');\n $(document).trigger(closingEvent, [slide]);\n if (closingEvent.isDefaultPrevented()) {\n return;\n }\n\n if (typeof e !== 'undefined' && $('.w-slide').hasClass('js--open')) {\n if (!isInsideSlide) {\n slide.back = true;\n }\n }\n\n if (slide.back) {\n slide.addTransition();\n slide.$slideinfo.hide().removeClass('js--open');\n\n slide.nested = true;\n\n if (slide.activeSlide === 0) {\n slide.nested = false;\n slide.$contents = slide.$elements.children('.w-slide__content');\n } else {\n slide.$contents = $('.nested--' + slide.activeSlide);\n }\n slide.on.destroyJcf(slide.$contents);\n\n let originalTarget = $(slide.$contents.attr('original-target'));\n if (!originalTarget) {\n originalTarget = $body;\n }\n\n const isLoi = slide.$elements.find('.loi').length > 0;\n\n slide.on.beforeReturnSlideContent();\n\n if (isLoi) {\n const $dropBlockHolder = $('.dropBlock-loi__holder');\n $dropBlockHolder.append(slide.$contents.html());\n $dropBlockHolder.find('.loi__list').each(function () {\n UX.loi.on.recalculate($(this));\n });\n } else {\n if (slide.$contents.find('[class*=nested--]').length) {\n slide.$contents.find('[class*=nested--]').remove();\n }\n slide.on._returnDataSlide(originalTarget);\n slide.on.rebuildJcf(originalTarget);\n }\n\n slide.oldInfo.splice(slide.activeSlide, 1);\n slide.$slideinfo.html(slide.oldInfo[slide.activeSlide - 1]);\n if (slide.$toggle) {\n slide.$toggle.focus();\n }\n\n if (slide.nested) {\n slide.activeSlide--;\n slide.on._hideSlide();\n if (slide.multi) {\n slide.$contents.remove();\n }\n slide.$contents = $('.nested--' + slide.activeSlide);\n if (slide.activeSlide === 0) {\n slide.$contents = slide.$elements.children('.w-slide__content');\n }\n } else {\n slide.activeSlide = 0;\n $('body, html').removeClass('lock-screen');\n $body.removeClass('lock-screen slide-is-active').removeAttr('data-active');\n const $coolBar = $('.coolBar');\n if ($coolBar.length) {\n $coolBar.removeClass('slide');\n }\n\n slide.on._hideSlide();\n slide.$elements.removeClass('js--open');\n slide.$elements.removeAttr('role');\n }\n slide.$slideinfo.show().addClass('js--open');\n\n slide.backLabel = 'back';\n slide.setBackLabel();\n slide.on.additionalHide(e);\n\n if (slide.$elements.hasClass('w-slide__pill')) {\n while (slide.activeSlide > 0) {\n slide.activeSlide--;\n slide.on.hide(e);\n }\n\n if (\n typeof e !== 'undefined' &&\n ($(e.target).hasClass('w-slide__back') || $(e.currentTarget).hasClass('w-slide__back')) &&\n slide.activeSlide === 0\n ) {\n slide.on.off(e);\n }\n }\n\n if (!isInsideSlide && !(typeof e !== 'undefined' && $(e.target).closest('.pill-list').length)) {\n slide.on.off(e);\n }\n\n slide.removeTransition();\n }\n\n // This is needed for refreshing the google ads iframe\n // because we are cloning it into element\n // for more info: https://stackoverflow.com/questions/435391/refresh-a-div-that-has-a-google-ad-inside-it/12083756#12083756\n if (typeof googletag !== 'undefined' && typeof googletag.pubads !== 'undefined') { /*eslint-disable-line*/\n googletag.pubads().refresh(); /*eslint-disable-line*/\n }\n\n // \"closed\" event\n const closeEvent = $.Event('slide:closed');\n $(document).trigger(closeEvent, [slide]);\n },\n _hideSlide: function () {\n let updateTarget = slide.$elements;\n if (slide.nested) updateTarget = slide.$contents;\n\n updateTarget\n .css('transform', 'translateX(0vw)')\n .off()\n .one('transitionend webkitTransitionEnd oTransitionEnd', function (e) {\n e.stopPropagation();\n if (slide.back)\n if (!slide.nested) slide.$contents.empty();\n else $(this).remove();\n });\n },\n _returnDataSlide: function (originalTarget) {\n const returnDataSlideHere =\n slide.nested || slide.multi ? '.returnNestedDataSlideHere' : '.returnDataSlideHere';\n const $returnDataSlideHere =\n slide.clone === 'self' ? $(returnDataSlideHere) : $(returnDataSlideHere, originalTarget);\n slide.$contents.children().appendTo($returnDataSlideHere.parent());\n $returnDataSlideHere.remove();\n },\n additionalHide: function (e) {},\n beforeReturnSlideContent: function () {},\n off: function (e) {\n slide.$slideinfo.hide().removeClass('js--open');\n\n $('.pill-list li').removeClass('pill-active');\n\n const isLoi = slide.$elements.find('.loi').length > 0;\n\n if (isLoi) {\n slide.$contents = $('.loi').closest('.w-slide__content');\n\n const $dropBlockHolder = $('.dropBlock-loi__holder');\n $dropBlockHolder.append(slide.$contents.html());\n $dropBlockHolder.find('.loi__list').each(function () {\n UX.loi.on.recalculate($(this));\n });\n }\n $('body, html').removeClass('lock-screen');\n $body.removeClass('lock-screen slide-is-active').removeAttr('data-active');\n $('.coolBar').removeClass('slide');\n slide.$contents = slide.$elements.children('.w-slide__content');\n slide.$elements\n .css('transform', 'translateX(0vw)')\n .off()\n .one('transitionend webkitTransitionEnd oTransitionEnd', function (e) {\n e.stopPropagation();\n slide.$elements.removeClass('js--open');\n if (slide.off) {\n $('.w-slide').removeClass('w-slide__pill');\n slide.$contents.empty();\n }\n });\n slide.off = false;\n slide.on.additionalOff(e);\n },\n additionalOff: function (e) {},\n destroyJcf: function ($el) {\n if (typeof jcf != 'undefined') {\n jcf.destroy($el.find('.jcf')); /*eslint-disable-line*/\n }\n },\n rebuildJcf: function ($el) {\n if (typeof jcf != 'undefined') {\n jcf.replace($el.find('.jcf')); /*eslint-disable-line*/\n }\n },\n },\n check: {\n viewPort: function ($el, index) {\n if (typeof $el.data('ctrl-res') !== 'undefined') {\n slide.vPort[index] = $el.data('ctrl-res');\n } else {\n $el.data('ctrl-res', slide.elementvPort);\n slide.vPort[index] = slide.elementvPort;\n }\n },\n },\n };\n\n UX.slide = slide; // add to global namespace\n})();\n","(function () {\n var $body = $('body');\n var reponsiveMenu = {\n vPort: 'screen-sm',\n elementvPort: null,\n isMobile: false, // variable use to determine if responsive mode is on or off\n $menuContainer: $('.responsive-menu-container'),\n leftSectionWidth: null,\n rightSectionWidth: null,\n maxMenuItemWidth: 135,\n $moreDropsown: $('.responsive-menu-nav .menubar > .dropdown-more'),\n $menu: $('.responsive-menu-nav >.drawer__nav'),\n $menuWrapper: $('.responsive-menu-nav'),\n\n init: function () {\n reponsiveMenu.elementvPort = reponsiveMenu.vPort;\n reponsiveMenu.vPort = [];\n $('.responsive-menu-container').each(function (index) {\n reponsiveMenu.check.viewPort(index, $(this));\n reponsiveMenu.responsive(index);\n });\n reponsiveMenu.control();\n reponsiveMenu.on.build();\n },\n\n responsive: function (index) {\n $(document).on(reponsiveMenu.vPort[index] + '-on', function () {\n reponsiveMenu.isMobile = true;\n\n $('.responsive-menu-container').each(function () {\n if ($(this).data('ctrl-res') === reponsiveMenu.vPort[index]) {\n $(this).addClass('js--disabled-responsive-menu'); // class will be used in our scss (to replace media queries)\n }\n });\n });\n\n $(document).on(reponsiveMenu.vPort[index] + '-off', function () {\n reponsiveMenu.isMobile = false;\n\n $('.responsive-menu-container').each(function () {\n if ($(this).data('ctrl-res') === reponsiveMenu.vPort[index]) {\n $(this).removeClass('js--disabled-responsive-menu'); // class will be used in our scss (to replace media queries)\n }\n });\n });\n },\n\n control: function () {\n $(window).on('resize', function () {\n reponsiveMenu.modifyMenu();\n });\n\n $body.on('touchend', '.dropdown-more >a, .dropdown.menu-parent>a ', function (e) {\n if ($(this).parents('.dropdown-more').length > 0 && !$(this).parent().hasClass('.dropdown-more')) {\n $('.responsive-menu-nav .js--opened:not(.dropdown-more)')\n .not($(this).parent())\n .removeClass('js--opened');\n } else {\n $('.responsive-menu-nav .js--opened').not($(this).parent()).removeClass('js--opened');\n }\n\n $(this).parent().toggleClass('js--opened');\n if (!$(this).parent().hasClass('js--opened')) {\n $(this).parent().addClass('js--forceClose');\n } else {\n $(this).parent().removeClass('js--forceClose');\n }\n });\n\n $body.click(function (e) {\n $('.responsive-menu-nav .js--opened:not(:hover)').removeClass('js--opened');\n });\n },\n on: {\n build: function () {\n reponsiveMenu.$menuWrapper.show();\n reponsiveMenu.modifyMenu();\n\n setTimeout(function () {\n reponsiveMenu.modifyMenu();\n }, 800);\n },\n },\n modifyMenu: function () {\n $('.responsive-menu-container').each(function () {\n reponsiveMenu.$menuContainer = $(this);\n reponsiveMenu.$moreDropsown = reponsiveMenu.$menuContainer.find('.dropdown-more');\n\n if (!reponsiveMenu.$menuContainer.hasClass('js--disabled-responsive-menu')) {\n reponsiveMenu.leftSectionWidth = reponsiveMenu.$menuContainer.find('.left-section').width();\n reponsiveMenu.rightSectionWidth = reponsiveMenu.$menuContainer.find('.right-section').width();\n reponsiveMenu.$menu = reponsiveMenu.$menuContainer.find('.drawer__nav');\n reponsiveMenu.$menuWrapper = reponsiveMenu.$menuContainer.find('.responsive-menu-nav');\n\n const availableMenuWidth =\n reponsiveMenu.$menuContainer.width() -\n (reponsiveMenu.leftSectionWidth + reponsiveMenu.rightSectionWidth + 35);\n let menuWidth = reponsiveMenu.$menu.width();\n\n if (availableMenuWidth > 0 && menuWidth > 0) {\n if (menuWidth > availableMenuWidth) {\n while (menuWidth > availableMenuWidth) {\n const $lastMenuItem = reponsiveMenu.$menu\n .find('.menubar > [role=\"menuitem\"]:not(.dropdown-more)')\n .last();\n if ($lastMenuItem.length > 0) {\n reponsiveMenu.$moreDropsown.removeClass('hidden');\n reponsiveMenu.$moreDropsown\n .find('>.dropdown__menu')\n .prepend($lastMenuItem[0].outerHTML);\n $lastMenuItem.remove();\n menuWidth = reponsiveMenu.$menu.width();\n } else {\n break;\n }\n }\n } else if (\n availableMenuWidth > menuWidth + reponsiveMenu.maxMenuItemWidth &&\n !reponsiveMenu.$moreDropsown.hasClass('hidden')\n ) {\n while (availableMenuWidth > menuWidth) {\n const $moreItems = reponsiveMenu.$moreDropsown.find(\n '.dropdown__menu [role=\"menuitem\"]'\n );\n const $firstMoreItem = $moreItems.first();\n if ($firstMoreItem.length > 0) {\n reponsiveMenu.$moreDropsown.before($firstMoreItem[0].outerHTML);\n\n if ($moreItems.length <= 1) {\n reponsiveMenu.$moreDropsown.addClass('hidden');\n }\n\n $firstMoreItem.remove();\n menuWidth = reponsiveMenu.$menu.width();\n } else {\n break;\n }\n }\n\n if (menuWidth > availableMenuWidth) {\n reponsiveMenu.modifyMenu();\n }\n }\n }\n } else {\n if (!reponsiveMenu.$moreDropsown.hasClass('hidden')) {\n reponsiveMenu.$moreDropsown.addClass('hidden');\n reponsiveMenu.$moreDropsown.before(reponsiveMenu.$moreDropsown.find('.dropdown__menu').html());\n reponsiveMenu.$moreDropsown.find('.dropdown__menu').empty();\n }\n }\n });\n },\n check: {\n viewPort: function (index, $el) {\n if (typeof $el.data('ctrl-res') != 'undefined' || $el.data('ctrl-res') === '') {\n reponsiveMenu.vPort[index] = $el.data('ctrl-res');\n } else {\n $el.data('ctrl-res', reponsiveMenu.elementvPort);\n reponsiveMenu.vPort[index] = reponsiveMenu.elementvPort;\n }\n },\n },\n };\n\n UX.reponsiveMenu = reponsiveMenu; // add to global namespace\n})();\n","/**\n stickybits - Stickybits is a lightweight alternative to `position: sticky` polyfills\n @version v3.6.5\n @link https://github.com/dollarshaveclub/stickybits#readme\n @author Jeff Wainwright (https://jeffry.in)\n @license MIT\n**/\n/*eslint-disable*/\n/*\n STICKYBITS 💉\n --------\n > a lightweight alternative to `position: sticky` polyfills 🍬\n --------\n - each method is documented above it our view the readme\n - Stickybits does not manage polymorphic functionality (position like properties)\n * polymorphic functionality: (in the context of describing Stickybits)\n means making things like `position: sticky` be loosely supported with position fixed.\n It also means that features like `useStickyClasses` takes on styles like `position: fixed`.\n --------\n defaults 🔌\n --------\n - version = `package.json` version\n - userAgent = viewer browser agent\n - target = DOM element selector\n - noStyles = boolean\n - offset = number\n - parentClass = 'string'\n - scrollEl = window || DOM element selector || DOM element\n - stickyClass = 'string'\n - stuckClass = 'string'\n - useStickyClasses = boolean\n - useFixed = boolean\n - useGetBoundingClientRect = boolean\n - verticalPosition = 'string'\n --------\n props🔌\n --------\n - p = props {object}\n --------\n instance note\n --------\n - stickybits parent methods return this\n - stickybits instance methods return an instance item\n --------\n nomenclature\n --------\n - target => el => e\n - props => o || p\n - instance => item => it\n --------\n methods\n --------\n - .definePosition = defines sticky or fixed\n - .addInstance = an array of objects for each Stickybits Target\n - .getClosestParent = gets the parent for non-window scroll\n - .getTopPosition = gets the element top pixel position from the viewport\n - .computeScrollOffsets = computes scroll position\n - .toggleClasses = older browser toggler\n - .manageState = manages sticky state\n - .removeClass = older browser support class remover\n - .removeInstance = removes an instance\n - .cleanup = removes all Stickybits instances and cleans up dom from stickybits\n*/\nvar Stickybits =\n/*#__PURE__*/\nfunction () {\n const stickyOnEvent = document.createEvent('CustomEvent'),\n stickyOffEvent = document.createEvent('CustomEvent');\n stickyOnEvent.initCustomEvent('sticky-on', true, false, {});\n stickyOffEvent.initCustomEvent('sticky-off', true, false, {});\n\n function Stickybits(target, obj) {\n var o = typeof obj !== 'undefined' ? obj : {};\n this.version = '3.6.5';\n this.userAgent = window.navigator.userAgent || 'no `userAgent` provided by the browser';\n this.props = {\n customStickyChangeNumber: o.customStickyChangeNumber || null,\n noStyles: o.noStyles || false,\n stickyBitStickyOffset: o.stickyBitStickyOffset || 0,\n parentClass: o.parentClass || 'js-stickybit-parent',\n scrollEl: typeof o.scrollEl === 'string' ? document.querySelector(o.scrollEl) : o.scrollEl || window,\n stickyClass: o.stickyClass || 'js-is-sticky',\n stuckClass: o.stuckClass || 'js-is-stuck',\n stickyChangeClass: o.stickyChangeClass || 'js-is-sticky--change',\n useStickyClasses: o.useStickyClasses || false,\n useFixed: o.useFixed || false,\n useGetBoundingClientRect: o.useGetBoundingClientRect || false,\n verticalPosition: o.verticalPosition || 'top'\n /*\n define positionVal\n ----\n - uses a computed (`.definePosition()`)\n - defined the position\n */\n\n };\n this.props.positionVal = this.definePosition() || 'fixed';\n this.instances = [];\n var _this$props = this.props,\n positionVal = _this$props.positionVal,\n verticalPosition = _this$props.verticalPosition,\n noStyles = _this$props.noStyles,\n stickyBitStickyOffset = _this$props.stickyBitStickyOffset,\n useStickyClasses = _this$props.useStickyClasses;\n var verticalPositionStyle = verticalPosition === 'top' && !noStyles ? stickyBitStickyOffset + \"px\" : '';\n var positionStyle = positionVal !== 'fixed' ? positionVal : '';\n this.els = typeof target === 'string' ? document.querySelectorAll(target) : target;\n if (!('length' in this.els)) this.els = [this.els];\n\n for (var i = 0; i < this.els.length; i++) {\n var el = this.els[i]; // set vertical position\n\n el.style[verticalPosition] = verticalPositionStyle;\n el.style.position = positionStyle;\n\n if (positionVal === 'fixed' || useStickyClasses) {\n // instances are an array of objects\n this.instances.push(this.addInstance(el, this.props));\n }\n }\n }\n /*\n setStickyPosition ✔️\n --------\n — most basic thing stickybits does\n => checks to see if position sticky is supported\n => defined the position to be used\n => stickybits works accordingly\n */\n\n\n var _proto = Stickybits.prototype;\n\n _proto.definePosition = function definePosition() {\n var stickyProp;\n\n if (this.props.useFixed) {\n stickyProp = 'fixed';\n } else {\n var prefix = ['', '-o-', '-webkit-', '-moz-', '-ms-'];\n var test = document.head.style;\n\n for (var i = 0; i < prefix.length; i += 1) {\n test.position = prefix[i] + \"sticky\";\n }\n\n stickyProp = test.position ? test.position : 'fixed';\n test.position = '';\n }\n\n return stickyProp;\n }\n /*\n addInstance ✔️\n --------\n — manages instances of items\n - takes in an el and props\n - returns an item object\n ---\n - target = el\n - o = {object} = props\n - scrollEl = 'string' | object\n - verticalPosition = number\n - off = boolean\n - parentClass = 'string'\n - stickyClass = 'string'\n - stuckClass = 'string'\n ---\n - defined later\n - parent = dom element\n - state = 'string'\n - offset = number\n - stickyStart = number\n - stickyStop = number\n - returns an instance object\n */\n ;\n\n _proto.addInstance = function addInstance(el, props) {\n var _this = this;\n\n var item = {\n el: el,\n parent: el.parentNode,\n props: props\n };\n this.isWin = this.props.scrollEl === window;\n var se = this.isWin ? window : this.getClosestParent(item.el, item.props.scrollEl);\n this.computeScrollOffsets(item);\n item.parent.className += \" \" + props.parentClass;\n item.state = 'default';\n\n item.stateContainer = function () {\n return _this.manageState(item);\n };\n\n se.addEventListener('scroll', item.stateContainer);\n return item;\n }\n /*\n --------\n getParent 👨‍\n --------\n - a helper function that gets the target element's parent selected el\n - only used for non `window` scroll elements\n - supports older browsers\n */\n ;\n\n _proto.getClosestParent = function getClosestParent(el, match) {\n // p = parent element\n var p = match;\n var e = el;\n if (e.parentElement === p) return p; // traverse up the dom tree until we get to the parent\n\n while (e.parentElement !== p) {\n e = e.parentElement;\n } // return parent element\n\n\n return p;\n }\n /*\n --------\n getTopPosition\n --------\n - a helper function that gets the topPosition of a Stickybit element\n - from the top level of the DOM\n */\n ;\n\n _proto.getTopPosition = function getTopPosition(el) {\n if (this.props.useGetBoundingClientRect) {\n return el.getBoundingClientRect().top + (this.props.scrollEl.pageYOffset || document.documentElement.scrollTop);\n }\n\n var topPosition = 0;\n\n do {\n topPosition = el.offsetTop + topPosition;\n } while (el = el.offsetParent);\n\n return topPosition;\n }\n /*\n computeScrollOffsets 📊\n ---\n computeScrollOffsets for Stickybits\n - defines\n - offset\n - start\n - stop\n */\n ;\n\n _proto.computeScrollOffsets = function computeScrollOffsets(item) {\n var it = item;\n var p = it.props;\n var el = it.el;\n var parent = it.parent;\n var isCustom = !this.isWin && p.positionVal === 'fixed';\n var isTop = p.verticalPosition !== 'bottom';\n var scrollElOffset = isCustom ? this.getTopPosition(p.scrollEl) : 0;\n var stickyStart = isCustom ? this.getTopPosition(parent) - scrollElOffset : this.getTopPosition(parent);\n var stickyChangeOffset = p.customStickyChangeNumber !== null ? p.customStickyChangeNumber : el.offsetHeight;\n var parentBottom = stickyStart + parent.offsetHeight;\n it.offset = scrollElOffset + p.stickyBitStickyOffset;\n it.stickyStart = isTop ? stickyStart - it.offset : 0;\n it.stickyChange = it.stickyStart + stickyChangeOffset;\n it.stickyStop = isTop ? parentBottom - (el.offsetHeight + it.offset) : parentBottom - window.innerHeight;\n }\n /*\n toggleClasses ⚖️\n ---\n toggles classes (for older browser support)\n r = removed class\n a = added class\n */\n ;\n\n _proto.toggleClasses = function toggleClasses(el, r, a) {\n var e = el;\n var cArray = e.className.split(' ');\n if (a && cArray.indexOf(a) === -1) cArray.push(a);\n var rItem = cArray.indexOf(r);\n if (rItem !== -1) cArray.splice(rItem, 1);\n e.className = cArray.join(' ');\n }\n /*\n manageState 📝\n ---\n - defines the state\n - normal\n - sticky\n - stuck\n */\n ;\n\n _proto.manageState = function manageState(item) {\n // cache object\n var it = item;\n var e = it.el;\n var p = it.props;\n var state = it.state;\n var start = it.stickyStart;\n var change = it.stickyChange;\n var stop = it.stickyStop;\n var stl = e.style; // cache props\n\n var ns = p.noStyles;\n var pv = p.positionVal;\n var se = p.scrollEl;\n var sticky = p.stickyClass;\n var stickyChange = p.stickyChangeClass;\n var stuck = p.stuckClass;\n var vp = p.verticalPosition;\n var isTop = vp !== 'bottom';\n /*\n requestAnimationFrame\n ---\n - use rAF\n - or stub rAF\n */\n\n var rAFStub = function rAFDummy(f) {\n f();\n };\n\n var rAF = !this.isWin ? rAFStub : window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame || rAFStub;\n /*\n define scroll vars\n ---\n - scroll\n - notSticky\n - isSticky\n - isStuck\n */\n\n var tC = this.toggleClasses;\n var scroll = this.isWin ? window.scrollY || window.pageYOffset : se.scrollTop;\n var notSticky = scroll > start && scroll < stop && (state === 'default' || state === 'stuck');\n var isSticky = isTop && scroll <= start && (state === 'sticky' || state === 'stuck');\n var isStuck = scroll >= stop && state === 'sticky';\n /*\n Unnamed arrow functions within this block\n ---\n - help wanted or discussion\n - view test.stickybits.js\n - `stickybits .manageState `position: fixed` interface` for more awareness 👀\n */\n\n if (notSticky) {\n it.state = 'sticky';\n rAF(function () {\n tC(e, stuck, sticky);\n stl.position = pv;\n if (ns) return;\n stl.bottom = '';\n stl[vp] = p.stickyBitStickyOffset + \"px\";\n e.dispatchEvent(stickyOnEvent);\n });\n } else if (isSticky) {\n it.state = 'default';\n rAF(function () {\n tC(e, sticky);\n tC(e, stuck);\n if (pv === 'fixed') stl.position = '';\n e.dispatchEvent(stickyOffEvent);\n });\n } else if (isStuck) {\n it.state = 'stuck';\n rAF(function () {\n tC(e, sticky, stuck);\n if (pv !== 'fixed' || ns) return;\n stl.top = '';\n stl.bottom = '0';\n stl.position = 'absolute';\n });\n }\n\n var isStickyChange = scroll >= change && scroll <= stop;\n var isNotStickyChange = scroll < change / 2 || scroll > stop;\n var stub = 'stub'; // a stub css class to remove\n\n if (isNotStickyChange) {\n rAF(function () {\n tC(e, stickyChange);\n });\n } else if (isStickyChange) {\n rAF(function () {\n tC(e, stub, stickyChange);\n });\n }\n };\n\n _proto.update = function update(updatedProps) {\n if (updatedProps === void 0) {\n updatedProps = null;\n }\n\n for (var i = 0; i < this.instances.length; i += 1) {\n var instance = this.instances[i];\n this.computeScrollOffsets(instance);\n\n if (updatedProps) {\n for (var updatedProp in updatedProps) {\n instance.props[updatedProp] = updatedProps[updatedProp];\n }\n }\n }\n\n return this;\n }\n /*\n removes an instance 👋\n --------\n - cleanup instance\n */\n ;\n\n _proto.removeInstance = function removeInstance(instance) {\n var e = instance.el;\n var p = instance.props;\n var tC = this.toggleClasses;\n e.style.position = '';\n e.style[p.verticalPosition] = '';\n tC(e, p.stickyClass);\n tC(e, p.stuckClass);\n tC(e.parentNode, p.parentClass);\n }\n /*\n cleanup 🛁\n --------\n - cleans up each instance\n - clears instance\n */\n ;\n\n _proto.cleanup = function cleanup() {\n for (var i = 0; i < this.instances.length; i += 1) {\n var instance = this.instances[i];\n instance.props.scrollEl.removeEventListener('scroll', instance.stateContainer);\n this.removeInstance(instance);\n }\n\n this.manageState = false;\n this.instances = [];\n };\n\n return Stickybits;\n}();\n/*\n export\n --------\n exports StickBits to be used 🏁\n*/\n\n\nfunction stickybits(target, o) {\n return new Stickybits(target, o);\n}\n\nexport default stickybits;\n","import stickybits from 'ui-core/plugins/stickybits/js/stickybits.es';\n\n(function ($, UX) {\n const sticky = {\n stickyNodes: [],\n stickyTargets:\n '.header, .issue-navigator, .navbar, .article__aside, .article__navbar, .table-of-content__nav, .tos-list',\n init() {\n this.stickyNodes = document.querySelectorAll(this.stickyTargets);\n this.setHeaderHeight();\n this.setSticky();\n },\n setHeaderHeight() {\n // set the initial value of --header-height to override the default values\n $('body')\n .get(0)\n .style.setProperty('--header-height', $('.header').innerHeight() + 'px');\n\n // to cover the case when resize from smaller screens to web and page reload\n $(window).resize(function () {\n // On resize\n $('body')\n .get(0)\n .style.setProperty('--header-height', $('.header').innerHeight() + 'px');\n });\n // cover case when jump from Simulater viewport into web and on page reload\n $(document).on('smartResize', function () {\n $('body')\n .get(0)\n .style.setProperty('--header-height', $('.header').innerHeight() + 'px');\n });\n },\n setSticky() {\n if (!UX.test.isIE() || UX.test.isIE() > 11) {\n return;\n }\n stickybits(`${this.stickyTargets}, .article__navbar__secondary`, {useStickyClasses: true});\n this.stickyNodes.forEach(function (node) {\n const nodeWinOffset = node.getBoundingClientRect();\n node.style.left = nodeWinOffset.left + 'px';\n node.style.width = nodeWinOffset.width + 'px';\n node.style.right = window.outerWidth - nodeWinOffset.right + 'px';\n });\n },\n };\n\n $(() => {\n sticky.init();\n });\n})(jQuery, UX);\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.4.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n/*eslint-disable*/\nimport $ from 'jquery';\nimport Util from '../../../utility/js/bootstrap-utils';\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal';\nconst VERSION = '4.4.1';\nconst DATA_KEY = 'bs.modal';\nconst EVENT_KEY = `.${DATA_KEY}`;\nconst DATA_API_KEY = '.data-api';\nconst JQUERY_NO_CONFLICT = $.fn[NAME];\nconst ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true,\n};\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean',\n};\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDE_PREVENTED: `hidePrevented${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n};\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'in',\n STATIC: 'modal-static',\n};\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top',\n};\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config);\n this._element = element;\n this._dialog = element.querySelector(Selector.DIALOG);\n this._backdrop = null;\n this._isShown = false;\n this._isBodyOverflowing = false;\n this._ignoreBackdropClick = false;\n this._isTransitioning = false;\n this._scrollbarWidth = 0;\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION;\n }\n\n static get Default() {\n return Default;\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return;\n }\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n this._isTransitioning = true;\n }\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget,\n });\n\n $(this._element).trigger(showEvent);\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return;\n }\n\n this._isShown = true;\n\n this._checkScrollbar();\n this._setScrollbar();\n\n this._adjustDialog();\n\n this._setEscapeEvent();\n this._setResizeEvent();\n\n $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, event => this.hide(event));\n\n $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n $(this._element).one(Event.MOUSEUP_DISMISS, event => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true;\n }\n });\n });\n\n this._showBackdrop(() => this._showElement(relatedTarget));\n }\n\n hide(event) {\n if (event) {\n event.preventDefault();\n }\n\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n\n const hideEvent = $.Event(Event.HIDE);\n\n $(this._element).trigger(hideEvent);\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return;\n }\n\n this._isShown = false;\n const transition = $(this._element).hasClass(ClassName.FADE);\n\n if (transition) {\n this._isTransitioning = true;\n }\n\n this._setEscapeEvent();\n this._setResizeEvent();\n\n $(document).off(Event.FOCUSIN);\n\n $(this._element).removeClass(ClassName.SHOW);\n\n $(this._element).off(Event.CLICK_DISMISS);\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS);\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element);\n\n $(this._element)\n .one(Util.TRANSITION_END, event => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration);\n } else {\n this._hideModal();\n }\n }\n\n dispose() {\n [window, this._element, this._dialog].forEach(htmlElement => $(htmlElement).off(EVENT_KEY));\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n $(document).off(Event.FOCUSIN);\n\n $.removeData(this._element, DATA_KEY);\n\n this._config = null;\n this._element = null;\n this._dialog = null;\n this._backdrop = null;\n this._isShown = null;\n this._isBodyOverflowing = null;\n this._ignoreBackdropClick = null;\n this._isTransitioning = null;\n this._scrollbarWidth = null;\n }\n\n handleUpdate() {\n this._adjustDialog();\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config,\n };\n Util.typeCheckConfig(NAME, config, DefaultType);\n return config;\n }\n\n _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEventPrevented = $.Event(Event.HIDE_PREVENTED);\n\n $(this._element).trigger(hideEventPrevented);\n if (hideEventPrevented.defaultPrevented) {\n return;\n }\n\n this._element.classList.add(ClassName.STATIC);\n\n const modalTransitionDuration = Util.getTransitionDurationFromElement(this._element);\n\n $(this._element)\n .one(Util.TRANSITION_END, () => {\n this._element.classList.remove(ClassName.STATIC);\n })\n .emulateTransitionEnd(modalTransitionDuration);\n this._element.focus();\n } else {\n this.hide();\n }\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(ClassName.FADE);\n const modalBody = this._dialog ? this._dialog.querySelector(Selector.MODAL_BODY) : null;\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element);\n }\n\n this._element.style.display = 'block';\n this._element.removeAttribute('aria-hidden');\n this._element.setAttribute('aria-modal', true);\n\n if ($(this._dialog).hasClass(ClassName.SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0;\n } else {\n this._element.scrollTop = 0;\n }\n\n if (transition) {\n Util.reflow(this._element);\n }\n\n $(this._element).addClass(ClassName.SHOW);\n\n if (this._config.focus) {\n this._enforceFocus();\n }\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget,\n });\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus();\n }\n this._isTransitioning = false;\n $(this._element).trigger(shownEvent);\n };\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._dialog);\n\n $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);\n } else {\n transitionComplete();\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(Event.FOCUSIN) // Guard against infinite focus loop\n .on(Event.FOCUSIN, event => {\n if (\n document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0\n ) {\n this._element.focus();\n }\n });\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n $(this._element).on(Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition();\n }\n });\n } else if (!this._isShown) {\n $(this._element).off(Event.KEYDOWN_DISMISS);\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(Event.RESIZE, event => this.handleUpdate(event));\n } else {\n $(window).off(Event.RESIZE);\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none';\n this._element.setAttribute('aria-hidden', true);\n this._element.removeAttribute('aria-modal');\n this._isTransitioning = false;\n this._showBackdrop(() => {\n $(document.body).removeClass(ClassName.OPEN);\n this._resetAdjustments();\n this._resetScrollbar();\n $(this._element).trigger(Event.HIDDEN);\n });\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove();\n this._backdrop = null;\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div');\n this._backdrop.className = ClassName.BACKDROP;\n\n if (animate) {\n this._backdrop.classList.add(animate);\n }\n\n $(this._backdrop).appendTo(document.body);\n\n $(this._element).on(Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false;\n return;\n }\n if (event.target !== event.currentTarget) {\n return;\n }\n\n this._triggerBackdropTransition();\n });\n\n if (animate) {\n Util.reflow(this._backdrop);\n }\n\n $(this._backdrop).addClass(ClassName.SHOW);\n\n if (!callback) {\n return;\n }\n\n if (!animate) {\n callback();\n return;\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n\n $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(ClassName.SHOW);\n\n const callbackRemove = () => {\n this._removeBackdrop();\n if (callback) {\n callback();\n }\n };\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration);\n } else {\n callbackRemove();\n }\n } else if (callback) {\n callback();\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`;\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`;\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect();\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;\n this._scrollbarWidth = this._getScrollbarWidth();\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n const fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT));\n const stickyContent = [].slice.call(document.querySelectorAll(Selector.STICKY_CONTENT));\n\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualPadding = element.style.paddingRight;\n const calculatedPadding = $(element).css('padding-right');\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`);\n });\n\n // Adjust sticky content margin\n $(stickyContent).each((index, element) => {\n const actualMargin = element.style.marginRight;\n const calculatedMargin = $(element).css('margin-right');\n $(element)\n .data('margin-right', actualMargin)\n .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`);\n });\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight;\n const calculatedPadding = $(document.body).css('padding-right');\n $(document.body)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`);\n }\n\n $(document.body).addClass(ClassName.OPEN);\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n const fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT));\n $(fixedContent).each((index, element) => {\n const padding = $(element).data('padding-right');\n $(element).removeData('padding-right');\n element.style.paddingRight = padding ? padding : '';\n });\n\n // Restore sticky content\n const elements = [].slice.call(document.querySelectorAll(`${Selector.STICKY_CONTENT}`));\n $(elements).each((index, element) => {\n const margin = $(element).data('margin-right');\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right');\n }\n });\n\n // Restore body padding\n const padding = $(document.body).data('padding-right');\n $(document.body).removeData('padding-right');\n document.body.style.paddingRight = padding ? padding : '';\n }\n\n _getScrollbarWidth() {\n // thx d.walsh\n const scrollDiv = document.createElement('div');\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER;\n document.body.appendChild(scrollDiv);\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY);\n const _config = {\n ...Default,\n ...$(this).data(),\n ...(typeof config === 'object' && config ? config : {}),\n };\n\n if (!data) {\n data = new Modal(this, _config);\n $(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config](relatedTarget);\n } else if (_config.show) {\n data.show(relatedTarget);\n }\n });\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target;\n const selector = Util.getSelectorFromElement(this);\n\n if (selector) {\n target = document.querySelector(selector);\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle'\n : {\n ...$(target).data(),\n ...$(this).data(),\n };\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault();\n }\n\n const $target = $(target).one(Event.SHOW, showEvent => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return;\n }\n\n $target.one(Event.HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus();\n }\n });\n });\n\n Modal._jQueryInterface.call($(target), config, this);\n});\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Modal._jQueryInterface;\n$.fn[NAME].Constructor = Modal;\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n return Modal._jQueryInterface;\n};\n\nexport default Modal;\n","import './menu-accessability.js';\n\n(function () {\n //document.activeElement\n\n var $body = $('body'),\n $window = $(window),\n tabKey = 9,\n escKey = 27,\n enterKey = 13;\n\n var menu = {\n $toggle: $('[data-toggle=\"nav\"]'),\n $target: null,\n revers: false,\n lastItem: null,\n items: null,\n vPort: ['screen-sm'],\n isMobile: false, // variable use to determine if responsive mode is on or off\n menuHeaderMainTitle: '',\n redirectPath: false,\n displayedNestedItems: false,\n nestedMenu: undefined,\n listPositionVars: {\n mainScrollingList: $('#menubar'),\n inTimeoutTiming: null, // override these if you want a custom listPosition.handle in or out timeout time\n outTimeoutTiming: null,\n mainScrollingListHeight: false,\n mobileTransitionTime: 400, // should usually keep it the same as the transition time for `.main-nav.menu--res li`'s that's in drawer.scss,\n bodyTransitionPropertyName: 'transform', // this one,\n bodyTransitionElapsedTime: 0.25, // and this one depend on the type and duration of the sidebar `show` transition (currently under `.lock-screen[data-active='menu']` in drawer.scss)\n },\n\n init: function () {\n $('.main-nav').each(function (index) {\n menu.$target = $(this);\n const $header = menu.$target.find('.menu-header');\n menu.menuHeaderMainTitle = $header.text();\n menu.redirectPath = $header.data('redirect-to');\n menu.check.viewPort(index);\n menu.responsive(index);\n });\n $('.main-nav__toggle__controller').attr('aria-expanded', 'false');\n menu.items = $('.main-nav').find('a, button, input'); //$(\".header__nav a, .header__nav button, .header__nav input\");\n menu.control();\n menu.additionalControl();\n },\n\n responsive: function (index) {\n $(document).on(menu.vPort[index] + '-on', function () {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n menu.isMobile = true;\n $('.main-nav').each(function () {\n if ($(this).find('.drawer__nav').data('ctrl-res') === menu.vPort[index]) {\n $(this).addClass('menu--res'); // class will be used in our scss (to replace media queries)\n $('.main-nav__toggle__controller').addClass('main-nav__toggle__controller__res'); // class will be used in our scss (to replace media queries)\n menu.on.rebuild.responsive(); // rebuild menu to be responsive - drawer\n }\n });\n });\n\n $(document).on(menu.vPort[index] + '-off', function () {\n // Waiting for custom event that will be triggered by controller.js to deactivate responsive effects\n menu.isMobile = false;\n $('.main-nav').each(function () {\n if ($(this).find('.drawer__nav').data('ctrl-res') === menu.vPort[index]) {\n $(this).removeClass('menu--res'); // class will be used in our scss (to replace media queries)\n $('.main-nav__toggle__controller').removeClass('main-nav__toggle__controller__res'); // class will be used in our scss (to replace media queries)\n menu.on.rebuild.original(); // return menu as default\n }\n });\n });\n },\n\n control: function () {\n $body.on('click', '[data-toggle=\"nav\"]', function (e) {\n e.preventDefault();\n menu.$toggle = $(this);\n menu.$target = $('#' + menu.$toggle.data('target'));\n\n menu.items = menu.$target.find('a, button, input'); //$(\".header__nav a, .header__nav button, .header__nav input\");\n menu.items.each(function (index) {\n if (index === menu.items.length - 1) {\n menu.lastItem = $(this);\n }\n });\n\n menu.on.show(e);\n });\n\n $body.on('click', '.js--open[data-toggle=\"nav\"]', function (e) {\n e.preventDefault();\n menu.on.hide(e);\n });\n\n $body.on('click', function (e) {\n if (!$(e.target).closest('.dropdown__toggle').length) {\n $('a.dropdown__toggle.hover').removeClass('hover');\n }\n if (\n !$(e.target).hasClass('icon-arrow_r') &&\n !$(e.target).parents('.main-nav__toggle__controller') &&\n !$(e.target).parents('.main-nav.menu--res').length &&\n $('.lock-screen[data-active=\"menu\"]').length\n ) {\n menu.on.hide(e);\n }\n });\n\n $body.on('click', '.main-nav a', function (e) {\n if ($(this).attr('href') === '#') {\n e.preventDefault();\n }\n });\n\n $body.on('click touchend', '[data-toggle=\"dropdown\"]', function (e) {\n e.preventDefault();\n menu.nestedMenu = $(this);\n menu.on.nested(e);\n });\n $body.on('click', '.menu-header', function (e) {\n e.preventDefault();\n\n if (menu.isMobile) {\n menu.on.hideNested(true);\n }\n e.stopPropagation(); // prevent closing menu when getting back from nested menu\n });\n $body.on('keydown', '.drawer__nav, [data-toggle=\"nav\"]', function (e) {\n if (menu.isMobile) {\n if ((e.keyCode || e.which) === tabKey) {\n if (!menu.revers) {\n menu.on.tab();\n } else {\n menu.on.tabRevers();\n }\n }\n }\n });\n\n // without .get(0) e.elapsedTime and e.propertyName are undefined\n $body.get(0).addEventListener('transitionend', menu.on.listPosition.handleHeightSet);\n $window.on('resize', menu.on.listPosition.handleResize);\n\n $window.on('keyup', function (e) {\n menu.revers = !!(e.shiftKey && e.keyCode === tabKey);\n if (!menu.isMobile) {\n if ((e.keyCode || e.which) === tabKey || enterKey) {\n menu.on.tabDesktop(e, menu.revers, e.keyCode);\n }\n\n if ((e.keyCode || e.which) === escKey) {\n menu.on.escDesktop(e);\n }\n }\n });\n },\n additionalControl: function () {},\n on: {\n show: function () {\n if (typeof UX.controller != 'undefined') {\n UX.controller.check();\n }\n $body.addClass('lock-screen').attr('data-active', 'menu');\n menu.$toggle.addClass('js--open');\n\n menu.$target.closest('.main-nav').css('top', $window.scrollTop());\n $('.coolBar--res')\n .removeClass('trans')\n .css('top', $window.scrollTop() + $('header').height());\n $('.loi__banner.loi--res').css('top', $window.scrollTop() + $('header').height());\n $('.main-nav__toggle__controller').attr('aria-expanded', 'true');\n menu.$target.attr('style', 'display: block !important');\n menu.$toggle.focus();\n menu.on.showAdditional();\n },\n showAdditional: function () {},\n showNested: function () {\n menu.on.listPosition.start('in');\n menu.nestedMenu.next('.dropdown__menu').toggleClass('sub-menu__opened');\n menu.nestedMenu.parent().toggleClass('menu-parent__opened');\n menu.nestedMenu.find('i').toggleClass('opposite-arrow');\n menu.nestedMenu.parent().siblings('li').toggleClass('prev-items');\n menu.nestedMenu.toggleClass('prev-items');\n $(\"[data-toggle='nav']\").addClass('js--nested-open'); // replace Close button with back button after nested menu get opened\n const $menuTitle = menu.nestedMenu.html();\n\n if ($('.menu-header').length) {\n $('.menu-header').html($menuTitle);\n }\n menu.displayedNestedItems = true;\n\n menu.on.showNestedExtra();\n },\n showNestedExtra: function () {},\n hideNested: function (shouldNavigate = false) {\n var $menuHeader = $('.menu-header');\n var $parenNestedMenu;\n\n if (typeof menu.nestedMenu != 'undefined') {\n menu.on.listPosition.start('out');\n $parenNestedMenu = menu.nestedMenu.parent().parent(); // first parent list\n menu.nestedMenu = $parenNestedMenu.parent().find('.dropdown__toggle'); // first parent dropdown toggle link\n\n $parenNestedMenu.find('.sub-menu__opened').removeClass('sub-menu__opened');\n $parenNestedMenu.find('.menu-parent__opened').removeClass('menu-parent__opened');\n $parenNestedMenu.find('.prev-items').removeClass('prev-items');\n $(\"[data-toggle='nav']\").removeClass('js--nested-open');\n\n if ($parenNestedMenu.hasClass('sub-menu__opened')) {\n $menuHeader.find('span').html(menu.nestedMenu.find('span').html());\n } else {\n if (menu.redirectPath && shouldNavigate && !menu.displayedNestedItems) {\n document.location = menu.redirectPath;\n } else {\n $menuHeader.html(menu.menuHeaderMainTitle);\n menu.displayedNestedItems = false;\n }\n }\n } else {\n menu.nestedMenu = $menuHeader;\n }\n\n menu.on.hideNestedExtra();\n },\n hideNestedExtra: function () {},\n hide: function () {\n if (menu.isMobile) {\n // hide nested menu before closing\n menu.on.hideNested();\n }\n menu.$toggle.removeClass('js--open');\n $('.main-nav, header').css('top', 0);\n $('.coolBar--res').addClass('trans').css('top', $('header').height()); // The magic number contains 1px of border and\n $('.loi__banner.loi--res').css('top', $('header').height());\n $body.removeAttr('data-active').removeClass('lock-screen');\n $('.main-nav__toggle__controller').attr('aria-expanded', 'false');\n menu.on.listPosition.reset();\n },\n escape: function () {\n menu.on.hide();\n menu.$toggle.focus();\n },\n tab: function () {\n menu.$toggle.off();\n menu.lastItem.off().on('focusout', function () {\n menu.$toggle.focus();\n });\n },\n tabRevers: function () {\n menu.lastItem.off();\n menu.$toggle.off().on('focusout', function () {\n menu.lastItem.focus();\n });\n },\n tabDesktop: function (e, revers, keyCode) {\n var $target = $(e.target);\n var $parentMenu = $target.closest('.dropdown__menu');\n var $dropdownToggle = $('.dropdown__toggle');\n var dropdownMenu = '.dropdown__menu';\n\n if (!$target.closest('ul').length) {\n $dropdownToggle.removeClass('hover');\n $('.dropdown').removeClass('js--open');\n }\n\n if ($target.hasClass('dropdown__toggle')) {\n if (\n $parentMenu.length === 0 ||\n (!$parentMenu.hasClass('js--open') && $parentMenu.find('.js--open').length === 0)\n ) {\n $dropdownToggle.removeClass('hover');\n $(dropdownMenu).removeClass('js--open');\n $target.closest('a').addClass('hover');\n $target.siblings(dropdownMenu).addClass('js--open');\n } else {\n $parentMenu.find('.hover').removeClass('hover');\n $parentMenu.find('.js--open').removeClass('js--open');\n $target.closest('a').addClass('hover');\n $target.siblings(dropdownMenu).addClass('js--open');\n }\n if (keyCode == enterKey) {\n $(e.target).closest('a').addClass('hover');\n }\n } else {\n $target.closest('ul').find('.hover').removeClass('hover');\n }\n },\n escDesktop: function (e) {\n $(e.target).closest('.dropdown__toggle').removeClass('hover');\n },\n rebuild: {\n responsive: function () {\n menu.on.hide();\n },\n original: function () {\n menu.on.hide();\n menu.$target.show();\n },\n },\n nested: function (e) {\n //e.preventDefault();\n if (menu.isMobile) {\n menu.on.showNested();\n }\n },\n listPosition: {\n start: function (direction) {\n if (!menu.nestedMenu || !direction || !menu.isMobile) return;\n let $firstNestedMenu = menu.nestedMenu.first();\n if (!$firstNestedMenu.closest('#menubar').length) return; // this function should only work inside #menubar\n\n switch (direction) {\n case 'in': {\n let $prevMenu = $firstNestedMenu.closest('.dropdown__menu, #menubar'),\n $nextMenu = $firstNestedMenu.next('.dropdown__menu');\n menu.on.listPosition.handle(\n {prev: $prevMenu, next: $nextMenu, parent: $prevMenu, sub: $nextMenu},\n 'in'\n );\n\n break;\n }\n case 'out': {\n let addDataOnly = $firstNestedMenu.hasClass('menu-header'),\n $prevMenu = $firstNestedMenu.next('.dropdown__menu'),\n $nextMenu = $firstNestedMenu.closest('.dropdown__menu, #menubar');\n menu.on.listPosition.handle(\n {prev: $prevMenu, next: $nextMenu, parent: $nextMenu, sub: $prevMenu},\n 'out',\n addDataOnly\n );\n\n break;\n }\n }\n },\n handle: function (menuElements, direction = {}, addDataOnly) {\n let timing = direction === 'in' ? 0 : menu.listPositionVars.mobileTransitionTime / 3, // 0 timing is good for in direction, looks bad for out\n timeoutTime =\n direction === 'in' && menu.listPositionVars.inTimeoutTiming\n ? menu.listPositionVars.inTimeoutTiming\n : direction === 'out' && menu.listPositionVars.outTimeoutTiming\n ? menu.listPositionVars.outTimeoutTiming\n : menu.listPositionVars.mobileTransitionTime / 3;\n\n menu.on.listPosition.addDataToElem(menuElements.prev);\n if (addDataOnly === true) return;\n\n menu.on.listPosition.handleScrollBarHide([menuElements.prev, menuElements.next]);\n\n if (menuElements.next.length) {\n let lastScrollVal = menu.on.listPosition.getLastPosition(menuElements.next);\n\n setTimeout(() => {\n menu.on.listPosition.scrollTo(\n menuElements,\n direction,\n lastScrollVal ? lastScrollVal : 0,\n timing\n );\n }, timeoutTime); // a timeout so the transition happens just before the next list enters the viewport\n }\n },\n addDataToElem: function ($elem) {\n if ($elem.length) {\n let rect = $elem.get(0).getBoundingClientRect();\n\n $elem.attr(\n 'data-last-pos',\n JSON.stringify({\n bottom: Math.floor(rect.bottom),\n scrollVal: Math.floor($elem.first().scrollTop()),\n })\n );\n }\n },\n getLastPosition: function ($elem) {\n return $elem.attr('data-last-pos') && JSON.parse($elem.attr('data-last-pos')).scrollVal;\n },\n handleScrollBarHide: function (elemsArr) {\n elemsArr.forEach($elem => {\n $elem.addClass('scrollbar-hidden');\n\n if (!$elem.attr('data-transitionend-listener-added')) {\n $elem.attr('data-transitionend-listener-added', 'true');\n $elem.on('transitionend', e => {\n $elem.removeClass('scrollbar-hidden');\n });\n }\n });\n },\n scrollTo: function (menuElements, direction, value, timing = 0) {\n let parentHeightVal =\n menu.listPositionVars.mainScrollingListHeight -\n (menuElements.parent.innerHeight() - menuElements.parent.height()), // height minus padding\n subHeightVal =\n menu.listPositionVars.mainScrollingListHeight -\n (menuElements.sub.innerHeight() - menuElements.sub.height()); // height minus padding\n\n if (UX.utils.isSafari()) {\n subHeightVal = subHeightVal - 180;\n }\n\n if (direction === 'in') {\n menuElements.parent\n .css({'max-height': parentHeightVal, height: parentHeightVal, 'overflow-y': 'hidden'})\n .attr('data-list-pos-corrected', 'true');\n menuElements.sub\n .css({'max-height': subHeightVal, height: subHeightVal, 'overflow-y': 'auto'})\n .attr('data-list-pos-corrected', 'true');\n\n menuElements.parent.length &&\n menuElements.parent.animate(\n {\n scrollTop: 0, // if we don't scroll the parent to the top, the sub will sometimes be cut off\n },\n {\n duration: Math.abs(value - menuElements.parent.scrollTop()) > 125 ? 0 : timing,\n }\n );\n\n menuElements.sub.animate(\n {\n scrollTop: value,\n },\n {\n duration: Math.abs(value - menuElements.parent.scrollTop()) > 125 ? 0 : timing,\n }\n );\n } else if (direction === 'out') {\n menuElements.parent.css({\n 'max-height': parentHeightVal,\n height: parentHeightVal,\n 'overflow-y': 'auto',\n });\n menuElements.sub\n .css({'max-height': '', height: '', 'overflow-y': ''})\n .removeAttr('data-list-pos-corrected');\n\n menuElements.parent.length &&\n menuElements.parent.animate(\n {\n scrollTop: value,\n },\n {\n duration: Math.abs(value - menuElements.parent.scrollTop()) > 125 ? 0 : timing,\n }\n );\n }\n },\n handleResize: function (e) {\n if (menu.$toggle.hasClass('js--open')) {\n menu.on.listPosition.handleHeightSet({}, {skipCheck: true});\n }\n },\n handleHeightSet: function (e = {}, options = {}) {\n if (\n (menu.$toggle.hasClass('js--open') &&\n e.elapsedTime === menu.listPositionVars.bodyTransitionElapsedTime &&\n e.propertyName === menu.listPositionVars.bodyTransitionPropertyName) ||\n options.skipCheck === true\n ) {\n // not using $window.outerHeight() because it's return value doesn't change with the resize event\n menu.listPositionVars.mainScrollingListHeight =\n window.outerHeight - menu.listPositionVars.mainScrollingList[0].getBoundingClientRect().top;\n menu.listPositionVars.mainScrollingList\n .find('[data-list-pos-corrected=\"true\"]')\n .add(menu.listPositionVars.mainScrollingList)\n .css({\n height: menu.listPositionVars.mainScrollingListHeight,\n 'max-height': menu.listPositionVars.mainScrollingListHeight,\n });\n }\n },\n reset: function () {\n menu.listPositionVars.mainScrollingList\n .find('[data-last-pos], [data-list-pos-corrected]')\n .add(menu.listPositionVars.mainScrollingList)\n .removeAttr('data-last-pos data-list-pos-corrected')\n .css({'max-height': '', height: '', 'overflow-y': ''})\n .animate(\n {\n scrollTop: 0,\n },\n 0\n );\n },\n },\n },\n check: {\n viewPort: function (index) {\n if (menu.$target.find('.drawer__nav').attr('data-ctrl-res')) {\n menu.vPort[index] = menu.$target.find('.drawer__nav').attr('data-ctrl-res');\n }\n },\n },\n };\n\n UX.menu = menu; // add to global namespace\n})();\n","import AutoComplete from '@tarekraafat/autocomplete.js';\nimport {\n ComponentObject,\n ComponentSelectors,\n ComponentElements,\n ComponentService,\n ComponentInjector,\n ComponentSelector,\n UIComponent,\n Inject,\n BrowserUtils,\n Validator\n} from '@atypon/ui-utils';\n\nclass Texts extends ComponentObject { }\n\nclass ClassList extends ComponentObject {\n autocompleteResultItem = 'autoComplete__item';\n citationSearchJournalField = 'quick-search--citation__journal-search__input';\n citationSearch = 'quick-search--citation';\n hideAutoComplete = 'hide-auto-complete';\n}\n\nclass Selectors extends ComponentSelectors {\n qsAutocomplete = new ComponentSelector('input.auto-complete');\n qsForms = new ComponentSelector('[name=\"defaultQuickSearch\"],[name=\"thisJournalQuickSearch\"], [name=\"thisBookQuickSearch\"]');\n qsDropdowns = new ComponentSelector('.tab__nav__item__link');\n qsHeaderWrapper = new ComponentSelector('.quick-qsHeaderWrapper', 'document');\n qsSeriesKey = '[name=SeriesKey]';\n qsItems = '.quick-search__search-items';\n citationSearch = '.quick-search-pane__citation';\n autocompleteSelectedResultItem = '.autoComplete__item[aria-selected=\"true\"]';\n citationSearchJournalField = new ComponentSelector('.quick-search--citation__journal-search__input')\n citationSearchDoiField = new ComponentSelector('.quick-search--citation__journal-search__input__doi')\n citationSubmit = new ComponentSelector('.citation-search__submit');\n inputGroup = '.input-group'\n journalSearchHideAutocompleteWrapper = '.quick-search--citation__journal-search'\n autoCompleteWrapper = '.autoComplete_wrapper'\n}\n\nclass Elements extends ComponentElements {\n qsForms: Array = [];\n qsDropdowns: Array = [];\n qsAutocomplete: Array = [];\n qsHeaderWrapper: HTMLElement;\n citationSubmit: HTMLElement;\n citationSearchJournalField: HTMLInputElement;\n citationSearchDoiField: HTMLInputElement;\n}\n\n\ninterface QuickSearch extends ComponentService { }\n\ninterface QuickSearchURLParams {\n hs: string;\n pts: string;\n ptgs: string;\n ptfs: string;\n ts: string;\n cs: string;\n pt: string;\n}\n\ninterface AutoCompleteOptions {\n isSelectOnly: boolean\n}\n\nclass QuickSearchElm {\n constructor(public el: HTMLInputElement, public searchType: string, public seriesKey: string) { }\n}\n\n@ComponentInjector(Selectors, Elements, ClassList, Texts)\nclass QuickSearch implements UIComponent {\n @Inject()\n protected browserUtils: BrowserUtils;\n @Inject()\n protected validator: Validator;\n\n activeDropdownJournal: string;\n autcompleteInstances: Map;\n _URLParameters: QuickSearchURLParams;\n _autoCompleteOptions: AutoCompleteOptions;\n\n protected get autoCompleteOptions(): AutoCompleteOptions {\n return this._autoCompleteOptions;\n }\n\n // On/Off Autocomplete\n protected get isAutocompleteOn(): boolean {\n return true;\n }\n\n // Submit quick search if user pressed Enter without choosing an autocomplete value\n protected get submitWithoutChoosingValue(): boolean {\n return true;\n }\n\n // Reserve the user input when changing between different journals\n protected get reserveSearchInputOnJournalChange(): boolean {\n return false;\n }\n\n protected get activeJournalForm(): HTMLElement {\n return this.domUtils.getElement(`[aria-labelledby=\"#${this.activeDropdownJournal}\"] form`, this.elements.qsHeaderWrapper)\n }\n\n protected get journalCitationInputs(): NodeListOf{\n return this.domUtils.closest(this.selectors.inputGroup, this.elements.citationSearchDoiField).querySelectorAll('input')\n }\n\n protected get URLParameters(): QuickSearchURLParams {\n return {\n hs: 'historyItemsConf',\n pts: 'publicationTitlesConf',\n ptgs: 'groupTitlesConf',\n ptfs: 'publicationItemsConf',\n ts: 'topicsConf',\n cs: 'contributorsConf',\n pt: 'publicationTypesConf'\n }\n }\n\n constructor(readonly wrapper: HTMLElement) { }\n\n initialize(): void {\n this._URLParameters = this.URLParameters;\n this.setAutoCompleteOptions();\n this.setActiveJournal();\n this.elements.initialize(this.wrapper);\n if (this.elements.qsAutocomplete.length && this.isAutocompleteOn && !this.browserUtils.isIE) {\n this.initAutocomplete();\n }\n this.addEventListeners();\n this.domUtils.getElements(this.selectors.autoCompleteWrapper).forEach((element, i) => {\n element.setAttribute('aria-label', 'Enter a text or select an option');\n })\n }\n\n /**\n * Set activeDropdownJournal to default \"Anywhere\"\n *\n */\n setActiveJournal() {\n this.activeDropdownJournal = this.domUtils.getElement(`${this.selectors.qsItems} > div`)\n ?.getAttribute('aria-labelledby')\n ?.replace(/[#]/, '');\n }\n\n setAutoCompleteOptions() {\n this._autoCompleteOptions = { isSelectOnly: false };\n }\n\n protected elementRenderer(item, data) {\n let ele;\n\n if (this.autoCompleteOptions.isSelectOnly === true) {\n ele = document.createElement('div');\n } else {\n ele = document.createElement('a');\n ele.href = data.value.url;\n }\n\n ele.className = \"autoComplete__link--grid\";\n ele.innerHTML = `${data.value.highlight}`;\n // TODO, fix the global var declaration.\n // @ts-ignore\n if (data.value.paramFormatted && config.enableAutoCompleteCategory) {\n ele.innerHTML = `${data.value.paramFormatted} ${ele.innerHTML}`;\n }\n item.setAttribute('aria-label', ele.innerText);\n item.innerHTML = '';\n item.appendChild(ele);\n }\n\n protected get defaultConfigs() {\n return {\n threshold: 2,\n debounce: 300,\n resultItem: {\n element: this.elementRenderer.bind(this),\n class: `${this.classList.autocompleteResultItem} my-2`\n },\n searchEngine: (query, record) => {\n return record.highlight || record.label;\n },\n }\n }\n\n protected getConfigs(quickSearchElm: QuickSearchElm, autoCompleteObj: AutoComplete) {\n return {\n data: {\n src: async () => {\n const url = this.buildFetchURL(quickSearchElm);\n if (url) {\n const data = await fetch(url);\n return await data.json();\n } else {\n return [];\n }\n },\n cache: false\n },\n selector: () => quickSearchElm.el,\n resultsList: this.resultListConfig(quickSearchElm),\n ...this.defaultConfigs\n }\n }\n\n protected handleAutoCompleteOptions(ele: HTMLElement) {\n // check if it's a citation field, if yes, then autoCompleteOptions.isSelectOnly should be true\n // meaning clicking on autocomplete items will just copy the text\n this.autoCompleteOptions.isSelectOnly = this.domUtils.containsClasses(ele, this.classList.citationSearchJournalField)\n }\n\n protected initAutoCompleteInstance(quickSearchElm: QuickSearchElm): AutoComplete {\n this.handleAutoCompleteOptions(quickSearchElm.el);\n let autoCompleteObj: AutoComplete = {};\n const configs = this.getConfigs(quickSearchElm, autoCompleteObj);\n autoCompleteObj = new AutoComplete(configs);\n this.domUtils.addEventListener(quickSearchElm.el, 'selection', this.onSelection.bind(this));\n return autoCompleteObj;\n }\n\n\n protected resultListConfig(quickSearchElm: QuickSearchElm) {\n return {\n maxResults: 10,\n render: true,\n idName: 'autoComplete-' + Math.ceil(Math.random() * 10000),\n class: 'autoComplete rlist',\n destination: () => this.resultListDestination(quickSearchElm)\n }\n }\n\n protected resultListDestination(quickSearchElm: QuickSearchElm) {\n if (this.domUtils.closest(this.selectors.citationSearch, quickSearchElm.el)) {\n return quickSearchElm.el.parentElement;\n }\n return quickSearchElm.el.parentElement.parentElement;\n }\n\n\n protected initAutocomplete() {\n this.autcompleteInstances = new Map();\n this.elements.qsAutocomplete.forEach((element, i) => {\n element.setAttribute('type', 'search');\n let quickSearchElm = new QuickSearchElm(element, null, null);\n\n // check if the search element is in a specific journal or anywhere and update it accordingly\n if (element.parentElement.classList.contains('option-journal')) {\n quickSearchElm.seriesKey = this.domUtils.getElement(this.selectors.qsSeriesKey, element.parentElement)?.value;\n quickSearchElm.searchType = 'journal';\n }\n\n this.autcompleteInstances.set(\n quickSearchElm,\n this.initAutoCompleteInstance(quickSearchElm)\n );\n });\n }\n\n addEventListeners(): void {\n if (this.isAutocompleteOn && !this.browserUtils.isIE) {\n this.elements.qsAutocomplete.forEach(input => {\n input.addEventListener('keydown', this.onKeyDown.bind(this, input));\n });\n }\n\n this.elements.qsForms.forEach(form => {\n form.addEventListener('submit', this.onFormSubmit.bind(this, form));\n })\n\n if (this.elements.qsDropdowns && this.elements.qsDropdowns.length > 0) {\n this.elements.qsDropdowns.forEach(item => {\n item.addEventListener('click', this.handleDropdownCollapse.bind(this, item));\n })\n }\n\n this.registerCitationSearchEvents();\n this.autocompleteAnnouncer();\n }\n\n protected autocompleteAnnouncer(): void {\n const announcerContainer = document.querySelector('.advanced-search__autocomplete__announcer');\n const autocompleteLists = document.querySelectorAll('[id^=\"autoComplete_list_\"]');\n const mutationCallback = function(mutationsList) {\n mutationsList.forEach(mutation => {\n if(mutation.target.children.length){\n announcerContainer.innerHTML = `${mutation.target.children.length} results are available, use up and down arrow keys to navigate.`\n } else {\n announcerContainer.innerHTML = `No results are available.`\n }\n });\n };\n const observer = new MutationObserver(mutationCallback);\n autocompleteLists.forEach(element => {\n observer.observe(element, { childList: true });\n });\n }\n\n\n protected onFormSubmit(form: HTMLFormElement, e: Event) {\n const inputValue = this.domUtils.getElement(this.selectors.qsAutocomplete.selector, form)?.value;\n if (inputValue === '') {\n window.location.href = '/search/advanced';\n e.preventDefault();\n } else {\n form.submit()\n }\n }\n\n protected onSelection(event: CustomEvent & { target: HTMLInputElement }) {\n if (this.autoCompleteOptions.isSelectOnly === true) {\n // set input field value to the label of the clicked autocomplete item\n event.target.value = event.detail.selection.value.label;\n } else {\n window.location.href = event.detail.selection.value.url;\n }\n }\n\n\n protected onKeyDown(input: HTMLInputElement, e: KeyboardEvent,) {\n if (e.keyCode === 13) {\n // this is necessary since the autocomplete plugin prevents default on Enter\n const submitForm = () => this.domUtils.closest('form', input).dispatchEvent(new Event('submit', { bubbles: true, cancelable: true }));\n if (this.submitWithoutChoosingValue) {\n if (this.domUtils.getElement(this.selectors.autocompleteSelectedResultItem, this.wrapper)) {\n return\n }\n return submitForm()\n } else if (input.value !== '') {\n return\n }\n submitForm()\n }\n }\n\n protected handleDropdownCollapse(item: HTMLElement, e: Event) {\n const selectedItemId = item.id;\n if (this.activeDropdownJournal === selectedItemId) {\n // prevent collapse default behavior of collapsing the menu when pressing on it again\n item.removeAttribute('data-toggle');\n setTimeout(() => {\n item.setAttribute('data-toggle', 'collapse');\n }, 0);\n } else {\n if (this.reserveSearchInputOnJournalChange) {\n if (this.activeJournalForm) {\n const input = this.domUtils.getElement(this.selectors.qsAutocomplete.selector, this.activeJournalForm);\n this.activeDropdownJournal = selectedItemId;\n input.value = input.value; // huh?\n }\n } else {\n this.activeDropdownJournal = selectedItemId;\n }\n }\n }\n\n protected registerCitationSearchEvents() {\n if (!this.domUtils.containsClasses(this.wrapper, this.classList.citationSearch)) {\n return\n }\n\n this.domUtils.addEventListener(this.elements.qsAutocomplete, 'input', this.changeSubmitButtonState.bind(this));\n\n this.domUtils.addEventListener(this.elements.citationSearchDoiField, 'input', this.changeSubmitButtonState.bind(this));\n this.domUtils.addEventListener(this.elements.citationSearchDoiField, 'input', this.onCitationSearchDoiField.bind(this));\n\n this.changeSubmitButtonState(); // initial check to enable submit button if the fields have a valid value from the JSON\n }\n\n protected onCitationSearchDoiField() {\n let ele = this.elements.citationSearchDoiField,\n hasValue = ele.value !== \"\";\n\n ele.setAttribute('name', hasValue ? ele.dataset.name : \"\"); // remove DOI field name/value from submit payload unless it has a valid value\n\n this.journalCitationInputs.forEach((input) => {\n if (\n input.getAttribute('name') === \"quickLinkDoi\" ||\n input.getAttribute('data-name') === \"quickLinkDoi\" ||\n input.getAttribute('name') === \"quickLink\"\n ) {\n return;\n }\n if (input.getAttribute('name') === \"quickLinkJournal\") {\n this.domUtils.toggleClasses(\n this.domUtils.closest(this.selectors.journalSearchHideAutocompleteWrapper, input),\n this.classList.hideAutoComplete,\n hasValue\n ) // this is to hide autocomplete suggestions, as they sometimes render after you've already written something\n // in the DOI field, and you can't hide them unless you **select journal field > click somewhere else to\n // blur it**, and you can't do this as that field is disabled\n }\n input.disabled = hasValue; // disabled all other fields if the DOI one has a valid value\n })\n }\n\n protected changeSubmitButtonState() {\n let allEmpty = true;\n\n if (\n this.validator.isNotEmpty(this.elements.citationSearchJournalField) ||\n this.validator.isNotEmpty(this.elements.citationSearchDoiField)\n ) {\n allEmpty = false;\n }\n\n // enable if at least one main field has a valid value\n if (allEmpty) {\n this.elements.citationSubmit.setAttribute('disabled', 'true');\n } else {\n this.elements.citationSubmit.removeAttribute('disabled');\n }\n }\n\n protected buildFetchURL(element: QuickSearchElm) {\n const parameters = Object.entries(this.URLParameters).reduce((acc, [key, prop]) => {\n const value = element.el.dataset[prop];\n if (value) {\n acc.push(`${key}=${value}`);\n }\n return acc;\n }, []);\n const term = element.el.value.trim().replace(/\\s\\s+/g, ' ');\n if (\n term.split(' ').length >= parseInt(element.el.dataset.autoCompleteMaxWords) ||\n term.length >= parseInt(element.el.dataset.autoCompleteMaxChars)\n ) {\n return '';\n }\n // title-auto-complete maybe should be used for citation but it hasn't been used in literatum for quite a while\n return `/action/doSuggest?target=auto-complete&query=${encodeURIComponent(term)}&${parameters.join(\n '&'\n )}&fl=PubID${element.searchType === 'journal' ? '&within=' + element.seriesKey : ''}`;\n }\n}\n\nexport default QuickSearch;\n\nexport {\n Elements as QuickSearchElements,\n Selectors as QuickSearchSelectors,\n ClassList as QuickSearchClassList,\n Texts as QuickSearchTexts,\n AutoCompleteOptions as QuickSearchAutoCompleteOptions,\n QuickSearchElm\n}","import { ComponentSelector, ComponentInjector } from '@atypon/ui-utils';\nimport CoreQuickSearch, { QuickSearchClassList, QuickSearchElements, QuickSearchSelectors, QuickSearchTexts, QuickSearchElm } from 'ui-core/widgets/quick-search/js/quick-search';\n\nclass ClassList extends QuickSearchClassList {\n}\n\nclass Selectors extends QuickSearchSelectors {\n journalSearchHideAutocompleteWrapper = '.journal-search__wrapper';\n}\n\nclass Elements extends QuickSearchElements {\n citationSubmit: HTMLElement;\n}\n\ninterface QuickSearch {\n get elements(): Elements;\n get classList(): ClassList;\n get selectors(): Selectors;\n}\n\n@ComponentInjector(Selectors, Elements, ClassList, QuickSearchTexts)\nclass QuickSearch extends CoreQuickSearch {\n\n protected resultListConfig(quickSearchElm: QuickSearchElm) {\n return { ...super.resultListConfig(quickSearchElm), position: 'afterbegin' };\n }\n}\n\n\nexport default QuickSearch;\n\nexport {\n Elements as ClassicQuickSearchElements,\n Selectors as ClassicQuickSearchSelectors,\n ClassList as ClassicQuickSearchClassList,\n}","import {\n BrowserUtils,\n ComponentElements,\n ComponentInjector,\n ComponentObject,\n ComponentSelector,\n ComponentSelectors,\n ComponentService,\n Inject,\n UIComponent\n} from '@atypon/ui-utils';\n\nclass Texts extends ComponentObject {\n}\n\nclass ClassList extends ComponentObject {\n}\n\nclass Selectors extends ComponentSelectors {\n addRangeFields = new ComponentSelector('.ip-ranges__add-range input[name=\"ipRanges\"]');\n addRangeSubmitButtons = new ComponentSelector('.ip-ranges__add-range input[type=\"submit\"]');\n updateRangesCheckboxes = new ComponentSelector('.ip-ranges__update-range tr:not(.ip-ranges__update-range__ignore-conflicts) input[type=\"checkbox\"]');\n updateRangesSubmitButtons = new ComponentSelector('.ip-ranges__update-range input[type=\"submit\"]');\n}\n\nclass Elements extends ComponentElements {\n addRangeFields: Array = [];\n addRangeSubmitButtons: Array = [];\n updateRangesCheckboxes: Array = [];\n updateRangesSubmitButtons: Array = [];\n}\n\ninterface ipRanges extends ComponentService {\n}\n\n@ComponentInjector(Selectors, Elements, ClassList, Texts)\nclass ipRanges implements UIComponent {\n @Inject()\n protected browserUtils: BrowserUtils;\n\n constructor(readonly wrapper: HTMLElement) {\n }\n\n initialize(): void {\n this.elements.initialize(this.wrapper);\n this.addEventListeners();\n }\n\n addEventListeners(): void {\n this.elements.addRangeFields.forEach((field) => {\n field.addEventListener('input', this.handleAddRangeFieldChange.bind(this, field));\n });\n this.elements.updateRangesCheckboxes.forEach(checkbox => {\n checkbox.addEventListener('change', this.handleUpdateRangeFieldChange.bind(this, checkbox));\n });\n }\n\n protected handleAddRangeFieldChange(): void {\n const anyIsEmpty = this.elements.addRangeFields.some(field => field.value.trim() === '');\n this.setSubmitButtonsDisable(this.elements.addRangeSubmitButtons, anyIsEmpty)\n }\n\n protected handleUpdateRangeFieldChange(): void {\n const anyIsChecked = this.elements.updateRangesCheckboxes.some(checkbox => checkbox.checked);\n this.setSubmitButtonsDisable(this.elements.updateRangesSubmitButtons, !anyIsChecked)\n }\n\n protected setSubmitButtonsDisable(array: Array = [], isDisabled: boolean): void {\n array.forEach(button => {\n button.disabled = isDisabled;\n })\n }\n}\n\nexport default ipRanges;\n\nexport {\n Elements as IpRangesElements,\n Selectors as IpRangesSelectors,\n ClassList as IpRangesClassList,\n Texts as IpRangesTexts,\n}","import 'ui-core/plugins/drawer/js/drawer';\n\n(function () {\n // Mostly this file was added to do fix som eIOs related issues\n var $body = $('body'); // @fixme: use document element instead of body ...\n\n var menu = (UX.menu = UX.menu || {});\n\n menu.init = function () {\n $('.main-nav').each(function (index) {\n menu.menuHeaderMainTitle = $(this).find('.menu-header').text();\n menu.$target = $(this);\n menu.check.viewPort(index);\n menu.responsive(index);\n });\n menu.items = $('.main-nav').find('a, button, input'); //$(\".header__nav a, .header__nav button, .header__nav input\");\n menu.iosControl(); // this is the only difference between this init function and the generic one (drawer.js in ux3 )\n menu.control();\n menu.additionalControl();\n };\n\n menu.iosControl = function () {\n if ($('body').hasClass('iOS')) {\n $body.on('click', '.js--open[data-toggle=\"nav\"]', function (e) {\n $(window).scrollTop(menu.offsetY); // scroll to previous scrolling point for IOs devices\n });\n\n $body.on('click', '[data-toggle=\"nav\"]', function (e) {\n menu.offsetY = $body.data('yoffset') || window.pageYOffset; // get current scrolling point for IOS devices\n $body.data('yoffset', menu.offsetY);\n });\n }\n };\n\n menu.on.hideNested = function (shouldNavigate = false) {\n var $menuHeader = $('.menu-header');\n var $parenNestedMenu;\n\n if (typeof menu.nestedMenu != 'undefined') {\n menu.on.listPosition.start('out');\n $parenNestedMenu = menu.nestedMenu.parent().parent(); // first parent list\n menu.nestedMenu = $parenNestedMenu.parent().find('.dropdown__toggle'); // first parent dropdown toggle link\n\n $parenNestedMenu.find('.sub-menu__opened').removeClass('sub-menu__opened');\n $parenNestedMenu.find('.menu-parent__opened').removeClass('menu-parent__opened');\n $parenNestedMenu.find('.prev-items').removeClass('prev-items');\n if ($parenNestedMenu.is('#menubar')) $(\"[data-toggle='nav']\").removeClass('js--nested-open'); // <-- difference between classic and core\n\n if ($parenNestedMenu.hasClass('sub-menu__opened')) {\n $menuHeader.find('span').html(menu.nestedMenu.find('span').html());\n } else {\n if (menu.redirectPath && shouldNavigate && !menu.displayedNestedItems) {\n document.location = menu.redirectPath;\n } else {\n $menuHeader.html(menu.menuHeaderMainTitle);\n menu.displayedNestedItems = false;\n }\n }\n } else {\n menu.nestedMenu = $menuHeader;\n }\n\n menu.on.hideNestedExtra();\n };\n\n menu.additionalControl = function () {\n $body.on('click', '.js--open[data-toggle=\"nav\"]', function (e) {\n e.preventDefault();\n menu.on.hide(e);\n menu.$target.attr('style', 'display: none !important');\n });\n };\n})();\n","import 'ui-core/plugins/slide/js/slide';\n(function (UX) {\n var $body = $('body');\n let _ux3lvl_slide_init, _ux3lvl_slide_onShow, _ux3lvl_slide_onHide, _ux3lvl_slide_onOff;\n var slide = UX.slide;\n\n slide.vPort = 'screen-xs';\n\n // Save original functions\n\n _ux3lvl_slide_init = slide.init;\n _ux3lvl_slide_onShow = slide.on.show;\n _ux3lvl_slide_onHide = slide.on.hide;\n _ux3lvl_slide_onOff = slide.on.off;\n\n slide.init = function () {\n _ux3lvl_slide_init.apply(this, arguments);\n slide.$back.attr('tabindex', '-1');\n };\n\n slide.on.show = function () {\n _ux3lvl_slide_onShow.apply(this, arguments);\n slide.$back.removeAttr('tabindex');\n };\n\n slide.on.hide = function () {\n _ux3lvl_slide_onHide.apply(this, arguments);\n slide.$back.attr('tabindex', '-1');\n };\n\n slide.on.off = function () {\n _ux3lvl_slide_onOff.apply(this, arguments);\n slide.$back.attr('tabindex', '-1');\n };\n\n slide.responsive = function (index) {\n $(document).on(slide.vPort[index] + '-on', function () {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n slide.off = false;\n slide.$elements.css('transform', '');\n\n $('.w-slide__btn').each(function () {\n if ($(this).data('ctrl-res') === slide.vPort[index]) {\n $(this).addClass('slide-active');\n }\n });\n });\n\n $(document).on(slide.vPort[index] + '-off', function (e) {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n slide.off = true;\n slide.on.off(e);\n slide.$elements.css('transform', '');\n\n $('.w-slide__btn').each(function () {\n if ($(this).data('ctrl-res') === slide.vPort[index]) {\n $(this).removeClass('slide-active');\n }\n });\n });\n\n $(document).on(slide.elementvPort + '-on', function (e) {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n slide.isMobile = true;\n slide.$elements.css('margin-top', 0);\n\n slide.back = true;\n if ($body.attr('data-active') === 'slide') {\n slide.on.hide(e);\n }\n });\n\n $(document).on(slide.elementvPort + '-off', function (e) {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n slide.isMobile = false;\n\n slide.back = true;\n if ($body.attr('data-active') === 'slide') {\n slide.on.hide(e);\n }\n });\n };\n})(UX);\n","\n import '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/tpf/node_modules/ui-theme/js/components/_drawer';\n \nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/tpf/node_modules/ui-theme/js/components/slide';\n \nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/tpf/node_modules/ui-core/widgets/menu/js/responsive-menu';\n \nconst main = (UX) => {\n const $menu = Array.prototype.slice.call(document.getElementsByClassName('drawer__nav')),\n $slide = Array.prototype.slice.call(document.getElementsByClassName('w-slide__btn')),\n $reponsiveMenu = Array.prototype.slice.call(document.getElementsByClassName('responsive-menu-nav'))\n\ntry {\n if ($menu.length ) {\n UX.menu.init($menu);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($slide.length ) {\n UX.slide.init($slide);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($reponsiveMenu.length ) {\n UX.reponsiveMenu.init($reponsiveMenu);\n }\n } catch (err) {\n console.error(err);\n }\n \n}\n\n export default main;\n ","\n import '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/tpf/node_modules/ui-core/utility/js/no-focusable-svg';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/tpf/node_modules/ui-core/utility/js/observe-dom';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/tpf/node_modules/ui-theme/js/utility/_sticky';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/tpf/node_modules/ui-core/plugins/cookies/js/cookies';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/tpf/node_modules/ui-core/basic/lists/js/list';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/tpf/node_modules/ui-core/components/alert-popup/js/alert-popup';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/tpf/node_modules/ui-theme/js/components/_modal';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/tpf/node_modules/ui-core/components/accordion/js/accordion';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/tpf/node_modules/ui-theme/js/components/transplant';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/tpf/node_modules/ui-core/components/drop-block/js/drop-block';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/tpf/node_modules/ui-core/components/back-to-top/js/back-to-top';\n\nimport QuickSearch from '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/tpf/node_modules/ui-theme/js/widgets/_quick-search';\nimport ipRanges from '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/tpf/node_modules/ui-core/widgets/ip-ranges/js/ip-ranges';\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/tpf/node_modules/ui-core/widgets/ad-placeholder/js/ad-placeholder';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/tpf/node_modules/ui-core/widgets/multi-search/js/multi-search';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/tpf/node_modules/ui-core/widgets/raa/js/raa';\n\nimport mobileMenuMain from './groups/_mobile-menu';\nconst main = (UX) => {\n const $list = Array.prototype.slice.call(document.getElementsByClassName('expandable-list')),\n $alertPopup = Array.prototype.slice.call(document.getElementsByClassName('ux-alert-container')),\n $modal = Array.prototype.slice.call(document.getElementsByClassName('modal')),\n $accordion = Array.prototype.slice.call(document.getElementsByClassName('accordion')),\n $transplant = Array.prototype.slice.call(document.querySelectorAll('[data-toggle=\"transplant\"]')),\n $dropBlock = Array.prototype.slice.call(document.querySelectorAll('[data-db-target-for]')),\n $backToTop = Array.prototype.slice.call(document.getElementsByClassName('back-to-top')),\n $quickSearch = Array.prototype.slice.call(document.getElementsByClassName('quick-search')),\n $ipRanges = document.querySelector('.ipRangesWidget'),\n $adplaceholder = Array.prototype.slice.call(document.getElementsByClassName('js__toggleAdForm')),\n $multiSearch = Array.prototype.slice.call(document.getElementsByClassName('multi-search'))\n\ntry {\n UX.noFocusableSVG.init();\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($list.length ) {\n UX.list.init($list);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($alertPopup.length ) {\n UX.alertPopup.init($alertPopup);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($modal.length ) {\n UX.modal.init($modal);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($accordion.length ) {\n UX.accordion.init($accordion);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($transplant.length ) {\n UX.transplant.init($transplant);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($dropBlock.length ) {\n UX.dropBlock.init($dropBlock);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($backToTop.length ) {\n UX.backToTop.init($backToTop);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($quickSearch.length ) {\n UX.quickSearch = $quickSearch\n .map(item=>new QuickSearch(item).initialize())\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($ipRanges ) {\n UX.ipRanges = new ipRanges($ipRanges).initialize()\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($adplaceholder.length ) {\n UX.adplaceholder.init($adplaceholder);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($multiSearch.length ) {\n UX.multiSearch.init($multiSearch);\n }\n } catch (err) {\n console.error(err);\n }\n \nmobileMenuMain(UX);\n\n}\n\n export default main;\n ","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;"],"sourceRoot":""}