{"version":3,"sources":["webpack:///./pericles/widgets/table-of-content/js/table-of-content.js","webpack:///./pericles/plugins/stickyElements/js/stickyElements.js","webpack:///./pericles/components/go-to-section/js/goToSection.ts","webpack:///./pericles/components/drop-block/js/drop-block.js","webpack:///./pericles/components/citation/js/citation.js","webpack:///./pericles/components/erp-acceptance/js/erp-acceptance.js","webpack:///./pericles/components/accordion/js/accordion.js","webpack:///./pericles/components/login-form/js/login-form.js","webpack:///./pericles/widgets/raa/widgets/registration/js/registration.js","webpack:///./pericles/widgets/quick-search/js/quick-search.js","webpack:///./pericles/widgets/quick-search/js/quick-search-core.js","webpack:///./pericles/widgets/additional-citation-info/js/additional-citation-info.js","webpack:///./pericles/widgets/multi-search/js/multi-search.js","webpack:///./pericles/widgets/raa/widgets/shibboleth/js/shibboleth.js","webpack:///./pericles/widgets/raa/widgets/addresses/js/addresses.js","webpack:///./pericles/widgets/raa/js/profile.js","webpack:///./pericles/plugins/slide/js/slide.js","webpack:///./pericles/plugins/sticko/js/sticko.js","webpack:///./pericles/components/coolbar/js/coolbar.js","webpack:///./pericles/components/coolbar/js/setStickeyTop.js","webpack:///./pericles/widgets/ad-placeholder/js/ad-placeholder.js","webpack:///./pericles/plugins/mathjax/js/mathjax.ts"],"names":["TableOfContent","_createClass","_classCallCheck","classList","hidden","selectors","menuBookTab","authorBio","bookReviews","abstractPreviewZoom","abstractLastFocus","readCubeSharing","shareCtrl","shareAccessCtrl","dropBlockHolder","tocAbstractPreview","elements","checkMenuItem","id","document","querySelector","concat","targetEl","UX","utils","convertToArray","querySelectorAll","length","forEach","item","parentElement","removeChild","this","setElements","eventListeners","onReady","onLoad","key","value","fancybox","addEventListener","fancyboxClose","click","parentEl","remove","add","setAttribute","changeImageWidthOnLoad","fallbackImageViewer","observer","target","stickyElements","test","isIE","MutationObserver","mutations","mutationRecord","$","css","observe","attributes","attributeFilter","notePopup","content","Configs","accordionControl","jsOpen","citedByArticleSection","supportInfo","supportInfoControl","openResearch","openResearchControl","links","wrapper","isTablet","initialize","addEventListeners","isTabletOn","isTabletOff","domUtils","e","flowControl","escapeKeyHandler","type","keyCode","RETURN","element","currentTarget","contains","closest","preventDefault","stopPropagation","getElements","openFootNote","window","getElement","getAttribute","focus","indexOf","scrollToTarget","dropBlock","on","hide","event","removeAttribute","refID","getElementById","hash","slice","clickTarget","citedBySection","scrollIntoView","behavior","block","setTimeout","tagName","redirectToExternalLink","location","assign","href","noteLink","note","createFootNote","noteContainer","chevronDown","noteClose","parentTable","isNodeInsideNode","HTMLElement","appendChild","body","noteHeight","offsetHeight","topOffset","leftOffset","leftOffsetToTheParent","parentWidth","parentHeight","offsetTop","offsetLeft","offsetWidth","getBoundingClientRect","top","documentElement","scrollTop","left","style","createElement","noteID","controllerId","popupId","substring","noteContent","innerHTML","configs","node","parentNode","GoToSection","Selectors","Elements","ClassList","Texts","setFocus","additionalOnShow","isSafari","navigator","userAgent","toLowerCase","$target","isMobile","attr","additionalOnHide","removeAttr","Citation","_this","authorName","authorInfo","authorJsOpen","authorsNames","authorsInfos","variables","viewPortWidth","isDesktop","init","innerWidth","checkIfDesktop","checkAuthorInfo","_this$elements$author","author","_author$parentElement","popup","authorHeight","x","ERPAcceptance","ERPForm","submitBtn","checkBoxTandC","checkboxContainer","errorContainer","errorMsg","control","search","split","redirectUriValue","findGetParameter","cancelHrefValue","submit","lastElementChild","checkbox","textContent","patt","uri","exec","accordion","hideDropBlock","additionalControls","toggle","single","citedByEl","citedBySource","dataset","source","getCitedByContent","toolTipInterval","sciteMetricsDropzone","citedByContentInner","setInterval","toolTipChecker","tooltip","clearInterval","fetch","then","response","text","data","once","$content","parents","find","ajaxData","hasClass","addClass","html","ajax","success","code","tabbed","loader","stopImmediatePropagation","$this","$accordionContent","parent","next","$wrapper","state","contentTarget","stop","slideToggle","height","isStickyBody","toggleClass","checkExpandAll","LoginForm","loginForm","messageError","inputGroupErrror","membership","userNameInput","loginInitiate","individualUser","individualAccordion","checkErrors","loginSuccess","_this$elements$indivi","_this$elements$loginF","_this$elements$loginF2","_this$elements$loginI","button","localStorage","setItem","_this$elements$messag","_this$elements$userNa","message","replaceAll","trim","adobeDataLayer","adobeDigitalData","loginEvents","error","getItem","removeItem","Registration","errMsg","registrationSubmitted","registrationCompleted","navigationEntries","performance","getEntriesByType","errMsgsHandler","errMsgsArr","_errMsg$closest","_errMsg$textContent","firstPartOfTheMsg","lastPartOfTheMsg","msg","push","toString","screenReaderSpeak","registrationEvents","RegistrationEvents","submitted","completed","$qSearch","$form","$allFieldInput","$sortByInput","$quickSearch","$qsW","actualQuickSearchInputEl","homePgaeActualQSInputEl","searchTypeDropdownEl","quickSearch","vPort","additionalController","handleQSAutocompleteA11Y","highlight","addTransition","open","siblings","slideDown","close","is","removeClass","submitCitationForm","which","activeElement","blur","setPosition","val","_actualQuickSearchInp","_actualQuickSearchInp2","screenWidth","quickSearchItem","isQuickSearchItemActive","isQuickSearchOpen","grid","screenLg","removeTransition","screenSm","removeUrlParam","ready","getUrlParameter","$tabContent","trigger","each","reload","thisHref","targetInputVal","isCitation","newHref","replace","quickSearchRouter","quickSearchFormContainer","searchWithinEl","searchWithinOption","optionValue","itemTarget","itemHref","host","seriesKey","includes","citationSearchContainer","citation","page","number","ariaRequiredSwitcher","current","other","name","isElementEmptyOrSpaces","$el","position","slideUp","width","outerWidth","$elem","mainWrapper","form","citationSearchWrapper","formAlertList","errorMsgText","inputs","journalHidden","journal","year","volume","issue","singleInputAlert","el","elFormAlert","elFormLabelText","formErrorMessage","show","errorMsgEl","insertAdjacentHTML","loading","loadingEL","clearInputAlert","baseURL","origin","urlParams","counter","_inputs$item","separator","json","link","server","default","doSuggest","_ms$input$","$citationJournal","maxWords","maxChars","preVal","preLabel","disabledFields","ms","magicSuggest","input","$msInput","setSelection","label","$triggerParent","getValue","collapse","expand","getSelection","$element","method","selectFirst","valueField","autoSelect","allowFreeEntries","displayField","cls","hideTrigger","placeholder","maxSuggestions","maxSelection","maxSelectionRenderer","beforeSend","xhr","settings","enteredTerm","url","substr","_actualQuickSearchInp3","_searchTypeDropdownEl","_actualQuickSearchInp4","_searchTypeDropdownEl2","_suggestionList","_suggestionList2","QSInput","suggestionList","suggestions","selectedIndex","updateFocus","suggestion","index","display","keyCodes","DOWN","UP","ENTER","_suggestions$selected","_suggestions$selected2","ESCAPE","autoCompeteSearchUrl","suggestedData","inputElem","confNumOfContributors","confNumOfHistoryItems","confNumOfPublicationTitles","confNumOfTopics","selectedOption","controller","searchType","citationSuggestions","journalSearchSuggestions","searchSuggistions","empty","sug","citationContentEl","mjxContainer","mutationObserver","childList","subtree","multiSearch","resizeImages","hideMoreLinks","imageResize","abstractPreviewImg","$multiSearch","$multiSearchList","$multiSearchEmpty","$multiSearchNoResult","$moreLinks","prev","Shibboleth","active","updateInstitutionEntity","contentLoadedEL","institutions","institution","federationSelect","federationSelectContent","federationSelectContentLi","federationAlert","selectChangeHandlers","selectedLi","selectedLiContent","currentLi","redirectUri","indexTarget","showLoading","encodeURIComponent","createInstitutionsList","hideLoading","updateEntityData","JSON","parse","updateentity","linkData","SeamlessAccessService","updateEntity","res","undefined","err","console","log","items","i","itemData","entityData","entityID","entityId","title","entityDataStr","stringify","parameterName","result","tmp","sction","$formButtons","$captchaWrapper","$infoBoxError","addressState","$mailingListToggle","$mailingListWrapper","prop","showErrorBox","errorLabels","errorDetailsContainer","errorList","errorMessage","innerText","errorFieldID","nextElementSibling","errorDetails","append","errorFocusController","_document$getElementB","formContainer","addressErrorFields","recaptchaCheckbox","clearFormBtn","submitFormBtn","formFields","focusController","exitTrapFlag","field","errorLabel","previousElementSibling","lastErrorItem","handleTabKey","_addressErrorFields$n","nextElement","findIndex","shiftKey","removeEventListener","load","addressAccordion","addressEl","$entitlements","section","outerHTML","change","paginate","$container","$table","$tr","pager","prevPage","currentPage","parseInt","$pages","$pager","infoBox","slide","destroyJcf","rebuildJcf","$body","isInsideSlide","closingEvent","Event","isDefaultPrevented","back","$slideinfo","nested","activeSlide","$contents","$elements","children","originalTarget","isLoi","beforeReturnSlideContent","$dropBlockHolder","loi","recalculate","clone","multi","$returnNestedDataSlideHere","after","$returnDataSlideHere","oldInfo","splice","_hideSlide","$coolBar","backLabel","setBackLabel","additionalHide","off","googletag","pubads","refresh","closeEvent","displaySlideHtmlToPage","$slide","$main","isQueue","$toggle","isArticleTabEmpty","eq","additionalShowSlide","scrollTabAttr","tapTargetEl","tab","slideContent","animate","scroll","sticko","get","fixedpageElementsHeight","elementsHeight","outerHeight","set","originalHeight","offsetBottom","pageYOffset","footerHeight","fixedArea","styles","newHeight","apply","$child","hHeight","isArticleAccordion","dynamicStickyElement","dynamicScrollTop","dynamicHeight","dynamicChildHeight","offset","coolbar","sections","holder","coolbarElement","headerHeight","isStickyBar","lock","eventPage","fill","addtionalControls","check","eventSection","ul","appendTo","li","sectionId","setStickeyTop","stickybarElement","topPostition","sticky","ads","right","stickyAdElement","pageHeaderHeight","pagesNavHeight","$pagesNav","topPosition","publicDir","config","chtml","mathmlSpacing","scale","options","enableEnrichment","a11y","speech","braille","menuOptions","assistiveMml","collapsible","explorer","startupConfig","searchResult","head","mathJaxSrc","mathJaxConfig","mathJaxStartup","versionFlag","lazyLoadFlag","enableFlag","initilize","opera","defer","src","fontURL"],"mappings":"iKACqBA,G,OAAc,WA+B9B,OAAAC,KALD,SAAAD,iBAAcE,IAAA,KAAAF,gBAAA,KAzBdG,UAAY,CACRC,OAAQ,UACX,KAEDC,UAAY,CACRC,YAAa,iBACbC,UAAW,aACXC,YAAa,eACbC,oBAAqB,0BACrBC,kBAAmB,mBACnBC,gBAAiB,oBACjBC,UAAW,eACXC,gBAAiB,sBACjBC,gBAAiB,qBACjBC,mBAAoB,uCACvB,KAEDC,SAAW,CACPV,YAAa,KACbG,oBAAqB,KACrBE,gBAAiB,KACjBC,UAAW,KACXG,mBAAoB,MACvB,KAwDDE,cAAgB,SAAAC,GAEZ,IADeC,SAASC,cAAc,GAADC,OAAIH,EAAE,UAC9B,CACT,IAAMI,EAAWC,GAAGC,MAAMC,eAAeN,SAASO,iBAAiBR,IAC/DI,EAASK,QACTL,EAASM,SAAQ,SAAAC,IACIA,aAAI,EAAJA,EAAMC,eACdC,YAAYF,QA5DjCG,KAAKC,cACLD,KAAKE,iBACLF,KAAKG,UACLH,KAAKI,WACR,EAAAC,IAAA,cAAAC,MAED,SAAAL,cACID,KAAKhB,SAASV,YAAca,SAASC,cAAcY,KAAK3B,UAAUC,aAClE0B,KAAKhB,SAASP,oBAAsBc,GAAGC,MAAMC,eACzCN,SAASO,iBAAiBM,KAAK3B,UAAUI,sBAE7CuB,KAAKhB,SAASL,gBAAkBQ,SAASC,cAAcY,KAAK3B,UAAUM,iBACtEqB,KAAKhB,SAASJ,UAAYO,SAASC,cAAcY,KAAK3B,UAAUO,WAChEoB,KAAKhB,SAASD,mBAAqBQ,GAAGC,MAAMC,eACxCN,SAASO,iBAAiBM,KAAK3B,UAAUU,uBAEhD,CAAAsB,IAAA,iBAAAC,MAED,SAAAJ,iBAEQX,GAAGgB,WACHhB,GAAGgB,SAASP,KAAKhB,SAASP,qBAC1BU,SAASqB,iBAAiB,UAAWjB,GAAGkB,kBAE/C,CAAAJ,IAAA,UAAAC,MAED,SAAAH,WACIH,KAAKf,cAAce,KAAK3B,UAAUE,WAClCyB,KAAKf,cAAce,KAAK3B,UAAUG,aAE9BwB,KAAKhB,SAASV,cACe0B,KAAKhB,SAASV,YAAYc,cAAc,oBAChDsB,QAGzB,GAAIV,KAAKhB,SAASL,iBAAmBqB,KAAKhB,SAASJ,UAAW,CAC1D,IAAM+B,EAAWX,KAAKhB,SAASJ,UAAUkB,cACrCjB,EAAkB8B,aAAQ,EAARA,EAAUvB,cAAcY,KAAK3B,UAAUQ,iBACzDC,EAAkB6B,aAAQ,EAARA,EAAUvB,cAAcY,KAAK3B,UAAUS,iBAE7DkB,KAAKhB,SAASJ,UAAUT,UAAUyC,OAAOZ,KAAK7B,UAAUyC,QACxD/B,WAAiBV,UAAU0C,IAAIb,KAAK7B,UAAUyC,QAC9C9B,WAAiBgC,aAAa,kBAAmB,kBAExD,CAAAT,IAAA,SAAAC,MAED,SAAAF,SACQJ,KAAKhB,SAASD,mBAAmBY,QACjCJ,GAAGC,MAAMuB,uBAAuBf,KAAK3B,UAAUU,mBAAoB,MAEvEQ,GAAGC,MAAMwB,0BA7EkB,K,iCCDnC,QAEA,SAAWzB,GACP,IAAI0B,EAAW,KACXC,EAAS,KAEb3B,EAAG4B,eAAe9C,UAAkB,OAAI,cAEpCkB,EAAG6B,KAAKC,SACRJ,EAAW,IAAIK,kBAAiB,SAAUC,GACtCA,EAAU3B,SAAQ,SAAU4B,GACyB,aAA7CC,EAAED,EAAeN,QAAQQ,IAAI,aAC7BD,EAAED,EAAeN,QAAQQ,IAAI,MAAO,YAKhDR,EAAS/B,SAASC,cAAc,wBAG5B6B,EAASU,QAAQT,EAAQ,CAACU,YAAY,EAAMC,gBAAiB,CAAC,YAlB1E,CAqBGtC,K,y8BCDH,iCAQA,OAPI,kBAAAuC,UAAA,SAAUC,GACN,MAAO,wLAGoCA,EAAO,6DALpDC,QAAO,YADZ,eACKA,SAAN,GAUA,+B,+CAAsC,OAAlB,WAAkB,MAAtC,CAAoB,KAEpB,iF,OACI,EAAAC,iBAAmB,sBACnB,EAAAC,OAAS,WACT,EAAAC,sBAAwB,4B,EAC5B,OAJwB,eAIxB,UAJA,CAAwB,KAMxB,iF,OACI,EAAAC,YAAc,IAAI,IAAkB,0CAA2C,YAC/E,EAAAC,mBAAqB,IAAI,IAAkB,oDAAqD,YAChG,EAAAC,aAAe,IAAI,IAAkB,oCAAqC,YAC1E,EAAAC,oBAAsB,IAAI,IAAkB,uDAAwD,YACpG,EAAAC,MAAQ,IAAI,IAAkB,+LAAgM,Y,EAElO,OAPwB,eAOxB,UAPA,CAAwB,KASxB,gF,OAKI,EAAAA,MAAuB,G,EAC3B,OANuB,cAMvB,SANA,CAAuB,KAavB,aAWI,qBAAqBC,GAAA,KAAAA,UAHrB,KAAAC,UAAW,EA0Nf,OArNI,sBAAAC,WAAA,WACI3C,KAAKhB,SAAS2D,WAAW3C,KAAKyC,SAC9BzC,KAAK4C,qBAGT,sBAAAC,WAAA,WACI7C,KAAK0C,UAAW,GAGpB,sBAAAI,YAAA,WACI9C,KAAK0C,UAAW,GAGpB,sBAAAE,kBAAA,sBACI5C,KAAK+C,SAASvC,iBAAiBR,KAAKhB,SAASoD,YAAa,SAAS,WAAM,SAAKpD,SAASqD,mBAAmB3B,WAE1GV,KAAK+C,SAASvC,iBAAiBR,KAAKhB,SAASsD,aAAc,SAAS,WAAM,SAAKtD,SAASuD,oBAAoB7B,WAE5GV,KAAK+C,SAASvC,iBAAiBR,KAAKhB,SAASwD,MAAO,SAAS,SAACQ,GAAM,SAAKC,YAAYD,MAErFhD,KAAK+C,SAASvC,iBAAiBR,KAAKhB,SAASwD,MAAO,WAAW,SAACQ,GAAM,SAAKC,YAAYD,MAEvFhD,KAAK+C,SAASvC,iBAAiBrB,SAAU,WAAW,SAAC6D,GAAqB,SAAKE,iBAAiBF,OAGpG,sBAAAC,YAAA,SAAYD,GAAZ,WAEI,GAAc,YAAXA,EAAEG,MAAsBH,EAAEI,UAAY,IAASC,OAAlD,CAEA,IAAMC,EAAUN,EAAEO,cAGdD,EAAQnF,UAAUqF,SAAS,qBAC3BF,EAAQnF,UAAUqF,SAAS,YAC3BF,EAAQnF,UAAUqF,SAAS,aAC3BF,EAAQG,QAAQ,wBAChBH,EAAQG,QAAQ,0BAKhBT,EAAEU,iBACFV,EAAEW,kBACF3D,KAAK+C,SAASa,YAAY,eAAehE,SAAQ,SAAAoD,GAAK,OAAAA,EAAE7E,UAAUyC,OAAO,kBAErE0C,EAAQnF,UAAUqF,SAAS,aAC3BxD,KAAK6D,aAAaP,GAClBQ,OAAOtD,iBAAiB,UAAU,WAC9B,EAAKqD,aAAaP,OAEfA,EAAQnF,UAAUqF,SAAS,cAClCxD,KAAK+C,SAASgB,WAAWT,EAAQU,aAAa,SAASC,QAEvDX,EAAQnF,UAAUqF,SAAS,aAC3BF,EAAQG,QAAQ,0CAChBH,EAAQU,aAAa,QAAQE,QAAQ,wBAA0B,GAE/DlE,KAAKmE,eAAeb,GAAS,GAC7BtD,KAAK+C,SAASgB,WAAWT,EAAQU,aAAa,SAASC,UAEvDjE,KAAKmE,eAAeb,GAAS,GAC5BQ,OAAevE,GAAG6E,UAAUC,GAAGC,OAC5BtE,KAAK0C,WACL1C,KAAK+C,SAASgB,WAAW,gCAAgCrD,QACzDV,KAAK+C,SAASgB,WAAW,kBAAkBrD,UAI/C4C,EAAQG,QAAQ,6BACfK,OAAevE,GAAG6E,UAAUC,GAAGC,UAK5C,sBAAApB,iBAAA,SAAiBqB,G,UACK,WAAdA,EAAMlE,MAC8C,QAApD,EAAAL,KAAK+C,SAASgB,WAAW,mCAA2B,SAAEjD,aAAa,gBAAiB,SAChC,QAApD,EAAAd,KAAK+C,SAASgB,WAAW,mCAA2B,SAAES,gBAAgB,iBAC5B,QAA1C,EAAAxE,KAAK+C,SAASgB,WAAW,yBAAiB,SAAEnD,WAIpD,sBAAAuD,eAAA,SAAeb,EAA4BmB,GACvC,IAAIvD,EAASuD,EAAQzE,KAAK+C,SAAS2B,eAAepB,EAAQqB,KAAKC,MAAM,IAAMtB,EAErEuB,EAAc3D,OADpBA,EAASA,GAAkBlB,KAAK+C,SAASgB,WAAW,UAAYT,EAAQqB,KAAKC,MAAM,GAAK,YAC9D,EAAN1D,EAAQuC,QAAQzD,KAAK7B,UAAU8D,kBACnD,GAAI4C,IAAe3D,aAAM,EAANA,EAAQuC,QAAQzD,KAAK7B,UAAUgE,wBAAwB,CACtE,IAAM2C,EAAiB5D,aAAM,EAANA,EAAQuC,QAAQzD,KAAK7B,UAAUgE,uBAClDF,EAAmBjC,KAAK+C,SAASgB,WAAW/D,KAAK7B,UAAU8D,iBAAkB6C,GAE5E7C,EAAiB9D,UAAUqF,SAASxD,KAAK7B,UAAU+D,SACpDD,EAAiBvB,aAGrBmE,IACCA,EAAY1G,UAAUqF,SAASxD,KAAK7B,UAAU+D,SAE/C2C,EAAYnE,QAGZQ,GAEAA,EAAO6D,eAAe,CAAEC,SAAU,SAAUC,MAAO,UACnD/D,EAAOJ,aAAa,WAAY,KAChCoE,YAAW,WACPhE,EAAO+C,UACR,KAEoB,MAAnB/C,EAAOiE,SAAsC,WAAnBjE,EAAOiE,SACjCjE,EAAOJ,aAAa,WAAY,OAIpCd,KAAKoF,uBAAuB9B,IAIpC,sBAAA8B,uBAAA,SAAuB9B,GACnBQ,OAAOuB,SAASC,OAAOhC,EAAQiC,OAGnC,sBAAA1B,aAAA,SAAa2B,GACTxF,KAAK+C,SAASa,YAAY,kBAAkBhE,SAAQ,SAAA6F,GAAQ,OAAAA,EAAK7E,YAEjEZ,KAAK+C,SAASa,YAAY,4BAA4BhE,SAAQ,SAAA6F,GAAQ,OAAAA,EAAK3E,aAAa,gBAAiB,YAEnG,MAA4Cd,KAAK0F,eAAeF,GAA9DG,EAAa,gBAAEC,EAAW,cAAEC,EAAS,YACzCC,EAAc9F,KAAK+F,iBAAiBP,EAAU,SAC9CM,aAAuBE,YACvBF,EAAYG,YAAYN,GAExBxG,SAAS+G,KAAKD,YAAYN,GAG9B,IAAIQ,EAAaR,EAAcS,aAC3BC,EAAY,EACZC,EAAa,EACbC,EAAwB,EACxBC,EAAc,EACdC,EAAe,EAEfX,aAAuBE,aACvBK,EAAYb,EAASkB,UACrBJ,EAAad,EAASmB,WACtBJ,EAAwBf,EAASmB,WAAab,EAAYa,WAC1DH,EAAcV,EAAYc,YAC1BH,EAAeX,EAAYM,aAC3BT,EAAcxH,UAAU0C,IAAI,iBAE5BwF,EAAYb,EAASqB,wBAAwBC,IAAM3H,SAAS4H,gBAAgBC,UAC5EV,EAAad,EAASqB,wBAAwBI,KAC9CV,EAAwBf,EAASmB,WACjCH,EAAchB,EAAS1F,cAAc8G,aAGrC5G,KAAK+F,iBAAiBP,EAAU,UAChCI,EAAYzH,UAAU0C,IAAI,WAC1B8E,EAAcuB,MAAMJ,IAAST,EAAY,GAAE,KAC3CV,EAAcxH,UAAU0C,IAAI,eAE5B8E,EAAcuB,MAAMJ,IAAST,EAAYF,EAAa,EAAC,KAIvDK,EAAc,EAAID,GAClBZ,EAAcuB,MAAMD,KAAUX,EAAa,EAAC,KAC5CV,EAAYzH,UAAU0C,IAAI,UAE1B8E,EAAcuB,MAAMD,KAAUX,EAAaX,EAAciB,YAAc,GAAE,KACzEhB,EAAYzH,UAAU0C,IAAI,UAI1B4F,EAAe,EAAIJ,IACnBT,EAAYzH,UAAU0C,IAAI,WAC1B8E,EAAcuB,MAAMJ,IAAST,EAAY,GAAE,MAG/CR,EAAUrF,iBAAiB,SAAS,WAChCgF,EAAS1E,aAAa,gBAAiB,SACvC0E,EAAShB,gBAAgB,iBACzBmB,EAAc/E,aAItB,sBAAA8E,eAAA,SAAeF,GACX,IAAMG,EAA6BxG,SAASgI,cAAc,OAC1DxB,EAAcxH,UAAU0C,IAAI,iBAE5B,IAAMuG,EAAS5B,EAASxB,aAAa,eACjCqD,EAAe7B,EAASxB,aAAa,MACrCsD,EAAU9B,EAASxB,aAAa,QAAQuD,UAAU,GAClDC,EAAcrI,SAASC,cAAc,MAAMgI,GAAUK,UAWzD,OATA9B,EAAc8B,UAAYzH,KAAK0H,QAAQ5F,UAAU0F,GACjDhC,EAAS1E,aAAa,gBAAiB,QACvC0E,EAAS1E,aAAa,gBAAiBwG,GACvC3B,EAAc7E,aAAa,KAAMwG,GACjC3B,EAAc7E,aAAa,kBAAmBuG,GAKvC,CAAE1B,cAAa,EAAEC,YAHJ5F,KAAK+C,SAASgB,WAAW,eAAgB4B,GAGxBE,UAFrB7F,KAAK+C,SAASgB,WAAW,iBAAkB4B,KAO/D,sBAAAI,iBAAA,SAAiB4B,EAAmBC,GAChC,OAAID,EAAKxC,UAAYyC,EAAmBD,EACjCA,EAAKC,aAAezI,SAAS+G,MAAQlG,KAAK+F,iBAAiB4B,EAAKC,WAA2BA,IA3NtG,YADC,c,yBACkB5F,I,wCAInB,YADC,YAAc,M,2EAPb6F,YAAW,YADhB,YAAkBC,EAAWC,EAAUC,EAAWC,G,gCAYjBjC,eAX5B6B,aAAN,GAoOe,O,iCClSf,WAEMzD,EAAY7E,GAAG6E,UAErBA,EAAU8D,SAAW,aAErB9D,EAAU+D,iBAAmB,WACzB,IACIC,GAA4C,IAD9BC,UAAUC,UAAUC,cACbrE,QAAQ,UAE7BE,EAAUoE,UAAYJ,IACrB7I,GAAG6E,UAAUqE,UAAYrE,EAAUoE,QAAQE,KAAK,WAAY,OAIrEtE,EAAUuE,iBAAmB,WACrBvE,EAAUoE,UACTjJ,GAAG6E,UAAUqE,UAAYrE,EAAUoE,QAAQI,WAAW,c,uGCjB1CC,EAAQ,WAqBxB,OAAA5K,KAHD,SAAA4K,WAAc,IAAAC,EAAA,KAAA5K,IAAA,KAAA2K,UAAA,KAjBdxK,UAAY,CACR0K,WAAY,eACZC,WAAY,eACZC,aAAc,mDACjB,KAEDjK,SAAW,CACPkK,aAAc,KACdC,aAAc,KACdF,aAAc,MACjB,KAEDG,UAAY,CACRC,cAAe,EACfC,WAAW,GACd,KAiBDC,KAAO,WACHT,EAAKM,UAAUC,cAAgBvF,OAAO0F,WAEtCV,EAAK7I,cACL6I,EAAKW,iBACLX,EAAKY,mBACR,KAQDA,gBAAkB,WAIiB,IAAAC,GAF/Bb,EAAK9J,SAASiK,cAAgBH,EAAK9J,SAASiK,aAAavI,QAEpDoI,EAAKM,UAAUE,aACU,QAA1BK,EAAAb,EAAK9J,SAASkK,oBAAY,IAAAS,GAA1BA,EAA4B/J,SAAQ,SAAAgK,GAChCA,EAAOpJ,iBAAiB,SAAS,SAAAwC,GAAK,IAAA6G,EAC9BC,EAAQF,SAAqB,QAAfC,EAAND,EAAQ9J,qBAAa,IAAA+J,OAAf,EAANA,EAAuBzK,cAAc,gBAC7C2K,EAAeH,EAAOlD,UAAYkD,EAAOxD,aAAe,EAE5D0D,WAAOhJ,aAAa,QAAS,QAAFzB,OAAU0K,EAAY,OAE7C/G,EAAEgH,EAAIlB,EAAKM,UAAUC,cAAgB,IACrCS,WAAO3L,UAAU0C,IAAI,sBAzCrCb,KAAKuJ,OACLvJ,KAAKE,mBACR,EAAAG,IAAA,cAAAC,MAED,SAAAL,cACID,KAAKhB,SAASmK,aAAehK,SAASO,iBAAiBM,KAAK3B,UAAU2K,YACtEhJ,KAAKhB,SAASkK,aAAe/J,SAASO,iBAAiBM,KAAK3B,UAAU0K,YACtE/I,KAAKhB,SAASiK,aAAe9J,SAASC,cAAcY,KAAK3B,UAAU4K,gBACtE,CAAA5I,IAAA,iBAAAC,MAED,SAAAJ,iBACI4D,OAAOtD,iBAAiB,SAAUR,KAAKuJ,QAC1C,CAAAlJ,IAAA,iBAAAC,MAUD,SAAAmJ,iBACQzJ,KAAKoJ,UAAUC,eAAiB,MAChCrJ,KAAKoJ,UAAUE,WAAY,OA3CV,I,kBCA7B,IACQW,IAAgB,CAChBC,QAAS/K,SAASC,cAAc,wBAChC+K,UAAWhL,SAASC,cAAc,iCAClCgL,cAAejL,SAASO,iBAAiB,8BACzC2K,kBAAmBlL,SAASC,cAAc,sCAC1CkL,eAAgBnL,SAASC,cAAc,2CACvCmL,SAAUpL,SAASgI,cAAc,KAEjCoC,KAAM,SAANA,OACIU,EAAcO,WAElBA,QAAS,SAATA,UACI,GAAI1G,OAAOuB,SAASoF,OAAOC,MAAM,gBAAgB/K,OAAS,EAAG,CACzD,IAAIgL,EAAmBV,EAAcW,mBACjCC,EAAkB,gCAAkCF,EACxDxL,SACKC,cAAc,6CACd0B,aAAa,QAAS6J,GAC3BxL,SAASuF,eAAe,eAAe5D,aAAa,OAAQ+J,GAGhEZ,EAAcE,UAAU3J,iBAAiB,SAAS,SAAAwC,GAC9CA,EAAEU,iBACFuG,EAAc5F,GAAGyG,YAGrBb,EAAcG,cAAcxK,SAAQ,SAAA0D,GAChCA,EAAQ9C,iBAAiB,UAAU,SAAAwC,GAC/B,IAAMqH,EAAoBrH,EAAE9B,OAAO0G,WAC7B0C,EAAiBD,EAAkBjL,cAAc,QACvDiL,EAAkBlM,UAAUyC,OAAO,SACnC0J,EAAenM,UAAUyC,OAAO,SAENyJ,EAAkBjL,cAAc,sBAGtDiL,EAAkBtK,YAAYsK,EAAkBU,yBAKhE1G,GAAI,CACAyG,OAAQ,SAARA,SAE4E,OAApE3L,SAASC,cAAc,0CACtBD,SAASC,cAAc,gBAAgBD,SAASC,cAAc,sBAIxC6K,EAAcC,QAAQxK,iBACzC,oDAGWE,SAAQ,SAAAoL,GAEnB,IADqBA,EAASpD,WAAWxI,cAAc,qBACpC,CACf,IAAMmL,EAAWpL,SAASgI,cAAc,KAClCkD,EAAoBW,EAASpD,WACnC2C,EAASpM,UAAU0C,IAAI,oBACvB0J,EAASU,YAAc,+BACvBZ,EAAkBjL,cAAc,QAAQjB,UAAU0C,IAAI,SACtDwJ,EAAkBlM,UAAU0C,IAAI,SAChCwJ,EAAkBpE,YAAYsE,OAftCpL,SAASC,cAAc,wBAAwB0L,WAqB3DF,iBAAkB,SAAlBA,mBACI,IAAIM,EAAO,4BACPC,EAAM,IAIV,OAFID,EAAK9J,KAAKiE,SAASoF,UAASU,EAAMD,EAAKE,KAAK/F,SAASoF,QAAQ,IAE1DU,IAGf5L,GAAG0K,cAAgBA,G,iCC9EvB,OAEA1K,GAAG8L,UAAUC,eAAgB,EAC7B/L,GAAG8L,UAAUE,mBAAqB,WAC9B9J,EAAE,uBAAuB4C,GAAG,oBAAoB,SAAUrB,GACtD,GAAe,YAAXA,EAAEG,KAAoB,CACtB,GAAIH,EAAEI,SAAyB,UAAdJ,EAAEI,SAAqC,KAAdJ,EAAEI,QAAgB,OAC9C,KAAdJ,EAAEI,SAAkBJ,EAAEU,iBACtBnE,GAAG8L,UAAUhH,GAAGmH,OAAOC,OAAOhK,EAAEzB,WAIxC,IAAM0L,EAAYvM,SAASC,cAAc,6BAEzC,GAAIsM,EAAW,CACX,IAAMC,EAAgBD,EAAUE,QAAQC,OACjBH,EAAUtM,cAAc,uBA+B9BoB,iBAAiB,SA9BV,SAApBsL,oBACI,IAAIC,EAAkB,KAChBC,EAAuBN,EAAUhM,iBAC/B,oEAEJuM,EAAsBP,EAAUtM,cAAc,wBAW9C4M,EAAqBrM,SACrBoM,EAAkBG,aATD,SAAjBC,iBACyBT,EAAUtM,cAAc,6BAEzCG,GAAG6M,QAAQ7C,OACX8C,cAAcN,MAKwB,MAG9CE,GAA2D,KAApCA,EAAoBhB,cAC3CgB,EAAoBxE,UAdhB,+FAeJ6E,MAAMX,GACDY,MAAK,SAAAC,GAAQ,OAAIA,EAASC,UAC1BF,MAAK,SAAAG,GACFT,EAAoBxE,UAAYiF,QAKU,CAACC,MAAM,IAGzElL,EAAE,cAAc4C,GAAG,QAAS,sBAAsB,WAC9C,IACIuI,EADUnL,EAAEzB,MACK6M,QAAQ,cAAcC,KAAK,uBAC5CC,EAAWH,EAASF,KAAK,gBAGxBE,EAASI,SAAS,gBACnBJ,EAASK,SAAS,cAAcC,KAHtB,0CAIVzL,EAAE0L,KAAKJ,EAAU,CACbK,QAAS,SAATA,QAAmBV,GACfE,EAASM,KAAKR,UAM9BjL,EAAEtC,UAAUkF,GAAG,UAAW,kDAAkD,SAAUrB,GACnE,UAAXA,EAAEqK,MAA+B,UAAXrK,EAAEqK,OAC5BrK,EAAEU,iBACFnE,GAAG8L,UAAUhH,GAAGmH,OAAO8B,OAAO7L,EAAEzB,WAGpCyB,EAAE,gFAAgF4C,GAAG,SAAS,SAAUrB,GACpG,GAAKzD,GAAGgO,OAAO9E,SAAf,CACAzF,EAAEwK,2BACFxK,EAAEU,iBACF,IAAM+J,EAAQhM,EAAEzB,MAChBT,GAAG8L,UAAUhH,GAAGmH,OAAOC,OAAOgC,QAItClO,GAAG8L,UAAUhH,GAAGmH,OAAOC,OAAS,SAAUgC,GACtC,IAAIC,EAAoBD,EAAME,SAASC,KAAK,uBAAuBjO,OACzD8N,EAAME,SAASC,KAAK,uBACpBH,EAAMG,KAAK,uBACjBC,EAAWJ,EAAMhK,QAAQ,yBACzBqK,IAA0C,SAAhCL,EAAM/E,KAAK,kBAEzB,QAAiD,IAAtC+E,EAAM/E,KAAK,uBAAwC,CAC1D,IAAIqF,EAAgBN,EAAM/E,KAAK,uBAC/BgF,EAAoBjM,EAAEsM,GAG1BL,EAAkBM,MAAK,GAAMC,YAAY,KAAK,WACtCR,EAAMZ,UAAUG,SAAS,uBACzBvL,EAAE,qBAAqByM,OAAO,QAC9B3O,GAAG8L,UAAU8C,aAAeL,MAIpCL,EAAMW,YAAY,YAClBX,EAAM/E,KAAK,gBAAiBoF,GACxBD,EAASlO,QAAQJ,GAAG8L,UAAUhH,GAAGgK,eAAeZ,EAAOK,EAAOD,K,uGCtGjDS,EAAS,WA4BzB,OAAArQ,KALD,SAAAqQ,YAAcpQ,IAAA,KAAAoQ,WAAA,KAtBdjQ,UAAY,CACRkQ,UAAW,cACXC,aAAc,uBACdC,iBAAkB,sBAClBC,WAAY,mCACZC,cAAe,YACfC,cAAe,4EACfC,eAAgB,4BAChBC,oBAAqB,8BACxB,KAED9P,SAAW,CACPuP,UAAW,KACXC,aAAc,KACdC,iBAAkB,KAClBC,WAAY,KACZC,cAAe,KACfC,cAAe,KACfC,eAAgB,KAChBC,oBAAqB,MAIrB9O,KAAKC,cACLD,KAAK+O,cACL/O,KAAKE,iBACLF,KAAKgP,iBACR,EAAA3O,IAAA,cAAAC,MAED,SAAAL,cAOoC,IAAAgP,EAAAC,EAAAC,GANhCnP,KAAKhB,SAAS0P,WAAavP,SAASC,cAAcY,KAAK3B,UAAUqQ,YACjE1O,KAAKhB,SAASwP,aAAerP,SAASC,cAAcY,KAAK3B,UAAUmQ,cACnExO,KAAKhB,SAAS4P,cAAgBrP,GAAGC,MAAMC,eAAeN,SAASO,iBAAiBM,KAAK3B,UAAUuQ,gBAC/F5O,KAAKhB,SAAS6P,eAAiB1P,SAASC,cAAcY,KAAK3B,UAAUwQ,gBACrE7O,KAAKhB,SAAS8P,oBAAsB3P,SAASC,cAAcY,KAAK3B,UAAUyQ,qBAEtE9O,KAAKhB,SAASwP,gBACmB,QAAjCS,EAAAjP,KAAKhB,SAAS8P,2BAAmB,IAAAG,GAAjCA,EAAmCvO,QACnCV,KAAKhB,SAASuP,UAAYvO,KAAKhB,SAASwP,aAAa/K,QAAQzD,KAAK3B,UAAUkQ,WAC5EvO,KAAKhB,SAASyP,iBAA0C,QAA1BS,EAAGlP,KAAKhB,SAASuP,iBAAS,IAAAW,OAAA,EAAvBA,EAAyB9P,cAAcY,KAAK3B,UAAUoQ,kBACvFzO,KAAKhB,SAAS2P,cAAuC,QAA1BQ,EAAGnP,KAAKhB,SAASuP,iBAAS,IAAAY,OAAA,EAAvBA,EAAyB/P,cAAcY,KAAK3B,UAAUsQ,kBAE3F,CAAAtO,IAAA,iBAAAC,MAED,SAAAJ,iBAAiB,IAAAkP,EACc,QAA3BA,EAAApP,KAAKhB,SAAS4P,qBAAa,IAAAQ,GAA3BA,EAA6BxP,SAAQ,SAAAyP,GACjCA,EAAO7O,iBAAiB,SAAS,SAAAwC,GAC7BsM,aAAaC,QAAQ,eAAe,WAG/C,CAAAlP,IAAA,cAAAC,MAED,SAAAyO,cACI,GAAI/O,KAAKhB,SAASwP,cAAgBxO,KAAKhB,SAASyP,kBAAoBzO,KAAKhB,SAAS0P,WAC9E1O,KAAKhB,SAASwP,aAAarQ,UAAU0C,IAAI,eACtC,GAAIb,KAAKhB,SAASwP,aAAc,KAAAgB,EAAAC,EAC7BC,EAAoC,QAA7BF,EAAGxP,KAAKhB,SAASwP,oBAAY,IAAAgB,OAAA,EAA1BA,EAA4BvE,YAAY0E,WAAW,IAAK,IAAIC,OAC5E9L,OAAO+L,gBAAkBtQ,GAAGuQ,iBAAiBC,YAAYC,MAAMN,GACpC,QAA3BD,EAAAzP,KAAKhB,SAAS2P,qBAAa,IAAAc,GAA3BA,EAA6BxL,WAEpC,CAAA5D,IAAA,eAAAC,MAED,SAAA0O,eACQM,aAAaW,QAAQ,gBAAkBjQ,KAAKhB,SAAS6P,gBACrD/K,OAAO+L,gBAAkBtQ,GAAGuQ,iBAAiBC,YAAY3C,UACzDkC,aAAaY,WAAW,gBACjBZ,aAAaW,QAAQ,gBAC5BX,aAAaY,WAAW,mBApEN,I,uGCATC,EAAY,WAmB5B,OAAAlS,KAFD,SAAAkS,eAAc,IAAArH,EAAA,KAAA5K,IAAA,KAAAiS,cAAA,KAhBd9R,UAAY,CACR+R,OAAQ,mGACRC,sBAAuB,0BACvBC,sBAAuB,kCAC1B,KAEDtR,SAAW,CACPoR,OAAQ,KACRC,sBAAuB,KACvBC,sBAAuB,MAC1B,KAEDlH,UAAY,CACRmH,kBAAmBzM,OAAO0M,YAAYC,iBAAiB,eAC1D,KAsBDC,eAAiB,WACb,IAAIC,EAAa,GACjB7H,EAAK9J,SAASoR,OAAOxQ,SAAQ,SAAAwQ,GAAU,IAAAQ,EAAAC,EAC7BC,EAA2C,QAA1BF,EAAGR,EAAO3M,QAAQ,gBAAQ,IAAAmN,OAAA,EAAvBA,EAAyB3F,YAC7C8F,EAAqC,QAArBF,EAAGT,EAAOnF,mBAAW,IAAA4F,OAAA,EAAlBA,EAAoBlB,WAAW,IAAK,IAAIC,OAC3DoB,EAAM,GAAA3R,OAAGyR,GAAwC,GAAE,KAAAzR,OAAI0R,GAAmBpB,WAAW,IAAK,IAChGgB,EAAWM,KAAKD,MAEpB,IAAMZ,EAASO,EAAWO,WAAWvB,WAAW,IAAK,KAGrD,GAFApQ,GAAGC,MAAM2R,kBAAkB,0CAAD9R,OAA2C+Q,IAEjEtM,OAAO+L,eAAgB,CACvB,IAAMU,EAAoBzM,OAAO0M,YAAYC,iBAAiB,cAC1DF,EAAkB5Q,OAAS,GAAmC,aAA9B4Q,EAAkB,GAAGpN,MACrD5D,GAAGuQ,iBAAiBsB,mBAAmBpB,MAAMW,EAAWO,cAGnE,KAEDG,mBAAqB,WACbvN,OAAO+L,gBAAkB/G,EAAK9J,SAASqR,uBACvC9Q,GAAGuQ,iBAAiBsB,mBAAmBE,YAEvCxN,OAAO+L,gBAAkB/G,EAAK9J,SAASsR,uBACvC/Q,GAAGuQ,iBAAiBsB,mBAAmBG,aA3C3CvR,KAAKuJ,SACR,EAAAlJ,IAAA,OAAAC,MAED,SAAAiJ,OACIvJ,KAAKC,cACLD,KAAKE,iBACLF,KAAKqR,uBACR,CAAAhR,IAAA,cAAAC,MAED,SAAAL,cACID,KAAKhB,SAASoR,OAASjR,SAASO,iBAAiBM,KAAK3B,UAAU+R,QAChEpQ,KAAKhB,SAASqR,sBAAwBlR,SAASC,cAAcY,KAAK3B,UAAUgS,uBAC5ErQ,KAAKhB,SAASsR,sBAAwBnR,SAASC,cAAcY,KAAK3B,UAAUiS,yBAC/E,CAAAjQ,IAAA,iBAAAC,MAED,SAAAJ,iBACIF,KAAKhB,SAASoR,OAAOzQ,QAAUmE,OAAOtD,iBAAiB,OAAQR,KAAK0Q,oBAlC3C,I,iCCAjC,wBAMIc,EAAW,KACXC,EAAQ,KACRC,EAAiB,KACjBC,EAAe,KACfpM,EAAO,KACPqM,EAAe,KACfC,EAAO,KAEPC,EAA2B,KAC3BC,EAA0B,KAC1BC,EAAuB,KAE3BzS,GAAG0S,YAAYC,MAAQ,YAEvB3S,GAAG0S,YAAYE,qBAAuB,WAClCL,EAA2B3S,SAASC,cAAc,wCAClD2S,EAA0B5S,SAASC,cAAc,2CACjD4S,EAAuB7S,SAASC,cAAc,mBAE1C0S,GAA4BC,IAC5BxS,GAAG0S,YAAYG,2BAGdtO,OAAOuO,YACRvO,OAAOuO,UAAY,cAGvB5Q,EAAEtC,UAAUkF,GAAG9E,GAAG0S,YAAYC,MAAQ,OAAO,WAEzC3S,GAAG0S,YAAYxJ,UAAW,KAG9BhH,EAAEtC,UAAUkF,GAAG9E,GAAG0S,YAAYC,MAAQ,QAAQ,WAE1C3S,GAAG0S,YAAYxJ,UAAW,KAG9BhH,EAAEtC,UAAUkF,GAAG,QAAS,gEAAgE,WAC/E5C,EAAEzB,MAAMyD,QAAQ,0BAA0B9D,SAC3CJ,GAAG0S,YAAYK,gBACf/S,GAAG0S,YAAYM,KAAK9Q,EAAEzB,WAI9ByB,EAAEtC,UAAUkF,GAAG,QAAS,kEAAkE,SAAUrB,GACrFvB,EAAEzB,MAAMyD,QAAQ,iBAEjBuJ,SAAS,SACVvL,EAAEzB,MAAMyD,QAAQ,0BAA0B9D,QAC3CJ,GAAG0S,YAAYM,KAAK9Q,EAAEzB,UAKlCyB,EAAEtC,UAAUkF,GAAG,QAAS,8CAA8C,WAClE5C,EAAEzB,MAAMwS,SAAS,2BAA2BxE,OAAOyE,UAAU,QAGjEhR,EAAEtC,UAAUkF,GAAG,SAAS,SAAUrB,GAEzBvB,EAAEuB,EAAE9B,QAAQuC,QAAQ,uDAAuD9D,QAC3E8B,EAAE,uBAAuBuL,SAAS,0BAClCvL,EAAEuB,EAAE9B,QAAQ8L,SAAS,WACrBvL,EAAEuB,EAAE9B,QAAQuC,QAAQ,WAAW9D,QAC/B8B,EAAEuB,EAAE9B,QAAQuC,QAAQ,YAAY9D,QAEjCJ,GAAG0S,YAAYS,WAIvBjR,EAAEtC,UAAUkF,GAAG6N,gBAAe,WAC1BzQ,EAAEtC,UAAUkF,GAAG,cAAc,SAAUrB,GAE9BvB,EAAEuB,EAAE9B,QAAQ2L,UAAU8F,GAAG,8BACzBlR,EAAEuB,EAAE9B,QAAQ2L,UAAU8F,GAAG,wBACwB,UAAlDlR,EAAE,6BAA6BC,IAAI,YAClCD,EAAE,6BAA6BoL,UAAU8F,GAAG,+BAC5C3P,EAAE9B,OAAO/C,UAAUqF,SAAS,WAC5BR,EAAE9B,OAAOuC,QAAQ,YACjBT,EAAE9B,OAAOuC,QAAQ,aAElBhC,EAAE,6BACGC,IAAI,UAAW,QACf8Q,SAAS,uBACTI,YAAY,gBAK7BnR,EAAE,uBAAuB4C,GAAG,QAAS,mBAAmB,SAAUrB,GAC9DA,EAAEU,iBACGjC,EAAEuB,EAAE9B,QAAQuC,QAAQ,eAAe9D,QACpCJ,GAAG0S,YAAYY,mBAAmB,0BAI1CpR,EAAEtC,UAAUkF,GAAG,QAAS,6BAA6B,SAAUrB,GAC3DA,EAAEU,iBACFV,EAAEW,kBAC6B,MAA1BX,EAAEI,SAAWJ,EAAE8P,QAAkBrR,EAAEuB,EAAE9B,QAAQuC,QAAQ,eAAe9D,QACrEJ,GAAG0S,YAAYY,mBAAmB,0BAI1CpR,EAAEtC,UAAUkF,GAAG,SAAS,SAAUrB,GAGd,KAFFA,EAAEI,SAAWJ,EAAE8P,QAGiD,IAAtErR,EAAEtC,SAAS4T,eAAetP,QAAQ,yBAAyB9D,QAC3DJ,GAAG0S,YAAYS,WAK3BjR,EAAEtC,UAAUkF,GAAG,QAAS,8BAA8B,SAAUrB,GAC5DvB,EAAE,uBAAuBuR,UAG7BvR,EAAEtC,UAAUkF,GAAG,QAAS,sBAAsB,SAAUrB,GACpDvB,EAAE,iBAAiBwL,SAAS,2BAGhCxL,EAAEtC,UAAUkF,GAAG,QAAS,6CAA6C,SAAUrB,GAC3EvB,EAAE,iBAAiBmR,YAAY,2BAGnCnR,EAAE,uBAAuB4C,GAAG,SAAS,SAAUrB,GAC3CA,EAAEU,kBACF8N,EAAW/P,EAAEzB,MAAMwS,SAAS,kBACfG,GAAG,YACZnB,EAAS9P,IAAI,UAAW,IAExB8P,EAAS9P,IAAI,UAAW,SAG5BD,EAAEzB,MAAMoO,YAAY,UACpB3M,EAAEzB,MAAM0I,KAAK,aAAcjH,EAAEzB,MAAMgN,SAAS,UAAY,eAAiB,UAErEwE,EAASmB,GAAG,YACZnB,EAAS1E,KAAK,SAAS7I,QAEvBuN,EAAS1E,KAAK,SAASkG,OAG3BzT,GAAG0S,YAAYgB,iBAGnBxR,EAAE,iBAAiB4C,GAAG,QAAS,kBAAkB,WAC7C5C,EAAE,gCAAgCyR,IAAIzR,EAAEzB,MAAMkT,UAGlDpP,OAAOtD,iBAAiB,UAAU,WAAM,IAAA2S,EAAAC,EAC9BC,EAAcvP,OAAO0F,WAEvB8J,EAAkBnU,SAASC,cAAc,uBACzCmU,EAA0BD,aAAe,EAAfA,EAAiBnV,UAAUqF,SAAS,UAC9DyO,EAAc9S,SAASC,cAAc,iBACrCoU,EAAoBvB,aAAW,EAAXA,EAAa9T,UAAUqF,SAAS,QAExDjE,GAAG0S,YAAYgB,cAGXI,GAAe9T,GAAGkU,KAAKC,UACC,QADOP,EAC/BrB,SAAwB,IAAAqB,GAAxBA,EAA0B7S,QACzBkT,GAAqBD,IAEtBhU,GAAG0S,YAAY0B,mBACfpU,GAAG0S,YAAYM,KAAK9Q,EAdJ,oEAeT4R,EAAc9T,GAAGkU,KAAKC,UAAoC,QAA5BN,EAAItB,SAAwB,IAAAsB,GAAxBA,EAA0B9S,OACnEf,GAAG0S,YAAYK,iBAEVgB,EAAgBnV,UAAUqF,SAAS,WAAa6P,EAAc9T,GAAGkU,KAAKG,UACvEN,EAAgB5S,QAGhB2S,EAAc9T,GAAGkU,KAAKG,WACtB3B,EAAY/K,MAAMD,KAAO,OAG7B1H,GAAG0S,YAAYK,gBACf/S,GAAG0S,YAAYS,YAIvBjR,EAAEqC,QAAQO,GAAG,qBAAqB,SAAUE,GACxC9C,EAAE,uBAAuBuR,OACzBzT,GAAG0S,YAAYS,WAGnBjR,EAAE,yBAAyB4C,GAAG,UAAU,SAAUrB,GAC9CA,EAAEU,iBAEF+N,EAAQhQ,EAAEzB,MACV0R,EAAiBD,EAAM3E,KAAK,qBAC5B6E,EAAeF,EAAM3E,KAAK,mBAC1BvH,EAAOzB,OAAOuB,SAASE,KAEvBA,EAAOhG,GAAGC,MAAMqU,eAAe,WAAYtO,KAC3CA,EAAOhG,GAAGC,MAAMqU,eAAe,SAAUtO,IAE/BrB,QAAQ,qBAAuB,IACjCqB,EAAKrB,QAAQ,MAAQ,EACrBqB,GAAQ,yBAERA,GAAQ,0BAIhBA,GAAQ,WAAaoM,EAAauB,MAEL,KAAzBxB,EAAewB,QACf3N,GAAQ,aAAemM,EAAewB,OAG1CpP,OAAOuB,SAASE,KAAOA,KAG3B9D,EAAEtC,UAAU2U,OAAM,WACVrS,EAAE,yBAAyB9B,QAC3B8B,EAAE,yBAAyBqL,KAAK,iBAAiB8F,YAAY,gBAG7D9O,OAAOuB,SAASE,KAAKrB,QAAQ,0BAA4B,GACzDJ,OAAOuB,SAASE,KAAKrB,QAAQ,aAAe,GAE5CzC,EAAE,QAAQqL,KAAK,iBAAiBoG,IAAI3T,GAAGC,MAAMuU,gBAAgB,gBAIrEtS,EAAEtC,UAAUkF,GAAG,SAAU,gCAAgC,SAAUrB,GAC/D,IAAIkQ,EAAMzR,EAAEzB,MAAMkT,MACdc,EAAcvS,EAAEzB,MAAM4N,KAAK,iBAC/BoG,EAAYlH,KAAK,cAAc8F,YAAY,UAC3CoB,EAAYlH,KAAKoG,GAAKjG,SAAS,aAGnCxL,EAAE,gCAAgCwS,QAAQ,UAE1CxS,EAAEtC,UAAUkF,GAAG6N,iBAAgB,WAEO,UADlCN,EAAenQ,EAAE,kBACAC,IAAI,UACjBkQ,EAAalQ,IAAI,QAAS,WAIlCD,EAAEqC,QAAQO,GAAG,QAAQ,SAAUrB,GACvB,eAAe5B,KAAK0C,OAAOuB,WACV5D,EAAE,uBAAuBqL,KAAK,0CAChCoH,MAAK,SAAUlR,GAC1BvB,EAAEzB,MAAM4I,WAAW,kBAK/BnH,EAAEqC,QAAQO,GAAG,QAAQ,YACbP,OAAOuB,SAASE,KAAKrB,QAAQ,qBAAuB,GAAKJ,OAAOuB,SAASV,KAAKT,QAAQ,cAAgB,IACtGzC,EAAE,aAAaiH,KAAK,iBAAiB,MAI7CjH,EAAEtC,UAAU2U,OAAM,WACVhQ,OAAOuB,SAASE,KAAKrB,QAAQ,UAAY,IACtB/E,SAASuF,eAAe,SAChCpE,MAAQf,GAAGC,MAAMuU,gBAAgB,SAASpE,WAAW,IAAK,SAI7ElO,EAAEtC,UAAUkF,GAAG,QAAS,mBAAmB,WACvCgB,SAAS8O,YAGb1S,EAAEtC,UAAUkF,GAAG,QAAS,6BAA6B,SAAUrB,GAC3D,IAAIyK,EAAQhM,EAAEzB,MACVoU,EAAW3G,EAAM/E,KAAK,QAEtB2L,EADe5G,EAAMhK,QAAQ,QAAQqJ,KAAK,kBACZoG,MAC9BoB,EAAaF,EAASlQ,QAAQ,cAAgB,EAAI,YAAc,GAChEqQ,EAAU,GAEdvR,EAAEU,iBACF6Q,EAAUhV,GAAGC,MAAMqU,eAAe,QAASO,GAAUI,QAAQ,YAAa,IAC1ED,IAAYA,EAAQrQ,QAAQ,MAAQ,EAAI,UAAY,WAAamQ,EAAiBC,EAClFxQ,OAAOuB,SAASE,KAAOgP,KAoB3BpV,SAASqB,iBAAiB,SAjBA,SAApBiU,kBAAoBzR,GACtB,GAAIA,EAAE9B,OAAO/C,UAAUqF,SAAS,gBAAkBR,EAAE9B,OAAOuC,QAAQ,gBAAiB,CAChFT,EAAEU,iBACF,IAAMgR,EAA2BvV,SAASC,cAAc,6BACpDuV,EAAiBD,aAAwB,EAAxBA,EAA0BtV,cAAc,kBACzDwV,EAAqBD,aAAc,EAAdA,EAAgBvV,cAAc,iBAADC,OAAkBsV,EAAerU,MAAK,MACxFuU,EAAcD,aAAkB,EAAlBA,EAAoBhJ,QAAQtL,MAE1CwU,EAAa9R,EAAE9B,OAAOuC,QAAQ,gBACxBT,EAAE9B,OAAOuC,QAAQ,gBACjBT,EAAE9B,OAAO/C,UAAUqF,SAAS,eAClCuR,EAA2B,iBAAhBF,EAAiCC,EAAWlJ,QAAQrG,KAAOzB,OAAOuB,SAAS2P,KACtFC,EAAYJ,EAAc,GAAHxV,OAAM0V,EAASG,SAAS,KAAO,IAAM,IAAG,cAAA7V,OAAawV,GAAgB,GAChG/Q,OAAOuB,SAASE,KAAO,GAAHlG,OAAM0V,GAAQ1V,OAAG4V,OAM7C,IAAME,EAA0BhW,SAASC,cAAc,4BACvD,GAAI+V,EAAyB,CACzB,IAAMC,EAAW,CACTC,KAAMF,EAAwB/V,cAAc,8BAC5CkW,OAAQH,EAAwB/V,cAAc,iCAElDmW,EAAuB,SAAvBA,qBAAuBvS,GACnB,IAAMwS,EAAUxS,EAAE9B,OACduU,EAA0B,iBAAlBzS,EAAE9B,OAAOwU,KAA0BN,EAASE,OAASF,EAASC,KAEtE9V,GAAGC,MAAMmW,uBAAuBF,KAC3BlW,GAAGC,MAAMmW,uBAAuBH,GAGjC,CAACA,EAASC,GAAO7V,SAAQ,SAAAC,GAAI,OAAIA,EAAKiB,aAAa,gBAAiB,WAFpE2U,EAAMjR,gBAAgB,mBAOtC4Q,EAASC,KAAK7U,iBAAiB,QAAS+U,GACxCH,EAASE,OAAO9U,iBAAiB,QAAS+U,KAIlDhW,GAAG0S,YAAYM,KAAO,SAAUqD,GACvBA,EAAInS,QAAQ,4BAA4B9D,UACzCkS,EAAO+D,EAAInS,QAAQ,kBACdwJ,SAAS,QAEVxL,EAAE,eAAe9B,QACjB8B,EAAE,eAAewL,SAAS,cAE9BxL,EAAE,QAAQwL,SAAS,mBACnB4E,EAAK/E,KAAK,qBAAqBpE,KAAK,YAAa,GAEjDxD,YAAW,WACH2M,EAAK7E,SAAS,SACd6E,EAAK/E,KAAK,kBAAkB7I,UAEjC,KAEHiB,YAAW,WACH2M,EAAK7E,SAAS,UACd6E,EAAK/E,KAAK,2BACLkB,OACAyE,UAAU,KAAK,WACZmD,EAAInS,QAAQ,8BAA8B/B,IAAI,WAAY,cAGlED,EAAE,4BAA4BC,IAAI,CAC9BmU,SAAU,aAGnB,OAIXtW,GAAG0S,YAAYS,MAAQ,WACnBjR,EAAE,iBAAiBmR,YAAY,QAC/BnR,EAAE,eAAemR,YAAY,cAE7BnR,EAAE,QAAQmR,YAAY,mBACjBrT,GAAG0S,YAAYxJ,WACZhH,EAAE,iBAAiBgC,QAAQ,0BAA0B9D,OACrD8B,EAAE,2BAA2BuM,OAAO8H,QAAQ,MAE5CrU,EAAE,8BAA8BC,IAAI,WAAY,UAChDD,EAAE,2BAA2BuM,OAAO1J,KAAK,KACzC7C,EAAE,4BAA4BC,IAAI,cAAe,KAEjDD,EAAE,8BAA8ByR,IAAIzR,EAAE,gCAAgCyR,OAAOxK,KAAK,WAAY,OAK1GnJ,GAAG0S,YAAYgB,YAAc,WAImC,KAH5DzB,EAAW/P,EAAE,kBAGAgC,QAAQ,4BAA4B9D,SAC5C6R,EAASxE,SAAS,2BACnBzN,GAAG0S,YAAYxJ,SAEf+I,EAAS9P,IAAI,CACTqU,MAAOtU,EAAEqC,QAAQiS,QACjB9O,MAAOxF,EAAE,cAAcuU,aAAevU,EAAEqC,QAAQiS,SAAW,IAG/DvE,EAAS,GAAGtK,MAAM6O,MAAQ,QAIlCxW,GAAG0S,YAAYY,mBAAqB,SAAUoD,GAC1C,IAAMC,EAAc/W,SAASC,cAAc,4BACvC+W,EAAOD,aAAW,EAAXA,EAAa9W,cAAc6W,GAEtC,GAAIE,EAAM,CACN,IAAMC,EAAwBF,EAAY9W,cAAc,6BACpDiX,EAAgBH,EAAYxW,iBAAiB,cAC7C4W,EAAe/W,GAAG0S,YAAYqE,eAC9BC,EAAS,CACLC,cAAeL,EAAK/W,cAAc,8BAClCqX,QAASN,EAAK/W,cAAc,oBAC5BsX,KAAMP,EAAK/W,cAAc,8BACzBuX,OAAQR,EAAK/W,cAAc,2BAC3BwX,MAAOT,EAAK/W,cAAc,0BAC1BiW,KAAMc,EAAK/W,cAAc,yBACzBgW,SAAUe,EAAK/W,cAAc,4BAEjCyX,EAAmB,SAAnBA,iBAAmBC,GACf,GAAIA,GAAMA,EAAG5X,GAAI,CACb,IAAM6X,EAAcb,EAAY9W,cAAc,wBAADC,OAAyByX,EAAG5X,GAAE,OACvE8X,EAAkBd,EACb9W,cAAc,cAADC,OAAeyX,EAAG5X,GAAE,OACjC+L,YAAY1C,cACZiM,QAAQ,IAAK,UACtBuC,EAAY9L,YAAc,kBAAH5L,OAAqB2X,EAAe,UAC3DF,EAAGhW,aAAa,mBAAoBiW,EAAY7X,IAChD4X,EAAGhW,aAAa,eAAgB,UAGxCmW,EAAmB,CACfC,KAAM,SAANA,KAAMxH,GACF,IAAMyH,EAAaf,EAAsBhX,cAAc,UACvD+X,WAAYvW,SACZwV,EAAsBgB,mBAClB,YAAW,mCAAA/X,OACwBqQ,EAAO,YAGlDpL,KAAM,SAANA,OACI,IAAM6S,EAAaf,EAAsBhX,cAAc,UACvD+X,WAAYvW,WAGpByW,EAAU,CACNH,KAAM,SAANA,OACsBhB,EAAY9W,cAAc,iBAExC8W,EAAYkB,mBACR,aACA,8EAGZ9S,KAAM,SAANA,OACI,IAAMgT,EAAYpB,EAAY9W,cAAc,gBACxCkY,GAAWA,EAAU1W,WAQrC,GAHAqW,EAAiB3S,OAFK,SAAlBiT,kBAAwBlB,EAAczW,SAAQ,SAAAC,GAAI,OAAKA,EAAKoL,YAAc,MAG9EsM,GAEKhB,EAAOC,cAKR,GAAIjX,GAAGC,MAAMmW,uBAAuBY,EAAOI,QACvCE,EAAiBN,EAAOI,QACxBE,EAAiBN,EAAOlB,MACxBwB,EAAiBN,EAAOnB,UACxBlQ,YAAW,WACPqR,EAAOI,OAAO1S,QACdgT,EAAiBC,KAAKZ,EAAY,WACnC,SAEH,GAAI/W,GAAGC,MAAMmW,uBAAuBY,EAAOlB,OAAS9V,GAAGC,MAAMmW,uBAAuBY,EAAOnB,UACvFyB,EAAiBN,EAAOlB,MACxBwB,EAAiBN,EAAOnB,UACxB6B,EAAiBC,KAAKZ,EAAY,SAClCC,EAAOlB,KAAKpR,YACT,CACHsS,EAAOC,cAAclW,MAAQiW,EAAOC,cAAclW,MAAMkU,QAAQ,SAAU,IAC1E6C,EAAQH,OACR,IAAIM,EAAU,GAAHnY,OAAMyE,OAAOuB,SAASoS,OAAM,2BACnCC,EAAY,GACZC,EAAU,EAEd,IAAK,IAAM9X,KAAQ0W,EAAQ,KAAAqB,EACnBC,EAAwB,IAAZF,EAAgB,IAAM,GACtB,QAAhBC,EAAIrB,EAAO1W,UAAK,IAAA+X,GAAZA,EAActX,QACdoX,GAAa,GAAJrY,OAAOwY,GAASxY,OAAGkX,EAAO1W,GAAM6V,KAAI,KAAArW,OAAIkX,EAAO1W,GAAMS,QAElEqX,IAGJrL,MADAkL,GAAWE,GAENnL,MAAK,SAAAC,GAAQ,OAAIA,EAASsL,UAC1BvL,MAAK,SAAAG,IACF2K,EAAQ/S,OACJoI,EAAKqL,MACLjU,OAAOuB,SAAWqH,EAAKqL,MAEK7B,EAAY9W,cAAc,0BACFM,iBAAiB,SAE3C,GAAGuE,QACzByI,EAAKsD,MACLiH,EAAiBC,KAAKxK,EAAKsD,OAE3BiH,EAAiBC,KAAKZ,EAAa0B,iBA/C3Df,EAAiBC,KAAKZ,EAAaG,SACnCI,EAAiBN,EAAOE,SACxBF,EAAOE,QAAQxS,UAuD3B1E,GAAG0S,YAAYqE,aAAe,WAC1B,MAAO,CACH2B,QAAS,kEACTxB,QAAS,8BACTuB,OAAQ,2CAIhBzY,GAAG0S,YAAYiG,UAAY,WAAY,IAAAC,EAC7BC,EAAmB3W,EAAE,0BACvB4W,EAAWD,EAAiB1L,KAAK,aACjC4L,EAAWF,EAAiB1L,KAAK,aACjC6L,EAASH,EAAiBlF,MAAMxI,MAAM,KACtC8N,EAAWJ,EAAiB1L,KAAK,SACjC+L,EAAiBhX,EAAE,uBAAuBqL,KAAK,0CAE/C4L,EAAKnZ,GAAG0S,YAAY0G,aAAaP,EAAkBC,EAAUC,GACtD,QAAXH,EAAAO,EAAGE,MAAM,UAAE,IAAAT,GAAXA,EAAarX,aAAa,gBAAiB,QAC3C,IAEI+X,EAF6BpX,EAAE,4BACYqL,KAAK,eACrBA,KAAK,aAEhCsL,EAAiBpL,SAAS,mBAC1B0L,EAAGI,aAAa,CAAC,CAACxY,MAAOiY,EAAQQ,MAAOP,KACxCC,EAAevE,MAAK,SAAUlR,GAC1BvB,EAAEzB,MAAM4I,WAAW,gBAI3BnH,EAAE,eAAe4C,GAAG,SAAS,WACzB,IAAI2U,EAAiBvX,EAAEzB,MAAM6M,QAAQ,8BACpBpL,EAAEzB,MAAM6M,UAAU8F,GAAG,4BAGlCqG,EAAetX,IAAI,WAAY,WAE/BD,EAAE,wBAAwBqL,KAAK,kBAAkB6F,GAAG,YACpD+F,EAAGO,WAAWtZ,OAAS,EAAI+Y,EAAGQ,WAAaR,EAAGS,SAC3CT,EAAGO,WAAWtZ,OAAS,EAAI+Y,EAAGS,SAAWT,EAAGQ,cAGvDzX,EAAEiX,GAAIrU,GAAG,mBAAmB,SAAUrB,GAClC6V,EAASnQ,KAAK,yBAEV1I,KAAKoZ,eAAezZ,OACpB8Y,EAAevE,MAAK,SAAUlR,GAC1BvB,EAAEzB,MAAM4I,WAAW,eAGvB6P,EAAevE,MAAK,SAAUlR,GAC1BvB,EAAEzB,MAAM0I,KAAK,YAAY,GAAMwK,IAAI,WAMnD3T,GAAG0S,YAAY0G,aAAe,SAACU,EAAUhB,EAAUC,GAC/C,OAAOe,EAASV,aAAa,CACzBjM,KAAM,0DACN4M,OAAQ,MACRC,aAAa,EACbC,WAAY,QACZC,YAAY,EACZC,iBAAkB,QAClBC,aAAc,QACdC,IAAK,sBACLC,YAAa,OACbC,YAAaT,EAAS3Q,KAAK,eAC3BqR,eAAgB,EAChBC,aAAc,EACdC,qBAAsB,SAAtBA,uBACI,MAAO,IAEXC,WAAY,SAAZA,WAAsBC,EAAKC,GACvB,IAAIC,EAAcD,EAASE,IAAIC,OAAOH,EAASE,IAAIpW,QAAQ,UAAY,GAAGsQ,QAAQ,SAAU,KAC5F,GACI6F,EAAY3P,MAAM,KAAK/K,OAAS0Y,GAChCgC,EAAY1a,OAAS2Y,IACpB+B,EAAY7F,QAAQ,MAAO,IAAI7U,OAEhC,OAAO,MAMvBJ,GAAG0S,YAAYK,cAAgB,WAAM,IAAAkI,EAAAC,EACT,QAAxBD,EAAA1I,SAAwB,IAAA0I,GAAxBA,EAA0Brc,UAAUyC,OAAO,mBACvB,QAApB6Z,EAAAzI,SAAoB,IAAAyI,GAApBA,EAAsBtc,UAAUyC,OAAO,oBAG3CrB,GAAG0S,YAAY0B,iBAAmB,WAAM,IAAA+G,EAAAC,EACZ,QAAxBD,EAAA5I,SAAwB,IAAA4I,GAAxBA,EAA0Bvc,UAAU0C,IAAI,mBACpB,QAApB8Z,EAAA3I,SAAoB,IAAA2I,GAApBA,EAAsBxc,UAAU0C,IAAI,oBAGxCtB,GAAG0S,YAAYG,yBAA2B,WAAM,IAAAwI,EAAAC,EACtCC,EAAU3b,SAASC,cAAc,kBACnC2b,EAAiB5b,SAASC,cAAc,4BACxC4b,EAAc,GACdC,GAAiB,EAEP,QAAdL,EAAAG,SAAc,IAAAH,GAAdA,EAAgB9Z,aAAa,OAAQ,WACvB,QAAd+Z,EAAAE,SAAc,IAAAF,GAAdA,EAAgB/Z,aAAa,aAAc,sBAE3C,IAAMoa,EAAc,SAAdA,YAAcF,GAChBA,EAAYpb,SAAQ,SAACub,EAAYC,GACzBA,IAAUH,GACVE,EAAWra,aAAa,gBAAiB,QACzCqa,EAAWra,aAAa,KAAM,yBAAFzB,OAA2B+b,EAAQ,IAC/DD,EAAW/b,cAAc,gBAAgB6E,QACzC6W,EAAQha,aAAa,wBAAyBqa,EAAWjc,KAEzDic,EAAWra,aAAa,gBAAiB,aAKrDga,EAAQta,iBAAiB,WAAW,SAAUwC,GAI1C,GAHA+X,EAAiB5b,SAASC,cAAc,4BACxC4b,EAAcD,EAAerb,iBAAiB,YAET,SAAjCqb,EAAe7T,MAAMmU,SAAsBL,EAAYrb,OAAS,EAEhE,GADAmb,EAAQha,aAAa,gBAAiB,QAClCkC,EAAEI,UAAYkY,IAASC,KACvBvY,EAAEU,iBACFuX,GAAiBA,EAAgB,GAAKD,EAAYrb,OAClDub,EAAYF,QACT,GAAIhY,EAAEI,UAAYkY,IAASE,GAC9BxY,EAAEU,iBACFuX,GAAiBA,EAAgB,EAAID,EAAYrb,QAAUqb,EAAYrb,OACvEub,EAAYF,QACT,GAAIhY,EAAEI,UAAYkY,IAASG,MAAO,KAAAC,EAAAC,EACrC3Y,EAAEU,iBACF,IAAMqU,EAAiC,QAA7B2D,EAAGV,EAAYC,UAAc,IAAAS,GAA+B,QAA/BC,EAA1BD,EAA4Btc,cAAc,uBAAe,IAAAuc,OAA/B,EAA1BA,EAA2D3X,aAAa,aACrF+T,IAASjU,OAAOuB,SAASE,KAAOwS,OAK5C5Y,SAASqB,iBAAiB,WAAW,SAAUwC,GACvCA,EAAEI,UAAYkY,IAASM,QAA2C,SAAjCb,EAAe7T,MAAMmU,UACtDN,EAAe7T,MAAMmU,QAAU,OAC/BP,EAAQha,aAAa,gBAAiB,SACtCma,GAAiB,EACjB/V,YAAW,WACP4V,EAAQ7W,UACT,W,qBC7pBf,WACgBxC,EAAE,QAAd,IAEIwQ,EAAc,CACd4J,qBAAsB,GACtBC,cAAe,GACfzB,YAAa,GACb0B,UAAW,GACX1D,SAAU,GACVC,SAAU,GACV0D,sBAAuB,GACvBC,sBAAuB,GACvBC,2BAA4B,GAC5BC,gBAAiB,GACjBC,eAAgB,GAChBnH,UAAW,GACX/C,MAAO,YACPzJ,UAAU,EAEVc,KAAM,SAANA,OACI0I,EAAY8J,UAAYta,EAAE,+BAC1BwQ,EAAYgD,UAAYxT,EAAE,wBAAyB,iCAAiCyR,MACpFjB,EAAYoK,aACZpK,EAAYE,wBAEhBkK,WAAY,SAAZA,aACI5a,EAAE,iBACGqL,KAAK,iBACLoH,MAAK,WACFjC,EAAY8J,UAAYta,EAAEzB,MAC1BiS,EAAYoG,SAAW5W,EAAEzB,MAAM0M,KAAK,2BACpCuF,EAAYqG,SAAW7W,EAAEzB,MAAM0M,KAAK,2BACpC,IAAM4P,EAAa7a,EAAEzB,MAAM2N,SAC3BsE,EAAYoI,YAAc5Y,EAAEzB,MAAMkT,MAE9BoJ,EAAWtP,SAAS,mBACpBiF,EAAYsK,sBACLD,EAAWtP,SAAS,kBAC3BiF,EAAYuK,2BAEZvK,EAAYwK,uBAIxBhb,EAAEtC,UAAUkF,GACR,SACA,4FACA,SAAUrB,GACN,IAAI0Z,GAAQ,EAEZjb,EAAEzB,MACG8M,KAAK,2CACLoH,MAAK,WACEzS,EAAEzB,MAAMkT,OAA2B,KAAlBzR,EAAEzB,MAAMkT,QACzBwJ,GAAQ,MAGhBjb,EAAEzB,MAAM8M,KAAK,gBAAgBnN,OAAS,IACtC+c,GAAQ,GAERA,IACA5Y,OAAOuB,SAAW,mBAClBrC,EAAEU,sBAwClByO,qBAAsB,SAAtBA,yBAEA+F,UAAW,SAAXA,UAAqByE,GACjB1K,EAAY8J,UAAUpD,aAAa,CAC/BjM,KAAMiQ,EACNrD,OAAQ,MACRE,WAAY,QACZC,YAAY,EACZE,aAAc,QACdC,IAAK,cACLC,YAAa,OACbK,WAAY,SAAZA,WAAsBC,EAAKC,GACvB,IAAIC,EAAcD,EAASE,IAAIC,OAAOH,EAASE,IAAIpW,QAAQ,UAAY,GAAGsQ,QAAQ,SAAU,KAC5F,GACI6F,EAAY3P,MAAM,KAAK/K,OAASsS,EAAYoG,UAC5CgC,EAAY1a,OAASsS,EAAYqG,WAChC+B,EAAY7F,QAAQ,MAAO,IAAI7U,OAEhC,OAAO,MAKvB4c,oBAAqB,SAArBA,sBACItK,EAAYiK,2BAA6BjK,EAAY8J,UAAUrP,KAAK,2BACpEuF,EAAY4J,qBACR,oDACA5J,EAAYiK,2BACZ,YACJjK,EAAYmK,eAAiB,WAC7BnK,EAAYiG,UAAUjG,EAAY4J,uBAEtCY,kBAAmB,SAAnBA,oBACIxK,EAAYiK,2BAA6BjK,EAAY8J,UAAUrP,KAAK,2BACpEuF,EAAY+J,sBAAwB/J,EAAY8J,UAAUrP,KAAK,qBAC/DuF,EAAYkK,gBAAkBlK,EAAY8J,UAAUrP,KAAK,eACzDuF,EAAYgK,sBAAwBhK,EAAY8J,UAAUrP,KAAK,sBAC/DuF,EAAY4J,qBACR,6CACA5J,EAAYgK,sBACZ,QACAhK,EAAYiK,2BACZ,OACAjK,EAAYkK,gBACZ,OACAlK,EAAY+J,sBACZ,YACJ/J,EAAYiG,UAAUjG,EAAY4J,uBAEtCW,yBAA0B,SAA1BA,2BACIvK,EAAYiK,2BAA6BjK,EAAY8J,UAAUrP,KAAK,2BACpEuF,EAAY+J,sBAAwB/J,EAAY8J,UAAUrP,KAAK,qBAC/DuF,EAAYkK,gBAAkBlK,EAAY8J,UAAUrP,KAAK,eACzDuF,EAAYgK,sBAAwBhK,EAAY8J,UAAUrP,KAAK,sBAC/DuF,EAAY4J,qBACR,6CACA5J,EAAYgK,sBACZ,QACAhK,EAAYiK,2BACZ,OACAjK,EAAYkK,gBACZ,OACAlK,EAAY+J,sBACZ,oBACA/J,EAAYgD,UAChBhD,EAAYiG,UAAUjG,EAAY4J,wBAI1Ctc,GAAG0S,YAAcA,EA3KrB,I,kBCAA,IACU2K,EACAC,EADAD,EAAoBzd,SAASC,cAAc,qBAC3Cyd,EAAe1d,SAASC,cAAc,iBAExCwd,IACIC,EACAtd,GAAGC,MAAMwB,sBAETzB,GAAGC,MAAMsd,iBACL,gBACA,CAACC,WAAW,EAAMC,SAAS,GAC3Bzd,GAAGC,MAAMwB,oBACT,MACA,K,kBCbhB,IACUic,IAAc,CAChB1T,KAAM,SAANA,OACI0T,EAAYzS,WAEhBA,QAAS,SAATA,UACIjL,GAAG2d,aAAa,iBAChBD,EAAYE,gBACZF,EAAYG,cACZ7d,GAAGgB,UAAY0c,EAAY1c,YAE/B6c,YAAa,SAAbA,cACI,IAAMH,EAAc9d,SAASC,cAAc,iBAC3C,GAAI6d,EAAa,CACb,IAAMI,EAAqB9d,GAAGC,MAAMC,eAC5Bwd,aAAW,EAAXA,EAAavd,iBAAiB,0BAElC0d,YAAc,SAAdA,YAAcpa,GAAC,OAAIzD,GAAG2d,aAAala,EAAE9B,OAAOpB,gBAE5Cud,EAAmB1d,QACnB0d,EAAmBzd,SAAQ,SAAAC,GACvBN,GAAG2d,aAAard,EAAKC,eACrBD,EAAKW,iBAAiB,OAAQ4c,kBAK9C7c,SAAU,SAAVA,WACI,IAAM9B,EAAsBc,GAAGC,MAAMC,eAAeN,SAASO,iBAAiB,4BAC9EH,GAAGgB,SAAS9B,GACZU,SAASqB,iBAAiB,UAAWjB,GAAGkB,gBAE5C0c,cAAe,SAAfA,gBACI,IAAMG,EAAe7b,EAAE,iBACnB8b,EAAmBD,EAAaxQ,KAAK,uBACrC0Q,EAAoBF,EAAaxQ,KAAK,wBACtC2Q,EAAuBH,EAAaxQ,KAAK,4BACzC4Q,EAAajc,EAAE,8BAEd8b,EAAiBvQ,SAAS,kBAAoByQ,EAAqB9d,SAAW+d,EAAW/d,QAC1F+d,EAAW9c,SAGX4c,EAAkB7d,SAClB6d,EAAkB/Z,QAAQ,iBAAiBka,KAAK,yBAAyB/c,SACzE8c,EAAW9c,YAKvBrB,GAAG0d,YAAcA,G,uGClDAW,EAAU,WAoC1B,OAAA3f,KALD,SAAA2f,aAAc,IAAA9U,EAAA,KAAA5K,IAAA,KAAA0f,YAAA,KA9Bdzf,UAAY,CACR0f,OAAQ,aACRxG,QAAS,sBACTyG,wBAAyB,UAC5B,KAED/b,QAAU,CACNuV,UACI,yIACJyG,gBAAiB,mDACpB,KAED1f,UAAY,CACR2f,aAAc,gBACdC,YAAa,oBACbC,iBAAkB,qBAClBC,wBAAyB,8BACzBC,0BAA2B,wBAC3B/G,QAAS,uBACTgH,gBAAiB,qBACpB,KAEDrf,SAAW,CACPgf,aAAc,KACdE,iBAAkB,KAClBC,wBAAyB,KACzBC,0BAA2B,KAC3BC,gBAAiB,MACpB,KA4BDC,qBAAuB,SAAAtb,GACnB,IAAMiY,EAAgBjY,EAAE9B,OAAO+Z,cAC3BsD,EAAazV,EAAK9J,SAASmf,wBAAwB/e,cAAc,yBAADC,OACnC4b,EAAa,OAE1CuD,EAAoBD,aAAU,EAAVA,EAAYnf,cAAc0J,EAAKzK,UAAU4f,aAC7DQ,EAAY3V,EAAK9J,SAASmf,wBAAwB/e,cAAc,oCAEhEsf,EAAc5V,EAAK8B,iBAAiB,eAKxC,GAHA6T,WAAWtgB,UAAUyC,OAAOkI,EAAK3K,UAAU0f,QAC3CU,EAAWpgB,UAAU0C,IAAIiI,EAAK3K,UAAU0f,SAEnCW,GAAwD,MAAnCD,EAAW3S,QAAQ+S,YAAqB,CAC9D7V,EAAK8V,cAEL,IAAM7G,EAAO,GAAH1Y,OATW,gEASaA,OAAGwf,mBAAmB7b,EAAE9B,OAAOZ,QAAMjB,OACnD,OAAhBqf,EAAuB,gBAAHrf,OAAmBqf,GAAgB,IAE3DpS,MAAMyL,GACDxL,MAAK,SAAAC,GAAQ,OAAIA,EAASsL,UAC1BvL,MAAK,SAAAG,GACF6R,EAAWnH,mBAAmB,YAAatO,EAAKgW,uBAAuBpS,IACvE5D,EAAKiW,mBAGpB,KAEDjB,wBAA0B,SAAA9a,GACtB,GACIA,EAAE9B,OAAO/C,UAAUqF,SAASsF,EAAK3K,UAAU2f,0BAC3C9a,EAAE9B,OAAOpB,cAAc3B,UAAUqF,SAASsF,EAAK3K,UAAU2f,yBAC3D,CACE9a,EAAEU,iBAEF,IAAIpE,EAAW0D,EAAE9B,OAAO/C,UAAUqF,SAASsF,EAAK3K,UAAU2f,yBAChD9a,EAAE9B,OACF8B,EAAE9B,OAAOpB,cACfkf,EAAmBC,KAAKC,MAAM5f,EAASsM,QAAQuT,cAC/CC,EAAW9f,EAASsM,QAAQmM,KAEhCsH,sBAAsBC,aAAaN,GAC9BzS,MAAK,SAAUgT,QACKC,IAAbJ,IACAtb,OAAOuB,SAASE,KAAO6Z,MAE7B,OACK,SAAUK,QACID,IAAbJ,IACAM,QAAQC,IAAIF,GACZ3b,OAAOuB,SAASE,KAAO6Z,QAI1C,KAEDN,uBAAyB,SAAApS,GACrB,IAAIkT,EAAQ,GACRC,EAAI,EAER,IAAKA,EAAI,EAAGA,EAAInT,EAAK/M,OAAQkgB,IAAK,CAC9B,IAAMC,EAAWpT,EAAKmT,GAClBE,EAAa,CACTC,SAAUF,EAASG,SACnBC,MAAOJ,EAASpK,MAEpByK,EAAgBlB,KAAKmB,UAAUL,GAAYvL,QAAQ,KAAM,UAE7DoL,GAAS,qCAAJvgB,OACiBygB,EAASpK,KAAI,6DAAArW,OACQygB,EAASG,SAAQ,iBAAA5gB,OAAgBygB,EAASG,SAAQ,0BAAA5gB,OAAwB8gB,EAAa,kBAAA9gB,OAAgBygB,EAASxF,IAAG,0DAAAjb,OAChJygB,EAASpK,KAAI,mEAK/B,MAAO,uBAAPrW,OAA8BwgB,EAAC,+BAAAxgB,OAA8BugB,EAAK,UACrE,KAEDhV,iBAAmB,SAAAyV,GACf,IAAIC,EAAS,KACTC,EAAM,GAQV,OAPAlb,SAASoF,OACJ8P,OAAO,GACP7P,MAAM,KACN9K,SAAQ,SAAUC,IACf0gB,EAAM1gB,EAAK6K,MAAM,MACT,KAAO2V,IAAeC,EAASC,EAAI,OAE5CD,GACV,KAED1B,YAAc,kBAAM9V,EAAK9J,SAASgf,aAAa5G,mBAAmB,aAActO,EAAK/G,QAAQuV,YAAU,KAEvGyH,YAAc,WACV,IAAMzH,EAAYxO,EAAK9J,SAASgf,aAAa5e,cAAc0J,EAAKzK,UAAUgZ,SACtEC,IACAA,EAAU1W,SACVkI,EAAK9J,SAASqf,gBAAgB5W,UAAYqB,EAAK/G,QAAQgc,gBACvD7Y,YAAW,WACP4D,EAAK9J,SAASqf,gBAAgB5W,UAAY,KAC3C,OA9HPzH,KAAKhB,SAASwhB,OAASrhB,SAASC,cAAc,eAC9CY,KAAKC,cACLD,KAAKE,iBACLF,KAAKG,YACR,EAAAE,IAAA,cAAAC,MAED,SAAAL,cACID,KAAKhB,SAASgf,aAAehe,KAAKhB,SAASwhB,OAAOphB,cAAcY,KAAK3B,UAAU2f,cAC/Ehe,KAAKhB,SAASkf,iBAAmBle,KAAKhB,SAASwhB,OAAOphB,cAAcY,KAAK3B,UAAU6f,kBACnFle,KAAKhB,SAASmf,wBAA0Bne,KAAKhB,SAASwhB,OAAOphB,cACzDY,KAAK3B,UAAU8f,yBAEnBne,KAAKhB,SAASof,0BAA4Bpe,KAAKhB,SAASmf,wBAAwBze,iBAC5EM,KAAK3B,UAAU+f,2BAEnBpe,KAAKhB,SAASqf,gBAAkBre,KAAKhB,SAASwhB,OAAOphB,cAAcY,KAAK3B,UAAUggB,mBACrF,CAAAhe,IAAA,UAAAC,MAED,SAAAH,aAAY,CAAAE,IAAA,iBAAAC,MAEZ,SAAAJ,iBACIF,KAAKhB,SAASkf,iBAAiB1d,iBAAiB,SAAUR,KAAKse,sBAC/Dte,KAAKhB,SAASmf,wBAAwB3d,iBAAiB,QAASR,KAAK8d,6BAtD9C,I,kBCA/Brc,EAAEtC,UAAU2U,OAAM,WACd,IAAI2M,EAAe,GACfC,EAAkB,GAClBC,EAAgB,GAChBC,EAAe,GACfC,EAAqB,GACrBC,EAAsB,GAEtBrf,EAAE,cAAc9B,SAChB8gB,EAAehf,EAAE,cAAcgC,QAAQ,4BAA4BqJ,KAAK,aACxE4T,EAAkBjf,EAAE,cAAcgC,QAAQ,4BAA4BqJ,KAAK,gBAC3E6T,EAAgBlf,EAAE,cAAcgC,QAAQ,4BAA4BqJ,KAAK,mBACzE8T,EAAenf,EAAE,mBAAmByR,MACpC2N,EAAqBpf,EAAE,wBACvBqf,EAAsBrf,EAAE,yBACxBof,EAAmBE,KAAK,YAAaD,EAAoB7T,SAAS,YAElE4T,EAAmBxc,GAAG,UAAU,WAC5Bwc,EAAmBE,KAAK,WAClBD,EAAoB7T,SAAS,YAC7B6T,EAAoBlO,YAAY,gBAGrCgO,GAAgBD,EAAchhB,QAC/B8gB,EAAavJ,OACbwJ,EAAgB9N,YAAY,YAE5B6N,EAAanc,OACboc,EAAgBzT,SAAS,WAG7BxL,EAAE,mBAAmB4C,GAAG,UAAU,WACX5C,EAAE,mBAAmByR,OAMpCuN,EAAanc,OACboc,EAAgBzT,SAAS,YAJzBwT,EAAavJ,OACbwJ,EAAgB9N,YAAY,cAOpCnR,EAAE,iBAAiB4C,GAAG,SAAS,WACR5C,EAAE,mBAAmByR,OAMpCuN,EAAavJ,OACbwJ,EAAgB9N,YAAY,YAJ5B6N,EAAanc,OACboc,EAAgBzT,SAAS,kBASzC,IAyDM+T,EAAe,SAAfA,eACF,IAAMC,EAAc9hB,SAASO,iBAAiB,gBAE9C,GAAIuhB,EAAYthB,OAAS,EAAG,CACxB,IAAM2K,EAAiBnL,SAASC,cAAc,qBACxC8hB,EAAwB/hB,SAASgI,cAAc,MAC/Cga,EAAY,GAClBD,EAAsBpgB,aAAa,KAAM,mBAEzCmgB,EAAYrhB,SAAQ,SAAAwhB,GAChB,IAEMpR,IAFYoR,aAAY,EAAZA,EAAchiB,cAAc,SAASiiB,YACrCD,aAAY,EAAZA,EAAchiB,cAAc,YAAYiiB,YACpB7M,QAAQ,MAAO,IAC/C8M,EAAeF,aAAY,EAAZA,EAAcG,mBAAmBvd,aAAa,MAC7Dwd,EAAeriB,SAASgI,cAAc,MAE5Cga,WAAWlQ,KAAKqQ,GAChBE,EAAa1gB,aAAa,WAAY,KACtC0gB,EAAaH,UAAYrR,EACzBkR,EAAsBO,OAAOD,MAEjClX,WAAgBmX,OAAOP,GACvB5W,WAAgBxJ,aAAa,WAAY,KACzCwJ,WAAgBrG,QAhFK,SAAvByd,qBAAwBP,EAAWD,GAA0B,IAAAS,EACzDC,EAAgBziB,SAASuF,eAAe,2BACxCmd,EAAqB,GACrBC,EAAoB3iB,SAASC,cAAc,uBAC3C2iB,EAAeH,aAAa,EAAbA,EAAexiB,cAAc,sBAC5C4iB,EAAgBJ,aAAa,EAAbA,EAAexiB,cAAc,+BAC7C6iB,EACwB,QADdN,EAAGxiB,SACduF,eAAe,kBAAU,IAAAid,OAAA,EADXA,EAEbjiB,iBAAiB,0EAEjBwiB,EAAkB,SAAlBA,gBAAmBD,EAAYE,GACjCF,WAAYriB,SAAQ,SAAAwiB,GAChB,IAAMC,EAAaD,aAAK,EAALA,EAAOE,uBACtBD,GAAcA,EAAWlkB,UAAUqF,SAAS,WAC5C4e,EAAMthB,aACF,WACCqhB,IAAiBE,EAAWlkB,UAAUqF,SAAS,UAAa6e,EAAWlkB,UAAUqF,SAAS,SACrF,IACA,MAGN6e,EAAWlkB,UAAUqF,SAAS,UAC9Bqe,EAAmB5Q,KAAKmR,OAIpCN,WAAmBhhB,aAAa,WAAY,MAGhDohB,EAAgBD,GAChBJ,WAAoB5Q,KAAK6Q,EAAmBC,EAAcC,GAE1D,IAAMO,EAAgBrB,aAAqB,EAArBA,EAAuB9hB,cAAc,iBAErDojB,EAAe,SAAfA,aAAeje,GACjB,GAAkB,QAAdA,EAAMlE,IAAe,KAAAoiB,EACrBle,EAAMb,iBAEN,IACIgf,GADmBb,aAAkB,EAAlBA,EAAoBc,WAAU,SAAArf,GAAO,OAAInE,SAAS4T,gBAAkBzP,OACvDiB,EAAMqe,UAAY,EAAI,GAEtDF,EAAc,EACdA,GAAcb,aAAkB,EAAlBA,EAAoBliB,QAAS,EACpC+iB,IAAeb,aAAkB,EAAlBA,EAAoBliB,UAC1C+iB,EAAc,GAEa,QAA/BD,EAAAZ,EAAmBa,UAAY,IAAAD,GAA/BA,EAAiCxe,YACZ,QAAdM,EAAMlE,MACb6hB,EAAgBD,EAAY,GAC5B9iB,SAAS0jB,oBAAoB,UAAWL,KAIhDD,WAAe/hB,iBAAiB,SAAS,WACrCrB,SAASqB,iBAAiB,UAAWgiB,MA2BrCd,CAAqBP,EAAWD,KAIxCzf,EAAEqC,QAAQgf,MAAK,WACX,IAAIC,EAAmBthB,EAAE,4CACnBuhB,EAAY7jB,SAASuF,eAAe,WACtCjD,EAAE,uCAAuCuL,SAAS,UAClDzN,GAAG8L,UAAUhH,GAAGmH,OAAOC,OAAOsX,GAG9BC,GACAhC,Q,kBCtJRvf,EAAEtC,UAAU2U,OAAM,WACd,IAGImP,EAHAC,EAAU,GACVzR,EAAQ,GAIZhQ,EAAE,kDAAkD4C,GAAG,UAAU,SAAUrB,GACvEvB,EAAE,kCAAkCiH,KAAK,WAAW,GACpDjH,EAAEzB,MAAM0I,KAAK,WAAW,GAExBwa,EAAUzhB,EAAEzB,MAAM6M,QAAQ,eAAe,GAAGsW,UAC5C1R,EAAQhQ,EAAE,mBAAmBqL,KAAK,QACtB2E,EAAM3E,KAAK,iBACb2U,OAAO,uBAAyByB,EAAU,aAIxDzhB,EAAE,oBAAoB2hB,QAAO,WACzBtf,OAAOuB,SAASE,KAAO9D,EAAEzB,MAAMkT,UAgDnC+P,EAAgBxhB,EAAE,iBACA9B,OAAS,GA9C3B,SAAS0jB,SAASC,GACd,IACIC,EAASD,EAAWxW,KAAK,qBACzB0W,EAAMD,EAAOzW,KAAK,YAClB2W,EAAQ,GACRC,EAAW,EACXrO,EAAO,KAEPmO,EAAI7jB,OAPS,IASb4jB,EAAOtW,SAAS,YAChBwW,EACI,0LAIJF,EAAO9B,OAAOgC,GAEdC,EAAW,EACXF,EAAItP,MAAK,SAAUkH,GACf,IAAIuI,EAAcC,SAASxI,EAnBlB,GAmBwC,EAGjD3Z,EAAEzB,MAAM0I,KAAK,YAAaib,GAEtBA,EAAcD,IACdrO,EACI,qCACAsO,EACA,YACAA,EACA,KACAA,EACA,YACJJ,EAAOzW,KAAK,gBAAgB2U,OAAOpM,GACnCqO,EAAWC,MAInBpkB,GAAGkkB,MAAMI,OAASpiB,EAAE,aACpBlC,GAAGkkB,MAAMK,OAASriB,EAAE,aACpBlC,GAAGkkB,MAAMla,QAMb8Z,CAASJ,GAGb,IAAMc,EAAU5kB,SAASC,cAAc,4BACnC2kB,IACAA,EAAQjjB,aAAa,WAAY,MACjCijB,EAAQ9f,a,iCC1EhB,OAEA1E,GAAGykB,MAAM9R,MAAQ,YAEjB3S,GAAGykB,MAAM3f,GAAG4f,WAAa,SAAUrO,KACnCrW,GAAGykB,MAAM3f,GAAG6f,WAAa,SAAUtO,KAInCrW,GAAGykB,MAAM3f,GAAGC,KAAO,SAAUtB,GACzB,IAAMmhB,EAAQ1iB,EAAE,QACZ2iB,EAAgB3iB,EAAEuB,EAAE9B,QAAQuC,QAAQ,YAAY9D,OAM9C0kB,EAAe5iB,EAAE6iB,MAAM,eAE7B,GADA7iB,EAAEtC,UAAU8U,QAAQoQ,EAAc,CAAC9kB,GAAGykB,SAClCK,EAAaE,qBAAjB,CAUA,QANiB,IAANvhB,GAAqBvB,EAAE,YAAYuL,SAAS,cAC9CoX,IACD7kB,GAAGykB,MAAMQ,MAAO,IAIpBjlB,GAAGykB,MAAMQ,KAAM,CACfjlB,GAAGykB,MAAM1R,gBACT/S,GAAGykB,MAAMS,WAAWngB,OAAOsO,YAAY,YAEvCrT,GAAGykB,MAAMU,QAAS,EAEW,IAAzBnlB,GAAGykB,MAAMW,aACTplB,GAAGykB,MAAMU,QAAS,EAClBnlB,GAAGykB,MAAMY,UAAYrlB,GAAGykB,MAAMa,UAAUC,SAAS,sBAEjDvlB,GAAGykB,MAAMY,UAAYnjB,EAAE,YAAclC,GAAGykB,MAAMW,aAElDplB,GAAGykB,MAAM3f,GAAG4f,WAAW1kB,GAAGykB,MAAMY,WAEhC,IAAIG,EAAiBtjB,EAAElC,GAAGykB,MAAMY,UAAUlc,KAAK,oBAC1Cqc,IACDA,EAAiBZ,GAGrB,IAAMa,EAAQzlB,GAAGykB,MAAMa,UAAU/X,KAAK,QAAQnN,OAAS,EAIvD,GAFAJ,GAAGykB,MAAM3f,GAAG4gB,2BAERD,EAAO,CACP,IAAME,EAAmBzjB,EAAE,0BAC3ByjB,EAAiBzD,OAAOliB,GAAGykB,MAAMY,UAAU1X,QAC3CgY,EAAiBpY,KAAK,cAAcoH,MAAK,WACrC3U,GAAG4lB,IAAI9gB,GAAG+gB,YAAY3jB,EAAEzB,cAEzB,CAKH,GAJIT,GAAGykB,MAAMY,UAAU9X,KAAK,qBAAqBnN,QAC7CJ,GAAGykB,MAAMY,UAAU9X,KAAK,qBAAqBlM,SAG1B,SAAnBrB,GAAGykB,MAAMqB,MACT,GAAI9lB,GAAGykB,MAAMU,QAAUnlB,GAAGykB,MAAMsB,MAAO,CACnC,IAAMC,EAA6B9jB,EAAE,8BACrC8jB,EAA2BC,MAAMjmB,GAAGykB,MAAMY,UAAU1X,QACpDqY,EAA2B3kB,aACxB,CACH,IAAM6kB,EAAuBhkB,EAAE,wBAC/BgkB,EAAqBD,MAAMjmB,GAAGykB,MAAMY,UAAU1X,QAC9CuY,EAAqB7kB,cAGrBrB,GAAGykB,MAAMU,QAAUnlB,GAAGykB,MAAMsB,OAC5B7jB,EAAE,6BAA8BsjB,GAAgBS,MAAMjmB,GAAGykB,MAAMY,UAAU1X,QACzEzL,EAAE,6BAA8BsjB,GAAgBnkB,WAEhDa,EAAE,uBAAwBsjB,GAAgBS,MAAMjmB,GAAGykB,MAAMY,UAAU1X,QACnEzL,EAAE,uBAAwBsjB,GAAgBnkB,UAGlDrB,GAAGykB,MAAM3f,GAAG6f,WAAWa,GAM3B,GAHAxlB,GAAGykB,MAAM0B,QAAQC,OAAOpmB,GAAGykB,MAAMW,YAAa,GAC9CplB,GAAGykB,MAAMS,WAAWvX,KAAK3N,GAAGykB,MAAM0B,QAAQnmB,GAAGykB,MAAMW,YAAc,IAE7DplB,GAAGykB,MAAMU,OACTnlB,GAAGykB,MAAMW,cACTplB,GAAGykB,MAAM3f,GAAGuhB,aACRrmB,GAAGykB,MAAMsB,OACT/lB,GAAGykB,MAAMY,UAAUhkB,SAEvBrB,GAAGykB,MAAMY,UAAYnjB,EAAE,YAAclC,GAAGykB,MAAMW,aACjB,IAAzBplB,GAAGykB,MAAMW,cACTplB,GAAGykB,MAAMY,UAAYrlB,GAAGykB,MAAMa,UAAUC,SAAS,0BAElD,CACHvlB,GAAGykB,MAAMW,YAAc,EACvBljB,EAAE,cAAcmR,YAAY,eAC5BuR,EAAMvR,YAAY,+BAA+BhK,WAAW,eAC5D,IAAMid,EAAWpkB,EAAE,YACfokB,EAASlmB,QACTkmB,EAASjT,YAAY,SAGzBrT,GAAGykB,MAAM3f,GAAGuhB,aACZrmB,GAAGykB,MAAMa,UAAUjS,YAAY,YAQnC,GANArT,GAAGykB,MAAMS,WAAWvN,OAAOjK,SAAS,YAEpC1N,GAAGykB,MAAM8B,UAAY,OACrBvmB,GAAGykB,MAAM+B,eACTxmB,GAAGykB,MAAM3f,GAAG2hB,eAAehjB,GAEvBzD,GAAGykB,MAAMa,UAAU7X,SAAS,iBAAkB,CAC9C,KAAOzN,GAAGykB,MAAMW,YAAc,GAC1BplB,GAAGykB,MAAMW,cACTplB,GAAGykB,MAAM3f,GAAGC,KAAKtB,QAIJ,IAANA,IACNvB,EAAEuB,EAAE9B,QAAQ8L,SAAS,kBAAoBvL,EAAEuB,EAAEO,eAAeyJ,SAAS,mBAC7C,IAAzBzN,GAAGykB,MAAMW,aAETplB,GAAGykB,MAAM3f,GAAG4hB,IAAIjjB,GAInBohB,QAAgC,IAANphB,GAAqBvB,EAAEuB,EAAE9B,QAAQuC,QAAQ,cAAc9D,QAClFJ,GAAGykB,MAAM3f,GAAG4hB,IAAIjjB,GAGpBzD,GAAGykB,MAAMrQ,mBAMY,oBAAduS,gBAAyD,IAArBA,UAAUC,QACrDD,UAAUC,SAASC,UAIvB,IAAMC,EAAa5kB,EAAE6iB,MAAM,gBAC3B7iB,EAAEtC,UAAU8U,QAAQoS,EAAY,CAAC9mB,GAAGykB,UAGxCzkB,GAAGykB,MAAMsC,uBAAyB,WAC9B/mB,GAAGykB,MAAMuC,OAAS,iPAAHlnB,OAKSE,GAAGykB,MAAM8B,UAAS,mLAQ1CvmB,GAAGykB,MAAMa,UAAYpjB,EAAElC,GAAGykB,MAAMuC,QAEhC,IAAMpC,EAAQ1iB,EAAE,QACZ+kB,EAAQ/kB,EAAE,QAEV+kB,EAAM7mB,OAAS,EAAG6mB,EAAM/E,OAAOliB,GAAGykB,MAAMa,WACvCV,EAAM1C,OAAOliB,GAAGykB,MAAMa,YAG/BtlB,GAAGykB,MAAMxZ,QAAU,WACf,IAAM2Z,EAAQ1iB,EAAE,QAEhB0iB,EAAM9f,GAAG,QAAS,iBAAiB,SAAUrB,GACzC,IAAIA,EAAEO,cAAcS,aAAa,QAAQkR,SAAS,KAAlD,CAGI3V,GAAGykB,MAAMvb,UACThH,EAAEzB,MAAMiN,SAAS,gBAErB,IAAMQ,EAAQhM,EAAEzB,MAEhB,GAAIT,GAAGykB,MAAMyC,SAAWlnB,GAAGykB,MAAMvb,SAG7B,OAFAzF,EAAEwK,2BACF/L,EAAEzB,MAAMimB,IAAI,UACL,EAIX,GAFA1mB,GAAGykB,MAAMyC,SAAU,EAEfhlB,EAAEzB,MAAMgN,SAAS,WAGjB,OAFAhK,EAAEW,uBACFX,EAAEU,iBAIFjC,EAAEzB,MAAMgN,SAAS,kBACjBhK,EAAEW,kBACFX,EAAEU,iBACFnE,GAAGykB,MAAM1R,gBACT/S,GAAGykB,MAAM0C,QAAUjlB,EAAEzB,MACrBT,GAAGykB,MAAMxb,QAAU/G,EAAElC,GAAGykB,MAAM0C,QAAQha,KAAK,iBAC3CnN,GAAGykB,MAAMQ,MAAO,EAEhB/W,EAAMhK,QAAQ,MAAMwJ,SAAS,aAAauF,WAAWI,YAAY,aAC7DnF,EAAMkF,GAAG,mBAAqBpT,GAAGgO,OAAOoZ,kBAAkBllB,EAAEzB,QAC5DyN,EAAMhK,QAAQ,uBAAuBwJ,SAAS,eAAehJ,QAC7DiB,YAAW,WACPuI,EAAMhK,QAAQ,iCAAiCmP,YAAY,eAC3DnR,EAAElC,GAAGgO,OAAOrM,QAAQ0R,YAAY,SAChCrT,GAAGykB,MAAM3f,GAAG6S,KAAKlU,KAClB,MAEHzD,GAAGykB,MAAM3f,GAAG6S,KAAKlU,QAI7BmhB,EAAM9f,GAAG,QAAS,kCAAkC,SAAUrB,GAC1D,IAAKA,EAAE9B,OAAOuC,QAAQ,mCAAoC,CACtD,IAAMgK,EAAQhM,EAAEzB,MAEZyB,EAAE,cAAc9B,SAAW8N,EAAMT,SAAS,aACzCvL,EAAE,kCAAkCuL,SAAS,aAC1CvL,EAAE,kCAAkCwS,QAAQ,SAChD/O,YAAW,WACPzD,EAAE,cAAcqL,KAAK,KAAK8Z,GAAG,GAAG3iB,UACjC,MACIxC,EAAE,kBAAkB9B,QAC3BuF,YAAW,WACPzD,EAAE,kBAAkBwC,UACrB,KAEPwJ,EAAMmF,YAAY,WAElBrT,GAAGykB,MAAMQ,MAAO,EAChBjlB,GAAGykB,MAAM3f,GAAGC,KAAKtB,QAK7BzD,GAAGykB,MAAM3f,GAAGwiB,oBAAsB,WAC9B,IACIC,EADgBrlB,EAAE,kBACUiH,KAAK,QACjCqe,EAActlB,EAAE,GAADpC,OAAIynB,IAEvB,GAAIvnB,GAAGynB,IAAIve,UAAYlJ,GAAGynB,IAAIve,SAAS,GAAI,CACvC,IAAMwe,EAAexlB,EAAE,qBACvBlC,GAAGynB,IAAIE,QAAQC,OAAOF,EAAcF,M,iCCzP5C,IAGQK,EAHR,QAGQA,EAAS7nB,GAAG6nB,QAETC,IAAIC,wBAA0B,WACjC,IAAIC,EAAiB9lB,EAAE,uBAAuB+lB,cAK9C,OAHKD,IACDA,EAAiB,GAEdA,GAGXH,EAAOK,IAAIvZ,OAAS,SAAUgF,EAAKwU,GAC/B,IACIC,EADa7jB,OAAO8jB,YACQnmB,EAAEqC,QAAQ0jB,cACtCK,EAAepmB,EAAE,gBAAgB+lB,cACjCM,EAAYrmB,EAAEtC,UAAUqoB,cAAgBK,EAExCE,EAAS,GAETJ,GAAgBG,GAEhB5U,EAAMyU,EAAeG,EACrBV,EAAOY,UAAYN,EAAiBxU,EACpC6U,EAAS,CACL7Z,OAAQkZ,EAAOY,YAGnBD,EAAS,CACL7Z,OAAQwZ,GAGhBN,EAAOa,MAAMb,EAAOc,OAAQH,GAE5B,IAAII,EAAUf,EAAOC,IAAIC,0BAErB7lB,EAAE,qBAAqB+lB,cAAgB/lB,EAAEqC,QAAQ0jB,gBAC5CjoB,GAAG8L,UAAU+c,oBACd3mB,EAAE,qBAAqByM,OAAOzM,EAAEqC,QAAQ0jB,cAAgBW,IAI5D1mB,EAAE,mBAAmB9B,QACrB8B,EAAE,mBAAmByS,MAAK,WACtB,IAAImU,EAAuB5mB,EAAEzB,MAC7BqoB,EAAqB3mB,IAAI,CACrBmU,SAAU,SACV,iBAAkB,KAEtB,IAAIyS,EAAmB7mB,EAAEqC,QAAQkD,YAAcmhB,EAC3CI,EAAgB9mB,EAAEqC,QAAQ0jB,cAAgBW,EAC1CK,EAAqBD,EAErBF,EAAqBvb,KAAK,aAAanN,SACvC6oB,GAAsBH,EAAqBvb,KAAK,aAAa0a,eAG7DG,GAAgBG,GAEhB5U,EAAMyU,EAAeG,EACrBO,EAAqB3mB,IAAI,SAAU6mB,EAAgBrV,GACnDzR,EAAE,kBAAkBC,IAAI,SAAU8mB,EAAqBtV,KAEvDmV,EAAqB3mB,IAAI,SAAU6mB,GACnC9mB,EAAE,kBAAkBC,IAAI,SAAU8mB,IAGlCF,GAAoBD,EAAqBI,SAAS3hB,MAClDrF,EAAE,mBAAmBC,IAAI,iBAAkB6mB,GAC3CF,EAAqB3mB,IAAI,CACrBmU,SAAU,QACV/O,IAAKqhB,U,iCCzE7B,IAIQO,EAJR,OAIQA,EAAU,CACVC,SAAU,KACVC,OAAQnnB,EAAE,qCACVyQ,MAAO,YACPzJ,UAAU,EACVogB,eAAgB,KAChBC,aAAc,EACdC,aAAa,EACbC,MAAM,EACNC,UAAW9pB,SAASC,cAAc,mBAElCmK,KAAM,SAANA,OACImf,EAAQxW,MAAQ,YAEhBwW,EAAQG,eAAiBpnB,EAAE,YAC3BinB,EAAQK,YAAcL,EAAQG,eAAe7b,SAAS,aACtD0b,EAAQrB,IAAIsB,WACZD,EAAQQ,KAAKP,WACRD,EAAQO,WACTP,EAAQle,UAEZke,EAAQS,qBAEZ3e,QAAS,SAATA,UACQ/I,EAAE,iBAAiB9B,SACnB+oB,EAAQxW,MAAQ,aAGpBzQ,EAAEtC,UAAUkF,GAAGqkB,EAAQxW,MAAQ,OAAO,WAElCzQ,EAAE,YAAYwL,SAAS,gBAEvByb,EAAQjgB,UAAW,EAEfhH,EAAE,iDAAiD9B,OAAS,GAC5D8B,EAAE,8BAA8BwL,SAAS,mBAIjDxL,EAAEtC,UAAUkF,GAAGqkB,EAAQxW,MAAQ,QAAQ,WAEnCzQ,EAAE,YAAYmR,YAAY,gBAC1BnR,EAAE,8BAA8BmR,YAAY,gBAC5CnR,EAAEtC,UAAU8U,QAAQ,0BACpByU,EAAQjgB,UAAW,OACU,IAAlBlJ,GAAG8c,YACV9c,GAAG8c,WAAW+M,YAI1BD,kBAAmB,SAAnBA,oBACI,IAAIE,EAAelqB,SAASC,cAAc,sCACtCiqB,GACAA,EAAalrB,UAAUyC,OAAO,kBAGtCymB,IAAK,CACDsB,SAAU,SAAVA,WACID,EAAQC,SAAWlnB,EACf,sFAIZynB,KAAM,CACFP,SAAU,SAAVA,WACI,GAAIlnB,EAAE,sBAAsB9B,QAAUJ,GAAGmpB,QAAQC,SAAShpB,OAAS,EAAG,CAClE8B,EAAE,sBAAsBmR,YAAY,UACpC,IAAM0W,EAAK7nB,EAAE,qCAAqC8nB,SAAShqB,GAAGmpB,QAAQE,QACtErpB,GAAGmpB,QAAQC,SAASzU,MAAK,WACrB,IAAMzG,EAAQhM,EAAEzB,MAAMqlB,QAChBmE,EAAK/nB,EAAE,SAAS8nB,SAASD,GACzBG,EAAYhc,EAAM/E,KAAK,MACzBqP,EAAOtW,EAAE,8BACRiH,KAAK,OAAQ,IAAM+gB,GACnBF,SAASC,GACTnlB,GAAG,aAAa,SAAUrB,GACvBA,EAAEU,oBAEV+J,EAAMX,KAAK,qBAAqBlM,SAChC6M,EAAM,GAAGrO,cAAc,QACjBqC,EAAE,WAAWyL,KAAKO,EAAMP,QAAQqc,SAASxR,GACzCtW,EAAE,WAAWgL,KAAKgB,EAAMhB,QAAQ8c,SAASxR,WAGnDtW,EAAE,sBAAsBb,SAGxBa,EAAE,yBAAyB9B,QAC3B8B,EAAE,qCAAqCggB,OACnC,wJAMpBliB,GAAGmpB,QAAUA,G,iCCnGjB,IAGUgB,EAHV,OAGUA,EAAgB,CAClBxX,MAAO,YACPyX,iBAAkBloB,EAAE,YACpBmoB,aAAc,EACdZ,MAAM,EAENzf,KAAM,SAANA,OACImgB,EAAclf,WAElBA,QAAS,SAATA,UACI/I,EAAEtC,UAAUkF,GAAGqlB,EAAcxX,MAAQ,OAAO,WAExCwX,EAAcG,OAAOhU,cAGzBpU,EAAEtC,UAAUkF,GAAGqlB,EAAcxX,MAAQ,QAAQ,WAEzCwX,EAAcG,OAAOhU,eAG7BiT,aAAc,SAAdA,eACIrnB,EAAE,eAAeyM,UAErB2b,OAAQ,CACJhU,SAAU,SAAVA,WACI6T,EAAcC,iBAAiBjoB,IAAI,CAACoF,IAAK4iB,EAAcZ,oBAInEvpB,GAAGmqB,cAAgBA,G,iCChCvB,cAGAnqB,GAAG6nB,OAAO0C,IAAM,WACRvqB,GAAG6nB,OAAO/N,SAAS5V,QAAQ,eAAe9D,QAC1CJ,GAAG6nB,OAAO/N,SAAS3X,IAAI,CACnBqoB,OAAQtoB,EAAEtC,UAAU4W,QAAUtU,EAAE,cAAcsU,SAAW,EAAI,IAC7D9O,KAAM,SAId,IAAI+iB,EAAkBvoB,EAAE,eAAeqL,KAAK,eAExCmd,EAAmBxoB,EAAE,eAAe+lB,cACpC0C,EAAiB,EACjBC,EAAY1oB,EAAE,uBAEd0oB,EAAUxqB,SACVuqB,EAAiBC,EAAU3C,eAG/B,IAAI4C,EAAcF,EAAiBD,EAEnCD,EAAgBtoB,IAAI,MAAO0oB,K,kQCf/B,EA8DI,iB,MAAA,OA5DU,KAAAC,UAAqB,2DACxB,KAAAC,OAAyB,CACxBC,MAAO,CACFC,eAAe,EACfC,MAAO,KAEZC,QAAS,CACRC,kBAAkB,EAClBC,KAAM,CACJC,QAAQ,EACRC,SAAS,GAEXC,YAAa,CACX3Q,SAAU,CACR4Q,cAAc,EACdC,aAAa,EACbC,UAAU,MAKhB,KAAAC,cAAsB,wNAQ7B,KAAAnsB,SAAW,CACPosB,aAAcjsB,SAASC,cAAc,kBACrCisB,KAAMlsB,SAASksB,KACfC,WAAYnsB,SAASgI,cAAc,UACnCokB,cAAepsB,SAASgI,cAAc,UACtCqkB,eAAgBrsB,SAASgI,cAAc,UACvCskB,YAAmE,QAAtD,EAAAtsB,SAASC,cAAc,uCAA+B,eAAE4E,aAAa,WAClF0nB,aAAsE,QAAxD,EAAAvsB,SAASC,cAAc,yCAAiC,eAAE4E,aAAa,WACrF2nB,WAAiE,QAAtD,EAAAxsB,SAASC,cAAc,uCAA+B,eAAE4E,aAAa,YAG5E,KAAA4nB,UAAY,WAChB,IACS9nB,OAAe+nB,OAChB,EAAK7sB,SAASusB,cAAc9jB,UAAY,oBAAoBwX,KAAKmB,UAAU,EAAKkK,QAChF,EAAKtrB,SAASwsB,eAAe/jB,UAAY,4BAA4B,EAAK0jB,gBAE1E,EAAKnsB,SAASusB,cAAc9e,KAAO,oBAAoBwS,KAAKmB,UAAU,EAAKkK,QAC3E,EAAKtrB,SAASwsB,eAAe/e,KAAO,4BAA4B,EAAK0e,eAEzE,EAAKnsB,SAASqsB,KAAKplB,YAAY,EAAKjH,SAASusB,eAC7C,EAAKvsB,SAASqsB,KAAKplB,YAAY,EAAKjH,SAASwsB,gBAC7C,EAAKxsB,SAASssB,WAAWnoB,KAAO,kBAChC,EAAKnE,SAASssB,WAAWQ,OAAQ,EACjC,EAAK9sB,SAASssB,WAAWS,IAAM,EAAKA,IACpC,EAAK/sB,SAASqsB,KAAKplB,YAAY,EAAKjH,SAASssB,YAC/C,MAAOtb,GACL0P,QAAQ1P,MAAM,gDAAiDA,KAKjC,MAA9BhQ,KAAKhB,SAASysB,aACdzrB,KAAK+rB,IAAU/rB,KAAKqqB,UAALrqB,8DACfA,KAAKsqB,OAAS,SAAH,YACJtqB,KAAKsqB,QAAM,CACdC,MAAK,qBACEvqB,KAAKsqB,OAAOC,OAAK,CACpByB,QAAahsB,KAAKqqB,UAALrqB,uDAKrBA,KAAK+rB,IAAU/rB,KAAKqqB,UAALrqB,kEAGe,SAA/BA,KAAKhB,SAAS0sB,cAA0D,OAA/B1rB,KAAKhB,SAASosB,eACtDprB,KAAKsqB,OAAS,SAAH,YACJtqB,KAAKsqB,QAAM,CACd/c,OAAQ,SAAF,YACCvN,KAAKsqB,OAAO/c,QAAM,CACrBuV,KAAM,CAAC,gBAIc,SAA7B9iB,KAAKhB,SAAS2sB,YACd3rB,KAAK4rB,a","file":"js/lazy-imports-9e73363c1b24072ba0c8.js","sourcesContent":["import 'ui-core/widgets/table-of-content/js/table-of-content';\nexport default class TableOfContent {\n classList = {\n hidden: 'hidden',\n };\n\n selectors = {\n menuBookTab: '.menuBook--tab',\n authorBio: '#authorBio',\n bookReviews: '#bookReviews',\n abstractPreviewZoom: '.abstract-preview__zoom',\n abstractLastFocus: '[data-lastFocus]',\n readCubeSharing: '.readCube-sharing',\n shareCtrl: '.share__ctrl',\n shareAccessCtrl: '.share-access__ctrl',\n dropBlockHolder: '.dropBlock__holder',\n tocAbstractPreview: '.table-of-content .abstract-preview',\n };\n\n elements = {\n menuBookTab: null,\n abstractPreviewZoom: null,\n readCubeSharing: null,\n shareCtrl: null,\n tocAbstractPreview: null,\n };\n\n constructor() {\n this.setElements();\n this.eventListeners();\n this.onReady();\n this.onLoad();\n }\n\n setElements() {\n this.elements.menuBookTab = document.querySelector(this.selectors.menuBookTab);\n this.elements.abstractPreviewZoom = UX.utils.convertToArray(\n document.querySelectorAll(this.selectors.abstractPreviewZoom)\n );\n this.elements.readCubeSharing = document.querySelector(this.selectors.readCubeSharing);\n this.elements.shareCtrl = document.querySelector(this.selectors.shareCtrl);\n this.elements.tocAbstractPreview = UX.utils.convertToArray(\n document.querySelectorAll(this.selectors.tocAbstractPreview)\n );\n }\n\n eventListeners() {\n // @todo: Replace jquery fancybox with another js plugin, so we can git rid of jquery code.\n if (UX.fancybox) {\n UX.fancybox(this.elements.abstractPreviewZoom);\n document.addEventListener('keydown', UX.fancyboxClose);\n }\n }\n\n onReady() {\n this.checkMenuItem(this.selectors.authorBio);\n this.checkMenuItem(this.selectors.bookReviews);\n\n if (this.elements.menuBookTab) {\n const menuBookTabFirstItem = this.elements.menuBookTab.querySelector('li:first-child a');\n menuBookTabFirstItem.click();\n }\n\n if (this.elements.readCubeSharing && this.elements.shareCtrl) {\n const parentEl = this.elements.shareCtrl.parentElement,\n shareAccessCtrl = parentEl?.querySelector(this.selectors.shareAccessCtrl),\n dropBlockHolder = parentEl?.querySelector(this.selectors.dropBlockHolder);\n\n this.elements.shareCtrl.classList.remove(this.classList.remove);\n shareAccessCtrl?.classList.add(this.classList.remove);\n dropBlockHolder?.setAttribute('aria-labelledby', 'share__ctrl');\n }\n }\n\n onLoad() {\n if (this.elements.tocAbstractPreview.length) {\n UX.utils.changeImageWidthOnLoad(this.selectors.tocAbstractPreview, 1.75);\n }\n UX.utils.fallbackImageViewer();\n }\n\n checkMenuItem = id => {\n const target = document.querySelector(`${id}-pane`);\n if (!target) {\n const targetEl = UX.utils.convertToArray(document.querySelectorAll(id));\n if (targetEl.length) {\n targetEl.forEach(item => {\n const parentEl = item?.parentElement;\n parentEl.removeChild(item);\n });\n }\n }\n };\n}\n","import 'ui-core/plugins/stickyElements/js/stickyElements';\n\n(function (UX) {\n var observer = null,\n target = null;\n\n UX.stickyElements.selectors['header'] = '.pageHeader';\n\n if (UX.test.isIE()) {\n observer = new MutationObserver(function (mutations) {\n mutations.forEach(function (mutationRecord) {\n if ($(mutationRecord.target).css('position') === 'absolute') {\n $(mutationRecord.target).css('top', '0');\n }\n });\n });\n\n target = document.querySelector('.article-row-right');\n\n if (target) {\n observer.observe(target, {attributes: true, attributeFilter: ['style']});\n }\n }\n})(UX);\n","import {\n ComponentObject,\n ComponentSelectors,\n ComponentElements,\n ComponentService,\n ComponentInjector,\n ComponentSelector,\n UIComponent,\n Inject,\n Injectable,\n} from '@atypon/ui-utils';\nimport {keyCodes} from '../../../utility/js/utils'\n\nimport { VPortListener } from \"ui-core/plugins/enquireJs/js/helper\"\n\ninterface FootnoteComponents {\n noteContainer: HTMLElement | null;\n chevronDown: HTMLElement | null;\n noteClose: HTMLElement | null;\n}\n\n@Injectable()\nclass Configs {\n notePopup(content: string): string {\n return `\n
${content}
\n ` };\n\n}\n\nclass Texts extends ComponentObject { }\n\nclass ClassList extends ComponentObject {\n accordionControl = '.accordion__control';\n jsOpen = 'js--open';\n citedByArticleSection = '.article-section__citedBy';\n}\n\nclass Selectors extends ComponentSelectors {\n supportInfo = new ComponentSelector(\"a[href$='#support-information-section']\", \"document\");\n supportInfoControl = new ComponentSelector('.article-section__supporting a.accordion__control', \"document\");\n openResearch = new ComponentSelector(\"a[href$='#open-research-section']\", \"document\");\n openResearchControl = new ComponentSelector('.article-section__open-research a.accordion__control', \"document\");\n links = new ComponentSelector('[data-db-target-of=sections] a, .scrollableLink, .scrollableLinks a, .comment-link a, .PdfLink a[href=\"#accessDenialLayout\"], .article-section__full a[href*=\"#\"], [href=\"#citedby-section\"]', 'document');\n\n}\n\nclass Elements extends ComponentElements {\n supportInfo: HTMLAnchorElement;\n supportInfoControl: HTMLAnchorElement;\n openResearch: HTMLAnchorElement;\n openResearchControl: HTMLAnchorElement;\n links: HTMLElement[] = []\n}\n\n\ninterface GoToSection extends ComponentService { }\n\n\n@ComponentInjector(Selectors, Elements, ClassList, Texts)\nclass GoToSection implements UIComponent {\n\n\n @Inject()\n protected configs: Configs;\n\n\n @VPortListener('md')\n isTablet = false;\n\n\n constructor(readonly wrapper: HTMLElement) { }\n\n initialize(): void {\n this.elements.initialize(this.wrapper);\n this.addEventListeners();\n }\n\n isTabletOn() {\n this.isTablet = true;\n }\n\n isTabletOff() {\n this.isTablet = false;\n }\n\n addEventListeners(): void {\n this.domUtils.addEventListener(this.elements.supportInfo, 'click', () => this.elements.supportInfoControl.click())\n\n this.domUtils.addEventListener(this.elements.openResearch, \"click\", () => this.elements.openResearchControl.click())\n\n this.domUtils.addEventListener(this.elements.links, \"click\", (e) => this.flowControl(e))\n\n this.domUtils.addEventListener(this.elements.links, \"keydown\", (e) => this.flowControl(e))\n\n this.domUtils.addEventListener(document, \"keydown\", (e: KeyboardEvent) => this.escapeKeyHandler(e))\n }\n\n flowControl(e):void{\n\n if(e.type === \"keydown\" && e.keyCode !== keyCodes.RETURN) return;\n\n const element = e.currentTarget as HTMLAnchorElement\n\n if (\n element.classList.contains('open-figure-link') ||\n element.classList.contains('bibLink') ||\n element.classList.contains('tab-link') ||\n element.closest('.accordion__control') ||\n element.closest('.figure__toggle-link')\n ) {\n return;\n } else {\n\n e.preventDefault();\n e.stopPropagation();\n this.domUtils.getElements(\"html , body\").forEach(e => e.classList.remove('lock-screen'))\n\n if (element.classList.contains('noteLink')) {\n this.openFootNote(element);\n window.addEventListener('resize', () => {\n this.openFootNote(element);\n });\n } else if (element.classList.contains('backToText')) {\n this.domUtils.getElement(element.getAttribute('href')).focus();\n } else if (\n element.classList.contains('goToText') ||\n element.closest('.article-header__references-container') ||\n element.getAttribute('href').indexOf('#accessDenialLayout') > -1\n ) {\n this.scrollToTarget(element, true);\n this.domUtils.getElement(element.getAttribute('href')).focus();\n } else {\n this.scrollToTarget(element, true);\n (window as any).UX.dropBlock.on.hide();\n if (this.isTablet) {\n this.domUtils.getElement('[data-db-target-of=sections]').click();\n this.domUtils.getElement('.w-slide__back').click();\n }\n }\n\n if (element.closest('.sections__drop.js--open')) {\n (window as any).UX.dropBlock.on.hide();\n }\n }\n }\n\n escapeKeyHandler(event: KeyboardEvent):void{\n if (event.key === \"Escape\") {\n this.domUtils.getElement(\".noteLink.scrollableLink\")?.setAttribute('aria-expanded', 'false')\n this.domUtils.getElement(\".noteLink.scrollableLink\")?.removeAttribute('aria-controls')\n this.domUtils.getElement(\".footNotePopup\")?.remove();\n }\n }\n\n scrollToTarget(element: HTMLAnchorElement, refID: boolean): void {\n let target = refID ? this.domUtils.getElementById(element.hash.slice(1)) : element;\n target = target ? target : this.domUtils.getElement('[name=\"' + element.hash.slice(1) + '\"]')\n const clickTarget = target?.closest(this.classList.accordionControl) as HTMLElement;\n if (clickTarget && target?.closest(this.classList.citedByArticleSection)) {\n const citedBySection = target?.closest(this.classList.citedByArticleSection) as HTMLElement,\n accordionControl = this.domUtils.getElement(this.classList.accordionControl, citedBySection)\n\n if (!accordionControl.classList.contains(this.classList.jsOpen)) {\n accordionControl.click();\n }\n } else if (\n clickTarget &&\n !clickTarget.classList.contains(this.classList.jsOpen)\n ) {\n clickTarget.click();\n }\n\n if (target) {\n \n target.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n target.setAttribute('tabindex', '0')\n setTimeout(() => {\n target.focus();\n }, 750)\n\n if (target.tagName !== 'a' && target.tagName !== 'button') {\n target.setAttribute('tabindex', '-1');\n }\n }\n else {\n this.redirectToExternalLink(element);\n }\n }\n\n redirectToExternalLink(element: HTMLAnchorElement): void {\n window.location.assign(element.href);\n }\n\n openFootNote(noteLink: HTMLElement): void {\n this.domUtils.getElements('.footNotePopup').forEach(note => note.remove());\n\n this.domUtils.getElements('.noteLink.scrollableLink').forEach(note => note.setAttribute('aria-expanded', 'false'));\n\n const { noteContainer, chevronDown, noteClose } = this.createFootNote(noteLink),\n parentTable = this.isNodeInsideNode(noteLink, 'TBODY'); // return the parent table if exist , otherwise return null\n if (parentTable instanceof HTMLElement) {\n parentTable.appendChild(noteContainer);\n } else {\n document.body.appendChild(noteContainer);\n }\n\n let noteHeight = noteContainer.offsetHeight,\n topOffset = 0,\n leftOffset = 0,\n leftOffsetToTheParent = 0,\n parentWidth = 0,\n parentHeight = 0;\n\n if (parentTable instanceof HTMLElement) {\n topOffset = noteLink.offsetTop;\n leftOffset = noteLink.offsetLeft;\n leftOffsetToTheParent = noteLink.offsetLeft - parentTable.offsetLeft;\n parentWidth = parentTable.offsetWidth;\n parentHeight = parentTable.offsetHeight;\n noteContainer.classList.add('insideTable');\n } else {\n topOffset = noteLink.getBoundingClientRect().top + document.documentElement.scrollTop;\n leftOffset = noteLink.getBoundingClientRect().left;\n leftOffsetToTheParent = noteLink.offsetLeft;\n parentWidth = noteLink.parentElement.offsetWidth;\n }\n\n if (this.isNodeInsideNode(noteLink, 'THEAD')) {\n chevronDown.classList.add('inverse');\n noteContainer.style.top = `${topOffset + 35}px`;\n noteContainer.classList.add('insideHead');\n } else {\n noteContainer.style.top = `${topOffset - noteHeight - 5}px`;\n }\n\n // to change the left & right direction based on the noteLink position\n if (parentWidth / 2 > leftOffsetToTheParent) {\n noteContainer.style.left = `${leftOffset + 2}px`;\n chevronDown.classList.add('left');\n } else {\n noteContainer.style.left = `${leftOffset - noteContainer.offsetWidth + 22}px`;\n chevronDown.classList.add('right');\n }\n\n // to change the up & down direction based on the noteLink position\n if (parentHeight / 2 > topOffset) {\n chevronDown.classList.add('inverse');\n noteContainer.style.top = `${topOffset + 35}px`;\n }\n\n noteClose.addEventListener('click', () => {\n noteLink.setAttribute('aria-expanded', 'false');\n noteLink.removeAttribute('aria-controls');\n noteContainer.remove();\n });\n }\n\n createFootNote(noteLink: HTMLElement): FootnoteComponents {\n const noteContainer: HTMLElement = document.createElement('div');\n noteContainer.classList.add(\"footNotePopup\");\n\n const noteID = noteLink.getAttribute('data-noteid'),\n controllerId = noteLink.getAttribute('id'),\n popupId = noteLink.getAttribute('href').substring(1), // to remove '#'\n noteContent = document.querySelector(`li#${noteID}`).innerHTML;\n\n noteContainer.innerHTML = this.configs.notePopup(noteContent);\n noteLink.setAttribute('aria-expanded', 'true');\n noteLink.setAttribute('aria-controls', popupId);\n noteContainer.setAttribute('id', popupId);\n noteContainer.setAttribute('aria-labelledby', controllerId);\n\n const chevronDown = this.domUtils.getElement('.chevronDown', noteContainer),\n noteClose = this.domUtils.getElement('.footNoteClose', noteContainer);\n\n return { noteContainer, chevronDown, noteClose };\n }\n\n // to determine if the notelink exist inside XYZ node or not because different styles going to be applied if yes.\n // return false if not , if true return the XYZ node itself .\n isNodeInsideNode(node: HTMLElement, parentNode: string): boolean | HTMLElement {\n if (node.tagName === parentNode) return node;\n return node.parentNode !== document.body && this.isNodeInsideNode(node.parentNode as HTMLElement, parentNode);\n }\n\n}\n\nexport default GoToSection;","import 'ui-core/components/drop-block/js/drop-block.js';\n\nconst dropBlock = UX.dropBlock;\n\ndropBlock.setFocus = function () {};\n\ndropBlock.additionalOnShow = () => {\n const userAgent = navigator.userAgent.toLowerCase(),\n isSafari = userAgent.indexOf('safari') !== -1;\n\n if (dropBlock.$target && !isSafari) {\n !UX.dropBlock.isMobile && dropBlock.$target.attr('tabindex', '-1');\n }\n};\n\ndropBlock.additionalOnHide = () => {\n if (dropBlock.$target) {\n !UX.dropBlock.isMobile && dropBlock.$target.removeAttr('tabindex');\n }\n};\n","export default class Citation {\n selectors = {\n authorName: '.author-name',\n authorInfo: '.author-info',\n authorJsOpen: '.author-name.accordion-tabbed__control.js--open',\n };\n\n elements = {\n authorsNames: null,\n authorsInfos: null,\n authorJsOpen: null,\n };\n\n variables = {\n viewPortWidth: 0,\n isDesktop: true,\n };\n\n constructor() {\n this.init();\n this.eventListeners();\n }\n\n setElements() {\n this.elements.authorsInfos = document.querySelectorAll(this.selectors.authorInfo);\n this.elements.authorsNames = document.querySelectorAll(this.selectors.authorName);\n this.elements.authorJsOpen = document.querySelector(this.selectors.authorJsOpen);\n }\n\n eventListeners() {\n window.addEventListener('resize', this.init);\n }\n\n init = () => {\n this.variables.viewPortWidth = window.innerWidth;\n\n this.setElements();\n this.checkIfDesktop();\n this.checkAuthorInfo();\n };\n\n checkIfDesktop() {\n if (this.variables.viewPortWidth <= 992) {\n this.variables.isDesktop = false;\n }\n }\n\n checkAuthorInfo = () => {\n // check if there is a popup opened from before and close it\n this.elements.authorJsOpen && this.elements.authorJsOpen.click();\n\n if (!this.variables.isDesktop) {\n this.elements.authorsNames?.forEach(author => {\n author.addEventListener('click', e => {\n let popup = author?.parentElement?.querySelector('.author-info'),\n authorHeight = author.offsetTop + author.offsetHeight + 2;\n\n popup?.setAttribute('style', `top: ${authorHeight}px`);\n\n if (e.x < this.variables.viewPortWidth / 2) {\n popup?.classList.add('left-zero');\n }\n });\n });\n }\n };\n}\n","(function () {\n let ERPAcceptance = {\n ERPForm: document.querySelector('.ERP-acceptance form'),\n submitBtn: document.querySelector('.ERP-acceptance .agree-submit'),\n checkBoxTandC: document.querySelectorAll('.ERP-acceptance .ERP-TandC'),\n checkboxContainer: document.querySelector('.ERP-acceptance .checkbox--primary'),\n errorContainer: document.querySelector('.ERP-acceptance .checkbox--primary span'),\n errorMsg: document.createElement('p'),\n\n init: function () {\n ERPAcceptance.control();\n },\n control: function () {\n if (window.location.search.split('redirectUri=').length > 1) {\n let redirectUriValue = ERPAcceptance.findGetParameter();\n let cancelHrefValue = '/action/doLogout?redirectUri=' + redirectUriValue;\n document\n .querySelector('.ERP-acceptance input[name=\"redirectUri\"]')\n .setAttribute('value', redirectUriValue);\n document.getElementById('cancelTandC').setAttribute('href', cancelHrefValue);\n }\n\n ERPAcceptance.submitBtn.addEventListener('click', e => {\n e.preventDefault();\n ERPAcceptance.on.submit();\n });\n\n ERPAcceptance.checkBoxTandC.forEach(element => {\n element.addEventListener('change', e => {\n const checkboxContainer = e.target.parentNode;\n const errorContainer = checkboxContainer.querySelector('span');\n checkboxContainer.classList.remove('error');\n errorContainer.classList.remove('error');\n\n const removeTermsErrMsg = checkboxContainer.querySelector('.invalid-feedback');\n\n if (removeTermsErrMsg) {\n checkboxContainer.removeChild(checkboxContainer.lastElementChild);\n }\n });\n });\n },\n on: {\n submit: function () {\n if (\n document.querySelector('.ERP-TandC:not(.optional , :checked )') === null &&\n (document.querySelector('.ERP-china') ? document.querySelector('.ERP-china:checked') : true)\n ) {\n document.querySelector('.ERP-acceptance form').submit();\n } else {\n const uncheckedBoxes = ERPAcceptance.ERPForm.querySelectorAll(\n 'input[type=\"checkbox\"]:not(:checked , .optional)'\n );\n\n uncheckedBoxes.forEach(checkbox => {\n const errorMessage = checkbox.parentNode.querySelector('.invalid-feedback');\n if (!errorMessage) {\n const errorMsg = document.createElement('p');\n const checkboxContainer = checkbox.parentNode;\n errorMsg.classList.add('invalid-feedback');\n errorMsg.textContent = 'You must accept to continue.';\n checkboxContainer.querySelector('span').classList.add('error');\n checkboxContainer.classList.add('error');\n checkboxContainer.appendChild(errorMsg);\n }\n });\n }\n },\n },\n findGetParameter: function () {\n let patt = /[&?]redirectUri=([^&?]+)/i;\n let uri = '/';\n\n if (patt.test(location.search)) uri = patt.exec(location.search)[1];\n\n return uri;\n },\n };\n UX.ERPAcceptance = ERPAcceptance;\n})();\n","import 'ui-core/components/accordion/js/accordion.js';\n\nUX.accordion.hideDropBlock = false;\nUX.accordion.additionalControls = function () {\n $('.accordion__control').on('keydown touchend', function (e) {\n if (e.type === 'keydown') {\n if (e.keyCode && e.keyCode !== 'Enter' && e.keyCode !== 32) return;\n e.keyCode === 32 && e.preventDefault();\n UX.accordion.on.toggle.single($(this));\n }\n });\n\n const citedByEl = document.querySelector('.article-section__citedBy');\n\n if (citedByEl) {\n const citedBySource = citedByEl.dataset.source,\n citedByAccordion = citedByEl.querySelector('.accordion__control'),\n getCitedByContent = () => {\n let toolTipInterval = null;\n const sciteMetricsDropzone = citedByEl.querySelectorAll(\n '.sciteMetricsDropzone, [data-pb-dropzone=\"sciteMetricsDropzone\"]'\n ),\n citedByContentInner = citedByEl.querySelector('.citedByContentInner'),\n spinner =\n '
loading citations
',\n toolTipChecker = () => {\n const sciteMetrics = citedByEl.querySelector('.scite-metrics .tooltip');\n if (sciteMetrics) {\n UX.tooltip.init();\n clearInterval(toolTipInterval);\n }\n };\n\n if (sciteMetricsDropzone.length) {\n toolTipInterval = setInterval(toolTipChecker, 500);\n }\n\n if (citedByContentInner && citedByContentInner.textContent === '') {\n citedByContentInner.innerHTML = spinner;\n fetch(citedBySource)\n .then(response => response.text())\n .then(data => {\n citedByContentInner.innerHTML = data;\n });\n }\n };\n\n citedByAccordion.addEventListener('click', getCitedByContent, {once: true});\n }\n\n $('.accordion').on('click', '[data-type=\"ajax\"]', function () {\n const $this = $(this),\n $content = $this.parents('.accordion').find('[data-ajax-content]'),\n ajaxData = $content.data('ajax-content'),\n spinner = '
';\n\n if (!$content.hasClass('js--loader')) {\n $content.addClass('js--loader').html(spinner);\n $.ajax(ajaxData, {\n success: function (data) {\n $content.html(data);\n },\n });\n }\n });\n\n $(document).on('keydown', '.subjects-container .accordion-tabbed__control', function (e) {\n if (e.code !== 'Space' && e.code !== 'Enter') return;\n e.preventDefault();\n UX.accordion.on.toggle.tabbed($(this));\n });\n\n $('.accordion__control.corrections-label[data-slide-target=\".corrections-body\"]').on('click', function (e) {\n if (!UX.loader.isMobile) return;\n e.stopImmediatePropagation();\n e.preventDefault();\n const $this = $(this);\n UX.accordion.on.toggle.single($this);\n });\n};\n\nUX.accordion.on.toggle.single = function ($this) {\n let $accordionContent = $this.parent().next('.accordion__content').length\n ? $this.parent().next('.accordion__content')\n : $this.next('.accordion__content'),\n $wrapper = $this.closest('.expandable-accordion'),\n state = !($this.attr('aria-expanded') === 'true');\n\n if (typeof $this.attr('data-content-target') !== 'undefined') {\n let contentTarget = $this.attr('data-content-target');\n $accordionContent = $(contentTarget);\n }\n\n $accordionContent.stop(true).slideToggle(200, function () {\n if ($this.parents().hasClass('article-accordion')) {\n $('.article-row-left').height('auto');\n UX.accordion.isStickyBody = state;\n }\n });\n\n $this.toggleClass('js--open');\n $this.attr('aria-expanded', state);\n if ($wrapper.length) UX.accordion.on.checkExpandAll($this, state, $wrapper);\n};\n","export default class LoginForm {\n selectors = {\n loginForm: '.login-form',\n messageError: '#login-error-message',\n inputGroupErrror: '.input-group .error',\n membership: '.membership-access-code .infoBox',\n userNameInput: '#username',\n loginInitiate: '[data-acdl-event=login-initiate],[data-acdl-event=registration-initiated]',\n individualUser: '.loginBar .individualUser',\n individualAccordion: '.accordion-tabbed__control',\n };\n\n elements = {\n loginForm: null,\n messageError: null,\n inputGroupErrror: null,\n membership: null,\n userNameInput: null,\n loginInitiate: null,\n individualUser: null,\n individualAccordion: null,\n };\n\n constructor() {\n this.setElements();\n this.checkErrors();\n this.eventListeners();\n this.loginSuccess();\n }\n\n setElements() {\n this.elements.membership = document.querySelector(this.selectors.membership);\n this.elements.messageError = document.querySelector(this.selectors.messageError);\n this.elements.loginInitiate = UX.utils.convertToArray(document.querySelectorAll(this.selectors.loginInitiate));\n this.elements.individualUser = document.querySelector(this.selectors.individualUser);\n this.elements.individualAccordion = document.querySelector(this.selectors.individualAccordion);\n\n if (this.elements.messageError) {\n this.elements.individualAccordion?.click();\n this.elements.loginForm = this.elements.messageError.closest(this.selectors.loginForm);\n this.elements.inputGroupErrror = this.elements.loginForm?.querySelector(this.selectors.inputGroupErrror);\n this.elements.userNameInput = this.elements.loginForm?.querySelector(this.selectors.userNameInput);\n }\n }\n\n eventListeners() {\n this.elements.loginInitiate?.forEach(button => {\n button.addEventListener('click', e => {\n localStorage.setItem('logInSubmit', true);\n });\n });\n }\n\n checkErrors() {\n if (this.elements.messageError && this.elements.inputGroupErrror && this.elements.membership) {\n this.elements.messageError.classList.add('hidden');\n } else if (this.elements.messageError) {\n const message = this.elements.messageError?.textContent.replaceAll('-', '').trim();\n window.adobeDataLayer && UX.adobeDigitalData.loginEvents.error(message);\n this.elements.userNameInput?.focus();\n }\n }\n\n loginSuccess() {\n if (localStorage.getItem('logInSubmit') && this.elements.individualUser) {\n window.adobeDataLayer && UX.adobeDigitalData.loginEvents.success();\n localStorage.removeItem('logInSubmit');\n } else if (localStorage.getItem('logInSubmit')) {\n localStorage.removeItem('logInSubmit');\n }\n }\n}\n","export default class Registration {\n selectors = {\n errMsg: '.registration span.message, .registration label.error span , .registration .captcha-form .error ',\n registrationSubmitted: '.registration-completed',\n registrationCompleted: '[registrationCompleted = true]',\n };\n\n elements = {\n errMsg: null,\n registrationSubmitted: null,\n registrationCompleted: null,\n };\n\n variables = {\n navigationEntries: window.performance.getEntriesByType('navigation'),\n };\n\n constructor() {\n this.init();\n }\n\n init() {\n this.setElements();\n this.eventListeners();\n this.RegistrationEvents();\n }\n\n setElements() {\n this.elements.errMsg = document.querySelectorAll(this.selectors.errMsg);\n this.elements.registrationSubmitted = document.querySelector(this.selectors.registrationSubmitted);\n this.elements.registrationCompleted = document.querySelector(this.selectors.registrationCompleted);\n }\n\n eventListeners() {\n this.elements.errMsg.length && window.addEventListener('load', this.errMsgsHandler);\n }\n\n errMsgsHandler = () => {\n let errMsgsArr = [];\n this.elements.errMsg.forEach(errMsg => {\n const firstPartOfTheMsg = errMsg.closest('label')?.textContent;\n const lastPartOfTheMsg = errMsg.textContent?.replaceAll('-', '').trim();\n const msg = `${firstPartOfTheMsg ? firstPartOfTheMsg : ''} ${lastPartOfTheMsg}`.replaceAll('*', '');\n errMsgsArr.push(msg);\n });\n const errMsg = errMsgsArr.toString().replaceAll(',', ' ');\n UX.utils.screenReaderSpeak(`Your registration cannot be completed. ${errMsg}`);\n\n if (window.adobeDataLayer) {\n const navigationEntries = window.performance.getEntriesByType('navigation');\n if (navigationEntries.length > 0 && navigationEntries[0].type === 'navigate') {\n UX.adobeDigitalData.registrationEvents.error(errMsgsArr.toString());\n }\n }\n };\n\n RegistrationEvents = () => {\n if (window.adobeDataLayer && this.elements.registrationSubmitted) {\n UX.adobeDigitalData.registrationEvents.submitted();\n }\n if (window.adobeDataLayer && this.elements.registrationCompleted) {\n UX.adobeDigitalData.registrationEvents.completed();\n }\n };\n}\n","//todo : refactor (LIT-499196)\nimport './quick-search-core';\nimport 'element-closest-polyfill';\nimport {keyCodes} from '../../../utility/js/utils';\n\nvar vPort = 'screen-md',\n $qSearch = null,\n $form = null,\n $allFieldInput = null,\n $sortByInput = null,\n href = null,\n $quickSearch = null,\n $qsW = null,\n disabledFields = null,\n actualQuickSearchInputEl = null,\n homePgaeActualQSInputEl = null,\n searchTypeDropdownEl = null;\n\nUX.quickSearch.vPort = 'screen-lg';\n\nUX.quickSearch.additionalController = function () {\n actualQuickSearchInputEl = document.querySelector('.quick-search-wrapper .actualQSInput');\n homePgaeActualQSInputEl = document.querySelector('.homepage-search-wrapper .actualQSInput');\n searchTypeDropdownEl = document.querySelector('.search-within');\n\n if (actualQuickSearchInputEl || homePgaeActualQSInputEl) {\n UX.quickSearch.handleQSAutocompleteA11Y();\n }\n\n if (!window.highlight) {\n window.highlight = function () {};\n }\n\n $(document).on(UX.quickSearch.vPort + '-on', function () {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n UX.quickSearch.isMobile = true;\n });\n\n $(document).on(UX.quickSearch.vPort + '-off', function () {\n // Waiting for custom event that will be triggered by controller.js to deactivate responsive effects\n UX.quickSearch.isMobile = false;\n });\n\n $(document).on('focus', '.quick-search:not(.quick-search--citation) input.fakeQSInput', function () {\n if (!$(this).closest('.expanded--quickSearch').length) {\n UX.quickSearch.addTransition();\n UX.quickSearch.open($(this));\n }\n });\n\n $(document).on('focus', '.quick-search:not(.quick-search--citation) input.actualQSInput', function (e) {\n var $qsW = $(this).closest('.quick-search');\n\n if (!$qsW.hasClass('open')) {\n if (!$(this).closest('.expanded--quickSearch').length) {\n UX.quickSearch.open($(this));\n }\n }\n });\n\n $(document).on('focus', '.expanded--quickSearch input.actualQSInput', function () {\n $(this).siblings('.search-options-wrapper').stop().slideDown(550);\n });\n\n $(document).on('click', function (e) {\n if (\n !$(e.target).closest('.main-search-field-wrapper, .search-options-wrapper').length &&\n !$('.header-quicksearch').hasClass('expanded--quickSearch') &&\n !$(e.target).hasClass('qsItem') &&\n !$(e.target).closest('.qsItem').length &&\n !$(e.target).closest('.qsaItem').length\n ) {\n UX.quickSearch.close();\n }\n });\n\n $(document).on(vPort + '-on', function () {\n $(document).on('touchstart', function (e) {\n if (\n !$(e.target).parents().is('.quickSearchFormContainer') &&\n !$(e.target).parents().is('.header-quicksearch') &&\n $('.quickSearchFormContainer').css('display') === 'block' &&\n !$('.quickSearchFormContainer').parents().is('.homepage-search-container') &&\n !e.target.classList.contains('qsItem') &&\n !e.target.closest('.qsItem') &&\n !e.target.closest('.qsaItem')\n ) {\n $('.quickSearchFormContainer')\n .css('display', 'none')\n .siblings('.quick-search__item')\n .removeClass('active');\n }\n });\n });\n\n $('#citationSearchForm').on('click', '[type=\"submit\"]', function (e) {\n e.preventDefault();\n if (!$(e.target).closest('.ms-sel-ctn').length) {\n UX.quickSearch.submitCitationForm('#citationSearchForm');\n }\n });\n\n $(document).on('keyup', '#citationSearchForm input', function (e) {\n e.preventDefault();\n e.stopPropagation();\n if ((e.keyCode || e.which) === 13 && !$(e.target).closest('.ms-sel-ctn').length) {\n UX.quickSearch.submitCitationForm('#citationSearchForm');\n }\n });\n\n $(document).on('keyup', function (e) {\n var keyCode = e.keyCode || e.which;\n\n if (keyCode === 9) {\n if ($(document.activeElement).closest('.quick-search-wrapper').length === 0) {\n UX.quickSearch.close();\n }\n }\n });\n\n $(document).on('click', '.quickSearchAutocomplete a', function (e) {\n $('.quick-search input').blur();\n });\n\n $(document).on('click', '[title=\"Citation\"]', function (e) {\n $('.quick-search').addClass('citationSearch--open');\n });\n\n $(document).on('click', '.citationSearch--open [data-toggle=\"tab\"]', function (e) {\n $('.quick-search').removeClass('citationSearch--open');\n });\n\n $('.quick-search__item').on('click', function (e) {\n e.preventDefault();\n $qSearch = $(this).siblings('.quick-search');\n if ($qSearch.is(':visible')) {\n $qSearch.css('display', '');\n } else {\n $qSearch.css('display', 'block');\n }\n\n $(this).toggleClass('active');\n $(this).attr('aria-label', $(this).hasClass('active') ? 'Close search' : 'Search');\n\n if ($qSearch.is(':visible')) {\n $qSearch.find('input').focus();\n } else {\n $qSearch.find('input').blur();\n }\n\n UX.quickSearch.setPosition();\n });\n\n $('.quick-search').on('input', '.actualQSInput', function () {\n $('.quick-search .actualQSInput').val($(this).val());\n });\n\n window.addEventListener('resize', () => {\n const screenWidth = window.innerWidth,\n actualQSInput = '.quick-search:not(.quick-search--citation) input.actualQSInput',\n quickSearchItem = document.querySelector('.quick-search__item'),\n isQuickSearchItemActive = quickSearchItem?.classList.contains('active'),\n quickSearch = document.querySelector('.quick-search'),\n isQuickSearchOpen = quickSearch?.classList.contains('open');\n\n UX.quickSearch.setPosition();\n\n if (\n screenWidth >= UX.grid.screenLg &&\n actualQuickSearchInputEl?.value &&\n (isQuickSearchOpen || isQuickSearchItemActive)\n ) {\n UX.quickSearch.removeTransition();\n UX.quickSearch.open($(actualQSInput));\n } else if (screenWidth < UX.grid.screenLg && actualQuickSearchInputEl?.value) {\n UX.quickSearch.addTransition();\n\n if (!quickSearchItem.classList.contains('active') && screenWidth > UX.grid.screenSm) {\n quickSearchItem.click();\n }\n\n if (screenWidth < UX.grid.screenSm) {\n quickSearch.style.left = '0';\n }\n } else {\n UX.quickSearch.addTransition();\n UX.quickSearch.close();\n }\n });\n\n $(window).on('orientationchange', function (event) {\n $('.quick-search input').blur();\n UX.quickSearch.close();\n });\n\n $('.facetQuickSearchForm').on('submit', function (e) {\n e.preventDefault();\n\n $form = $(this);\n $allFieldInput = $form.find('[name=\"AllField\"]');\n $sortByInput = $form.find('[name=\"sortBy\"]');\n href = window.location.href;\n\n href = UX.utils.removeUrlParam('AllField', href);\n href = UX.utils.removeUrlParam('sortBy', href);\n\n if (!href.indexOf('facetQuickSearch') > -1) {\n if (href.indexOf('?') > -1) {\n href += '&facetQuickSearch=true';\n } else {\n href += '?facetQuickSearch=true';\n }\n }\n\n href += '&sortBy=' + $sortByInput.val();\n\n if ($allFieldInput.val() !== '') {\n href += '&AllField=' + $allFieldInput.val();\n }\n\n window.location.href = href;\n });\n\n $(document).ready(function () {\n if ($('.facetQuickSearchForm').length) {\n $('.facetQuickSearchForm').find('.js--disabled').removeClass('js--disabled');\n }\n if (\n window.location.href.indexOf('facetQuickSearch=true') > -1 &&\n window.location.href.indexOf('AllField') > -1\n ) {\n $('body').find('.facetQSInput').val(UX.utils.getUrlParameter('AllField'));\n }\n });\n\n $(document).on('change', '.quick-search #search-within', function (e) {\n var val = $(this).val();\n var $tabContent = $(this).next('.tab__content');\n $tabContent.find('.tab__pane').removeClass('active');\n $tabContent.find(val).addClass('active');\n });\n\n $('.quick-search #search-within').trigger('change');\n\n $(document).on(vPort + '-off', function () {\n $quickSearch = $('.quick-search');\n if ($quickSearch.css('width') !== 'auto') {\n $quickSearch.css('width', 'auto');\n }\n });\n\n $(window).on('load', function (e) {\n if (/publication=/.test(window.location)) {\n disabledFields = $('#citationSearchForm').find('input[name^=\"citation\"][type=\"search\"]');\n disabledFields.each(function (e) {\n $(this).removeAttr('disabled');\n });\n }\n });\n\n $(window).on('load', function () {\n if (window.location.href.indexOf('/search/advanced') > -1 || window.location.hash.indexOf('#citation') > -1) {\n $('.citation').attr('data-citation', true);\n }\n });\n\n $(document).ready(function () {\n if (window.location.href.indexOf('text1') > -1) {\n const searchTerm = document.getElementById('text1');\n searchTerm.value = UX.utils.getUrlParameter('text1').replaceAll('+', ' ');\n }\n });\n\n $(document).on('click', '[data-citation]', function () {\n location.reload();\n });\n\n $(document).on('click', '.search-options-wrapper a', function (e) {\n let $this = $(this),\n thisHref = $this.attr('href'),\n $targetInput = $this.closest('form').find('.actualQSInput'),\n targetInputVal = $targetInput.val(),\n isCitation = thisHref.indexOf('#citation') > -1 ? '#citation' : '',\n newHref = '';\n\n e.preventDefault();\n newHref = UX.utils.removeUrlParam('text1', thisHref).replace('#citation', '');\n newHref += (newHref.indexOf('?') > -1 ? '&text1=' : '?text1=') + targetInputVal + isCitation;\n window.location.href = newHref;\n });\n\n const quickSearchRouter = e => {\n if (e.target.classList.contains('result-item') || e.target.closest('.result-item')) {\n e.preventDefault();\n const quickSearchFormContainer = document.querySelector('.quickSearchFormContainer'),\n searchWithinEl = quickSearchFormContainer?.querySelector('.search-within'),\n searchWithinOption = searchWithinEl?.querySelector(`option[value=\"${searchWithinEl.value}\"`),\n optionValue = searchWithinOption?.dataset.value;\n\n let itemTarget = e.target.closest('.result-item')\n ? e.target.closest('.result-item')\n : e.target.classList.contains('result-item'),\n itemHref = optionValue !== 'thisCategory' ? itemTarget.dataset.href : window.location.host,\n seriesKey = optionValue ? `${itemHref.includes('?') ? '&' : '?'}SeriesKey=${optionValue}` : '';\n window.location.href = `${itemHref}${seriesKey}`;\n }\n };\n\n document.addEventListener('click', quickSearchRouter);\n\n const citationSearchContainer = document.querySelector('.citationSearchContainer');\n if (citationSearchContainer) {\n const citation = {\n page: citationSearchContainer.querySelector('input[name=\"citationPage\"]'),\n number: citationSearchContainer.querySelector('input[name=\"citationNumber\"]'),\n },\n ariaRequiredSwitcher = e => {\n const current = e.target,\n other = e.target.name === 'citationPage' ? citation.number : citation.page;\n\n if (UX.utils.isElementEmptyOrSpaces(other)) {\n if (!UX.utils.isElementEmptyOrSpaces(current)) {\n other.removeAttribute('aria-required');\n } else {\n [current, other].forEach(item => item.setAttribute('aria-required', 'true'));\n }\n }\n };\n\n citation.page.addEventListener('input', ariaRequiredSwitcher);\n citation.number.addEventListener('input', ariaRequiredSwitcher);\n }\n};\n\nUX.quickSearch.open = function ($el) {\n if (!$el.closest('.homepage-search-wrapper').length) {\n $qsW = $el.closest('.quick-search');\n $qsW.addClass('open');\n\n if ($('.pageHeader').length) {\n $('.pageHeader').addClass('searchOpen');\n }\n $('body').addClass('searchOpen-body');\n $qsW.find('input.fakeQSInput').attr('tabindex', -1);\n\n setTimeout(function () {\n if ($qsW.hasClass('open')) {\n $qsW.find('.actualQSInput').focus();\n }\n }, 500);\n\n setTimeout(function () {\n if ($qsW.hasClass('open')) {\n $qsW.find('.search-options-wrapper')\n .stop()\n .slideDown(550, function () {\n $el.closest('.main-search-field-wrapper').css('overflow', 'visible');\n });\n\n $('.quickSearchAutocomplete').css({\n position: 'fixed',\n });\n }\n }, 700);\n }\n};\n\nUX.quickSearch.close = function () {\n $('.quick-search').removeClass('open');\n $('.pageHeader').removeClass('searchOpen');\n\n $('body').removeClass('searchOpen-body');\n if (!UX.quickSearch.isMobile) {\n if ($('.quick-search').closest('.expanded--quickSearch').length) {\n $('.search-options-wrapper').stop().slideUp(500);\n } else {\n $('.main-search-field-wrapper').css('overflow', 'hidden');\n $('.search-options-wrapper').stop().hide(500);\n $('.quickSearchAutocomplete').css('padding-top', '0');\n //if ($('.quick-search .actualQSInput').val())\n $('.quick-search .fakeQSInput').val($('.quick-search .actualQSInput').val()).attr('tabindex', 13);\n }\n }\n};\n\nUX.quickSearch.setPosition = function () {\n $qSearch = $('.quick-search');\n\n if (\n $qSearch.closest('.homepage-search-wrapper').length === 0 &&\n !$qSearch.hasClass('quick-search--citation') &&\n UX.quickSearch.isMobile\n ) {\n $qSearch.css({\n width: $(window).width(),\n left: ($('.container').outerWidth() - $(window).width()) / 2,\n });\n } else {\n $qSearch[0].style.width = 'auto';\n }\n};\n\nUX.quickSearch.submitCitationForm = function ($elem) {\n const mainWrapper = document.querySelector('.citationSearchContainer'),\n form = mainWrapper?.querySelector($elem);\n\n if (form) {\n const citationSearchWrapper = mainWrapper.querySelector('.citation-search__wrapper'),\n formAlertList = mainWrapper.querySelectorAll('.formAlert'),\n errorMsgText = UX.quickSearch.errorMsgText(),\n inputs = {\n journalHidden: form.querySelector('[name=\"citationJournal[]\"]'),\n journal: form.querySelector('#citationJournal'),\n year: form.querySelector('[name=\"citationIssueYear\"]'),\n volume: form.querySelector('[name=\"citationVolume\"]'),\n issue: form.querySelector('[name=\"citationIssue\"]'),\n page: form.querySelector('[name=\"citationPage\"]'),\n citation: form.querySelector('[name=\"citationNumber\"]'),\n },\n singleInputAlert = el => {\n if (el && el.id) {\n const elFormAlert = mainWrapper.querySelector(`.formAlert[data-for=\"${el.id}\"]`),\n elFormLabelText = mainWrapper\n .querySelector(`label[for=\"${el.id}\"]`)\n .textContent.toLowerCase()\n .replace('#', 'number');\n elFormAlert.textContent = `Error: missing ${elFormLabelText} value`;\n el.setAttribute('aria-describedby', elFormAlert.id);\n el.setAttribute('aria-invalid', 'true');\n }\n },\n formErrorMessage = {\n show: message => {\n const errorMsgEl = citationSearchWrapper.querySelector('.error');\n errorMsgEl?.remove();\n citationSearchWrapper.insertAdjacentHTML(\n 'beforeend',\n `
${message}
`\n );\n },\n hide: () => {\n const errorMsgEl = citationSearchWrapper.querySelector('.error');\n errorMsgEl?.remove();\n },\n },\n loading = {\n show: () => {\n const loadingEL = mainWrapper.querySelector('.js--loading');\n if (!loadingEL)\n mainWrapper.insertAdjacentHTML(\n 'afterbegin',\n '
'\n );\n },\n hide: () => {\n const loadingEL = mainWrapper.querySelector('.js--loading');\n if (loadingEL) loadingEL.remove();\n },\n },\n clearInputAlert = () => formAlertList.forEach(item => (item.textContent = ''));\n\n formErrorMessage.hide();\n clearInputAlert();\n\n if (!inputs.journalHidden) {\n formErrorMessage.show(errorMsgText.journal);\n singleInputAlert(inputs.journal);\n inputs.journal.focus();\n } else {\n if (UX.utils.isElementEmptyOrSpaces(inputs.volume)) {\n singleInputAlert(inputs.volume);\n singleInputAlert(inputs.page);\n singleInputAlert(inputs.citation);\n setTimeout(() => {\n inputs.volume.focus();\n formErrorMessage.show(errorMsgText.default);\n }, 25);\n } else {\n if (UX.utils.isElementEmptyOrSpaces(inputs.page) && UX.utils.isElementEmptyOrSpaces(inputs.citation)) {\n singleInputAlert(inputs.page);\n singleInputAlert(inputs.citation);\n formErrorMessage.show(errorMsgText.default);\n inputs.page.focus();\n } else {\n inputs.journalHidden.value = inputs.journalHidden.value.replace(/['\"]+/g, '');\n loading.show();\n let baseURL = `${window.location.origin}/action/citationSearch?`,\n urlParams = '',\n counter = 0;\n\n for (const item in inputs) {\n let separator = counter !== 0 ? '&' : '';\n if (inputs[item]?.value) {\n urlParams += `${separator}${inputs[item].name}=${inputs[item].value}`;\n }\n counter++;\n }\n baseURL += urlParams;\n fetch(baseURL)\n .then(response => response.json())\n .then(data => {\n loading.hide();\n if (data.link) {\n window.location = data.link;\n } else {\n const otherCitationSearch = mainWrapper.querySelector('.other-citation-search'),\n otherCitationSearchInputs = otherCitationSearch.querySelectorAll('input');\n\n otherCitationSearchInputs[0].focus();\n if (data.error) {\n formErrorMessage.show(data.error);\n } else {\n formErrorMessage.show(errorMsgText.server);\n }\n }\n });\n }\n }\n }\n }\n};\n\nUX.quickSearch.errorMsgText = function () {\n return {\n default: 'Volume and page number, or volume and Article ID, are required.',\n journal: 'Please enter journal title.',\n server: 'Something went wrong, please try again',\n };\n};\n\nUX.quickSearch.doSuggest = function () {\n const $citationJournal = $('.citation.magicsuggest'),\n maxWords = $citationJournal.data('max-words'),\n maxChars = $citationJournal.data('max-chars'),\n preVal = $citationJournal.val().split(','),\n preLabel = $citationJournal.data('label'),\n disabledFields = $('#citationSearchForm').find('input[name^=\"citation\"][type=\"search\"]');\n\n let ms = UX.quickSearch.magicSuggest($citationJournal, maxWords, maxChars);\n ms.input[0]?.setAttribute('aria-required', 'true');\n const $citationSearchContainer = $('.citationSearchContainer'),\n $msInputWrapper = $citationSearchContainer.find('.ms-sel-ctn'),\n $msInput = $msInputWrapper.find('.ms-input');\n\n if ($citationJournal.hasClass('pre-populated')) {\n ms.setSelection([{value: preVal, label: preLabel}]);\n disabledFields.each(function (e) {\n $(this).removeAttr('disabled');\n });\n }\n\n $('.ms-trigger').on('click', function () {\n var $triggerParent = $(this).parents('.main-search-field-wrapper'),\n isCitation = $(this).parents().is('.quick-search--citation');\n\n if (isCitation) {\n $triggerParent.css('overflow', 'visible');\n }\n if ($('.citationJournalName').find('.dropdown-menu').is(':visible')) {\n ms.getValue().length > 0 ? ms.collapse() : ms.expand();\n } else ms.getValue().length > 0 ? ms.expand() : ms.collapse();\n });\n\n $(ms).on('selectionchange', function (e) {\n $msInput.attr('aria-activedescendant');\n\n if (this.getSelection().length) {\n disabledFields.each(function (e) {\n $(this).removeAttr('disabled');\n });\n } else {\n disabledFields.each(function (e) {\n $(this).attr('disabled', true).val('');\n });\n }\n });\n};\n\nUX.quickSearch.magicSuggest = ($element, maxWords, maxChars) => {\n return $element.magicSuggest({\n data: '/action/doSuggest?target=title-auto-complete&pt=journal',\n method: 'GET',\n selectFirst: true,\n valueField: 'value',\n autoSelect: false,\n allowFreeEntries: 'false',\n displayField: 'label',\n cls: 'citationJournalName',\n hideTrigger: 'true',\n placeholder: $element.attr('placeholder'),\n maxSuggestions: 5,\n maxSelection: 1,\n maxSelectionRenderer: function () {\n return '';\n },\n beforeSend: function (xhr, settings) {\n let enteredTerm = settings.url.substr(settings.url.indexOf('query=') + 6).replace(/[​​+]/g, ' ');\n if (\n enteredTerm.split(' ').length > maxWords ||\n enteredTerm.length > maxChars ||\n !enteredTerm.replace(/\\s/g, '').length\n ) {\n return false;\n }\n },\n });\n};\n\nUX.quickSearch.addTransition = () => {\n actualQuickSearchInputEl?.classList.remove('transition-none');\n searchTypeDropdownEl?.classList.remove('transition-none');\n};\n\nUX.quickSearch.removeTransition = () => {\n actualQuickSearchInputEl?.classList.add('transition-none');\n searchTypeDropdownEl?.classList.add('transition-none');\n};\n\nUX.quickSearch.handleQSAutocompleteA11Y = () => {\n const QSInput = document.querySelector('.actualQSInput');\n let suggestionList = document.querySelector('.quickSearchAutocomplete');\n let suggestions = [];\n let selectedIndex = -1;\n\n suggestionList?.setAttribute('role', 'listbox');\n suggestionList?.setAttribute('aria-label', 'Search suggestions');\n\n const updateFocus = suggestions => {\n suggestions.forEach((suggestion, index) => {\n if (index === selectedIndex) {\n suggestion.setAttribute('aria-selected', 'true');\n suggestion.setAttribute('id', `autosuggestion-option-${index + 1}`);\n suggestion.querySelector('.result-item').focus();\n QSInput.setAttribute('aria-activedescendant', suggestion.id);\n } else {\n suggestion.setAttribute('aria-selected', 'false');\n }\n });\n };\n\n QSInput.addEventListener('keydown', function (e) {\n suggestionList = document.querySelector('.quickSearchAutocomplete');\n suggestions = suggestionList.querySelectorAll('.qsaItem');\n\n if (suggestionList.style.display !== 'none' && suggestions.length > 0) {\n QSInput.setAttribute('aria-expanded', 'true');\n if (e.keyCode === keyCodes.DOWN) {\n e.preventDefault();\n selectedIndex = (selectedIndex + 1) % suggestions.length;\n updateFocus(suggestions);\n } else if (e.keyCode === keyCodes.UP) {\n e.preventDefault();\n selectedIndex = (selectedIndex - 1 + suggestions.length) % suggestions.length;\n updateFocus(suggestions);\n } else if (e.keyCode === keyCodes.ENTER) {\n e.preventDefault();\n const link = suggestions[selectedIndex]?.querySelector('.result-item')?.getAttribute('data-href');\n link && (window.location.href = link);\n }\n }\n });\n\n document.addEventListener('keydown', function (e) {\n if (e.keyCode === keyCodes.ESCAPE && suggestionList.style.display !== 'none') {\n suggestionList.style.display = 'none';\n QSInput.setAttribute('aria-expanded', 'false');\n selectedIndex = -1;\n setTimeout(() => {\n QSInput.focus();\n }, 200);\n }\n });\n};\n","(function () {\n var $body = $('body');\n\n var quickSearch = {\n autoCompeteSearchUrl: '',\n suggestedData: [],\n enteredTerm: '',\n inputElem: '',\n maxWords: '',\n maxChars: '',\n confNumOfContributors: '',\n confNumOfHistoryItems: '',\n confNumOfPublicationTitles: '',\n confNumOfTopics: '',\n selectedOption: '',\n seriesKey: '',\n vPort: 'screen-md',\n isMobile: false,\n\n init: function () {\n quickSearch.inputElem = $('.quick-search .magicsuggest');\n quickSearch.seriesKey = $('input[name=SeriesKey]', '[name=thisJournalQuickSearch]').val();\n quickSearch.controller();\n quickSearch.additionalController();\n },\n controller: function () {\n $('.quick-search')\n .find('.magicsuggest')\n .each(function () {\n quickSearch.inputElem = $(this);\n quickSearch.maxWords = $(this).data('auto-complete-max-words');\n quickSearch.maxChars = $(this).data('auto-complete-max-chars');\n const searchType = $(this).parent();\n quickSearch.enteredTerm = $(this).val();\n\n if (searchType.hasClass('option-citation')) {\n quickSearch.citationSuggestions();\n } else if (searchType.hasClass('option-journal')) {\n quickSearch.journalSearchSuggestions();\n } else {\n quickSearch.searchSuggistions();\n }\n });\n\n $(document).on(\n 'submit',\n '[name=\"defaultQuickSearch\"],[name=\"citationQuickSearch\"],[name=\"thisJournalQuickSearch\"]',\n function (e) {\n var empty = true;\n\n $(this)\n .find('input[type=\"text\"],input[type=\"search\"]')\n .each(function () {\n if ($(this).val() && $(this).val() !== '') {\n empty = false;\n }\n });\n if ($(this).find('.ms-sel-item').length > 0) {\n empty = false;\n }\n if (empty) {\n window.location = '/search/advanced';\n e.preventDefault();\n }\n }\n );\n\n if (config.enableQuicksearchFocusTrap) {\n // FOCUS TRAP for QuickSearch in Dropdown\n $(function () {\n $(document).on('keydown', '.quick-search :tabbable:not([readonly])', function (e) {\n var loop = $(this).closest('.quick-search');\n if (\n $body.attr('data-active') !== 'dropBlock' &&\n !loop.closest('.dropBlock__holder.js--open').length\n ) {\n return;\n }\n\n const firstTabbable = loop.find(':tabbable:not([readonly])').first();\n const lastTabbable = loop.find(':tabbable:not([readonly])').last();\n // Leaving the first element with Tab : focus the last one\n if (\n firstTabbable.is(e.target) &&\n e.shiftKey === true &&\n window.innerWidth >= UX.grid.screenMd\n ) {\n e.preventDefault();\n lastTabbable.focus();\n }\n // Leaving the last element with Tab : focus the first one\n if (lastTabbable.is(e.target) && e.shiftKey === false) {\n if (e.which === 13) {\n UX.dropBlock.on.hide();\n }\n e.preventDefault();\n firstTabbable.focus();\n }\n });\n });\n }\n },\n additionalController: function () {},\n\n doSuggest: function (sug) {\n quickSearch.inputElem.magicSuggest({\n data: sug,\n method: 'GET',\n valueField: 'value',\n autoSelect: false,\n displayField: 'label',\n cls: 'search-term',\n hideTrigger: 'true',\n beforeSend: function (xhr, settings) {\n var enteredTerm = settings.url.substr(settings.url.indexOf('query=') + 6).replace(/[​​+]/g, ' ');\n if (\n enteredTerm.split(' ').length > quickSearch.maxWords ||\n enteredTerm.length > quickSearch.maxChars ||\n !enteredTerm.replace(/\\s/g, '').length\n ) {\n return false;\n }\n },\n });\n },\n citationSuggestions: function () {\n quickSearch.confNumOfPublicationTitles = quickSearch.inputElem.data('publication-titles-conf');\n quickSearch.autoCompeteSearchUrl =\n '/action/doSuggest?target=title-auto-complete&pts=' +\n quickSearch.confNumOfPublicationTitles +\n '&fl=PubID';\n quickSearch.selectedOption = 'citation';\n quickSearch.doSuggest(quickSearch.autoCompeteSearchUrl);\n },\n searchSuggistions: function () {\n quickSearch.confNumOfPublicationTitles = quickSearch.inputElem.data('publication-titles-conf');\n quickSearch.confNumOfContributors = quickSearch.inputElem.data('contributors-conf');\n quickSearch.confNumOfTopics = quickSearch.inputElem.data('topics-conf');\n quickSearch.confNumOfHistoryItems = quickSearch.inputElem.data('history-items-conf');\n quickSearch.autoCompeteSearchUrl =\n '/action/doSuggest?target=auto-complete&hs=' +\n quickSearch.confNumOfHistoryItems +\n '&pts=' +\n quickSearch.confNumOfPublicationTitles +\n '&ts=' +\n quickSearch.confNumOfTopics +\n '&cs=' +\n quickSearch.confNumOfContributors +\n '&fl=PubID';\n quickSearch.doSuggest(quickSearch.autoCompeteSearchUrl);\n },\n journalSearchSuggestions: function () {\n quickSearch.confNumOfPublicationTitles = quickSearch.inputElem.data('publication-titles-conf');\n quickSearch.confNumOfContributors = quickSearch.inputElem.data('contributors-conf');\n quickSearch.confNumOfTopics = quickSearch.inputElem.data('topics-conf');\n quickSearch.confNumOfHistoryItems = quickSearch.inputElem.data('history-items-conf');\n quickSearch.autoCompeteSearchUrl =\n '/action/doSuggest?target=auto-complete&hs=' +\n quickSearch.confNumOfHistoryItems +\n '&pts=' +\n quickSearch.confNumOfPublicationTitles +\n '&ts=' +\n quickSearch.confNumOfTopics +\n '&cs=' +\n quickSearch.confNumOfContributors +\n '&fl=PubID&within=' +\n quickSearch.seriesKey;\n quickSearch.doSuggest(quickSearch.autoCompeteSearchUrl);\n },\n };\n\n UX.quickSearch = quickSearch; // add to global namespace\n})();\n","(function () {\n const citationContentEl = document.querySelector('.citation-content');\n const mjxContainer = document.querySelector('mjx-container');\n\n if (citationContentEl) {\n if (mjxContainer) {\n UX.utils.fallbackImageViewer();\n } else {\n UX.utils.mutationObserver(\n 'mjx-container',\n {childList: true, subtree: true},\n UX.utils.fallbackImageViewer,\n null,\n true\n );\n }\n }\n})();\n","(function () {\n const multiSearch = {\n init: function () {\n multiSearch.control();\n },\n control: function () {\n UX.resizeImages('.multi-search');\n multiSearch.hideMoreLinks();\n multiSearch.imageResize();\n UX.fancybox && multiSearch.fancybox();\n },\n imageResize: function () {\n const multiSearch = document.querySelector('.multi-search');\n if (multiSearch) {\n const abstractPreviewImg = UX.utils.convertToArray(\n multiSearch?.querySelectorAll('.abstract-preview img')\n ),\n imageResize = e => UX.resizeImages(e.target.parentElement);\n\n if (abstractPreviewImg.length) {\n abstractPreviewImg.forEach(item => {\n UX.resizeImages(item.parentElement);\n item.addEventListener('load', imageResize);\n });\n }\n }\n },\n fancybox: function () {\n const abstractPreviewZoom = UX.utils.convertToArray(document.querySelectorAll('.abstract-preview__zoom'));\n UX.fancybox(abstractPreviewZoom);\n document.addEventListener('keydown', UX.fancyboxClose);\n },\n hideMoreLinks: function () {\n const $multiSearch = $('.multi-search'),\n $multiSearchList = $multiSearch.find('.multi-search__list'),\n $multiSearchEmpty = $multiSearch.find('.multi-search--empty'),\n $multiSearchNoResult = $multiSearch.find('.multi-search__no-result'),\n $moreLinks = $('.multi-search__more-links');\n\n if (($multiSearchList.hasClass('hideMoreLinks') || $multiSearchNoResult.length) && $moreLinks.length) {\n $moreLinks.remove();\n }\n\n if ($multiSearchEmpty.length) {\n $multiSearchEmpty.closest('.multi-search').prev('.multi-search__header').remove();\n $moreLinks.remove();\n }\n },\n };\n\n UX.multiSearch = multiSearch;\n})();\n","export default class Shibboleth {\n classList = {\n active: 'js--active',\n loading: 'js--loading-wrapper',\n updateInstitutionEntity: 'ghaith',\n };\n\n content = {\n loadingEL:\n '
loading institution list
',\n contentLoadedEL: '
institution list loaded
',\n };\n\n selectors = {\n institutions: '.institutions',\n institution: '.institution-list',\n federationSelect: '.federation-select',\n federationSelectContent: '.federation-select__content',\n federationSelectContentLi: 'li[data-index-target]',\n loading: '.js--loading-wrapper',\n federationAlert: '.federation-alert',\n };\n\n elements = {\n institutions: null,\n federationSelect: null,\n federationSelectContent: null,\n federationSelectContentLi: null,\n federationAlert: null,\n };\n\n constructor() {\n this.elements.sction = document.querySelector('.shibboleth');\n this.setElements();\n this.eventListeners();\n this.onReady();\n }\n\n setElements() {\n this.elements.institutions = this.elements.sction.querySelector(this.selectors.institutions);\n this.elements.federationSelect = this.elements.sction.querySelector(this.selectors.federationSelect);\n this.elements.federationSelectContent = this.elements.sction.querySelector(\n this.selectors.federationSelectContent\n );\n this.elements.federationSelectContentLi = this.elements.federationSelectContent.querySelectorAll(\n this.selectors.federationSelectContentLi\n );\n this.elements.federationAlert = this.elements.sction.querySelector(this.selectors.federationAlert);\n }\n\n onReady() {}\n\n eventListeners() {\n this.elements.federationSelect.addEventListener('change', this.selectChangeHandlers);\n this.elements.federationSelectContent.addEventListener('click', this.updateInstitutionEntity);\n }\n\n selectChangeHandlers = e => {\n const selectedIndex = e.target.selectedIndex,\n selectedLi = this.elements.federationSelectContent.querySelector(\n `li[data-index-target=\"${selectedIndex}\"]`\n ),\n selectedLiContent = selectedLi?.querySelector(this.selectors.institution),\n currentLi = this.elements.federationSelectContent.querySelector(`li.js--active[data-index-target]`),\n getFederationsLink = '/pb/widgets/shibboleth/getFederationInstitutions?federation=',\n redirectUri = this.findGetParameter('redirectUri');\n\n currentLi?.classList.remove(this.classList.active);\n selectedLi.classList.add(this.classList.active);\n\n if (!selectedLiContent && selectedLi.dataset.indexTarget !== '0') {\n this.showLoading();\n // return\n const link = `${getFederationsLink}${encodeURIComponent(e.target.value)}${\n redirectUri !== null ? `&redirectUrl=${redirectUri}` : ''\n }`;\n fetch(link)\n .then(response => response.json())\n .then(data => {\n selectedLi.insertAdjacentHTML('beforeend', this.createInstitutionsList(data));\n this.hideLoading();\n });\n }\n };\n\n updateInstitutionEntity = e => {\n if (\n e.target.classList.contains(this.classList.updateInstitutionEntity) ||\n e.target.parentElement.classList.contains(this.classList.updateInstitutionEntity)\n ) {\n e.preventDefault();\n\n let targetEl = e.target.classList.contains(this.classList.updateInstitutionEntity)\n ? e.target\n : e.target.parentElement,\n updateEntityData = JSON.parse(targetEl.dataset.updateentity),\n linkData = targetEl.dataset.link;\n\n SeamlessAccessService.updateEntity(updateEntityData)\n .then(function (res) {\n if (linkData !== undefined) {\n window.location.href = linkData;\n }\n })\n .catch(function (err) {\n if (linkData !== undefined) {\n console.log(err); // eslint-disable-line no-console\n window.location.href = linkData;\n }\n });\n }\n };\n\n createInstitutionsList = data => {\n let items = '',\n i = 0;\n\n for (i = 0; i < data.length; i++) {\n const itemData = data[i],\n entityData = {\n entityID: itemData.entityId,\n title: itemData.name,\n },\n entityDataStr = JSON.stringify(entityData).replace(/'/g, ''');\n\n items += `\n
  • \n \n ${itemData.name}\n \n
  • \n `;\n }\n return ``;\n };\n\n findGetParameter = parameterName => {\n let result = null,\n tmp = [];\n location.search\n .substr(1)\n .split('&')\n .forEach(function (item) {\n tmp = item.split('=');\n if (tmp[0] === parameterName) result = tmp[1];\n });\n return result;\n };\n\n showLoading = () => this.elements.institutions.insertAdjacentHTML('afterbegin', this.content.loadingEL);\n\n hideLoading = () => {\n const loadingEL = this.elements.institutions.querySelector(this.selectors.loading);\n if (loadingEL) {\n loadingEL.remove();\n this.elements.federationAlert.innerHTML = this.content.contentLoadedEL;\n setTimeout(() => {\n this.elements.federationAlert.innerHTML = '';\n }, 3000);\n }\n };\n}\n","$(document).ready(function () {\n var $formButtons = '',\n $captchaWrapper = '',\n $infoBoxError = '',\n addressState = '',\n $mailingListToggle = '',\n $mailingListWrapper = '';\n\n if ($('.addresses').length) {\n $formButtons = $('.addresses').closest('#personalInformationForm').find('.form-btn');\n $captchaWrapper = $('.addresses').closest('#personalInformationForm').find('.g-recaptcha');\n $infoBoxError = $('.addresses').closest('#personalInformationForm').find('.infoBox .error');\n addressState = $('.switch-address').val();\n $mailingListToggle = $('.mailing-list-toggle');\n $mailingListWrapper = $('.mailing-list-wrapper');\n $mailingListToggle.prop('checked') ? $mailingListWrapper.addClass('js--open') : '';\n\n $mailingListToggle.on('change', function () {\n $mailingListToggle.prop('checked')\n ? $mailingListWrapper.addClass('js--open')\n : $mailingListWrapper.removeClass('js--open');\n });\n\n if (!addressState || $infoBoxError.length) {\n $formButtons.show();\n $captchaWrapper.removeClass('hidden');\n } else {\n $formButtons.hide();\n $captchaWrapper.addClass('hidden');\n }\n\n $('.switch-address').on('change', function () {\n var addressState = $('.switch-address').val();\n\n if (!addressState) {\n $formButtons.show();\n $captchaWrapper.removeClass('hidden');\n } else {\n $formButtons.hide();\n $captchaWrapper.addClass('hidden');\n }\n });\n\n $('.edit-address').on('click', function () {\n var addressState = $('.switch-address').val();\n\n if (!addressState) {\n $formButtons.hide();\n $captchaWrapper.addClass('hidden');\n } else {\n $formButtons.show();\n $captchaWrapper.removeClass('hidden');\n }\n });\n }\n});\n\nconst errorFocusController = (errorList, errorDetailsContainer) => {\n const formContainer = document.getElementById('personalInformationForm');\n const addressErrorFields = [];\n const recaptchaCheckbox = document.querySelector('.g-recaptcha iframe');\n const clearFormBtn = formContainer?.querySelector('.actions a.linkBtn');\n const submitFormBtn = formContainer?.querySelector('.actions input[type=submit]');\n const formFields = document\n .getElementById('address')\n ?.querySelectorAll('input[id^=\"address\"], select[id^=\"address\"]:not([disabled=\"disabled\"])');\n\n const focusController = (formFields, exitTrapFlag) => {\n formFields?.forEach(field => {\n const errorLabel = field?.previousElementSibling;\n if (errorLabel && errorLabel.classList.contains('label')) {\n field.setAttribute(\n 'tabindex',\n (exitTrapFlag && !errorLabel.classList.contains('error')) || errorLabel.classList.contains('error')\n ? '0'\n : '-1'\n );\n\n if (errorLabel.classList.contains('error')) {\n addressErrorFields.push(field);\n }\n }\n });\n recaptchaCheckbox?.setAttribute('tabindex', '0');\n };\n\n focusController(formFields);\n addressErrorFields?.push(recaptchaCheckbox, clearFormBtn, submitFormBtn);\n\n const lastErrorItem = errorDetailsContainer?.querySelector('li:last-child');\n\n const handleTabKey = event => {\n if (event.key === 'Tab') {\n event.preventDefault();\n\n const currentElement = addressErrorFields?.findIndex(element => document.activeElement === element);\n let nextElement = currentElement + (event.shiftKey ? -1 : 1);\n\n if (nextElement < 0) {\n nextElement = addressErrorFields?.length - 1;\n } else if (nextElement >= addressErrorFields?.length) {\n nextElement = 0;\n }\n addressErrorFields[nextElement]?.focus();\n } else if (event.key !== 'Tab') {\n focusController(formFields, 1);\n document.removeEventListener('keydown', handleTabKey);\n }\n };\n\n lastErrorItem?.addEventListener('focus', () => {\n document.addEventListener('keydown', handleTabKey);\n });\n};\nconst showErrorBox = () => {\n const errorLabels = document.querySelectorAll('.label.error');\n\n if (errorLabels.length > 0) {\n const errorContainer = document.querySelector('fieldset .infoBox');\n const errorDetailsContainer = document.createElement('ul');\n const errorList = [];\n errorDetailsContainer.setAttribute('id', 'errorSummaryBox');\n\n errorLabels.forEach(errorMessage => {\n const errorTxt1 = errorMessage?.querySelector('label').innerText;\n const errorTxt2 = errorMessage?.querySelector('.message').innerText;\n const error = (errorTxt1 + errorTxt2).replace(/\\*/g, '');\n const errorFieldID = errorMessage?.nextElementSibling.getAttribute('id');\n const errorDetails = document.createElement('li');\n\n errorList?.push(errorFieldID);\n errorDetails.setAttribute('tabindex', '0');\n errorDetails.innerText = error;\n errorDetailsContainer.append(errorDetails);\n });\n errorContainer?.append(errorDetailsContainer);\n errorContainer?.setAttribute('tabindex', '0');\n errorContainer?.focus();\n errorFocusController(errorList, errorDetailsContainer);\n }\n};\n\n$(window).load(function () {\n var addressAccordion = $('.addresses-accordion .accordion__control');\n const addressEl = document.getElementById('address');\n if ($('.accordion__content #address .label').hasClass('error')) {\n UX.accordion.on.toggle.single(addressAccordion);\n }\n\n if (addressEl) {\n showErrorBox();\n }\n});\n","$(document).ready(function () {\n var section = '',\n $form = '',\n $dropzone = '',\n $entitlements = '';\n\n $('.raaAccountInfo input[name=\"marketable.value\"]').on('change', function (e) {\n $('input[name=\"marketable.value\"]').attr('checked', false);\n $(this).attr('checked', true);\n\n section = $(this).parents('.marketable')[0].outerHTML;\n $form = $('.raaAccountInfo').find('form');\n $dropzone = $form.find('.formDropZone');\n $dropzone.append('
    ' + section + '
    ');\n //$form.find('[type=\"submit\"]').trigger('click');\n });\n\n $('#institutionList').change(function () {\n window.location.href = $(this).val();\n });\n\n function paginate($container) {\n var maxPerPage = 4,\n $table = $container.find('.table-responsive'),\n $tr = $table.find('tbody tr'),\n pager = '',\n prevPage = 0,\n page = null;\n\n if ($tr.length > maxPerPage) {\n // add pager html\n $table.addClass('js-pages');\n pager =\n '
    \\n' +\n '
      \\n' +\n '
    • 1
    • \\n';\n '
    \\n' + '
    ';\n $table.append(pager);\n\n prevPage = 1;\n $tr.each(function (index) {\n var currentPage = parseInt(index / maxPerPage) + 1;\n\n // add data-page to table tr\n $(this).attr('data-page', currentPage);\n\n if (currentPage > prevPage) {\n page =\n '
  • ' +\n currentPage +\n '
  • ';\n $table.find('.js-pager ul').append(page);\n prevPage = currentPage;\n }\n });\n\n UX.pager.$pages = $('.js-pages');\n UX.pager.$pager = $('.js-pager');\n UX.pager.init();\n }\n }\n\n $entitlements = $('#pane-series');\n if ($entitlements.length > 0) {\n paginate($entitlements);\n }\n\n const infoBox = document.querySelector('.raaAccountInfo .infoBox');\n if (infoBox) {\n infoBox.setAttribute('tabindex', '-1');\n infoBox.focus();\n }\n});\n","import 'ui-core/plugins/slide/js/slide';\n\nUX.slide.vPort = 'screen-md';\n\nUX.slide.on.destroyJcf = function ($el) {};\nUX.slide.on.rebuildJcf = function ($el) {};\n\n// @todo: should do cleanup after finish UX3 process by remove focus from UX.slide.on.hide() (when close mobile navigation menu) - according to LIT-287810.\n\nUX.slide.on.hide = function (e) {\n const $body = $('body'),\n isInsideSlide = $(e.target).closest('.w-slide').length;\n\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 const closingEvent = $.Event('slide:close');\n $(document).trigger(closingEvent, [UX.slide]);\n if (closingEvent.isDefaultPrevented()) {\n return;\n }\n\n if (typeof e !== 'undefined' && $('.w-slide').hasClass('js--open')) {\n if (!isInsideSlide) {\n UX.slide.back = true;\n }\n }\n\n if (UX.slide.back) {\n UX.slide.addTransition();\n UX.slide.$slideinfo.hide().removeClass('js--open');\n\n UX.slide.nested = true;\n\n if (UX.slide.activeSlide === 0) {\n UX.slide.nested = false;\n UX.slide.$contents = UX.slide.$elements.children('.w-slide__content');\n } else {\n UX.slide.$contents = $('.nested--' + UX.slide.activeSlide);\n }\n UX.slide.on.destroyJcf(UX.slide.$contents);\n\n let originalTarget = $(UX.slide.$contents.attr('original-target'));\n if (!originalTarget) {\n originalTarget = $body;\n }\n\n const isLoi = UX.slide.$elements.find('.loi').length > 0;\n\n UX.slide.on.beforeReturnSlideContent();\n\n if (isLoi) {\n const $dropBlockHolder = $('.dropBlock-loi__holder');\n $dropBlockHolder.append(UX.slide.$contents.html());\n $dropBlockHolder.find('.loi__list').each(function () {\n UX.loi.on.recalculate($(this));\n });\n } else {\n if (UX.slide.$contents.find('[class*=nested--]').length) {\n UX.slide.$contents.find('[class*=nested--]').remove();\n }\n\n if (UX.slide.clone === 'self') {\n if (UX.slide.nested || UX.slide.multi) {\n const $returnNestedDataSlideHere = $('.returnNestedDataSlideHere');\n $returnNestedDataSlideHere.after(UX.slide.$contents.html());\n $returnNestedDataSlideHere.remove();\n } else {\n const $returnDataSlideHere = $('.returnDataSlideHere');\n $returnDataSlideHere.after(UX.slide.$contents.html());\n $returnDataSlideHere.remove();\n }\n } else {\n if (UX.slide.nested || UX.slide.multi) {\n $('.returnNestedDataSlideHere', originalTarget).after(UX.slide.$contents.html());\n $('.returnNestedDataSlideHere', originalTarget).remove();\n } else {\n $('.returnDataSlideHere', originalTarget).after(UX.slide.$contents.html());\n $('.returnDataSlideHere', originalTarget).remove();\n }\n }\n UX.slide.on.rebuildJcf(originalTarget);\n }\n\n UX.slide.oldInfo.splice(UX.slide.activeSlide, 1);\n UX.slide.$slideinfo.html(UX.slide.oldInfo[UX.slide.activeSlide - 1]);\n\n if (UX.slide.nested) {\n UX.slide.activeSlide--;\n UX.slide.on._hideSlide();\n if (UX.slide.multi) {\n UX.slide.$contents.remove();\n }\n UX.slide.$contents = $('.nested--' + UX.slide.activeSlide);\n if (UX.slide.activeSlide === 0) {\n UX.slide.$contents = UX.slide.$elements.children('.w-slide__content');\n }\n } else {\n UX.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 UX.slide.on._hideSlide();\n UX.slide.$elements.removeClass('js--open');\n }\n UX.slide.$slideinfo.show().addClass('js--open');\n\n UX.slide.backLabel = 'back';\n UX.slide.setBackLabel();\n UX.slide.on.additionalHide(e);\n\n if (UX.slide.$elements.hasClass('w-slide__pill')) {\n while (UX.slide.activeSlide > 0) {\n UX.slide.activeSlide--;\n UX.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 UX.slide.activeSlide === 0\n ) {\n UX.slide.on.off(e);\n }\n }\n\n if (!isInsideSlide && !(typeof e !== 'undefined' && $(e.target).closest('.pill-list').length)) {\n UX.slide.on.off(e);\n }\n\n UX.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') {\n googletag.pubads().refresh();\n }\n\n // \"closed\" event\n const closeEvent = $.Event('slide:closed');\n $(document).trigger(closeEvent, [UX.slide]);\n};\n\nUX.slide.displaySlideHtmlToPage = () => {\n UX.slide.$slide = `\n \n `;\n\n UX.slide.$elements = $(UX.slide.$slide);\n\n const $body = $('body'),\n $main = $('main');\n\n if ($main.length > 0) $main.append(UX.slide.$elements);\n else $body.append(UX.slide.$elements);\n};\n\nUX.slide.control = function () {\n const $body = $('body');\n\n $body.on('click', '.w-slide__btn', function (e) {\n if (e.currentTarget.getAttribute('href').includes('/')) {\n return;\n }\n if (UX.slide.isMobile) {\n $(this).addClass('slide-active');\n }\n const $this = $(this);\n\n if (UX.slide.isQueue && UX.slide.isMobile) {\n e.stopImmediatePropagation();\n $(this).off('click');\n return false;\n }\n UX.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 UX.slide.addTransition();\n UX.slide.$toggle = $(this);\n UX.slide.$target = $(UX.slide.$toggle.data('slide-target'));\n UX.slide.back = false;\n // @todo: should do cleanup after finish UX3 process (add these changes to slide.control()) - according to LIT-278268.\n $this.closest('li').addClass('js--slide').siblings().removeClass('js--slide');\n if ($this.is('[id*=pane-pcw]') && UX.loader.isArticleTabEmpty($(this))) {\n $this.closest('[data-db-target-of]').addClass('js--loading').focus();\n setTimeout(function () {\n $this.closest('[data-db-target-of=\"article\"]').removeClass('js--loading');\n $(UX.loader.target).removeClass('empty');\n UX.slide.on.show(e);\n }, 3000);\n } else {\n UX.slide.on.show(e);\n }\n }\n });\n $body.on('click', '.w-slide__back, .w-slide__hide', function (e) {\n if (!e.target.closest('.sections__drop.rlist.separator')) {\n const $this = $(this);\n\n if ($('.js--slide').length && !$this.hasClass('js--bib')) {\n !$('[data-db-target-for=\"article\"]').hasClass('js--open') &&\n $('[data-db-target-for=\"article\"]').trigger('click');\n setTimeout(() => {\n $('.js--slide').find('a').eq(0).focus();\n }, 250);\n } else if ($('.js--scrollTab').length) {\n setTimeout(() => {\n $('.js--scrollTab').focus();\n }, 230);\n }\n $this.removeClass('js--bib');\n\n UX.slide.back = true;\n UX.slide.on.hide(e);\n }\n });\n};\n\nUX.slide.on.additionalShowSlide = function () {\n const scrollTabEl = $('.js--scrollTab'),\n scrollTabAttr = scrollTabEl.attr('href'),\n tapTargetEl = $(`${scrollTabAttr}`);\n\n if (UX.tab.isMobile && UX.tab.isMobile[0]) {\n const slideContent = $('.w-slide__content');\n UX.tab.animate.scroll(slideContent, tapTargetEl);\n }\n};\n","import 'ui-core/plugins/sticko/js/sticko';\n\n(function () {\n var sticko = UX.sticko;\n\n sticko.get.fixedpageElementsHeight = function () {\n let elementsHeight = $('header, .pageHeader').outerHeight();\n\n if (!elementsHeight) {\n elementsHeight = 0;\n }\n return elementsHeight;\n };\n\n sticko.set.height = function (val, originalHeight) {\n let offestYTop = window.pageYOffset; // get windows y-top offset\n let offsetBottom = offestYTop + $(window).outerHeight(); // get windows y-bottom offset\n let footerHeight = $('.page-footer').outerHeight();\n let fixedArea = $(document).outerHeight() - footerHeight; // get break point for stickiness\n\n let styles = {}; // define styles varibale\n\n if (offsetBottom >= fixedArea) {\n // check of we reached break point\n val = offsetBottom - fixedArea; // get new height\n sticko.newHeight = originalHeight - val;\n styles = {\n height: sticko.newHeight, // store new height\n };\n } else {\n styles = {\n height: originalHeight, // reset original height\n };\n }\n sticko.apply(sticko.$child, styles); // apply new height\n\n let hHeight = sticko.get.fixedpageElementsHeight();\n\n if ($('.article-row-left').outerHeight() < $(window).outerHeight()) {\n if (!UX.accordion.isArticleAccordion) {\n $('.article-row-left').height($(window).outerHeight() - hHeight);\n }\n }\n\n if ($('.dynamic-sticko').length) {\n $('.dynamic-sticko').each(function () {\n let dynamicStickyElement = $(this);\n dynamicStickyElement.css({\n position: 'static',\n 'padding-bottom': '',\n });\n let dynamicScrollTop = $(window).scrollTop() + hHeight;\n let dynamicHeight = $(window).outerHeight() - hHeight;\n let dynamicChildHeight = dynamicHeight;\n\n if (dynamicStickyElement.find('.tab__nav').length) {\n dynamicChildHeight -= dynamicStickyElement.find('.tab__nav').outerHeight();\n }\n\n if (offsetBottom >= fixedArea) {\n // check of we reached break point\n val = offsetBottom - fixedArea; // get new height\n dynamicStickyElement.css('height', dynamicHeight - val);\n $('.sticko__child').css('height', dynamicChildHeight - val);\n } else {\n dynamicStickyElement.css('height', dynamicHeight);\n $('.sticko__child').css('height', dynamicChildHeight);\n }\n\n if (dynamicScrollTop >= dynamicStickyElement.offset().top) {\n $('.sticko__parent').css('padding-bottom', dynamicHeight);\n dynamicStickyElement.css({\n position: 'fixed',\n top: hHeight,\n });\n }\n });\n }\n };\n})();\n","// Needs refactoring\nimport 'ui-core/components/coolbar/js/coolbar';\n\n(function () {\n let coolbar = {\n sections: null,\n holder: $('.coolBar--sections .coolBar__drop'),\n vPort: 'screen-sm',\n isMobile: false,\n coolbarElement: null,\n headerHeight: 0,\n isStickyBar: false,\n lock: true, // define lock and set default value, this lock will be used to make sure to run certain functionality and to run on every scroll event\n eventPage: document.querySelector('.event__content'),\n\n init: function () {\n coolbar.vPort = 'screen-md';\n\n coolbar.coolbarElement = $('.coolBar');\n coolbar.isStickyBar = coolbar.coolbarElement.hasClass('stickybar');\n coolbar.get.sections();\n coolbar.fill.sections();\n if (!coolbar.eventPage) {\n coolbar.control();\n }\n coolbar.addtionalControls();\n },\n control: function () {\n if ($('.journal-home').length) {\n coolbar.vPort = 'screen-md';\n }\n\n $(document).on(coolbar.vPort + '-on', function () {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n $('.coolBar').addClass('coolBar--res'); // class will be used in our scss (to replace media queries)\n\n coolbar.isMobile = true;\n\n if ($('.stickybar.coolBar--res,.coolBar.coolBar--res').length > 0) {\n $('.content>article.container').addClass('article--res');\n }\n });\n\n $(document).on(coolbar.vPort + '-off', function () {\n // Waiting for custom event that will be triggered by controller.js to deactivate responsive effects\n $('.coolBar').removeClass('coolBar--res');\n $('.content article.container').removeClass('article--res');\n $(document).trigger('eventSetContentPadding');\n coolbar.isMobile = false;\n if (typeof UX.controller !== 'undefined') {\n UX.controller.check();\n }\n });\n },\n addtionalControls: function () {\n let eventSection = document.querySelector('.coolBar__section #sections_Pop ul');\n if (eventSection) {\n eventSection.classList.remove('w-slide--list');\n }\n },\n get: {\n sections: function () {\n coolbar.sections = $(\n '.article__content .article-section:not([style=\"display: none;\"]) .section__title'\n );\n },\n },\n fill: {\n sections: function () {\n if ($('.coolBar--sections').length && UX.coolbar.sections.length > 1) {\n $('.coolBar--sections').removeClass('hidden');\n const ul = $('