{"version":3,"sources":["webpack:///./uPortal/Content/js/Extensions/ajax.js","webpack:///./uPortal/Content/js/Extensions/form.js","webpack:///./node_modules/jquery-validation/dist/jquery.validate.js","webpack:///./node_modules/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js","webpack:///./Content/js/index.js","webpack:///./uPortal/Content/js/Polyfill/index.js","webpack:///./uPortal/Content/js/Polyfill/closest.js","webpack:///./uPortal/Core/Panels/RTStartPanel/Js/index.js","webpack:///./uPortal/Core/Panels/RTStartPanel/css/style.css","webpack:///./uPortal/Core/Pages/SectionPage/Js/index.js","webpack:///./uPortal/Core/Pages/SectionPage/css/style.css?6e9d","webpack:///./uPortal/Core/Pages/NewsPage/Js/index.js","webpack:///./uPortal/Core/Pages/NewsPage/css/style.css?3a80","webpack:///./Core/Panels/NotificationPanel/Js/index.js","webpack:///./Core/Panels/NotificationPanel/Css/style.css?fca6","webpack:///./uPortal/Content/js/AjaxForms/index.js","webpack:///./uPortal/Content/js/AjaxForms/formSubmit.js","webpack:///./uPortal/Core/Panels/HeroPanel/Js/index.js","webpack:///./node_modules/youtube-video-plugin/src/index.js","webpack:///./uPortal/Core/Panels/HeroPanel/Css/style.css?d139","webpack:///./uPortal/Core/Panels/VideoPanel/Js/index.js","webpack:///./uPortal/Core/Panels/VideoPanel/Css/style.css?5376","webpack:///./uPortal/Core/Panels/NewsletterPanel/Js/index.js","webpack:///./uPortal/Core/Panels/NewsletterPanel/css/style.css?55b2","webpack:///./uPortal/Core/Panels/FaqPanel/Js/index.js","webpack:///./uPortal/Core/Panels/FaqPanel/css/style.css?cdc7","webpack:///./Core/Panels/imageCarouselPanel/Js/index.js","webpack:///./Core/Panels/ContactFormPanel/Js/index.js","webpack:///./uPortal/Core/Shared/Navigation/Js/index.js","webpack:///./uPortal/Core/Shared/Navigation/Js/mobileMenu.js","webpack:///./uPortal/Core/Shared/Navigation/Js/scrollToTop.js","webpack:///./uPortal/Core/Shared/AutoSuggestions/Js/index.js","webpack:///./uPortal/Content/js/Extensions/utils.js","webpack:///./uPortal/Content/js/Plugins/Scrollspy/index.js","webpack:///./Core/Shared/CustomFooter/Js/index.js","webpack:///./uPortal/Content/js/Plugins/AlertifyJS/index.js","webpack:///./uPortal/Content/js/Plugins/AlertifyJS/alertify.min.css?61ba","webpack:///./uPortal/Content/js/Plugins/AlertifyJS/alertify.min.js","webpack:///(webpack)/buildin/module.js","webpack:///./uPortal/Content/js/Plugins/AntiSpider/index.js","webpack:///./Core/Shared/CustomFooter/css/style.css?04df","webpack:///./Core/Shared/CustomHeader/Js/index.js","webpack:///./uPortal/Core/Pages/SearchPage/Js/index.js","webpack:///./uPortal/Core/Pages/SearchPage/css/style.css?9402","webpack:///./uPortal/Core/Shared/CookieDisclaimer/Js/index.js","webpack:///./uPortal/Core/Shared/CookieDisclaimer/Css/style.css?4906","webpack:///./Core/Shared/TopImage/Js/index.js","webpack:///./node_modules/@vimeo/player/dist/player.es.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/process/browser.js","webpack:///./Core/Shared/TopImage/Css/style.css?23ba","webpack:///./uPortal/Content/css/default.css?4f41","webpack:///./Content/css/styles.css?db4e"],"names":["jsonRegex","Ajax","get","url","onSuccess","onError","request","XMLHttpRequest","open","onload","status","responseText","test","json","JSON","parse","code","message","onerror","send","post","data","setRequestHeader","isJson","serialize","form","nodeName","s","elements","forEach","field","name","disabled","type","options","option","selected","length","encodeURIComponent","value","checked","join","replace","Form","require","init","Element","prototype","closest","matchesFn","some","fn","document","body","selector","el","parent","parentElement","initNotificationPanel","initAjaxFormsScripts","forms","Array","from","querySelectorAll","addEventListener","onSubmit","wrapWithSender","cb","d","e","preventDefault","target","action","getAttribute","submitCallback","sender","successCallback","errorCallback","initYoutubeVideo","elem","querySelector","run","className","mute","autoplay","controls","showinfo","loop","width","height","initVideoPanel","videoPanelsDom","videoPanels","root","getElementsByTagName","panel","popup","playBtn","closeBtn","popupContent","video","videoUrl","dataset","showPopup","hidePopup","classList","remove","setAttribute","add","initNewsletterForm","panelElement","formSubmitBtn","formSuccessMessage","success","formErrorMessage","error","messageContainer","event","isFormValid","$","valid","reset","style","display","innerHTML","initNewsletterPanel","newsletterPanels","newsletterPanelsArray","newsletterPanel","toggleQuestion","fqaPanels","fqaPanelsArray","element","panelHeader","panelText","panelDesc","panelDescHeight","offsetHeight","toggle","contains","maxHeight","defaultDelay","controller","galleries","galleriesArray","delay","container","items","nav","autoplayButtonOutput","autoplayTimeout","initContactForm","isValid","isVisibleInputsValid","contactFormPanels","contactFormPanelsArray","contactFormPanel","wrapper","burgerMenu","scrollTop","documentElement","trigger","getElementById","window","pageYOffset","stop","animate","keyCodeSubmit","keyCodeUp","keyCodeDown","keyCodeClear","ignoredKeyCodes","activeResultClass","initAutoSuggestion","searchForms","searchFormsArray","searchForm","initSearchForm","debounceSubmitForm","debounce","submitForm","input","clear","searchLink","searchContauner","searchInputHolder","suggestionList","redirectPath","path","results","activeResultIndex","isPostSuccess","initListeners","setTimeout","initKeyNav","alert","toggleSearch","debouncedSubmit","checkKeyCode","clearSearch","updateSearchLink","href","keyCode","location","activeElement","addKeyListeners","setActiveState","removeKeyListeners","keyListener","removeEventListener","changeActiveIndex","koef","getSearchResulUrl","activeResult","tagName","innerText","indexOf","resultsNodes","unshift","item","initToggleSearchLink","screenWidth","screen","phoneMaxWidth","focus","timer","ctx","args","arguments","clearTimeout","apply","Utils","trackingItems","offsetCoef","scrollspy","trackingItemsSelector","checkItemsInView","allItemsShowed","checkIsElementInView","elRect","getBoundingClientRect","top","innerHeight","initCustomFooter","addLastTweetLinksAttr","formsArray","set","links","i","alertify","a","b","c","split","f","splice","getComputedStyle","direction","scrollLeft","g","lastChild","removeChild","h","isArray","push","Date","getTime","RegExp","source","global","ignoreCase","multiline","lastIndex","hasOwnProperty","parentNode","settings","__settings","__init","__internal","j","k","index","button","cancel","l","call","m","dialog","factory","t","defaults","o","Error","main","show","closeAll","p","slice","close","setting","u","notify","create","warning","dismissAll","n","ENTER","ESC","F1","F12","LEFT","RIGHT","autoReset","basic","closable","closableByDimmer","frameless","maintainFocus","maximizable","modal","movable","moveBounded","overflow","padding","pinnable","pinned","preventBodyShift","resizable","startMaximized","transition","notifier","position","closeButton","glossary","title","ok","acccpt","deny","confirm","decline","maximize","restore","theme","q","attachEvent","r","detachEvent","animation","OAnimation","msAnimation","MozAnimation","WebkitAnimation","supported","za","setup","buttons","select","hooks","isOpen","timerIn","timerOut","onshow","onclosing","onclose","onfocus","onmove","onmoved","onresize","onresized","onmaximize","onmaximized","onrestore","onrestored","resetHandler","beginMoveHandler","beginResizeHandler","bringToFrontHandler","modalClickHandler","buttonsClickHandler","commandsClickHandler","transitionInHandler","transitionOutHandler","destroy","createElement","Ca","base","hidden","Ba","dimmer","firstChild","commands","header","footer","resizeHandle","nextSibling","pin","content","auxiliary","primary","buttonTemplate","ya","key","cloneNode","text","attrs","scope","appendChild","X","aa","ga","B","R","T","F","Y","Z","v","build","wa","xa","scrollTo","isModal","isMaximized","noOverflow","w","scrollHeight","clientHeight","Ea","Da","fixed","x","prefix","offsetWidth","y","modeless","pa","N","oa","z","A","W","C","setHeader","O","Q","P","K","ea","ka","noPadding","onupdate","D","op","found","E","S","invokeOnClose","srcElement","isPinned","H","G","J","I","maximized","L","marginTop","marginLeft","marginRight","M","parseInt","left","unpinned","ua","va","Fa","callback","Ga","U","V","stopPropagation","animationIn","da","ja","Ka","Ia","La","Ja","Na","_","Math","min","Ma","maxLeft","max","minLeft","maxTop","minTop","Pa","targetTouches","capture","offsetLeft","offsetTop","offsetParent","Oa","Ha","noSelection","ba","ca","qa","ra","fa","pageX","pageY","clientX","clientY","isNaN","Qa","Ta","abs","Ra","Sa","minHeight","maxWidth","minWidth","ha","ia","Number","Nan","sa","ta","la","ma","na","Aa","navigator","userAgent","animationOut","shake","unpin","bringToFront","moveTo","resizeTo","parseFloat","match","clientWidth","settingUpdated","HTMLElement","setContent","showModal","prepare","closeOthers","pushed","right","center","bottom","dismiss","clickHandler","transitionEndHandler","transitionTimeout","insertBefore","visible","ondismiss","dismissOthers","setMessage","onok","label","clearInterval","duration","setInterval","task","labels","oncancel","defaultFocus","reverseButtons","autoOk","autoCancel","module","exports","decodeEmails","reg","itemHtml","emailResult","antiSpiderElements","str","login","domain","initCustomHeader","lastScrollTop","minimizeHeader","initSearchResult","searchResult","state","skip","val","take","total","count","resultList","updateSkipValue","checkMoreBtn","insertAdjacentHTML","html","initCookieDisclaimer","cookiePopup","cookiePopupBtn","on","localStorage","setItem","addClass","getItem","removeClass","initTopImage","initVimeoVideo","vimeoOpenBtn","vimeoCloseButtons","id","player","play","unload"],"mappings":"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;AACA;;AAEA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,iDAAiD;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,kBAAkB;AACvC;;AAEA;AACA;AACA;AACA;AACA,2BAA2B,gBAAgB;AAC3C;;AAEA;AACA;AACA,CAAC;;AAED;AACA,4CAA4C;;AAE5C;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,mCAAmC;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,YAAY;AACvD;AACA,GAAG;AACH,EAAE;AACF;AACA;;AAEA;;AAEA;AACA,cAAc;AACd,YAAY;AACZ,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,EAAE;AAC/D,yDAAyD,EAAE;AAC3D,kEAAkE,EAAE,MAAM,EAAE;AAC5E,4DAA4D,EAAE,MAAM,EAAE;AACtE,wEAAwE,EAAE;AAC1E,2EAA2E,EAAE;AAC7E,yDAAyD,EAAE;AAC3D,EAAE;;AAEF;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA,IAAI;;AAEJ;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,0EAA0E,eAAe;AACzF;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,gBAAgB,eAAe;AAC/B;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC;AACvC;AACA,KAAK;;AAEL;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA,IAAI;AACJ,+DAA+D,GAAG;AAClE;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA,iDAAiD,eAAe;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,IAAI;AACJ,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,+CAA+C,YAAY,EAAE;AAC7D,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,4CAA4C,iBAAiB;AAC7D,IAAI;AACJ,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA,aAAa,iBAAiB;AAC9B,UAAU,cAAc;AACxB,QAAQ,YAAY;AACpB,SAAS,aAAa;AACtB,YAAY,gBAAgB;AAC5B,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B,eAAe;AACf,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;;AAEF;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF,mCAAmC,aAAa,4BAA4B;AAC5E;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,mEAAmE,EAAE,gCAAgC,KAAK,6CAA6C,KAAK;AAC5J,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,8GAA8G,IAAI,EAAE,EAAE,iCAAiC,IAAI,EAAE,EAAE,sCAAsC,IAAI,EAAE,EAAE,gDAAgD,IAAI,oBAAoB,EAAE,oLAAoL,GAAG,YAAY,IAAI;AAC9d,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,2CAA2C,EAAE;AAC7C,GAAG;;AAEH;AACA;AACA,sDAAsD,IAAI,OAAO,EAAE;AACnE,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,yCAAyC,aAAa;AACtD,0CAA0C,cAAc;AACxD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,gEAAgE,oCAAoC;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA,CAAC;;AAED;AACA,kBAAkB,qCAAqC;AACvD;;AAEA,wBAAwB;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,G;;;;;;;AChkDD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gDAAgD,cAAc,EAAE;AAChE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,2CAA2C;AAC3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yCAAyC;AACzC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA,+BAA+B;AAC/B;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB,gCAAgC;AAChC,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB;AACxB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,4CAA4C;AAC5C;;AAEA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;;AAEb,6BAA6B,oBAAoB;;AAEjD;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,mBAAmB,+CAA+C;AAClE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;AACL,CAAC,U;;;;;;;;;;;;;;;;;;;AC7ZD;;;;AACA;;AAEA;;AACA;;AAEA;;AAGA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;;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CA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA,gDAAgD;;AAEhD;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;AAMA;AACA,kBAAkB,YAAY,EAAE;AAChC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC;AACxC;AACA,yCAAyC;AACzC;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,sDAAsD,0BAA0B,IAAI;AACpF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,CAAC;;AAED;AACA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,GAAG;AACH;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,0BAA0B,SAAS;AACnC;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ,GAAG;AACH;AACA;AACA;;AAEA,sCAAsC;AACtC;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;AACH,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ,GAAG;AACH,EAAE;;AAEF;AACA,CAAC;AACD,CAAC;;AAED;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,iCAAiC,oCAAoC,EAAE;AAClF;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,YAAY,QAAQ;AACpB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,SAAS;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO,aAAa;AAC/B,YAAY;AACZ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,YAAY;AACvB,YAAY,kBAAkB;AAC9B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB,YAAY;AACZ;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,gBAAgB;AAC3B,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;;AAEA,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,8CAA8C;AAC5D;AACA,cAAc,OAAO;AACrB,eAAe;AACf;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO,SAAS;AAC/B,gBAAgB;AAChB;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB,aAAa;AACb;;AAEA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA,iBAAiB;AACjB,aAAa;AACb;;AAEA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,MAAM;AACzB,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,YAAY;AAC/B,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,SAAS;AAC5B,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B,oBAAoB,WAAW;AAC/B;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,OAAO;AAC1B,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;;AAEA,mDAAmD,yBAAyB;AAC5E;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B,oBAAoB,gBAAgB;AACpC;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B,sBAAsB,OAAO;AAC7B,sBAAsB,OAAO;AAC7B,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA;AACA,qBAAqB,eAAe;AACpC,oBAAoB,0BAA0B;AAC9C;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,OAAO;AAC1B,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,KAAK;AAC1B;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,KAAK;AAC1B;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,KAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,KAAK;AAC1B;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B,oBAAoB,UAAU;AAC9B,oBAAoB,cAAc;AAClC;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B,sBAAsB,OAAO;AAC7B,sBAAsB,OAAO;AAC7B,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,oBAAoB;AACpB;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,CAAC;;AAED;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;;;;;;;;;AC5jEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;ACpDA;AACA;;AAEA;AACA;AACA;;AAEA,uBAAuB;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0CAA0C,sBAAsB,EAAE;AAClE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;;AAEA,KAAK;AACL;AACA;;AAEA,KAAK;AACL;AACA;;AAEA,KAAK;AACL;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;;;;;;;ACzLD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;;ACvLtC,yC;;;;;;;ACAA,yC;;;;;;;ACAA,yC","file":"bundle.js","sourcesContent":["const jsonRegex = /^(\"(((?=\\\\)\\\\([\"\\\\\\/bfnrt]|u[0-9a-fA-F]{4}))|[^\"\\\\\\0-\\x1F\\x7F]+)*\")$/;\r\nexport const Ajax = {\r\n get: (url, onSuccess, onError) => {\r\n let request = new XMLHttpRequest();\r\n request.open('GET', url, true);\r\n request.onload = () => {\r\n if (request.status >= 200 && request.status < 400) {\r\n let responseText = request.responseText;\r\n if (jsonRegex.test(responseText)) {\r\n let json = JSON.parse(responseText);\r\n onSuccess(json);\r\n } else {\r\n onSuccess(responseText);\r\n }\r\n } else {\r\n onError({ code: request.status, message: request.responseText });\r\n }\r\n }\r\n request.onerror = onError;\r\n request.send();\r\n },\r\n post: (url, data, onSuccess, onError) => {\r\n let request = new XMLHttpRequest();\r\n request.open('POST', url, true);\r\n request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\r\n request.onload = () => {\r\n if (request.status >= 200 && request.status < 400) {\r\n let responseText = request.responseText;\r\n let isJson = jsonRegex.test(responseText);\r\n if (isJson) {\r\n let json = JSON.parse(responseText);\r\n onSuccess(json);\r\n } else {\r\n onSuccess(responseText);\r\n }\r\n } else {\r\n onError({ code: request.status, message: request.responseText });\r\n }\r\n }\r\n request.onerror = onError;\r\n request.send(data);\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./uPortal/Content/js/Extensions/ajax.js","const serialize = function (form) {\r\n if (typeof form != \"object\" || form.nodeName !== \"FORM\") return \"\";\r\n const s = [];\r\n [...form.elements].forEach(function (field) {\r\n if (!field.name\r\n || field.disabled\r\n || field.type === \"file\"\r\n || field.type === \"reset\"\r\n || field.type === \"submit\"\r\n || field.type === \"button\")\r\n return;\r\n\r\n if (field.type === \"select-multiple\") {\r\n field.options.forEach(function (option) {\r\n if (!option.selected) return;\r\n s[s.length] = encodeURIComponent(field.name) + \"=\" + encodeURIComponent(option.value);\r\n });\r\n } else if ((field.type !== \"checkbox\" && field.type !== \"radio\") || field.checked) {\r\n s[s.length] = encodeURIComponent(field.name) + \"=\" + encodeURIComponent(field.value);\r\n }\r\n });\r\n return s.join(\"&\").replace(/%20/g, \"+\");\r\n};\r\n\r\nexport const Form = {\r\n serialize: serialize\r\n}\n\n\n// WEBPACK FOOTER //\n// ./uPortal/Content/js/Extensions/form.js","/*!\r\n * jQuery Validation Plugin v1.17.0\r\n *\r\n * https://jqueryvalidation.org/\r\n *\r\n * Copyright (c) 2017 Jörn Zaefferer\r\n * Released under the MIT license\r\n */\r\n(function( factory ) {\r\n\tif ( typeof define === \"function\" && define.amd ) {\r\n\t\tdefine( [\"jquery\"], factory );\r\n\t} else if (typeof module === \"object\" && module.exports) {\r\n\t\tmodule.exports = factory( require( \"jquery\" ) );\r\n\t} else {\r\n\t\tfactory( jQuery );\r\n\t}\r\n}(function( $ ) {\r\n\r\n$.extend( $.fn, {\n\n\t// https://jqueryvalidation.org/validate/\n\tvalidate: function( options ) {\n\n\t\t// If nothing is selected, return nothing; can't chain anyway\n\t\tif ( !this.length ) {\n\t\t\tif ( options && options.debug && window.console ) {\n\t\t\t\tconsole.warn( \"Nothing selected, can't validate, returning nothing.\" );\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if a validator for this form was already created\n\t\tvar validator = $.data( this[ 0 ], \"validator\" );\n\t\tif ( validator ) {\n\t\t\treturn validator;\n\t\t}\n\n\t\t// Add novalidate tag if HTML5.\n\t\tthis.attr( \"novalidate\", \"novalidate\" );\n\n\t\tvalidator = new $.validator( options, this[ 0 ] );\n\t\t$.data( this[ 0 ], \"validator\", validator );\n\n\t\tif ( validator.settings.onsubmit ) {\n\n\t\t\tthis.on( \"click.validate\", \":submit\", function( event ) {\n\n\t\t\t\t// Track the used submit button to properly handle scripted\n\t\t\t\t// submits later.\n\t\t\t\tvalidator.submitButton = event.currentTarget;\n\n\t\t\t\t// Allow suppressing validation by adding a cancel class to the submit button\n\t\t\t\tif ( $( this ).hasClass( \"cancel\" ) ) {\n\t\t\t\t\tvalidator.cancelSubmit = true;\n\t\t\t\t}\n\n\t\t\t\t// Allow suppressing validation by adding the html5 formnovalidate attribute to the submit button\n\t\t\t\tif ( $( this ).attr( \"formnovalidate\" ) !== undefined ) {\n\t\t\t\t\tvalidator.cancelSubmit = true;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Validate the form on submit\n\t\t\tthis.on( \"submit.validate\", function( event ) {\n\t\t\t\tif ( validator.settings.debug ) {\n\n\t\t\t\t\t// Prevent form submit to be able to see console output\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t\tfunction handle() {\n\t\t\t\t\tvar hidden, result;\n\n\t\t\t\t\t// Insert a hidden input as a replacement for the missing submit button\n\t\t\t\t\t// The hidden input is inserted in two cases:\n\t\t\t\t\t// - A user defined a `submitHandler`\n\t\t\t\t\t// - There was a pending request due to `remote` method and `stopRequest()`\n\t\t\t\t\t// was called to submit the form in case it's valid\n\t\t\t\t\tif ( validator.submitButton && ( validator.settings.submitHandler || validator.formSubmitted ) ) {\n\t\t\t\t\t\thidden = $( \"\" )\n\t\t\t\t\t\t\t.attr( \"name\", validator.submitButton.name )\n\t\t\t\t\t\t\t.val( $( validator.submitButton ).val() )\n\t\t\t\t\t\t\t.appendTo( validator.currentForm );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( validator.settings.submitHandler ) {\n\t\t\t\t\t\tresult = validator.settings.submitHandler.call( validator, validator.currentForm, event );\n\t\t\t\t\t\tif ( hidden ) {\n\n\t\t\t\t\t\t\t// And clean up afterwards; thanks to no-block-scope, hidden can be referenced\n\t\t\t\t\t\t\thidden.remove();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( result !== undefined ) {\n\t\t\t\t\t\t\treturn result;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\t// Prevent submit for invalid forms or custom submit handlers\n\t\t\t\tif ( validator.cancelSubmit ) {\n\t\t\t\t\tvalidator.cancelSubmit = false;\n\t\t\t\t\treturn handle();\n\t\t\t\t}\n\t\t\t\tif ( validator.form() ) {\n\t\t\t\t\tif ( validator.pendingRequest ) {\n\t\t\t\t\t\tvalidator.formSubmitted = true;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn handle();\n\t\t\t\t} else {\n\t\t\t\t\tvalidator.focusInvalid();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn validator;\n\t},\n\n\t// https://jqueryvalidation.org/valid/\n\tvalid: function() {\n\t\tvar valid, validator, errorList;\n\n\t\tif ( $( this[ 0 ] ).is( \"form\" ) ) {\n\t\t\tvalid = this.validate().form();\n\t\t} else {\n\t\t\terrorList = [];\n\t\t\tvalid = true;\n\t\t\tvalidator = $( this[ 0 ].form ).validate();\n\t\t\tthis.each( function() {\n\t\t\t\tvalid = validator.element( this ) && valid;\n\t\t\t\tif ( !valid ) {\n\t\t\t\t\terrorList = errorList.concat( validator.errorList );\n\t\t\t\t}\n\t\t\t} );\n\t\t\tvalidator.errorList = errorList;\n\t\t}\n\t\treturn valid;\n\t},\n\n\t// https://jqueryvalidation.org/rules/\n\trules: function( command, argument ) {\n\t\tvar element = this[ 0 ],\n\t\t\tsettings, staticRules, existingRules, data, param, filtered;\n\n\t\t// If nothing is selected, return empty object; can't chain anyway\n\t\tif ( element == null ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !element.form && element.hasAttribute( \"contenteditable\" ) ) {\n\t\t\telement.form = this.closest( \"form\" )[ 0 ];\n\t\t\telement.name = this.attr( \"name\" );\n\t\t}\n\n\t\tif ( element.form == null ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( command ) {\n\t\t\tsettings = $.data( element.form, \"validator\" ).settings;\n\t\t\tstaticRules = settings.rules;\n\t\t\texistingRules = $.validator.staticRules( element );\n\t\t\tswitch ( command ) {\n\t\t\tcase \"add\":\n\t\t\t\t$.extend( existingRules, $.validator.normalizeRule( argument ) );\n\n\t\t\t\t// Remove messages from rules, but allow them to be set separately\n\t\t\t\tdelete existingRules.messages;\n\t\t\t\tstaticRules[ element.name ] = existingRules;\n\t\t\t\tif ( argument.messages ) {\n\t\t\t\t\tsettings.messages[ element.name ] = $.extend( settings.messages[ element.name ], argument.messages );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"remove\":\n\t\t\t\tif ( !argument ) {\n\t\t\t\t\tdelete staticRules[ element.name ];\n\t\t\t\t\treturn existingRules;\n\t\t\t\t}\n\t\t\t\tfiltered = {};\n\t\t\t\t$.each( argument.split( /\\s/ ), function( index, method ) {\n\t\t\t\t\tfiltered[ method ] = existingRules[ method ];\n\t\t\t\t\tdelete existingRules[ method ];\n\t\t\t\t} );\n\t\t\t\treturn filtered;\n\t\t\t}\n\t\t}\n\n\t\tdata = $.validator.normalizeRules(\n\t\t$.extend(\n\t\t\t{},\n\t\t\t$.validator.classRules( element ),\n\t\t\t$.validator.attributeRules( element ),\n\t\t\t$.validator.dataRules( element ),\n\t\t\t$.validator.staticRules( element )\n\t\t), element );\n\n\t\t// Make sure required is at front\n\t\tif ( data.required ) {\n\t\t\tparam = data.required;\n\t\t\tdelete data.required;\n\t\t\tdata = $.extend( { required: param }, data );\n\t\t}\n\n\t\t// Make sure remote is at back\n\t\tif ( data.remote ) {\n\t\t\tparam = data.remote;\n\t\t\tdelete data.remote;\n\t\t\tdata = $.extend( data, { remote: param } );\n\t\t}\n\n\t\treturn data;\n\t}\n} );\n\n// Custom selectors\n$.extend( $.expr.pseudos || $.expr[ \":\" ], {\t\t// '|| $.expr[ \":\" ]' here enables backwards compatibility to jQuery 1.7. Can be removed when dropping jQ 1.7.x support\n\n\t// https://jqueryvalidation.org/blank-selector/\n\tblank: function( a ) {\n\t\treturn !$.trim( \"\" + $( a ).val() );\n\t},\n\n\t// https://jqueryvalidation.org/filled-selector/\n\tfilled: function( a ) {\n\t\tvar val = $( a ).val();\n\t\treturn val !== null && !!$.trim( \"\" + val );\n\t},\n\n\t// https://jqueryvalidation.org/unchecked-selector/\n\tunchecked: function( a ) {\n\t\treturn !$( a ).prop( \"checked\" );\n\t}\n} );\n\n// Constructor for validator\n$.validator = function( options, form ) {\n\tthis.settings = $.extend( true, {}, $.validator.defaults, options );\n\tthis.currentForm = form;\n\tthis.init();\n};\n\n// https://jqueryvalidation.org/jQuery.validator.format/\n$.validator.format = function( source, params ) {\n\tif ( arguments.length === 1 ) {\n\t\treturn function() {\n\t\t\tvar args = $.makeArray( arguments );\n\t\t\targs.unshift( source );\n\t\t\treturn $.validator.format.apply( this, args );\n\t\t};\n\t}\n\tif ( params === undefined ) {\n\t\treturn source;\n\t}\n\tif ( arguments.length > 2 && params.constructor !== Array ) {\n\t\tparams = $.makeArray( arguments ).slice( 1 );\n\t}\n\tif ( params.constructor !== Array ) {\n\t\tparams = [ params ];\n\t}\n\t$.each( params, function( i, n ) {\n\t\tsource = source.replace( new RegExp( \"\\\\{\" + i + \"\\\\}\", \"g\" ), function() {\n\t\t\treturn n;\n\t\t} );\n\t} );\n\treturn source;\n};\n\n$.extend( $.validator, {\n\n\tdefaults: {\n\t\tmessages: {},\n\t\tgroups: {},\n\t\trules: {},\n\t\terrorClass: \"error\",\n\t\tpendingClass: \"pending\",\n\t\tvalidClass: \"valid\",\n\t\terrorElement: \"label\",\n\t\tfocusCleanup: false,\n\t\tfocusInvalid: true,\n\t\terrorContainer: $( [] ),\n\t\terrorLabelContainer: $( [] ),\n\t\tonsubmit: true,\n\t\tignore: \":hidden\",\n\t\tignoreTitle: false,\n\t\tonfocusin: function( element ) {\n\t\t\tthis.lastActive = element;\n\n\t\t\t// Hide error label and remove error class on focus if enabled\n\t\t\tif ( this.settings.focusCleanup ) {\n\t\t\t\tif ( this.settings.unhighlight ) {\n\t\t\t\t\tthis.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.validClass );\n\t\t\t\t}\n\t\t\t\tthis.hideThese( this.errorsFor( element ) );\n\t\t\t}\n\t\t},\n\t\tonfocusout: function( element ) {\n\t\t\tif ( !this.checkable( element ) && ( element.name in this.submitted || !this.optional( element ) ) ) {\n\t\t\t\tthis.element( element );\n\t\t\t}\n\t\t},\n\t\tonkeyup: function( element, event ) {\n\n\t\t\t// Avoid revalidate the field when pressing one of the following keys\n\t\t\t// Shift => 16\n\t\t\t// Ctrl => 17\n\t\t\t// Alt => 18\n\t\t\t// Caps lock => 20\n\t\t\t// End => 35\n\t\t\t// Home => 36\n\t\t\t// Left arrow => 37\n\t\t\t// Up arrow => 38\n\t\t\t// Right arrow => 39\n\t\t\t// Down arrow => 40\n\t\t\t// Insert => 45\n\t\t\t// Num lock => 144\n\t\t\t// AltGr key => 225\n\t\t\tvar excludedKeys = [\n\t\t\t\t16, 17, 18, 20, 35, 36, 37,\n\t\t\t\t38, 39, 40, 45, 144, 225\n\t\t\t];\n\n\t\t\tif ( event.which === 9 && this.elementValue( element ) === \"\" || $.inArray( event.keyCode, excludedKeys ) !== -1 ) {\n\t\t\t\treturn;\n\t\t\t} else if ( element.name in this.submitted || element.name in this.invalid ) {\n\t\t\t\tthis.element( element );\n\t\t\t}\n\t\t},\n\t\tonclick: function( element ) {\n\n\t\t\t// Click on selects, radiobuttons and checkboxes\n\t\t\tif ( element.name in this.submitted ) {\n\t\t\t\tthis.element( element );\n\n\t\t\t// Or option elements, check parent select in that case\n\t\t\t} else if ( element.parentNode.name in this.submitted ) {\n\t\t\t\tthis.element( element.parentNode );\n\t\t\t}\n\t\t},\n\t\thighlight: function( element, errorClass, validClass ) {\n\t\t\tif ( element.type === \"radio\" ) {\n\t\t\t\tthis.findByName( element.name ).addClass( errorClass ).removeClass( validClass );\n\t\t\t} else {\n\t\t\t\t$( element ).addClass( errorClass ).removeClass( validClass );\n\t\t\t}\n\t\t},\n\t\tunhighlight: function( element, errorClass, validClass ) {\n\t\t\tif ( element.type === \"radio\" ) {\n\t\t\t\tthis.findByName( element.name ).removeClass( errorClass ).addClass( validClass );\n\t\t\t} else {\n\t\t\t\t$( element ).removeClass( errorClass ).addClass( validClass );\n\t\t\t}\n\t\t}\n\t},\n\n\t// https://jqueryvalidation.org/jQuery.validator.setDefaults/\n\tsetDefaults: function( settings ) {\n\t\t$.extend( $.validator.defaults, settings );\n\t},\n\n\tmessages: {\n\t\trequired: \"This field is required.\",\n\t\tremote: \"Please fix this field.\",\n\t\temail: \"Please enter a valid email address.\",\n\t\turl: \"Please enter a valid URL.\",\n\t\tdate: \"Please enter a valid date.\",\n\t\tdateISO: \"Please enter a valid date (ISO).\",\n\t\tnumber: \"Please enter a valid number.\",\n\t\tdigits: \"Please enter only digits.\",\n\t\tequalTo: \"Please enter the same value again.\",\n\t\tmaxlength: $.validator.format( \"Please enter no more than {0} characters.\" ),\n\t\tminlength: $.validator.format( \"Please enter at least {0} characters.\" ),\n\t\trangelength: $.validator.format( \"Please enter a value between {0} and {1} characters long.\" ),\n\t\trange: $.validator.format( \"Please enter a value between {0} and {1}.\" ),\n\t\tmax: $.validator.format( \"Please enter a value less than or equal to {0}.\" ),\n\t\tmin: $.validator.format( \"Please enter a value greater than or equal to {0}.\" ),\n\t\tstep: $.validator.format( \"Please enter a multiple of {0}.\" )\n\t},\n\n\tautoCreateRanges: false,\n\n\tprototype: {\n\n\t\tinit: function() {\n\t\t\tthis.labelContainer = $( this.settings.errorLabelContainer );\n\t\t\tthis.errorContext = this.labelContainer.length && this.labelContainer || $( this.currentForm );\n\t\t\tthis.containers = $( this.settings.errorContainer ).add( this.settings.errorLabelContainer );\n\t\t\tthis.submitted = {};\n\t\t\tthis.valueCache = {};\n\t\t\tthis.pendingRequest = 0;\n\t\t\tthis.pending = {};\n\t\t\tthis.invalid = {};\n\t\t\tthis.reset();\n\n\t\t\tvar groups = ( this.groups = {} ),\n\t\t\t\trules;\n\t\t\t$.each( this.settings.groups, function( key, value ) {\n\t\t\t\tif ( typeof value === \"string\" ) {\n\t\t\t\t\tvalue = value.split( /\\s/ );\n\t\t\t\t}\n\t\t\t\t$.each( value, function( index, name ) {\n\t\t\t\t\tgroups[ name ] = key;\n\t\t\t\t} );\n\t\t\t} );\n\t\t\trules = this.settings.rules;\n\t\t\t$.each( rules, function( key, value ) {\n\t\t\t\trules[ key ] = $.validator.normalizeRule( value );\n\t\t\t} );\n\n\t\t\tfunction delegate( event ) {\n\n\t\t\t\t// Set form expando on contenteditable\n\t\t\t\tif ( !this.form && this.hasAttribute( \"contenteditable\" ) ) {\n\t\t\t\t\tthis.form = $( this ).closest( \"form\" )[ 0 ];\n\t\t\t\t\tthis.name = $( this ).attr( \"name\" );\n\t\t\t\t}\n\n\t\t\t\tvar validator = $.data( this.form, \"validator\" ),\n\t\t\t\t\teventType = \"on\" + event.type.replace( /^validate/, \"\" ),\n\t\t\t\t\tsettings = validator.settings;\n\t\t\t\tif ( settings[ eventType ] && !$( this ).is( settings.ignore ) ) {\n\t\t\t\t\tsettings[ eventType ].call( validator, this, event );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$( this.currentForm )\n\t\t\t\t.on( \"focusin.validate focusout.validate keyup.validate\",\n\t\t\t\t\t\":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], \" +\n\t\t\t\t\t\"[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], \" +\n\t\t\t\t\t\"[type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], \" +\n\t\t\t\t\t\"[type='radio'], [type='checkbox'], [contenteditable], [type='button']\", delegate )\n\n\t\t\t\t// Support: Chrome, oldIE\n\t\t\t\t// \"select\" is provided as event.target when clicking a option\n\t\t\t\t.on( \"click.validate\", \"select, option, [type='radio'], [type='checkbox']\", delegate );\n\n\t\t\tif ( this.settings.invalidHandler ) {\n\t\t\t\t$( this.currentForm ).on( \"invalid-form.validate\", this.settings.invalidHandler );\n\t\t\t}\n\t\t},\n\n\t\t// https://jqueryvalidation.org/Validator.form/\n\t\tform: function() {\n\t\t\tthis.checkForm();\n\t\t\t$.extend( this.submitted, this.errorMap );\n\t\t\tthis.invalid = $.extend( {}, this.errorMap );\n\t\t\tif ( !this.valid() ) {\n\t\t\t\t$( this.currentForm ).triggerHandler( \"invalid-form\", [ this ] );\n\t\t\t}\n\t\t\tthis.showErrors();\n\t\t\treturn this.valid();\n\t\t},\n\n\t\tcheckForm: function() {\n\t\t\tthis.prepareForm();\n\t\t\tfor ( var i = 0, elements = ( this.currentElements = this.elements() ); elements[ i ]; i++ ) {\n\t\t\t\tthis.check( elements[ i ] );\n\t\t\t}\n\t\t\treturn this.valid();\n\t\t},\n\n\t\t// https://jqueryvalidation.org/Validator.element/\n\t\telement: function( element ) {\n\t\t\tvar cleanElement = this.clean( element ),\n\t\t\t\tcheckElement = this.validationTargetFor( cleanElement ),\n\t\t\t\tv = this,\n\t\t\t\tresult = true,\n\t\t\t\trs, group;\n\n\t\t\tif ( checkElement === undefined ) {\n\t\t\t\tdelete this.invalid[ cleanElement.name ];\n\t\t\t} else {\n\t\t\t\tthis.prepareElement( checkElement );\n\t\t\t\tthis.currentElements = $( checkElement );\n\n\t\t\t\t// If this element is grouped, then validate all group elements already\n\t\t\t\t// containing a value\n\t\t\t\tgroup = this.groups[ checkElement.name ];\n\t\t\t\tif ( group ) {\n\t\t\t\t\t$.each( this.groups, function( name, testgroup ) {\n\t\t\t\t\t\tif ( testgroup === group && name !== checkElement.name ) {\n\t\t\t\t\t\t\tcleanElement = v.validationTargetFor( v.clean( v.findByName( name ) ) );\n\t\t\t\t\t\t\tif ( cleanElement && cleanElement.name in v.invalid ) {\n\t\t\t\t\t\t\t\tv.currentElements.push( cleanElement );\n\t\t\t\t\t\t\t\tresult = v.check( cleanElement ) && result;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\trs = this.check( checkElement ) !== false;\n\t\t\t\tresult = result && rs;\n\t\t\t\tif ( rs ) {\n\t\t\t\t\tthis.invalid[ checkElement.name ] = false;\n\t\t\t\t} else {\n\t\t\t\t\tthis.invalid[ checkElement.name ] = true;\n\t\t\t\t}\n\n\t\t\t\tif ( !this.numberOfInvalids() ) {\n\n\t\t\t\t\t// Hide error containers on last error\n\t\t\t\t\tthis.toHide = this.toHide.add( this.containers );\n\t\t\t\t}\n\t\t\t\tthis.showErrors();\n\n\t\t\t\t// Add aria-invalid status for screen readers\n\t\t\t\t$( element ).attr( \"aria-invalid\", !rs );\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/Validator.showErrors/\n\t\tshowErrors: function( errors ) {\n\t\t\tif ( errors ) {\n\t\t\t\tvar validator = this;\n\n\t\t\t\t// Add items to error list and map\n\t\t\t\t$.extend( this.errorMap, errors );\n\t\t\t\tthis.errorList = $.map( this.errorMap, function( message, name ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tmessage: message,\n\t\t\t\t\t\telement: validator.findByName( name )[ 0 ]\n\t\t\t\t\t};\n\t\t\t\t} );\n\n\t\t\t\t// Remove items from success list\n\t\t\t\tthis.successList = $.grep( this.successList, function( element ) {\n\t\t\t\t\treturn !( element.name in errors );\n\t\t\t\t} );\n\t\t\t}\n\t\t\tif ( this.settings.showErrors ) {\n\t\t\t\tthis.settings.showErrors.call( this, this.errorMap, this.errorList );\n\t\t\t} else {\n\t\t\t\tthis.defaultShowErrors();\n\t\t\t}\n\t\t},\n\n\t\t// https://jqueryvalidation.org/Validator.resetForm/\n\t\tresetForm: function() {\n\t\t\tif ( $.fn.resetForm ) {\n\t\t\t\t$( this.currentForm ).resetForm();\n\t\t\t}\n\t\t\tthis.invalid = {};\n\t\t\tthis.submitted = {};\n\t\t\tthis.prepareForm();\n\t\t\tthis.hideErrors();\n\t\t\tvar elements = this.elements()\n\t\t\t\t.removeData( \"previousValue\" )\n\t\t\t\t.removeAttr( \"aria-invalid\" );\n\n\t\t\tthis.resetElements( elements );\n\t\t},\n\n\t\tresetElements: function( elements ) {\n\t\t\tvar i;\n\n\t\t\tif ( this.settings.unhighlight ) {\n\t\t\t\tfor ( i = 0; elements[ i ]; i++ ) {\n\t\t\t\t\tthis.settings.unhighlight.call( this, elements[ i ],\n\t\t\t\t\t\tthis.settings.errorClass, \"\" );\n\t\t\t\t\tthis.findByName( elements[ i ].name ).removeClass( this.settings.validClass );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\telements\n\t\t\t\t\t.removeClass( this.settings.errorClass )\n\t\t\t\t\t.removeClass( this.settings.validClass );\n\t\t\t}\n\t\t},\n\n\t\tnumberOfInvalids: function() {\n\t\t\treturn this.objectLength( this.invalid );\n\t\t},\n\n\t\tobjectLength: function( obj ) {\n\t\t\t/* jshint unused: false */\n\t\t\tvar count = 0,\n\t\t\t\ti;\n\t\t\tfor ( i in obj ) {\n\n\t\t\t\t// This check allows counting elements with empty error\n\t\t\t\t// message as invalid elements\n\t\t\t\tif ( obj[ i ] !== undefined && obj[ i ] !== null && obj[ i ] !== false ) {\n\t\t\t\t\tcount++;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn count;\n\t\t},\n\n\t\thideErrors: function() {\n\t\t\tthis.hideThese( this.toHide );\n\t\t},\n\n\t\thideThese: function( errors ) {\n\t\t\terrors.not( this.containers ).text( \"\" );\n\t\t\tthis.addWrapper( errors ).hide();\n\t\t},\n\n\t\tvalid: function() {\n\t\t\treturn this.size() === 0;\n\t\t},\n\n\t\tsize: function() {\n\t\t\treturn this.errorList.length;\n\t\t},\n\n\t\tfocusInvalid: function() {\n\t\t\tif ( this.settings.focusInvalid ) {\n\t\t\t\ttry {\n\t\t\t\t\t$( this.findLastActive() || this.errorList.length && this.errorList[ 0 ].element || [] )\n\t\t\t\t\t.filter( \":visible\" )\n\t\t\t\t\t.focus()\n\n\t\t\t\t\t// Manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find\n\t\t\t\t\t.trigger( \"focusin\" );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// Ignore IE throwing errors when focusing hidden elements\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tfindLastActive: function() {\n\t\t\tvar lastActive = this.lastActive;\n\t\t\treturn lastActive && $.grep( this.errorList, function( n ) {\n\t\t\t\treturn n.element.name === lastActive.name;\n\t\t\t} ).length === 1 && lastActive;\n\t\t},\n\n\t\telements: function() {\n\t\t\tvar validator = this,\n\t\t\t\trulesCache = {};\n\n\t\t\t// Select all valid inputs inside the form (no submit or reset buttons)\n\t\t\treturn $( this.currentForm )\n\t\t\t.find( \"input, select, textarea, [contenteditable]\" )\n\t\t\t.not( \":submit, :reset, :image, :disabled\" )\n\t\t\t.not( this.settings.ignore )\n\t\t\t.filter( function() {\n\t\t\t\tvar name = this.name || $( this ).attr( \"name\" ); // For contenteditable\n\t\t\t\tif ( !name && validator.settings.debug && window.console ) {\n\t\t\t\t\tconsole.error( \"%o has no name assigned\", this );\n\t\t\t\t}\n\n\t\t\t\t// Set form expando on contenteditable\n\t\t\t\tif ( this.hasAttribute( \"contenteditable\" ) ) {\n\t\t\t\t\tthis.form = $( this ).closest( \"form\" )[ 0 ];\n\t\t\t\t\tthis.name = name;\n\t\t\t\t}\n\n\t\t\t\t// Select only the first element for each name, and only those with rules specified\n\t\t\t\tif ( name in rulesCache || !validator.objectLength( $( this ).rules() ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\trulesCache[ name ] = true;\n\t\t\t\treturn true;\n\t\t\t} );\n\t\t},\n\n\t\tclean: function( selector ) {\n\t\t\treturn $( selector )[ 0 ];\n\t\t},\n\n\t\terrors: function() {\n\t\t\tvar errorClass = this.settings.errorClass.split( \" \" ).join( \".\" );\n\t\t\treturn $( this.settings.errorElement + \".\" + errorClass, this.errorContext );\n\t\t},\n\n\t\tresetInternals: function() {\n\t\t\tthis.successList = [];\n\t\t\tthis.errorList = [];\n\t\t\tthis.errorMap = {};\n\t\t\tthis.toShow = $( [] );\n\t\t\tthis.toHide = $( [] );\n\t\t},\n\n\t\treset: function() {\n\t\t\tthis.resetInternals();\n\t\t\tthis.currentElements = $( [] );\n\t\t},\n\n\t\tprepareForm: function() {\n\t\t\tthis.reset();\n\t\t\tthis.toHide = this.errors().add( this.containers );\n\t\t},\n\n\t\tprepareElement: function( element ) {\n\t\t\tthis.reset();\n\t\t\tthis.toHide = this.errorsFor( element );\n\t\t},\n\n\t\telementValue: function( element ) {\n\t\t\tvar $element = $( element ),\n\t\t\t\ttype = element.type,\n\t\t\t\tval, idx;\n\n\t\t\tif ( type === \"radio\" || type === \"checkbox\" ) {\n\t\t\t\treturn this.findByName( element.name ).filter( \":checked\" ).val();\n\t\t\t} else if ( type === \"number\" && typeof element.validity !== \"undefined\" ) {\n\t\t\t\treturn element.validity.badInput ? \"NaN\" : $element.val();\n\t\t\t}\n\n\t\t\tif ( element.hasAttribute( \"contenteditable\" ) ) {\n\t\t\t\tval = $element.text();\n\t\t\t} else {\n\t\t\t\tval = $element.val();\n\t\t\t}\n\n\t\t\tif ( type === \"file\" ) {\n\n\t\t\t\t// Modern browser (chrome & safari)\n\t\t\t\tif ( val.substr( 0, 12 ) === \"C:\\\\fakepath\\\\\" ) {\n\t\t\t\t\treturn val.substr( 12 );\n\t\t\t\t}\n\n\t\t\t\t// Legacy browsers\n\t\t\t\t// Unix-based path\n\t\t\t\tidx = val.lastIndexOf( \"/\" );\n\t\t\t\tif ( idx >= 0 ) {\n\t\t\t\t\treturn val.substr( idx + 1 );\n\t\t\t\t}\n\n\t\t\t\t// Windows-based path\n\t\t\t\tidx = val.lastIndexOf( \"\\\\\" );\n\t\t\t\tif ( idx >= 0 ) {\n\t\t\t\t\treturn val.substr( idx + 1 );\n\t\t\t\t}\n\n\t\t\t\t// Just the file name\n\t\t\t\treturn val;\n\t\t\t}\n\n\t\t\tif ( typeof val === \"string\" ) {\n\t\t\t\treturn val.replace( /\\r/g, \"\" );\n\t\t\t}\n\t\t\treturn val;\n\t\t},\n\n\t\tcheck: function( element ) {\n\t\t\telement = this.validationTargetFor( this.clean( element ) );\n\n\t\t\tvar rules = $( element ).rules(),\n\t\t\t\trulesCount = $.map( rules, function( n, i ) {\n\t\t\t\t\treturn i;\n\t\t\t\t} ).length,\n\t\t\t\tdependencyMismatch = false,\n\t\t\t\tval = this.elementValue( element ),\n\t\t\t\tresult, method, rule, normalizer;\n\n\t\t\t// Prioritize the local normalizer defined for this element over the global one\n\t\t\t// if the former exists, otherwise user the global one in case it exists.\n\t\t\tif ( typeof rules.normalizer === \"function\" ) {\n\t\t\t\tnormalizer = rules.normalizer;\n\t\t\t} else if (\ttypeof this.settings.normalizer === \"function\" ) {\n\t\t\t\tnormalizer = this.settings.normalizer;\n\t\t\t}\n\n\t\t\t// If normalizer is defined, then call it to retreive the changed value instead\n\t\t\t// of using the real one.\n\t\t\t// Note that `this` in the normalizer is `element`.\n\t\t\tif ( normalizer ) {\n\t\t\t\tval = normalizer.call( element, val );\n\n\t\t\t\tif ( typeof val !== \"string\" ) {\n\t\t\t\t\tthrow new TypeError( \"The normalizer should return a string value.\" );\n\t\t\t\t}\n\n\t\t\t\t// Delete the normalizer from rules to avoid treating it as a pre-defined method.\n\t\t\t\tdelete rules.normalizer;\n\t\t\t}\n\n\t\t\tfor ( method in rules ) {\n\t\t\t\trule = { method: method, parameters: rules[ method ] };\n\t\t\t\ttry {\n\t\t\t\t\tresult = $.validator.methods[ method ].call( this, val, element, rule.parameters );\n\n\t\t\t\t\t// If a method indicates that the field is optional and therefore valid,\n\t\t\t\t\t// don't mark it as valid when there are no other rules\n\t\t\t\t\tif ( result === \"dependency-mismatch\" && rulesCount === 1 ) {\n\t\t\t\t\t\tdependencyMismatch = true;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tdependencyMismatch = false;\n\n\t\t\t\t\tif ( result === \"pending\" ) {\n\t\t\t\t\t\tthis.toHide = this.toHide.not( this.errorsFor( element ) );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !result ) {\n\t\t\t\t\t\tthis.formatAndAdd( element, rule );\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} catch ( e ) {\n\t\t\t\t\tif ( this.settings.debug && window.console ) {\n\t\t\t\t\t\tconsole.log( \"Exception occurred when checking element \" + element.id + \", check the '\" + rule.method + \"' method.\", e );\n\t\t\t\t\t}\n\t\t\t\t\tif ( e instanceof TypeError ) {\n\t\t\t\t\t\te.message += \". Exception occurred when checking element \" + element.id + \", check the '\" + rule.method + \"' method.\";\n\t\t\t\t\t}\n\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( dependencyMismatch ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( this.objectLength( rules ) ) {\n\t\t\t\tthis.successList.push( element );\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t// Return the custom message for the given element and validation method\n\t\t// specified in the element's HTML5 data attribute\n\t\t// return the generic message if present and no method specific message is present\n\t\tcustomDataMessage: function( element, method ) {\n\t\t\treturn $( element ).data( \"msg\" + method.charAt( 0 ).toUpperCase() +\n\t\t\t\tmethod.substring( 1 ).toLowerCase() ) || $( element ).data( \"msg\" );\n\t\t},\n\n\t\t// Return the custom message for the given element name and validation method\n\t\tcustomMessage: function( name, method ) {\n\t\t\tvar m = this.settings.messages[ name ];\n\t\t\treturn m && ( m.constructor === String ? m : m[ method ] );\n\t\t},\n\n\t\t// Return the first defined argument, allowing empty strings\n\t\tfindDefined: function() {\n\t\t\tfor ( var i = 0; i < arguments.length; i++ ) {\n\t\t\t\tif ( arguments[ i ] !== undefined ) {\n\t\t\t\t\treturn arguments[ i ];\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\n\t\t// The second parameter 'rule' used to be a string, and extended to an object literal\n\t\t// of the following form:\n\t\t// rule = {\n\t\t// method: \"method name\",\n\t\t// parameters: \"the given method parameters\"\n\t\t// }\n\t\t//\n\t\t// The old behavior still supported, kept to maintain backward compatibility with\n\t\t// old code, and will be removed in the next major release.\n\t\tdefaultMessage: function( element, rule ) {\n\t\t\tif ( typeof rule === \"string\" ) {\n\t\t\t\trule = { method: rule };\n\t\t\t}\n\n\t\t\tvar message = this.findDefined(\n\t\t\t\t\tthis.customMessage( element.name, rule.method ),\n\t\t\t\t\tthis.customDataMessage( element, rule.method ),\n\n\t\t\t\t\t// 'title' is never undefined, so handle empty string as undefined\n\t\t\t\t\t!this.settings.ignoreTitle && element.title || undefined,\n\t\t\t\t\t$.validator.messages[ rule.method ],\n\t\t\t\t\t\"Warning: No message defined for \" + element.name + \"\"\n\t\t\t\t),\n\t\t\t\ttheregex = /\\$?\\{(\\d+)\\}/g;\n\t\t\tif ( typeof message === \"function\" ) {\n\t\t\t\tmessage = message.call( this, rule.parameters, element );\n\t\t\t} else if ( theregex.test( message ) ) {\n\t\t\t\tmessage = $.validator.format( message.replace( theregex, \"{$1}\" ), rule.parameters );\n\t\t\t}\n\n\t\t\treturn message;\n\t\t},\n\n\t\tformatAndAdd: function( element, rule ) {\n\t\t\tvar message = this.defaultMessage( element, rule );\n\n\t\t\tthis.errorList.push( {\n\t\t\t\tmessage: message,\n\t\t\t\telement: element,\n\t\t\t\tmethod: rule.method\n\t\t\t} );\n\n\t\t\tthis.errorMap[ element.name ] = message;\n\t\t\tthis.submitted[ element.name ] = message;\n\t\t},\n\n\t\taddWrapper: function( toToggle ) {\n\t\t\tif ( this.settings.wrapper ) {\n\t\t\t\ttoToggle = toToggle.add( toToggle.parent( this.settings.wrapper ) );\n\t\t\t}\n\t\t\treturn toToggle;\n\t\t},\n\n\t\tdefaultShowErrors: function() {\n\t\t\tvar i, elements, error;\n\t\t\tfor ( i = 0; this.errorList[ i ]; i++ ) {\n\t\t\t\terror = this.errorList[ i ];\n\t\t\t\tif ( this.settings.highlight ) {\n\t\t\t\t\tthis.settings.highlight.call( this, error.element, this.settings.errorClass, this.settings.validClass );\n\t\t\t\t}\n\t\t\t\tthis.showLabel( error.element, error.message );\n\t\t\t}\n\t\t\tif ( this.errorList.length ) {\n\t\t\t\tthis.toShow = this.toShow.add( this.containers );\n\t\t\t}\n\t\t\tif ( this.settings.success ) {\n\t\t\t\tfor ( i = 0; this.successList[ i ]; i++ ) {\n\t\t\t\t\tthis.showLabel( this.successList[ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( this.settings.unhighlight ) {\n\t\t\t\tfor ( i = 0, elements = this.validElements(); elements[ i ]; i++ ) {\n\t\t\t\t\tthis.settings.unhighlight.call( this, elements[ i ], this.settings.errorClass, this.settings.validClass );\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.toHide = this.toHide.not( this.toShow );\n\t\t\tthis.hideErrors();\n\t\t\tthis.addWrapper( this.toShow ).show();\n\t\t},\n\n\t\tvalidElements: function() {\n\t\t\treturn this.currentElements.not( this.invalidElements() );\n\t\t},\n\n\t\tinvalidElements: function() {\n\t\t\treturn $( this.errorList ).map( function() {\n\t\t\t\treturn this.element;\n\t\t\t} );\n\t\t},\n\n\t\tshowLabel: function( element, message ) {\n\t\t\tvar place, group, errorID, v,\n\t\t\t\terror = this.errorsFor( element ),\n\t\t\t\telementID = this.idOrName( element ),\n\t\t\t\tdescribedBy = $( element ).attr( \"aria-describedby\" );\n\n\t\t\tif ( error.length ) {\n\n\t\t\t\t// Refresh error/success class\n\t\t\t\terror.removeClass( this.settings.validClass ).addClass( this.settings.errorClass );\n\n\t\t\t\t// Replace message on existing label\n\t\t\t\terror.html( message );\n\t\t\t} else {\n\n\t\t\t\t// Create error element\n\t\t\t\terror = $( \"<\" + this.settings.errorElement + \">\" )\n\t\t\t\t\t.attr( \"id\", elementID + \"-error\" )\n\t\t\t\t\t.addClass( this.settings.errorClass )\n\t\t\t\t\t.html( message || \"\" );\n\n\t\t\t\t// Maintain reference to the element to be placed into the DOM\n\t\t\t\tplace = error;\n\t\t\t\tif ( this.settings.wrapper ) {\n\n\t\t\t\t\t// Make sure the element is visible, even in IE\n\t\t\t\t\t// actually showing the wrapped element is handled elsewhere\n\t\t\t\t\tplace = error.hide().show().wrap( \"<\" + this.settings.wrapper + \"/>\" ).parent();\n\t\t\t\t}\n\t\t\t\tif ( this.labelContainer.length ) {\n\t\t\t\t\tthis.labelContainer.append( place );\n\t\t\t\t} else if ( this.settings.errorPlacement ) {\n\t\t\t\t\tthis.settings.errorPlacement.call( this, place, $( element ) );\n\t\t\t\t} else {\n\t\t\t\t\tplace.insertAfter( element );\n\t\t\t\t}\n\n\t\t\t\t// Link error back to the element\n\t\t\t\tif ( error.is( \"label\" ) ) {\n\n\t\t\t\t\t// If the error is a label, then associate using 'for'\n\t\t\t\t\terror.attr( \"for\", elementID );\n\n\t\t\t\t\t// If the element is not a child of an associated label, then it's necessary\n\t\t\t\t\t// to explicitly apply aria-describedby\n\t\t\t\t} else if ( error.parents( \"label[for='\" + this.escapeCssMeta( elementID ) + \"']\" ).length === 0 ) {\n\t\t\t\t\terrorID = error.attr( \"id\" );\n\n\t\t\t\t\t// Respect existing non-error aria-describedby\n\t\t\t\t\tif ( !describedBy ) {\n\t\t\t\t\t\tdescribedBy = errorID;\n\t\t\t\t\t} else if ( !describedBy.match( new RegExp( \"\\\\b\" + this.escapeCssMeta( errorID ) + \"\\\\b\" ) ) ) {\n\n\t\t\t\t\t\t// Add to end of list if not already present\n\t\t\t\t\t\tdescribedBy += \" \" + errorID;\n\t\t\t\t\t}\n\t\t\t\t\t$( element ).attr( \"aria-describedby\", describedBy );\n\n\t\t\t\t\t// If this element is grouped, then assign to all elements in the same group\n\t\t\t\t\tgroup = this.groups[ element.name ];\n\t\t\t\t\tif ( group ) {\n\t\t\t\t\t\tv = this;\n\t\t\t\t\t\t$.each( v.groups, function( name, testgroup ) {\n\t\t\t\t\t\t\tif ( testgroup === group ) {\n\t\t\t\t\t\t\t\t$( \"[name='\" + v.escapeCssMeta( name ) + \"']\", v.currentForm )\n\t\t\t\t\t\t\t\t\t.attr( \"aria-describedby\", error.attr( \"id\" ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( !message && this.settings.success ) {\n\t\t\t\terror.text( \"\" );\n\t\t\t\tif ( typeof this.settings.success === \"string\" ) {\n\t\t\t\t\terror.addClass( this.settings.success );\n\t\t\t\t} else {\n\t\t\t\t\tthis.settings.success( error, element );\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.toShow = this.toShow.add( error );\n\t\t},\n\n\t\terrorsFor: function( element ) {\n\t\t\tvar name = this.escapeCssMeta( this.idOrName( element ) ),\n\t\t\t\tdescriber = $( element ).attr( \"aria-describedby\" ),\n\t\t\t\tselector = \"label[for='\" + name + \"'], label[for='\" + name + \"'] *\";\n\n\t\t\t// 'aria-describedby' should directly reference the error element\n\t\t\tif ( describer ) {\n\t\t\t\tselector = selector + \", #\" + this.escapeCssMeta( describer )\n\t\t\t\t\t.replace( /\\s+/g, \", #\" );\n\t\t\t}\n\n\t\t\treturn this\n\t\t\t\t.errors()\n\t\t\t\t.filter( selector );\n\t\t},\n\n\t\t// See https://api.jquery.com/category/selectors/, for CSS\n\t\t// meta-characters that should be escaped in order to be used with JQuery\n\t\t// as a literal part of a name/id or any selector.\n\t\tescapeCssMeta: function( string ) {\n\t\t\treturn string.replace( /([\\\\!\"#$%&'()*+,./:;<=>?@\\[\\]^`{|}~])/g, \"\\\\$1\" );\n\t\t},\n\n\t\tidOrName: function( element ) {\n\t\t\treturn this.groups[ element.name ] || ( this.checkable( element ) ? element.name : element.id || element.name );\n\t\t},\n\n\t\tvalidationTargetFor: function( element ) {\n\n\t\t\t// If radio/checkbox, validate first element in group instead\n\t\t\tif ( this.checkable( element ) ) {\n\t\t\t\telement = this.findByName( element.name );\n\t\t\t}\n\n\t\t\t// Always apply ignore filter\n\t\t\treturn $( element ).not( this.settings.ignore )[ 0 ];\n\t\t},\n\n\t\tcheckable: function( element ) {\n\t\t\treturn ( /radio|checkbox/i ).test( element.type );\n\t\t},\n\n\t\tfindByName: function( name ) {\n\t\t\treturn $( this.currentForm ).find( \"[name='\" + this.escapeCssMeta( name ) + \"']\" );\n\t\t},\n\n\t\tgetLength: function( value, element ) {\n\t\t\tswitch ( element.nodeName.toLowerCase() ) {\n\t\t\tcase \"select\":\n\t\t\t\treturn $( \"option:selected\", element ).length;\n\t\t\tcase \"input\":\n\t\t\t\tif ( this.checkable( element ) ) {\n\t\t\t\t\treturn this.findByName( element.name ).filter( \":checked\" ).length;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn value.length;\n\t\t},\n\n\t\tdepend: function( param, element ) {\n\t\t\treturn this.dependTypes[ typeof param ] ? this.dependTypes[ typeof param ]( param, element ) : true;\n\t\t},\n\n\t\tdependTypes: {\n\t\t\t\"boolean\": function( param ) {\n\t\t\t\treturn param;\n\t\t\t},\n\t\t\t\"string\": function( param, element ) {\n\t\t\t\treturn !!$( param, element.form ).length;\n\t\t\t},\n\t\t\t\"function\": function( param, element ) {\n\t\t\t\treturn param( element );\n\t\t\t}\n\t\t},\n\n\t\toptional: function( element ) {\n\t\t\tvar val = this.elementValue( element );\n\t\t\treturn !$.validator.methods.required.call( this, val, element ) && \"dependency-mismatch\";\n\t\t},\n\n\t\tstartRequest: function( element ) {\n\t\t\tif ( !this.pending[ element.name ] ) {\n\t\t\t\tthis.pendingRequest++;\n\t\t\t\t$( element ).addClass( this.settings.pendingClass );\n\t\t\t\tthis.pending[ element.name ] = true;\n\t\t\t}\n\t\t},\n\n\t\tstopRequest: function( element, valid ) {\n\t\t\tthis.pendingRequest--;\n\n\t\t\t// Sometimes synchronization fails, make sure pendingRequest is never < 0\n\t\t\tif ( this.pendingRequest < 0 ) {\n\t\t\t\tthis.pendingRequest = 0;\n\t\t\t}\n\t\t\tdelete this.pending[ element.name ];\n\t\t\t$( element ).removeClass( this.settings.pendingClass );\n\t\t\tif ( valid && this.pendingRequest === 0 && this.formSubmitted && this.form() ) {\n\t\t\t\t$( this.currentForm ).submit();\n\n\t\t\t\t// Remove the hidden input that was used as a replacement for the\n\t\t\t\t// missing submit button. The hidden input is added by `handle()`\n\t\t\t\t// to ensure that the value of the used submit button is passed on\n\t\t\t\t// for scripted submits triggered by this method\n\t\t\t\tif ( this.submitButton ) {\n\t\t\t\t\t$( \"input:hidden[name='\" + this.submitButton.name + \"']\", this.currentForm ).remove();\n\t\t\t\t}\n\n\t\t\t\tthis.formSubmitted = false;\n\t\t\t} else if ( !valid && this.pendingRequest === 0 && this.formSubmitted ) {\n\t\t\t\t$( this.currentForm ).triggerHandler( \"invalid-form\", [ this ] );\n\t\t\t\tthis.formSubmitted = false;\n\t\t\t}\n\t\t},\n\n\t\tpreviousValue: function( element, method ) {\n\t\t\tmethod = typeof method === \"string\" && method || \"remote\";\n\n\t\t\treturn $.data( element, \"previousValue\" ) || $.data( element, \"previousValue\", {\n\t\t\t\told: null,\n\t\t\t\tvalid: true,\n\t\t\t\tmessage: this.defaultMessage( element, { method: method } )\n\t\t\t} );\n\t\t},\n\n\t\t// Cleans up all forms and elements, removes validator-specific events\n\t\tdestroy: function() {\n\t\t\tthis.resetForm();\n\n\t\t\t$( this.currentForm )\n\t\t\t\t.off( \".validate\" )\n\t\t\t\t.removeData( \"validator\" )\n\t\t\t\t.find( \".validate-equalTo-blur\" )\n\t\t\t\t\t.off( \".validate-equalTo\" )\n\t\t\t\t\t.removeClass( \"validate-equalTo-blur\" );\n\t\t}\n\n\t},\n\n\tclassRuleSettings: {\n\t\trequired: { required: true },\n\t\temail: { email: true },\n\t\turl: { url: true },\n\t\tdate: { date: true },\n\t\tdateISO: { dateISO: true },\n\t\tnumber: { number: true },\n\t\tdigits: { digits: true },\n\t\tcreditcard: { creditcard: true }\n\t},\n\n\taddClassRules: function( className, rules ) {\n\t\tif ( className.constructor === String ) {\n\t\t\tthis.classRuleSettings[ className ] = rules;\n\t\t} else {\n\t\t\t$.extend( this.classRuleSettings, className );\n\t\t}\n\t},\n\n\tclassRules: function( element ) {\n\t\tvar rules = {},\n\t\t\tclasses = $( element ).attr( \"class\" );\n\n\t\tif ( classes ) {\n\t\t\t$.each( classes.split( \" \" ), function() {\n\t\t\t\tif ( this in $.validator.classRuleSettings ) {\n\t\t\t\t\t$.extend( rules, $.validator.classRuleSettings[ this ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t\treturn rules;\n\t},\n\n\tnormalizeAttributeRule: function( rules, type, method, value ) {\n\n\t\t// Convert the value to a number for number inputs, and for text for backwards compability\n\t\t// allows type=\"date\" and others to be compared as strings\n\t\tif ( /min|max|step/.test( method ) && ( type === null || /number|range|text/.test( type ) ) ) {\n\t\t\tvalue = Number( value );\n\n\t\t\t// Support Opera Mini, which returns NaN for undefined minlength\n\t\t\tif ( isNaN( value ) ) {\n\t\t\t\tvalue = undefined;\n\t\t\t}\n\t\t}\n\n\t\tif ( value || value === 0 ) {\n\t\t\trules[ method ] = value;\n\t\t} else if ( type === method && type !== \"range\" ) {\n\n\t\t\t// Exception: the jquery validate 'range' method\n\t\t\t// does not test for the html5 'range' type\n\t\t\trules[ method ] = true;\n\t\t}\n\t},\n\n\tattributeRules: function( element ) {\n\t\tvar rules = {},\n\t\t\t$element = $( element ),\n\t\t\ttype = element.getAttribute( \"type\" ),\n\t\t\tmethod, value;\n\n\t\tfor ( method in $.validator.methods ) {\n\n\t\t\t// Support for in both html5 and older browsers\n\t\t\tif ( method === \"required\" ) {\n\t\t\t\tvalue = element.getAttribute( method );\n\n\t\t\t\t// Some browsers return an empty string for the required attribute\n\t\t\t\t// and non-HTML5 browsers might have required=\"\" markup\n\t\t\t\tif ( value === \"\" ) {\n\t\t\t\t\tvalue = true;\n\t\t\t\t}\n\n\t\t\t\t// Force non-HTML5 browsers to return bool\n\t\t\t\tvalue = !!value;\n\t\t\t} else {\n\t\t\t\tvalue = $element.attr( method );\n\t\t\t}\n\n\t\t\tthis.normalizeAttributeRule( rules, type, method, value );\n\t\t}\n\n\t\t// 'maxlength' may be returned as -1, 2147483647 ( IE ) and 524288 ( safari ) for text inputs\n\t\tif ( rules.maxlength && /-1|2147483647|524288/.test( rules.maxlength ) ) {\n\t\t\tdelete rules.maxlength;\n\t\t}\n\n\t\treturn rules;\n\t},\n\n\tdataRules: function( element ) {\n\t\tvar rules = {},\n\t\t\t$element = $( element ),\n\t\t\ttype = element.getAttribute( \"type\" ),\n\t\t\tmethod, value;\n\n\t\tfor ( method in $.validator.methods ) {\n\t\t\tvalue = $element.data( \"rule\" + method.charAt( 0 ).toUpperCase() + method.substring( 1 ).toLowerCase() );\n\t\t\tthis.normalizeAttributeRule( rules, type, method, value );\n\t\t}\n\t\treturn rules;\n\t},\n\n\tstaticRules: function( element ) {\n\t\tvar rules = {},\n\t\t\tvalidator = $.data( element.form, \"validator\" );\n\n\t\tif ( validator.settings.rules ) {\n\t\t\trules = $.validator.normalizeRule( validator.settings.rules[ element.name ] ) || {};\n\t\t}\n\t\treturn rules;\n\t},\n\n\tnormalizeRules: function( rules, element ) {\n\n\t\t// Handle dependency check\n\t\t$.each( rules, function( prop, val ) {\n\n\t\t\t// Ignore rule when param is explicitly false, eg. required:false\n\t\t\tif ( val === false ) {\n\t\t\t\tdelete rules[ prop ];\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( val.param || val.depends ) {\n\t\t\t\tvar keepRule = true;\n\t\t\t\tswitch ( typeof val.depends ) {\n\t\t\t\tcase \"string\":\n\t\t\t\t\tkeepRule = !!$( val.depends, element.form ).length;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"function\":\n\t\t\t\t\tkeepRule = val.depends.call( element, element );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif ( keepRule ) {\n\t\t\t\t\trules[ prop ] = val.param !== undefined ? val.param : true;\n\t\t\t\t} else {\n\t\t\t\t\t$.data( element.form, \"validator\" ).resetElements( $( element ) );\n\t\t\t\t\tdelete rules[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\t// Evaluate parameters\n\t\t$.each( rules, function( rule, parameter ) {\n\t\t\trules[ rule ] = $.isFunction( parameter ) && rule !== \"normalizer\" ? parameter( element ) : parameter;\n\t\t} );\n\n\t\t// Clean number parameters\n\t\t$.each( [ \"minlength\", \"maxlength\" ], function() {\n\t\t\tif ( rules[ this ] ) {\n\t\t\t\trules[ this ] = Number( rules[ this ] );\n\t\t\t}\n\t\t} );\n\t\t$.each( [ \"rangelength\", \"range\" ], function() {\n\t\t\tvar parts;\n\t\t\tif ( rules[ this ] ) {\n\t\t\t\tif ( $.isArray( rules[ this ] ) ) {\n\t\t\t\t\trules[ this ] = [ Number( rules[ this ][ 0 ] ), Number( rules[ this ][ 1 ] ) ];\n\t\t\t\t} else if ( typeof rules[ this ] === \"string\" ) {\n\t\t\t\t\tparts = rules[ this ].replace( /[\\[\\]]/g, \"\" ).split( /[\\s,]+/ );\n\t\t\t\t\trules[ this ] = [ Number( parts[ 0 ] ), Number( parts[ 1 ] ) ];\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\tif ( $.validator.autoCreateRanges ) {\n\n\t\t\t// Auto-create ranges\n\t\t\tif ( rules.min != null && rules.max != null ) {\n\t\t\t\trules.range = [ rules.min, rules.max ];\n\t\t\t\tdelete rules.min;\n\t\t\t\tdelete rules.max;\n\t\t\t}\n\t\t\tif ( rules.minlength != null && rules.maxlength != null ) {\n\t\t\t\trules.rangelength = [ rules.minlength, rules.maxlength ];\n\t\t\t\tdelete rules.minlength;\n\t\t\t\tdelete rules.maxlength;\n\t\t\t}\n\t\t}\n\n\t\treturn rules;\n\t},\n\n\t// Converts a simple string to a {string: true} rule, e.g., \"required\" to {required:true}\n\tnormalizeRule: function( data ) {\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tvar transformed = {};\n\t\t\t$.each( data.split( /\\s/ ), function() {\n\t\t\t\ttransformed[ this ] = true;\n\t\t\t} );\n\t\t\tdata = transformed;\n\t\t}\n\t\treturn data;\n\t},\n\n\t// https://jqueryvalidation.org/jQuery.validator.addMethod/\n\taddMethod: function( name, method, message ) {\n\t\t$.validator.methods[ name ] = method;\n\t\t$.validator.messages[ name ] = message !== undefined ? message : $.validator.messages[ name ];\n\t\tif ( method.length < 3 ) {\n\t\t\t$.validator.addClassRules( name, $.validator.normalizeRule( name ) );\n\t\t}\n\t},\n\n\t// https://jqueryvalidation.org/jQuery.validator.methods/\n\tmethods: {\n\n\t\t// https://jqueryvalidation.org/required-method/\n\t\trequired: function( value, element, param ) {\n\n\t\t\t// Check if dependency is met\n\t\t\tif ( !this.depend( param, element ) ) {\n\t\t\t\treturn \"dependency-mismatch\";\n\t\t\t}\n\t\t\tif ( element.nodeName.toLowerCase() === \"select\" ) {\n\n\t\t\t\t// Could be an array for select-multiple or a string, both are fine this way\n\t\t\t\tvar val = $( element ).val();\n\t\t\t\treturn val && val.length > 0;\n\t\t\t}\n\t\t\tif ( this.checkable( element ) ) {\n\t\t\t\treturn this.getLength( value, element ) > 0;\n\t\t\t}\n\t\t\treturn value.length > 0;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/email-method/\n\t\temail: function( value, element ) {\n\n\t\t\t// From https://html.spec.whatwg.org/multipage/forms.html#valid-e-mail-address\n\t\t\t// Retrieved 2014-01-14\n\t\t\t// If you have a problem with this implementation, report a bug against the above spec\n\t\t\t// Or use custom methods to implement your own email validation\n\t\t\treturn this.optional( element ) || /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/url-method/\n\t\turl: function( value, element ) {\n\n\t\t\t// Copyright (c) 2010-2013 Diego Perini, MIT licensed\n\t\t\t// https://gist.github.com/dperini/729294\n\t\t\t// see also https://mathiasbynens.be/demo/url-regex\n\t\t\t// modified to allow protocol-relative URLs\n\t\t\treturn this.optional( element ) || /^(?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})).?)(?::\\d{2,5})?(?:[/?#]\\S*)?$/i.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/date-method/\n\t\tdate: function( value, element ) {\n\t\t\treturn this.optional( element ) || !/Invalid|NaN/.test( new Date( value ).toString() );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/dateISO-method/\n\t\tdateISO: function( value, element ) {\n\t\t\treturn this.optional( element ) || /^\\d{4}[\\/\\-](0?[1-9]|1[012])[\\/\\-](0?[1-9]|[12][0-9]|3[01])$/.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/number-method/\n\t\tnumber: function( value, element ) {\n\t\t\treturn this.optional( element ) || /^(?:-?\\d+|-?\\d{1,3}(?:,\\d{3})+)?(?:\\.\\d+)?$/.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/digits-method/\n\t\tdigits: function( value, element ) {\n\t\t\treturn this.optional( element ) || /^\\d+$/.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/minlength-method/\n\t\tminlength: function( value, element, param ) {\n\t\t\tvar length = $.isArray( value ) ? value.length : this.getLength( value, element );\n\t\t\treturn this.optional( element ) || length >= param;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/maxlength-method/\n\t\tmaxlength: function( value, element, param ) {\n\t\t\tvar length = $.isArray( value ) ? value.length : this.getLength( value, element );\n\t\t\treturn this.optional( element ) || length <= param;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/rangelength-method/\n\t\trangelength: function( value, element, param ) {\n\t\t\tvar length = $.isArray( value ) ? value.length : this.getLength( value, element );\n\t\t\treturn this.optional( element ) || ( length >= param[ 0 ] && length <= param[ 1 ] );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/min-method/\n\t\tmin: function( value, element, param ) {\n\t\t\treturn this.optional( element ) || value >= param;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/max-method/\n\t\tmax: function( value, element, param ) {\n\t\t\treturn this.optional( element ) || value <= param;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/range-method/\n\t\trange: function( value, element, param ) {\n\t\t\treturn this.optional( element ) || ( value >= param[ 0 ] && value <= param[ 1 ] );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/step-method/\n\t\tstep: function( value, element, param ) {\n\t\t\tvar type = $( element ).attr( \"type\" ),\n\t\t\t\terrorMessage = \"Step attribute on input type \" + type + \" is not supported.\",\n\t\t\t\tsupportedTypes = [ \"text\", \"number\", \"range\" ],\n\t\t\t\tre = new RegExp( \"\\\\b\" + type + \"\\\\b\" ),\n\t\t\t\tnotSupported = type && !re.test( supportedTypes.join() ),\n\t\t\t\tdecimalPlaces = function( num ) {\n\t\t\t\t\tvar match = ( \"\" + num ).match( /(?:\\.(\\d+))?$/ );\n\t\t\t\t\tif ( !match ) {\n\t\t\t\t\t\treturn 0;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Number of digits right of decimal point.\n\t\t\t\t\treturn match[ 1 ] ? match[ 1 ].length : 0;\n\t\t\t\t},\n\t\t\t\ttoInt = function( num ) {\n\t\t\t\t\treturn Math.round( num * Math.pow( 10, decimals ) );\n\t\t\t\t},\n\t\t\t\tvalid = true,\n\t\t\t\tdecimals;\n\n\t\t\t// Works only for text, number and range input types\n\t\t\t// TODO find a way to support input types date, datetime, datetime-local, month, time and week\n\t\t\tif ( notSupported ) {\n\t\t\t\tthrow new Error( errorMessage );\n\t\t\t}\n\n\t\t\tdecimals = decimalPlaces( param );\n\n\t\t\t// Value can't have too many decimals\n\t\t\tif ( decimalPlaces( value ) > decimals || toInt( value ) % toInt( param ) !== 0 ) {\n\t\t\t\tvalid = false;\n\t\t\t}\n\n\t\t\treturn this.optional( element ) || valid;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/equalTo-method/\n\t\tequalTo: function( value, element, param ) {\n\n\t\t\t// Bind to the blur event of the target in order to revalidate whenever the target field is updated\n\t\t\tvar target = $( param );\n\t\t\tif ( this.settings.onfocusout && target.not( \".validate-equalTo-blur\" ).length ) {\n\t\t\t\ttarget.addClass( \"validate-equalTo-blur\" ).on( \"blur.validate-equalTo\", function() {\n\t\t\t\t\t$( element ).valid();\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn value === target.val();\n\t\t},\n\n\t\t// https://jqueryvalidation.org/remote-method/\n\t\tremote: function( value, element, param, method ) {\n\t\t\tif ( this.optional( element ) ) {\n\t\t\t\treturn \"dependency-mismatch\";\n\t\t\t}\n\n\t\t\tmethod = typeof method === \"string\" && method || \"remote\";\n\n\t\t\tvar previous = this.previousValue( element, method ),\n\t\t\t\tvalidator, data, optionDataString;\n\n\t\t\tif ( !this.settings.messages[ element.name ] ) {\n\t\t\t\tthis.settings.messages[ element.name ] = {};\n\t\t\t}\n\t\t\tprevious.originalMessage = previous.originalMessage || this.settings.messages[ element.name ][ method ];\n\t\t\tthis.settings.messages[ element.name ][ method ] = previous.message;\n\n\t\t\tparam = typeof param === \"string\" && { url: param } || param;\n\t\t\toptionDataString = $.param( $.extend( { data: value }, param.data ) );\n\t\t\tif ( previous.old === optionDataString ) {\n\t\t\t\treturn previous.valid;\n\t\t\t}\n\n\t\t\tprevious.old = optionDataString;\n\t\t\tvalidator = this;\n\t\t\tthis.startRequest( element );\n\t\t\tdata = {};\n\t\t\tdata[ element.name ] = value;\n\t\t\t$.ajax( $.extend( true, {\n\t\t\t\tmode: \"abort\",\n\t\t\t\tport: \"validate\" + element.name,\n\t\t\t\tdataType: \"json\",\n\t\t\t\tdata: data,\n\t\t\t\tcontext: validator.currentForm,\n\t\t\t\tsuccess: function( response ) {\n\t\t\t\t\tvar valid = response === true || response === \"true\",\n\t\t\t\t\t\terrors, message, submitted;\n\n\t\t\t\t\tvalidator.settings.messages[ element.name ][ method ] = previous.originalMessage;\n\t\t\t\t\tif ( valid ) {\n\t\t\t\t\t\tsubmitted = validator.formSubmitted;\n\t\t\t\t\t\tvalidator.resetInternals();\n\t\t\t\t\t\tvalidator.toHide = validator.errorsFor( element );\n\t\t\t\t\t\tvalidator.formSubmitted = submitted;\n\t\t\t\t\t\tvalidator.successList.push( element );\n\t\t\t\t\t\tvalidator.invalid[ element.name ] = false;\n\t\t\t\t\t\tvalidator.showErrors();\n\t\t\t\t\t} else {\n\t\t\t\t\t\terrors = {};\n\t\t\t\t\t\tmessage = response || validator.defaultMessage( element, { method: method, parameters: value } );\n\t\t\t\t\t\terrors[ element.name ] = previous.message = message;\n\t\t\t\t\t\tvalidator.invalid[ element.name ] = true;\n\t\t\t\t\t\tvalidator.showErrors( errors );\n\t\t\t\t\t}\n\t\t\t\t\tprevious.valid = valid;\n\t\t\t\t\tvalidator.stopRequest( element, valid );\n\t\t\t\t}\n\t\t\t}, param ) );\n\t\t\treturn \"pending\";\n\t\t}\n\t}\n\n} );\n\r\n// Ajax mode: abort\n// usage: $.ajax({ mode: \"abort\"[, port: \"uniqueport\"]});\n// if mode:\"abort\" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort()\n\nvar pendingRequests = {},\n\tajax;\n\n// Use a prefilter if available (1.5+)\nif ( $.ajaxPrefilter ) {\n\t$.ajaxPrefilter( function( settings, _, xhr ) {\n\t\tvar port = settings.port;\n\t\tif ( settings.mode === \"abort\" ) {\n\t\t\tif ( pendingRequests[ port ] ) {\n\t\t\t\tpendingRequests[ port ].abort();\n\t\t\t}\n\t\t\tpendingRequests[ port ] = xhr;\n\t\t}\n\t} );\n} else {\n\n\t// Proxy ajax\n\tajax = $.ajax;\n\t$.ajax = function( settings ) {\n\t\tvar mode = ( \"mode\" in settings ? settings : $.ajaxSettings ).mode,\n\t\t\tport = ( \"port\" in settings ? settings : $.ajaxSettings ).port;\n\t\tif ( mode === \"abort\" ) {\n\t\t\tif ( pendingRequests[ port ] ) {\n\t\t\t\tpendingRequests[ port ].abort();\n\t\t\t}\n\t\t\tpendingRequests[ port ] = ajax.apply( this, arguments );\n\t\t\treturn pendingRequests[ port ];\n\t\t}\n\t\treturn ajax.apply( this, arguments );\n\t};\n}\nreturn $;\r\n}));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jquery-validation/dist/jquery.validate.js\n// module id = 140\n// module chunks = 0","/*!\r\n** Unobtrusive validation support library for jQuery and jQuery Validate\r\n** Copyright (C) Microsoft Corporation. All rights reserved.\r\n*/\r\n\r\n/*jslint white: true, browser: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, newcap: true, immed: true, strict: false */\r\n/*global document: false, jQuery: false */\r\n\r\n(function ($) {\r\n var $jQval = $.validator,\r\n adapters,\r\n data_validation = \"unobtrusiveValidation\";\r\n\r\n function setValidationValues(options, ruleName, value) {\r\n options.rules[ruleName] = value;\r\n if (options.message) {\r\n options.messages[ruleName] = options.message;\r\n }\r\n }\r\n\r\n function splitAndTrim(value) {\r\n return value.replace(/^\\s+|\\s+$/g, \"\").split(/\\s*,\\s*/g);\r\n }\r\n\r\n function escapeAttributeValue(value) {\r\n // As mentioned on http://api.jquery.com/category/selectors/\r\n return value.replace(/([!\"#$%&'()*+,./:;<=>?@\\[\\\\\\]^`{|}~])/g, \"\\\\$1\");\r\n }\r\n\r\n function getModelPrefix(fieldName) {\r\n return fieldName.substr(0, fieldName.lastIndexOf(\".\") + 1);\r\n }\r\n\r\n function appendModelPrefix(value, prefix) {\r\n if (value.indexOf(\"*.\") === 0) {\r\n value = value.replace(\"*.\", prefix);\r\n }\r\n return value;\r\n }\r\n\r\n function onError(error, inputElement) { // 'this' is the form element\r\n var container = $(this).find(\"[data-valmsg-for='\" + escapeAttributeValue(inputElement[0].name) + \"']\"),\r\n replaceAttrValue = container.attr(\"data-valmsg-replace\"),\r\n replace = replaceAttrValue ? $.parseJSON(replaceAttrValue) !== false : null;\r\n\r\n container.removeClass(\"field-validation-valid\").addClass(\"field-validation-error\");\r\n error.data(\"unobtrusiveContainer\", container);\r\n\r\n if (replace) {\r\n container.empty();\r\n error.removeClass(\"input-validation-error\").appendTo(container);\r\n }\r\n else {\r\n error.hide();\r\n }\r\n }\r\n\r\n function onErrors(event, validator) { // 'this' is the form element\r\n var container = $(this).find(\"[data-valmsg-summary=true]\"),\r\n list = container.find(\"ul\");\r\n\r\n if (list && list.length && validator.errorList.length) {\r\n list.empty();\r\n container.addClass(\"validation-summary-errors\").removeClass(\"validation-summary-valid\");\r\n\r\n $.each(validator.errorList, function () {\r\n $(\"
  • \").html(this.message).appendTo(list);\r\n });\r\n }\r\n }\r\n\r\n function onSuccess(error) { // 'this' is the form element\r\n var container = error.data(\"unobtrusiveContainer\");\r\n\r\n if (container) {\r\n var replaceAttrValue = container.attr(\"data-valmsg-replace\"),\r\n replace = replaceAttrValue ? $.parseJSON(replaceAttrValue) : null;\r\n\r\n container.addClass(\"field-validation-valid\").removeClass(\"field-validation-error\");\r\n error.removeData(\"unobtrusiveContainer\");\r\n\r\n if (replace) {\r\n container.empty();\r\n }\r\n }\r\n }\r\n\r\n function onReset(event) { // 'this' is the form element\r\n var $form = $(this),\r\n key = '__jquery_unobtrusive_validation_form_reset';\r\n if ($form.data(key)) {\r\n return;\r\n }\r\n // Set a flag that indicates we're currently resetting the form.\r\n $form.data(key, true);\r\n try {\r\n $form.data(\"validator\").resetForm();\r\n } finally {\r\n $form.removeData(key);\r\n }\r\n\r\n $form.find(\".validation-summary-errors\")\r\n .addClass(\"validation-summary-valid\")\r\n .removeClass(\"validation-summary-errors\");\r\n $form.find(\".field-validation-error\")\r\n .addClass(\"field-validation-valid\")\r\n .removeClass(\"field-validation-error\")\r\n .removeData(\"unobtrusiveContainer\")\r\n .find(\">*\") // If we were using valmsg-replace, get the underlying error\r\n .removeData(\"unobtrusiveContainer\");\r\n }\r\n\r\n function validationInfo(form) {\r\n var $form = $(form),\r\n result = $form.data(data_validation),\r\n onResetProxy = $.proxy(onReset, form),\r\n defaultOptions = $jQval.unobtrusive.options || {},\r\n execInContext = function (name, args) {\r\n var func = defaultOptions[name];\r\n func && $.isFunction(func) && func.apply(form, args);\r\n }\r\n\r\n if (!result) {\r\n result = {\r\n options: { // options structure passed to jQuery Validate's validate() method\r\n errorClass: defaultOptions.errorClass || \"input-validation-error\",\r\n errorElement: defaultOptions.errorElement || \"span\",\r\n errorPlacement: function () {\r\n onError.apply(form, arguments);\r\n execInContext(\"errorPlacement\", arguments);\r\n },\r\n invalidHandler: function () {\r\n onErrors.apply(form, arguments);\r\n execInContext(\"invalidHandler\", arguments);\r\n },\r\n messages: {},\r\n rules: {},\r\n success: function () {\r\n onSuccess.apply(form, arguments);\r\n execInContext(\"success\", arguments);\r\n }\r\n },\r\n attachValidation: function () {\r\n $form\r\n .off(\"reset.\" + data_validation, onResetProxy)\r\n .on(\"reset.\" + data_validation, onResetProxy)\r\n .validate(this.options);\r\n },\r\n validate: function () { // a validation function that is called by unobtrusive Ajax\r\n $form.validate();\r\n return $form.valid();\r\n }\r\n };\r\n $form.data(data_validation, result);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n $jQval.unobtrusive = {\r\n adapters: [],\r\n\r\n parseElement: function (element, skipAttach) {\r\n /// \r\n /// Parses a single HTML element for unobtrusive validation attributes.\r\n /// \r\n /// The HTML element to be parsed.\r\n /// [Optional] true to skip attaching the\r\n /// validation to the form. If parsing just this single element, you should specify true.\r\n /// If parsing several elements, you should specify false, and manually attach the validation\r\n /// to the form when you are finished. The default is false.\r\n var $element = $(element),\r\n form = $element.parents(\"form\")[0],\r\n valInfo, rules, messages;\r\n\r\n if (!form) { // Cannot do client-side validation without a form\r\n return;\r\n }\r\n\r\n valInfo = validationInfo(form);\r\n valInfo.options.rules[element.name] = rules = {};\r\n valInfo.options.messages[element.name] = messages = {};\r\n\r\n $.each(this.adapters, function () {\r\n var prefix = \"data-val-\" + this.name,\r\n message = $element.attr(prefix),\r\n paramValues = {};\r\n\r\n if (message !== undefined) { // Compare against undefined, because an empty message is legal (and falsy)\r\n prefix += \"-\";\r\n\r\n $.each(this.params, function () {\r\n paramValues[this] = $element.attr(prefix + this);\r\n });\r\n\r\n this.adapt({\r\n element: element,\r\n form: form,\r\n message: message,\r\n params: paramValues,\r\n rules: rules,\r\n messages: messages\r\n });\r\n }\r\n });\r\n\r\n $.extend(rules, { \"__dummy__\": true });\r\n\r\n if (!skipAttach) {\r\n valInfo.attachValidation();\r\n }\r\n },\r\n\r\n parse: function (selector) {\r\n /// \r\n /// Parses all the HTML elements in the specified selector. It looks for input elements decorated\r\n /// with the [data-val=true] attribute value and enables validation according to the data-val-*\r\n /// attribute values.\r\n /// \r\n /// Any valid jQuery selector.\r\n\r\n // $forms includes all forms in selector's DOM hierarchy (parent, children and self) that have at least one\r\n // element with data-val=true\r\n var $selector = $(selector),\r\n $forms = $selector.parents()\r\n .addBack()\r\n .filter(\"form\")\r\n .add($selector.find(\"form\"))\r\n .has(\"[data-val=true]\");\r\n\r\n $selector.find(\"[data-val=true]\").each(function () {\r\n $jQval.unobtrusive.parseElement(this, true);\r\n });\r\n\r\n $forms.each(function () {\r\n var info = validationInfo(this);\r\n if (info) {\r\n info.attachValidation();\r\n }\r\n });\r\n }\r\n };\r\n\r\n adapters = $jQval.unobtrusive.adapters;\r\n\r\n adapters.add = function (adapterName, params, fn) {\r\n /// Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation.\r\n /// The name of the adapter to be added. This matches the name used\r\n /// in the data-val-nnnn HTML attribute (where nnnn is the adapter name).\r\n /// [Optional] An array of parameter names (strings) that will\r\n /// be extracted from the data-val-nnnn-mmmm HTML attributes (where nnnn is the adapter name, and\r\n /// mmmm is the parameter name).\r\n /// The function to call, which adapts the values from the HTML\r\n /// attributes into jQuery Validate rules and/or messages.\r\n /// \r\n if (!fn) { // Called with no params, just a function\r\n fn = params;\r\n params = [];\r\n }\r\n this.push({ name: adapterName, params: params, adapt: fn });\r\n return this;\r\n };\r\n\r\n adapters.addBool = function (adapterName, ruleName) {\r\n /// Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where\r\n /// the jQuery Validate validation rule has no parameter values.\r\n /// The name of the adapter to be added. This matches the name used\r\n /// in the data-val-nnnn HTML attribute (where nnnn is the adapter name).\r\n /// [Optional] The name of the jQuery Validate rule. If not provided, the value\r\n /// of adapterName will be used instead.\r\n /// \r\n return this.add(adapterName, function (options) {\r\n setValidationValues(options, ruleName || adapterName, true);\r\n });\r\n };\r\n\r\n adapters.addMinMax = function (adapterName, minRuleName, maxRuleName, minMaxRuleName, minAttribute, maxAttribute) {\r\n /// Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where\r\n /// the jQuery Validate validation has three potential rules (one for min-only, one for max-only, and\r\n /// one for min-and-max). The HTML parameters are expected to be named -min and -max.\r\n /// The name of the adapter to be added. This matches the name used\r\n /// in the data-val-nnnn HTML attribute (where nnnn is the adapter name).\r\n /// The name of the jQuery Validate rule to be used when you only\r\n /// have a minimum value.\r\n /// The name of the jQuery Validate rule to be used when you only\r\n /// have a maximum value.\r\n /// The name of the jQuery Validate rule to be used when you\r\n /// have both a minimum and maximum value.\r\n /// [Optional] The name of the HTML attribute that\r\n /// contains the minimum value. The default is \"min\".\r\n /// [Optional] The name of the HTML attribute that\r\n /// contains the maximum value. The default is \"max\".\r\n /// \r\n return this.add(adapterName, [minAttribute || \"min\", maxAttribute || \"max\"], function (options) {\r\n var min = options.params.min,\r\n max = options.params.max;\r\n\r\n if (min && max) {\r\n setValidationValues(options, minMaxRuleName, [min, max]);\r\n }\r\n else if (min) {\r\n setValidationValues(options, minRuleName, min);\r\n }\r\n else if (max) {\r\n setValidationValues(options, maxRuleName, max);\r\n }\r\n });\r\n };\r\n\r\n adapters.addSingleVal = function (adapterName, attribute, ruleName) {\r\n /// Adds a new adapter to convert unobtrusive HTML into a jQuery Validate validation, where\r\n /// the jQuery Validate validation rule has a single value.\r\n /// The name of the adapter to be added. This matches the name used\r\n /// in the data-val-nnnn HTML attribute(where nnnn is the adapter name).\r\n /// [Optional] The name of the HTML attribute that contains the value.\r\n /// The default is \"val\".\r\n /// [Optional] The name of the jQuery Validate rule. If not provided, the value\r\n /// of adapterName will be used instead.\r\n /// \r\n return this.add(adapterName, [attribute || \"val\"], function (options) {\r\n setValidationValues(options, ruleName || adapterName, options.params[attribute]);\r\n });\r\n };\r\n\r\n $jQval.addMethod(\"__dummy__\", function (value, element, params) {\r\n return true;\r\n });\r\n\r\n $jQval.addMethod(\"regex\", function (value, element, params) {\r\n var match;\r\n if (this.optional(element)) {\r\n return true;\r\n }\r\n\r\n match = new RegExp(params).exec(value);\r\n return (match && (match.index === 0) && (match[0].length === value.length));\r\n });\r\n\r\n $jQval.addMethod(\"nonalphamin\", function (value, element, nonalphamin) {\r\n var match;\r\n if (nonalphamin) {\r\n match = value.match(/\\W/g);\r\n match = match && match.length >= nonalphamin;\r\n }\r\n return match;\r\n });\r\n\r\n if ($jQval.methods.extension) {\r\n adapters.addSingleVal(\"accept\", \"mimtype\");\r\n adapters.addSingleVal(\"extension\", \"extension\");\r\n } else {\r\n // for backward compatibility, when the 'extension' validation method does not exist, such as with versions\r\n // of JQuery Validation plugin prior to 1.10, we should use the 'accept' method for\r\n // validating the extension, and ignore mime-type validations as they are not supported.\r\n adapters.addSingleVal(\"extension\", \"extension\", \"accept\");\r\n }\r\n\r\n adapters.addSingleVal(\"regex\", \"pattern\");\r\n adapters.addBool(\"creditcard\").addBool(\"date\").addBool(\"digits\").addBool(\"email\").addBool(\"number\").addBool(\"url\");\r\n adapters.addMinMax(\"length\", \"minlength\", \"maxlength\", \"rangelength\").addMinMax(\"range\", \"min\", \"max\", \"range\");\r\n adapters.addMinMax(\"minlength\", \"minlength\").addMinMax(\"maxlength\", \"minlength\", \"maxlength\");\r\n adapters.add(\"equalto\", [\"other\"], function (options) {\r\n var prefix = getModelPrefix(options.element.name),\r\n other = options.params.other,\r\n fullOtherName = appendModelPrefix(other, prefix),\r\n element = $(options.form).find(\":input\").filter(\"[name='\" + escapeAttributeValue(fullOtherName) + \"']\")[0];\r\n\r\n setValidationValues(options, \"equalTo\", element);\r\n });\r\n adapters.add(\"required\", function (options) {\r\n // jQuery Validate equates \"required\" with \"mandatory\" for checkbox elements\r\n if (options.element.tagName.toUpperCase() !== \"INPUT\" || options.element.type.toUpperCase() !== \"CHECKBOX\") {\r\n setValidationValues(options, \"required\", true);\r\n }\r\n });\r\n adapters.add(\"remote\", [\"url\", \"type\", \"additionalfields\"], function (options) {\r\n var value = {\r\n url: options.params.url,\r\n type: options.params.type || \"GET\",\r\n data: {}\r\n },\r\n prefix = getModelPrefix(options.element.name);\r\n\r\n $.each(splitAndTrim(options.params.additionalfields || options.element.name), function (i, fieldName) {\r\n var paramName = appendModelPrefix(fieldName, prefix);\r\n value.data[paramName] = function () {\r\n var field = $(options.form).find(\":input\").filter(\"[name='\" + escapeAttributeValue(paramName) + \"']\");\r\n // For checkboxes and radio buttons, only pick up values from checked fields.\r\n if (field.is(\":checkbox\")) {\r\n return field.filter(\":checked\").val() || field.filter(\":hidden\").val() || '';\r\n }\r\n else if (field.is(\":radio\")) {\r\n return field.filter(\":checked\").val() || '';\r\n }\r\n return field.val();\r\n };\r\n });\r\n\r\n setValidationValues(options, \"remote\", value);\r\n });\r\n adapters.add(\"password\", [\"min\", \"nonalphamin\", \"regex\"], function (options) {\r\n if (options.params.min) {\r\n setValidationValues(options, \"minlength\", options.params.min);\r\n }\r\n if (options.params.nonalphamin) {\r\n setValidationValues(options, \"nonalphamin\", options.params.nonalphamin);\r\n }\r\n if (options.params.regex) {\r\n setValidationValues(options, \"regex\", options.params.regex);\r\n }\r\n });\r\n\r\n $(function () {\r\n $jQval.unobtrusive.parse(document);\r\n });\r\n}(jQuery));\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js\n// module id = 141\n// module chunks = 0","require('./../../uPortal/Content/css/default.css');\r\n\r\nimport initPolyfill from './../../uPortal/Content/js/Polyfill';\r\nimport { } from './../../uPortal/Core/Panels/RTStartPanel/Js'\r\n\r\nimport { } from './../../uPortal/Core/Pages/SectionPage/Js';\r\nimport { } from './../../uPortal/Core/Pages/NewsPage/Js';\r\n\r\nimport { } from './../../Core/Panels/NotificationPanel/Js'\r\n\r\n\r\nimport initAjaxFormsScripts from \"./../../uPortal/Content/js/AjaxForms\";\r\nimport initHeroPanel from './../../uPortal/Core/Panels/HeroPanel/Js';\r\nimport initVideoPanel from './../../uPortal/Core/Panels/VideoPanel/Js';\r\nimport initNewsletterPanel from './../../uPortal/Core/Panels/NewsletterPanel/Js';\r\nimport toggleQuestion from './../../uPortal/Core/Panels/FaqPanel/Js';\r\nimport imageCarouselPanel from './../../Core/Panels/imageCarouselPanel/Js';\r\nimport contactForm from './../../Core/Panels/ContactFormPanel/Js';\r\n\r\nimport initMobileMenu from \"./../../uPortal/Core/Shared/Navigation/Js\";\r\nimport initAutoSuggestion from './../../uPortal/Core/Shared/AutoSuggestions/Js';\r\nimport scrollspy from './../../uPortal/Content/js/Plugins/Scrollspy';\r\nimport initCustomFooter from './../../Core/Shared/CustomFooter/Js';\r\nimport initCustomHeader from './../../Core/Shared/CustomHeader/Js';\r\nimport initSearchResult from './../../uPortal/Core/Pages/SearchPage/Js';\r\nimport initCookieDisclaimer from './../../uPortal/Core/Shared/CookieDisclaimer/Js';\r\nimport initCustomTopImage from './../../Core/Shared/TopImage/Js';\r\n\r\ninitPolyfill();\r\ninitVideoPanel();\r\ninitNewsletterPanel();\r\ninitAjaxFormsScripts();\r\ninitMobileMenu();\r\ntoggleQuestion();\r\ncontactForm();\r\ninitHeroPanel();\r\n//initTopImage();\r\ninitSearchResult();\r\ninitAutoSuggestion();\r\ninitCustomFooter();\r\ninitCustomHeader();\r\ninitCookieDisclaimer();\r\ninitCustomTopImage();\r\n\r\nimageCarouselPanel.init();\r\nscrollspy.init('.js-tracking-area');\r\n\r\n//should be in the end for overriding all css included inside imported js\r\nrequire('./../css/styles.css');\n\n\n// WEBPACK FOOTER //\n// ./Content/js/index.js","import initClosest from './closest';\r\n\r\nexport default function() {\r\n initClosest();\r\n}\n\n\n// WEBPACK FOOTER //\n// ./uPortal/Content/js/Polyfill/index.js","export default function() {\r\n if (!Element.prototype.closest) {\r\n var matchesFn;\r\n\r\n ['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector']\r\n .some(function(fn) {\r\n if (typeof document.body[fn] == 'function') {\r\n matchesFn = fn;\r\n return true;\r\n }\r\n return false;\r\n });\r\n\r\n Element.prototype.closest = function (selector) {\r\n var el = this;\r\n var parent;\r\n\r\n while (el) {\r\n parent = el.parentElement;\r\n if (parent && parent[matchesFn](selector)) {\r\n return parent;\r\n }\r\n el = parent;\r\n }\r\n return null;\r\n };\r\n }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./uPortal/Content/js/Polyfill/closest.js","require('./../css/style.css');\r\n\r\nexport default {}\n\n\n// WEBPACK FOOTER //\n// ./uPortal/Core/Panels/RTStartPanel/Js/index.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./uPortal/Core/Panels/RTStartPanel/css/style.css\n// module id = 377\n// module chunks = 0","require ('./../css/style.css');\r\n\r\nexport default {}\n\n\n// WEBPACK FOOTER //\n// ./uPortal/Core/Pages/SectionPage/Js/index.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./uPortal/Core/Pages/SectionPage/css/style.css\n// module id = 379\n// module chunks = 0","require('./../css/style.css');\r\n\r\nexport default {}\n\n\n// WEBPACK FOOTER //\n// ./uPortal/Core/Pages/NewsPage/Js/index.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./uPortal/Core/Pages/NewsPage/css/style.css\n// module id = 381\n// module chunks = 0","require('./../Css/style.css');\r\n\r\nfunction initNotificationPanel() {\r\n\r\n}\r\n\r\nexport default initNotificationPanel;\n\n\n// WEBPACK FOOTER //\n// ./Core/Panels/NotificationPanel/Js/index.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./Core/Panels/NotificationPanel/Css/style.css\n// module id = 383\n// module chunks = 0","import InitFormSubmit from \"./formSubmit\";\r\n\r\nexport default function initAjaxFormsScripts() {\r\n InitFormSubmit();\r\n}\n\n\n// WEBPACK FOOTER //\n// ./uPortal/Content/js/AjaxForms/index.js","import { Ajax } from \"../Extensions/ajax\";\r\nimport { Form } from \"../Extensions/form\";\r\n\r\nexport default function () {\r\n const forms = Array.from(document.body.querySelectorAll(\"form.js-ajax-form\"));\r\n forms.forEach(form => form.addEventListener(\"submit\", onSubmit));\r\n\r\n const wrapWithSender = (s, cb) => d => { cb(s, d); };\r\n\r\n function onSubmit(e) {\r\n e.preventDefault();\r\n const form = e.target;\r\n const action = form.getAttribute(\"action\");\r\n const data = Form.serialize(form);\r\n Ajax.post(action, data, wrapWithSender(form, onSuccess), wrapWithSender(form, onError));\r\n this.submitCallback && this.submitCallback();\r\n };\r\n\r\n function onSuccess(sender, data) {\r\n sender.successCallback && sender.successCallback(data);\r\n };\r\n\r\n function onError(sender, data) {\r\n sender.errorCallback && sender.errorCallback(data);\r\n };\r\n};\n\n\n// WEBPACK FOOTER //\n// ./uPortal/Content/js/AjaxForms/formSubmit.js","require('./../Css/style.css');\r\nimport { YoutubePlay } from 'youtube-video-plugin';\r\n\r\nfunction init() {\r\n initYoutubeVideo(); \r\n}\r\n\r\nfunction initYoutubeVideo() {\r\n const selector = 'js-youtube-video';\r\n const elem = document.querySelector('.js-youtube-video');\r\n if (!elem) {\r\n return;\r\n }\r\n\r\n YoutubePlay.run({\r\n className: selector,\r\n mute: 1,\r\n autoplay: 1,\r\n controls: 0,\r\n showinfo: 0,\r\n loop: 1,\r\n width: 600,\r\n height: 400\r\n }); \r\n}\r\n\r\nexport default init;\n\n\n// WEBPACK FOOTER //\n// ./uPortal/Core/Panels/HeroPanel/Js/index.js","export var YoutubePlay = (function() {\n function run(options) {console.log(123)\n setInitOptions();\n setVideoIds();\n if (typeof YT !== \"undefined\") {\n createVideos();\n } else {\n loadYoutubeAPI();\n listenYouTubeIframeAPIReady();\n }\n \n function listenYouTubeIframeAPIReady() {\n window.onYouTubeIframeAPIReadyList.push(createVideos);\n window.onYouTubeIframeAPIReady = window.onYouTubeIframeAPIReady || function() {\n window.onYouTubeIframeAPIReadyList.forEach(function(func) {\n func();\n });\n window.onYouTubeIframeAPIReadyList = [];\n }\n }\n\n function setInitOptions() {\n window.onYouTubeIframeAPIReadyPlayers = window.onYouTubeIframeAPIReadyplayers || [];\n window.onYouTubeIframeAPIReadyList = window.onYouTubeIframeAPIReadyList || [];\n\n options = options || {};\n options.className = (options.className || '_youtube-video');\n options.autoplay = options.autoplay !== 'undefined' ? options.autoplay : 0;\n options.controls = options.controls !== 'undefined' ? options.controls : 1;;\n options.showinfo = options.showinfo !== 'undefined' ? options.showinfo : 1;\n options.loop = options.loop !== 'undefined' ? options.autoplay : 0;\n options.mute = options.mute !== 'undefined' ? options.mute : 0;\n options.width = options.width || 600;\n options.height = options.height || 400;\n options.modestbranding = options.modestbranding !== 'undefined' ? options.autoplay : 1;\n }\n \n function setVideoIds() {\n const videos = document.querySelectorAll('.' + options.className);\n \n if (videos.length) {\n [].forEach.call(videos, function(video) {\n video.id = Math.floor(Math.random() * 1000000000);\n });\n }\n }\n \n function loadYoutubeAPI() {\n var tag = document.createElement('script');\n \n tag.src = \"https://www.youtube.com/iframe_api\";\n var firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n }\n \n function createVideos() {\n const videos = document.querySelectorAll('.' + options.className);\n \n if (videos.length) {\n [].forEach.call(videos, function(video) {\n video.classList.remove(options.className);\n createVideo(video);\n })\n }\n }\n \n function createVideo(video) {\n var player = new YT.Player(video.id, {\n width: options.width,\n height: options.height,\n videoId: video.dataset.src,\n playerVars: {\n 'autoplay': options.autoplay,\n 'controls': options.controls,\n 'showinfo': options.showinfo,\n 'loop': options.loop,\n 'modestbranding': options.modestbranding\n },\n events: {\n 'onReady': onPlayerReady\n }\n });\n\n window.onYouTubeIframeAPIReadyPlayers.push(player);\n \n function onPlayerReady(event) {\n if (options.mute) event.target.mute();\n event.target.playVideo();\n }\n }\n }\n\n return {\n run: run\n }\n})();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/youtube-video-plugin/src/index.js\n// module id = 387\n// module chunks = 0","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./uPortal/Core/Panels/HeroPanel/Css/style.css\n// module id = 388\n// module chunks = 0","require('./../Css/style.css');\r\n\r\nfunction initVideoPanel() {\r\n const videoPanelsDom = document.querySelectorAll(\".js-video-panel\");\r\n const videoPanels = Array.from(videoPanelsDom);\r\n const root = document.getElementsByTagName('html')[0];\r\n\r\n videoPanels.forEach((panel) => {\r\n const popup = panel.querySelector(\".js-video-popup\");\r\n const playBtn = panel.querySelector(\".js-video-play-btn\");\r\n const closeBtn = panel.querySelector(\".js-popup-close-btn\");\r\n const popupContent = panel.querySelector(\".js-video-popup-content\");\r\n const video = panel.querySelector(\".js-video-frame\");\r\n const videoUrl = video.dataset.url;\r\n\r\n playBtn.addEventListener(\"click\", () => {\r\n showPopup(popup, video, videoUrl, root);\r\n });\r\n\r\n closeBtn.addEventListener(\"click\", () => {\r\n hidePopup(popup, video);\r\n });\r\n\r\n popup.addEventListener(\"click\", (e) => {\r\n if (e.target !== popupContent) {\r\n hidePopup(popup,video);\r\n }\r\n });\r\n });\r\n\r\n function showPopup(popup, video, videoUrl, root) {\r\n popup.classList.remove('_hide'); \r\n video.setAttribute(\"src\", videoUrl);\r\n root.classList.add('_hide-scroll');\r\n }\r\n\r\n function hidePopup(popup, video) {\r\n popup.classList.add('_hide');\r\n video.setAttribute(\"src\", '');\r\n }\r\n};\r\n\r\nexport default initVideoPanel;\n\n\n// WEBPACK FOOTER //\n// ./uPortal/Core/Panels/VideoPanel/Js/index.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./uPortal/Core/Panels/VideoPanel/Css/style.css\n// module id = 390\n// module chunks = 0","require('./../css/style.css');\r\n\r\nimport { } from \"jquery-validation\";\r\nimport { } from \"jquery-validation-unobtrusive\";\r\n\r\nfunction initNewsletterForm(panelElement) {\r\n const form = panelElement.querySelector(\".js-newsletter-form\");\r\n const formSubmitBtn = form.querySelector(\".js-newsletter-form__submit-btn\");\r\n const formSuccessMessage = form.dataset.success;\r\n const formErrorMessage = form.dataset.error;\r\n const messageContainer = panelElement.querySelector(\".js-newsletter-form__message\");\r\n\r\n formSubmitBtn.addEventListener(\"click\", (event) => {\r\n const isFormValid = $(form).valid();\r\n if (!isFormValid) {\r\n event.preventDefault();\r\n }\r\n });\r\n\r\n form.successCallback = () => {\r\n form.reset();\r\n form.style.display = \"none\";\r\n messageContainer.classList.add(\"success\");\r\n messageContainer.innerHTML = formSuccessMessage;\r\n };\r\n\r\n form.errorCallback = () => {\r\n form.reset();\r\n messageContainer.classList.add(\"error\");\r\n messageContainer.innerHTML = formErrorMessage;\r\n }\r\n}\r\n\r\nfunction initNewsletterPanel() {\r\n const newsletterPanels = document.querySelectorAll(\".js-newsletter-panel\");\r\n if (!newsletterPanels) {\r\n return;\r\n }\r\n const newsletterPanelsArray = Array.from(newsletterPanels);\r\n newsletterPanelsArray.forEach((newsletterPanel) => {\r\n initNewsletterForm(newsletterPanel);\r\n });\r\n}\r\n\r\nexport default initNewsletterPanel;\n\n\n// WEBPACK FOOTER //\n// ./uPortal/Core/Panels/NewsletterPanel/Js/index.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./uPortal/Core/Panels/NewsletterPanel/css/style.css\n// module id = 392\n// module chunks = 0","require('./../css/style.css');\r\n\r\nfunction toggleQuestion() {\r\n const fqaPanels = document.querySelectorAll(\".js-faq-panel-item\");\r\n const fqaPanelsArray = Array.from(fqaPanels);\r\n\r\n fqaPanelsArray.forEach((element) => {\r\n const panelHeader = element.querySelector(\".js-faq-header\");\r\n const panelText = element.querySelector(\".js-faq-rte\");\r\n const panelDesc = element.querySelector(\".js-faq-rte-holder\");\r\n const panelDescHeight = panelDesc.offsetHeight;\r\n\r\n panelHeader.addEventListener(\"click\", () => {\r\n element.classList.toggle(\"_show\");\r\n if (element.classList.contains(\"_show\")) {\r\n panelText.style.maxHeight = panelDescHeight + \"px\";\r\n } else {\r\n panelText.style.maxHeight = \"0\";\r\n }\r\n });\r\n });\r\n}\r\n\r\nexport default toggleQuestion\n\n\n// WEBPACK FOOTER //\n// ./uPortal/Core/Panels/FaqPanel/Js/index.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./uPortal/Core/Panels/FaqPanel/css/style.css\n// module id = 394\n// module chunks = 0","require('tiny-slider/dist/tiny-slider.css');\r\n\r\nimport { tns } from 'tiny-slider/src/tiny-slider.module';\r\n\r\nconst defaultDelay = 5000;\r\nconst controller = {\r\n init: function () {\r\n const galleries = document.querySelectorAll('.js-gallery');\r\n const galleriesArray = [...galleries]\r\n\r\n galleriesArray.forEach(el => {\r\n const delay = el.dataset['delay'] && el.dataset['delay'] > 0\r\n ? el.dataset['delay'] * 1000\r\n : defaultDelay;\r\n\r\n tns({\r\n container: el,\r\n items: 1,\r\n autoplay: true,\r\n controls: false,\r\n nav: false,\r\n autoplayButtonOutput: false,\r\n autoplayTimeout: delay\r\n });\r\n })\r\n }\r\n}\r\n\r\nexport default controller;\n\n\n// WEBPACK FOOTER //\n// ./Core/Panels/imageCarouselPanel/Js/index.js","import { } from \"jquery-validation\";\r\nimport { } from \"jquery-validation-unobtrusive\";\r\n\r\nfunction initContactForm(panelElement) {\r\n const form = panelElement.querySelector(\".js-contact-form\");\r\n const formSuccessMessage = form.dataset.success;\r\n const formErrorMessage = form.dataset.error;\r\n const messageContainer = panelElement.querySelector(\".js-contact-form__message\");\r\n\r\n form.successCallback = () => {\r\n form.reset();\r\n form.style.display = \"none\";\r\n messageContainer.classList.add(\"success\");\r\n messageContainer.innerHTML = formSuccessMessage;\r\n }\r\n\r\n form.errorCallback = () => {\r\n messageContainer.classList.add(\"error\");\r\n messageContainer.innerHTML = formErrorMessage;\r\n }\r\n\r\n function isValid() {\r\n const isVisibleInputsValid = $(form).valid();\r\n return isVisibleInputsValid;\r\n }\r\n\r\n const formSubmitBtn = form.querySelector(\".js-contact-from__submit-btn\");\r\n formSubmitBtn.addEventListener(\"click\", (event) => {\r\n const isFormValid = isValid();\r\n if (!isFormValid) {\r\n event.preventDefault();\r\n }\r\n });\r\n}\r\n\r\nfunction init() {\r\n const contactFormPanels = document.querySelectorAll(\".js-contact-form-panel\");\r\n if (!contactFormPanels) {\r\n return;\r\n }\r\n const contactFormPanelsArray = Array.from(contactFormPanels);\r\n contactFormPanelsArray.forEach((contactFormPanel) => {\r\n initContactForm(contactFormPanel);\r\n });\r\n}\r\n\r\nexport default init;\n\n\n// WEBPACK FOOTER //\n// ./Core/Panels/ContactFormPanel/Js/index.js","import initMobileMenu from './mobileMenu';\r\nimport initScrollToTop from './scrollToTop';\r\n\r\nexport default function () {\r\n initMobileMenu();\r\n initScrollToTop();\r\n}\n\n\n// WEBPACK FOOTER //\n// ./uPortal/Core/Shared/Navigation/Js/index.js","export default function () {\r\n const wrapper = document.querySelector(\".js-wrapper\");\r\n const burgerMenu = document.querySelector(\".js-mobile-burger\");\r\n\r\n burgerMenu.addEventListener(\"click\", () => {\r\n document.body.scrollTop = document.documentElement.scrollTop = 0;\r\n burgerMenu.classList.toggle(\"_open\");\r\n wrapper.classList.toggle(\"_open-mobile-menu\");\r\n });\r\n}\n\n\n// WEBPACK FOOTER //\n// ./uPortal/Core/Shared/Navigation/Js/mobileMenu.js","export default function () {\r\n var trigger = document.getElementById('top');\r\n\r\n window.addEventListener('scroll', function (e) {\r\n if (window.pageYOffset > 100 && !trigger.classList.contains('_visible')) {\r\n trigger.classList.add('_visible');\r\n }\r\n else if (window.pageYOffset <= 100 && trigger.classList.contains('_visible')) {\r\n trigger.classList.remove('_visible');\r\n }\r\n });\r\n\r\n trigger.addEventListener('click', function () {\r\n $('html, body').stop().animate({\r\n scrollTop: 0\r\n }, 500);\r\n });\r\n}\n\n\n// WEBPACK FOOTER //\n// ./uPortal/Core/Shared/Navigation/Js/scrollToTop.js","import { Ajax } from \"./../../../../Content/js/Extensions/ajax\";\r\nimport { Form } from \"./../../../../Content/js/Extensions/form\";\r\nimport { Utils } from \"./../../../../Content/js/Extensions/utils\";\r\n\r\nconst keyCodeSubmit = 13;\r\nconst keyCodeUp = 38;\r\nconst keyCodeDown = 40;\r\nconst keyCodeClear = 27;\r\nconst ignoredKeyCodes = [keyCodeSubmit, keyCodeUp, keyCodeDown, keyCodeClear];\r\n\r\nconst activeResultClass = \"_active-item\";\r\nconst body = document.body;\r\n\r\nfunction initAutoSuggestion() {\r\n const searchForms = document.querySelectorAll(\".js-autosuggestion\");\r\n if (!searchForms || searchForms.length === 0) {\r\n return;\r\n }\r\n\r\n const searchFormsArray = Array.from(searchForms);\r\n searchFormsArray.forEach((searchForm) => {\r\n initSearchForm(searchForm);\r\n });\r\n}\r\n\r\nfunction initSearchForm(searchForm) {\r\n const debounceSubmitForm = Utils.debounce(submitForm, 100);\r\n const input = searchForm.querySelector(\"input[type=text]\");\r\n const clear = searchForm.querySelector(\".js-autosuggestion__clear\");\r\n const searchLink = searchForm.querySelector(\".js-autosuggestion__searchlink\");\r\n const searchContauner = searchForm.querySelector(\".js-search__container\");\r\n const searchInputHolder = searchForm.querySelector(\".js-search__input-holder\");\r\n\r\n const suggestionList = searchForm.querySelector(\".js-autosuggestion__list\");\r\n const redirectPath = searchForm.querySelector('input.js-autosuggestion__searchurl').value + \"?q=\";\r\n\r\n let path;\r\n let results;\r\n let activeResultIndex = 0;\r\n let isPostSuccess = false;\r\n\r\n if (!input || !clear || !suggestionList) return;\r\n initListeners();\r\n\r\n function onSubmit(e) {\r\n e.preventDefault();\r\n }\r\n\r\n function onSuccess(data) {\r\n isPostSuccess = true;\r\n suggestionList.innerHTML = data;\r\n setTimeout(initKeyNav, 0);\r\n }\r\n\r\n function onError(data) {\r\n alert(`Something wrong with respond ${data.message}`);\r\n }\r\n\r\n function initListeners() {\r\n searchForm.addEventListener(\"submit\", onSubmit);\r\n input.addEventListener(\"click\", toggleSearch);\r\n input.addEventListener(\"keyup\", debouncedSubmit);\r\n input.addEventListener(\"keydown\", checkKeyCode);\r\n body.addEventListener(\"click\", toggleSearch);\r\n clear.addEventListener(\"click\", clearSearch);\r\n input.addEventListener(\"change\", updateSearchLink);\r\n }\r\n\r\n function updateSearchLink(e) {\r\n searchLink.href = redirectPath + e.target.value;\r\n }\r\n\r\n function checkKeyCode(e) {\r\n if (e.keyCode === keyCodeSubmit && isPostSuccess) window.location.href = path;\r\n }\r\n\r\n function submitForm() {\r\n if (!input.value || input.value.length < 2) return;\r\n const data = Form.serialize(searchForm);\r\n Ajax.post(\"/\", data, onSuccess, onError);\r\n }\r\n\r\n function toggleSearch() {\r\n if (input === document.activeElement) {\r\n\r\n addKeyListeners();\r\n if (results) {\r\n activeResultIndex = 0;\r\n setActiveState();\r\n }\r\n } else {\r\n removeKeyListeners();\r\n }\r\n }\r\n\r\n function addKeyListeners() {\r\n body.addEventListener(\"keyup\", keyListener);\r\n }\r\n\r\n function removeKeyListeners() {\r\n body.removeEventListener(\"keyup\", keyListener);\r\n }\r\n\r\n function keyListener(e) {\r\n e.preventDefault();\r\n const keyCode = e.keyCode;\r\n switch (keyCode) {\r\n case keyCodeClear:\r\n clearSearch();\r\n break;\r\n case keyCodeUp:\r\n changeActiveIndex(-1);\r\n setActiveState();\r\n break;\r\n case keyCodeDown:\r\n changeActiveIndex(1);\r\n setActiveState();\r\n break;\r\n }\r\n }\r\n\r\n function changeActiveIndex(koef) {\r\n activeResultIndex += koef;\r\n\r\n if (activeResultIndex < 0) {\r\n activeResultIndex = results.length - 1;\r\n } else if (activeResultIndex > results.length - 1) {\r\n activeResultIndex = 0;\r\n }\r\n }\r\n\r\n function getSearchResulUrl() {\r\n let activeResult = results[activeResultIndex];\r\n let url;\r\n\r\n if (activeResult.tagName === \"A\") {\r\n url = activeResult.getAttribute(\"href\");\r\n } else {\r\n url = `${redirectPath}${activeResult.value}`;\r\n }\r\n\r\n return url;\r\n }\r\n\r\n function clearSearch() {\r\n input.value = \"\";\r\n suggestionList.innerText = \"\";\r\n }\r\n\r\n function debouncedSubmit(e) {\r\n e.preventDefault();\r\n if (ignoredKeyCodes.indexOf(e.keyCode) === -1) {\r\n debounceSubmitForm();\r\n }\r\n }\r\n\r\n function initKeyNav() {\r\n let resultsNodes = suggestionList.querySelectorAll(\"a\");\r\n\r\n results = [...resultsNodes];\r\n results.unshift(input);\r\n activeResultIndex = 0;\r\n\r\n setActiveState();\r\n }\r\n\r\n function setActiveState() {\r\n results.forEach((item) => item.classList.remove(activeResultClass));\r\n results[activeResultIndex].classList.add(activeResultClass);\r\n path = getSearchResulUrl();\r\n }\r\n\r\n function initToggleSearchLink() {\r\n const screenWidth = screen.width;\r\n const phoneMaxWidth = 768;\r\n\r\n if (screenWidth > phoneMaxWidth) {\r\n searchLink.addEventListener(\"click\", () => {\r\n searchContauner.classList.toggle(\"_show\");\r\n input.focus();\r\n });\r\n }\r\n }\r\n\r\n initToggleSearchLink();\r\n}\r\n\r\nexport default initAutoSuggestion;\n\n\n// WEBPACK FOOTER //\n// ./uPortal/Core/Shared/AutoSuggestions/Js/index.js","const debounce = function (fn, delay) {\r\n let timer = null;\r\n return function () { // do not use arrow function here\r\n let ctx = this, args = arguments;\r\n clearTimeout(timer);\r\n timer = setTimeout(() => fn.apply(ctx, args), delay);\r\n };\r\n};\r\n\r\n\r\nexport const Utils = {\r\n debounce: debounce\r\n};\n\n\n// WEBPACK FOOTER //\n// ./uPortal/Content/js/Extensions/utils.js","let trackingItems;\r\nconst offsetCoef = 0.66;\r\n\r\nconst scrollspy = function (trackingItemsSelector){\r\n const items = document.querySelectorAll(trackingItemsSelector);\r\n \r\n if(items.length === 0){\r\n return;\r\n }else{\r\n trackingItems = Array.from(items);\r\n }\r\n\r\n window.addEventListener(\"scroll\", checkItemsInView);\r\n checkItemsInView();\r\n}\r\n\r\nfunction checkItemsInView() {\r\n let allItemsShowed = true;\r\n\r\n trackingItems.forEach(item => {\r\n if (!item.classList.contains(\"_inView\")) {\r\n if (checkIsElementInView(item)) {\r\n item.classList.add(\"_inView\");\r\n }\r\n else {\r\n allItemsShowed = false;\r\n }\r\n }\r\n });\r\n\r\n if (allItemsShowed) {\r\n window.removeEventListener(\"scroll\", checkItemsInView);\r\n }\r\n}\r\n\r\nfunction checkIsElementInView(element) {\r\n const elRect = element.getBoundingClientRect();\r\n return elRect.top <= window.innerHeight * offsetCoef;\r\n}\r\n\r\nconst controller = {\r\n init: scrollspy\r\n}\r\n\r\nexport default controller;\n\n\n// WEBPACK FOOTER //\n// ./uPortal/Content/js/Plugins/Scrollspy/index.js","require('./../css/style.css');\r\nimport alertify from './../../../../uPortal/Content/js/Plugins/AlertifyJS';\r\nimport decodeEmails from \"./../../../../uPortal/Content/js/Plugins/AntiSpider\";\r\n\r\nfunction initCustomFooter() {\r\n decodeEmails();\r\n addLastTweetLinksAttr();\r\n\r\n const forms = document.querySelectorAll(\".js-newsletter\");\r\n const formsArray = Array.from(forms);\r\n\r\n formsArray.forEach((form) => {\r\n const formSubmitBtn = form.querySelector(\".js-newsletter__submit\");\r\n const formSuccessMessage = form.dataset.success;\r\n const formErrorMessage = form.dataset.error;\r\n\r\n formSubmitBtn.addEventListener(\"click\", (event) => {\r\n const isFormValid = $(form).valid();\r\n if (!isFormValid) {\r\n event.preventDefault();\r\n }\r\n });\r\n\r\n form.successCallback = () => {\r\n form.reset();\r\n alertify.set('notifier', 'position', 'top-center');\r\n alertify.success(formSuccessMessage);\r\n };\r\n\r\n form.errorCallback = () => {\r\n form.reset();\r\n alertify.set('notifier', 'position', 'top-center');\r\n alertify.error(formErrorMessage);\r\n }\r\n });\r\n\r\n function addLastTweetLinksAttr() {\r\n const links = document.querySelectorAll(\".js-last-tweet a\");\r\n for (var i = 0; i < links.length; i++) {\r\n links[i].setAttribute('target', 'blank');\r\n }\r\n }\r\n}\r\n\r\nexport default initCustomFooter;\n\n\n// WEBPACK FOOTER //\n// ./Core/Shared/CustomFooter/Js/index.js","require('./alertify.min.css');\r\nconst alertify = require('./alertify.min.js');\r\n\r\nexport default alertify;\n\n\n// WEBPACK FOOTER //\n// ./uPortal/Content/js/Plugins/AlertifyJS/index.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./uPortal/Content/js/Plugins/AlertifyJS/alertify.min.css\n// module id = 405\n// module chunks = 0","/*! alertifyjs - v1.11.0 - Mohammad Younes (http://alertifyjs.com) */\r\n!function(a){\"use strict\";function b(a,b){a.className+=\" \"+b}function c(a,b){for(var c=a.className.split(\" \"),d=b.split(\" \"),e=0;e-1&&c.splice(f,1)}a.className=c.join(\" \")}function d(){return\"rtl\"===a.getComputedStyle(document.body).direction}function e(){return document.documentElement&&document.documentElement.scrollTop||document.body.scrollTop}function f(){return document.documentElement&&document.documentElement.scrollLeft||document.body.scrollLeft}function g(a){for(;a.lastChild;)a.removeChild(a.lastChild)}function h(a){if(null===a)return a;var b;if(Array.isArray(a)){b=[];for(var c=0;c0){for(var c=[],d=0;d=0?(c(document.body,Ca.noOverflow),w(!1)):a>0&&document.body.className.indexOf(Ca.noOverflow)<0&&(w(!0),b(document.body,Ca.noOverflow))}function w(d){v.defaults.preventBodyShift&&document.documentElement.scrollHeight>document.documentElement.clientHeight&&(d?(Ea=xa,Da=a.getComputedStyle(document.body).top,b(document.body,Ca.fixed),document.body.style.top=-xa+\"px\"):(xa=Ea,document.body.style.top=Da,c(document.body,Ca.fixed),t()))}function x(a,d,e){\"string\"==typeof e&&c(a.elements.root,Ca.prefix+e),b(a.elements.root,Ca.prefix+d),za=a.elements.root.offsetWidth}function y(a){a.get(\"modal\")?(c(a.elements.root,Ca.modeless),a.isOpen()&&(pa(a),N(a),u())):(b(a.elements.root,Ca.modeless),a.isOpen()&&(oa(a),N(a),u()))}function z(a){a.get(\"basic\")?b(a.elements.root,Ca.basic):c(a.elements.root,Ca.basic)}function A(a){a.get(\"frameless\")?b(a.elements.root,Ca.frameless):c(a.elements.root,Ca.frameless)}function B(a,b){for(var c=p.indexOf(b),d=c+1;d-1?(S(b,function(a){return a.key===c}),!1):void 0}function V(a){var b=p[p.length-1],c=a.keyCode;if(c===n.LEFT||c===n.RIGHT){for(var d=b.__internal.buttons,e=0;en.F1-1&&ya.indexOf(c)>-1)return a.preventDefault(),a.stopPropagation(),S(b,function(a){return a.key===c}),!1}function W(a,b){if(b)b.focus();else{var c=a.__internal.focus,d=c.element;switch(typeof c.element){case\"number\":a.__internal.buttons.length>c.element&&(d=!0===a.get(\"basic\")?a.elements.reset[0]:a.__internal.buttons[c.element].element);break;case\"string\":d=a.elements.body.querySelector(c.element);break;case\"function\":d=c.element.call(a)}void 0!==d&&null!==d||0!==a.__internal.buttons.length||(d=a.elements.reset[0]),d&&d.focus&&(d.focus(),c.select&&d.select&&d.select())}}function X(a,b){if(!b)for(var c=p.length-1;c>-1;c-=1)if(p[c].isModal()){b=p[c];break}if(b&&b.isModal()){var d,e=a.srcElement||a.target,f=e===b.elements.reset[1]||0===b.__internal.buttons.length&&e===document.body;f&&(b.get(\"maximizable\")?d=b.elements.commands.maximize:b.get(\"closable\")&&(d=b.elements.commands.close)),void 0===d&&(\"number\"==typeof b.__internal.focus.element?e===b.elements.reset[0]?d=b.elements.buttons.auxiliary.firstChild||b.elements.buttons.primary.firstChild:f&&(d=b.elements.reset[0]):e===b.elements.reset[0]&&(d=b.elements.buttons.primary.lastChild||b.elements.buttons.auxiliary.lastChild)),W(b,d)}}function Y(a,b){clearTimeout(b.__internal.timerIn),W(b),t(),Ga=!1,l(\"onfocus\",b),r(b.elements.dialog,s.type,b.__internal.transitionInHandler),c(b.elements.root,Ca.animationIn)}function Z(a,b){clearTimeout(b.__internal.timerOut),r(b.elements.dialog,s.type,b.__internal.transitionOutHandler),da(b),ja(b),b.isMaximized()&&!b.get(\"startMaximized\")&&J(b),v.defaults.maintainFocus&&b.__internal.activeElement&&(b.__internal.activeElement.focus(),b.__internal.activeElement=null),\"function\"==typeof b.__internal.destroy&&b.__internal.destroy.apply(b)}function $(a,b){var c=a[Ka]-Ia,d=a[La]-Ja;Na&&(d-=document.body.scrollTop),b.style.left=c+\"px\",b.style.top=d+\"px\"}function _(a,b){var c=a[Ka]-Ia,d=a[La]-Ja;Na&&(d-=document.body.scrollTop),b.style.left=Math.min(Ma.maxLeft,Math.max(Ma.minLeft,c))+\"px\",b.style.top=Na?Math.min(Ma.maxTop,Math.max(Ma.minTop,d))+\"px\":Math.max(Ma.minTop,d)+\"px\"}function aa(a,c){if(null===Pa&&!c.isMaximized()&&c.get(\"movable\")){var d,e=0,f=0;if(\"touchstart\"===a.type?(a.preventDefault(),d=a.targetTouches[0],Ka=\"clientX\",La=\"clientY\"):0===a.button&&(d=a),d){var g=c.elements.dialog;if(b(g,Ca.capture),g.style.left&&(e=parseInt(g.style.left,10)),g.style.top&&(f=parseInt(g.style.top,10)),Ia=d[Ka]-e,Ja=d[La]-f,c.isModal()?Ja+=c.elements.modal.scrollTop:c.isPinned()&&(Ja-=document.body.scrollTop),c.get(\"moveBounded\")){var h=g,i=-e,j=-f;do{i+=h.offsetLeft,j+=h.offsetTop}while(h=h.offsetParent);Ma={maxLeft:i,minLeft:-i,maxTop:document.documentElement.clientHeight-g.clientHeight-j,minTop:-j},Oa=_}else Ma=null,Oa=$;return l(\"onmove\",c),Na=!c.isModal()&&c.isPinned(),Ha=c,Oa(d,g),b(document.body,Ca.noSelection),!1}}}function ba(a){if(Ha){var b;\"touchmove\"===a.type?(a.preventDefault(),b=a.targetTouches[0]):0===a.button&&(b=a),b&&Oa(b,Ha.elements.dialog)}}function ca(){if(Ha){var a=Ha;Ha=Ma=null,c(document.body,Ca.noSelection),c(a.elements.dialog,Ca.capture),l(\"onmoved\",a)}}function da(a){Ha=null;var b=a.elements.dialog;b.style.left=b.style.top=\"\"}function ea(a){a.get(\"movable\")?(b(a.elements.root,Ca.movable),a.isOpen()&&qa(a)):(da(a),c(a.elements.root,Ca.movable),a.isOpen()&&ra(a))}function fa(a,b,c){var e=b,f=0,g=0;do{f+=e.offsetLeft,g+=e.offsetTop}while(e=e.offsetParent);var h,i;!0===c?(h=a.pageX,i=a.pageY):(h=a.clientX,i=a.clientY);var j=d();if(j&&(h=document.body.offsetWidth-h,isNaN(Qa)||(f=document.body.offsetWidth-f-b.offsetWidth)),b.style.height=i-g+Ta+\"px\",b.style.width=h-f+Ta+\"px\",!isNaN(Qa)){var k=.5*Math.abs(b.offsetWidth-Ra);j&&(k*=-1),b.offsetWidth>Ra?b.style.left=Qa+k+\"px\":b.offsetWidth>=Sa&&(b.style.left=Qa-k+\"px\")}}function ga(a,c){if(!c.isMaximized()){var d;if(\"touchstart\"===a.type?(a.preventDefault(),d=a.targetTouches[0]):0===a.button&&(d=a),d){l(\"onresize\",c),Pa=c,Ta=c.elements.resizeHandle.offsetHeight/2;var e=c.elements.dialog;return b(e,Ca.capture),Qa=parseInt(e.style.left,10),e.style.height=e.offsetHeight+\"px\",e.style.minHeight=c.elements.header.offsetHeight+c.elements.footer.offsetHeight+\"px\",e.style.width=(Ra=e.offsetWidth)+\"px\",\"none\"!==e.style.maxWidth&&(e.style.minWidth=(Sa=e.offsetWidth)+\"px\"),e.style.maxWidth=\"none\",b(document.body,Ca.noSelection),!1}}}function ha(a){if(Pa){var b;\"touchmove\"===a.type?(a.preventDefault(),b=a.targetTouches[0]):0===a.button&&(b=a),b&&fa(b,Pa.elements.dialog,!Pa.get(\"modal\")&&!Pa.get(\"pinned\"))}}function ia(){if(Pa){var a=Pa;Pa=null,c(document.body,Ca.noSelection),c(a.elements.dialog,Ca.capture),Fa=!0,l(\"onresized\",a)}}function ja(a){Pa=null;var b=a.elements.dialog;\"none\"===b.style.maxWidth&&(b.style.maxWidth=b.style.minWidth=b.style.width=b.style.height=b.style.minHeight=b.style.left=\"\",Qa=Number.Nan,Ra=Sa=Ta=0)}function ka(a){a.get(\"resizable\")?(b(a.elements.root,Ca.resizable),a.isOpen()&&sa(a)):(ja(a),c(a.elements.root,Ca.resizable),a.isOpen()&&ta(a))}function la(){for(var a=0;a-1&&a.navigator.userAgent.indexOf(\"Chrome\")<0,Ba={dimmer:'
    ',modal:'
    ',dialog:'
    ',reset:'',commands:'
    ',header:'
    ',body:'
    ',content:'
    ',footer:'
    ',buttons:{primary:'
    ',auxiliary:'
    '},button:'',resizeHandle:'
    '},Ca={animationIn:\"ajs-in\",animationOut:\"ajs-out\",base:\"alertify\",basic:\"ajs-basic\",capture:\"ajs-capture\",closable:\"ajs-closable\",fixed:\"ajs-fixed\",frameless:\"ajs-frameless\",hidden:\"ajs-hidden\",maximize:\"ajs-maximize\",maximized:\"ajs-maximized\",maximizable:\"ajs-maximizable\",modeless:\"ajs-modeless\",movable:\"ajs-movable\",noSelection:\"ajs-no-selection\",noOverflow:\"ajs-no-overflow\",noPadding:\"ajs-no-padding\",pin:\"ajs-pin\",pinnable:\"ajs-pinnable\",prefix:\"ajs-\",resizable:\"ajs-resizable\",restore:\"ajs-restore\",shake:\"ajs-shake\",unpinned:\"ajs-unpinned\"},Da=\"\",Ea=0,Fa=!1,Ga=!1,Ha=null,Ia=0,Ja=0,Ka=\"pageX\",La=\"pageY\",Ma=null,Na=!1,Oa=null,Pa=null,Qa=Number.Nan,Ra=0,Sa=0,Ta=0;return{__init:m,isOpen:function(){return this.__internal.isOpen},isModal:function(){return this.elements.root.className.indexOf(Ca.modeless)<0},isMaximized:function(){return this.elements.root.className.indexOf(Ca.maximized)>-1},isPinned:function(){return this.elements.root.className.indexOf(Ca.unpinned)<0},maximize:function(){return this.isMaximized()||I(this),this},restore:function(){return this.isMaximized()&&J(this),this},pin:function(){return this.isPinned()||G(this),this},unpin:function(){return this.isPinned()&&H(this),this},bringToFront:function(){return B(null,this),this},moveTo:function(a,b){if(!isNaN(a)&&!isNaN(b)){l(\"onmove\",this);var c=this.elements.dialog,e=c,f=0,g=0;c.style.left&&(f-=parseInt(c.style.left,10)),c.style.top&&(g-=parseInt(c.style.top,10));do{f+=e.offsetLeft,g+=e.offsetTop}while(e=e.offsetParent);var h=a-f,i=b-g;d()&&(h*=-1),c.style.left=h+\"px\",c.style.top=i+\"px\",l(\"onmoved\",this)}return this},resizeTo:function(a,b){var c=parseFloat(a),d=parseFloat(b),e=/(\\d*\\.\\d+|\\d+)%/;if(!isNaN(c)&&!isNaN(d)&&!0===this.get(\"resizable\")){l(\"onresize\",this),(\"\"+a).match(e)&&(c=c/100*document.documentElement.clientWidth),(\"\"+b).match(e)&&(d=d/100*document.documentElement.clientHeight);var f=this.elements.dialog;\"none\"!==f.style.maxWidth&&(f.style.minWidth=(Sa=f.offsetWidth)+\"px\"),f.style.maxWidth=\"none\",f.style.minHeight=this.elements.header.offsetHeight+this.elements.footer.offsetHeight+\"px\",f.style.width=c+\"px\",f.style.height=d+\"px\",l(\"onresized\",this)}return this},setting:function(a,b){var c=this,d=D(this,this.__internal.options,function(a,b,d){C(c,a,b,d)},a,b);if(\"get\"===d.op)return d.found?d.value:void 0!==this.settings?D(this,this.settings,this.settingUpdated||function(){},a,b).value:void 0;if(\"set\"===d.op){if(d.items.length>0)for(var e=this.settingUpdated||function(){},f=0;f0){var b=this;this.__internal.timer=setTimeout(function(){b.dismiss()},1e3*this.__internal.delay)}return this},setContent:function(c){if(\"string\"==typeof c?(g(this.element),this.element.innerHTML=c):c instanceof a.HTMLElement&&this.element.firstChild!==c&&(g(this.element),this.element.appendChild(c)),this.__internal.closeButton){var d=document.createElement(\"span\");b(d,n.close),d.setAttribute(\"data-close\",!0),this.element.appendChild(d)}return this},dismissOthers:function(){return u.dismissAll(this),this}})}var k,l,m=[],n={base:\"alertify-notifier\",message:\"ajs-message\",top:\"ajs-top\",right:\"ajs-right\",bottom:\"ajs-bottom\",left:\"ajs-left\",center:\"ajs-center\",visible:\"ajs-visible\",hidden:\"ajs-hidden\",close:\"ajs-close\"};return{setting:function(a,b){if(d(this),void 0===b)return this.__internal[a];switch(a){case\"position\":this.__internal.position=b,h(this);break;case\"delay\":this.__internal.delay=b}return this},set:function(a,b){return this.setting(a,b),this},get:function(a){return this.setting(a)},create:function(a,b){d(this);var c=document.createElement(\"div\");return c.className=n.message+(\"string\"==typeof a&&\"\"!==a?\" ajs-\"+a:\"\"),i(c,b)},dismissAll:function(a){for(var b=m.slice(0),c=0;c\" + login + \"@\" + domain + \"\";\r\n}\r\n\r\nexport default decodeEmails;\n\n\n// WEBPACK FOOTER //\n// ./uPortal/Content/js/Plugins/AntiSpider/index.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./Core/Shared/CustomFooter/css/style.css\n// module id = 409\n// module chunks = 0","function initCustomHeader() {\r\n const header = document.querySelector(\".js-header\");\r\n let lastScrollTop = 0;\r\n\r\n window.addEventListener(\"scroll\", minimizeHeader);\r\n\r\n function minimizeHeader() {\r\n if (window.pageYOffset > 0) {\r\n header.classList.add(\"_mini\");\r\n } else {\r\n header.classList.remove(\"_mini\");\r\n }\r\n }\r\n\r\n minimizeHeader();\r\n}\r\n\r\nexport default initCustomHeader;\n\n\n// WEBPACK FOOTER //\n// ./Core/Shared/CustomHeader/Js/index.js","require('./../css/style.css');\r\n\r\nfunction initSearchResult() {\r\n const searchResult = document.querySelector(\".js-search-result\");\r\n if (!searchResult) {\r\n return;\r\n }\r\n\r\n const form = searchResult.querySelector(\".js-search-result__form\");\r\n if (!form) {\r\n return;\r\n }\r\n const state = {\r\n get skip() {\r\n return parseInt(form.querySelector(\".js-search-result__skip\").value);\r\n },\r\n set skip(val) {\r\n form.querySelector(\".js-search-result__skip\").value = val;\r\n },\r\n get take() {\r\n return parseInt(form.querySelector(\".js-search-result__take\").value);\r\n },\r\n get total() {\r\n return parseInt(form.querySelector(\".js-search-result__total\").value);\r\n },\r\n set count(val) {\r\n searchResult.querySelector(\".js-search-result__count\").innerHTML = val;\r\n }\r\n }\r\n const resultList = searchResult.querySelector(\".js-search-result__list\");\r\n\r\n function updateSkipValue() {\r\n state.skip = state.skip + state.take;\r\n\r\n checkMoreBtn();\r\n };\r\n\r\n form.submitCallback = () => {\r\n updateSkipValue();\r\n };\r\n\r\n form.successCallback = html => {\r\n resultList.insertAdjacentHTML(\"beforeend\", html);\r\n };\r\n\r\n form.errorCallback = data => {\r\n alert(`Something wrong with respond ${data.message}`);\r\n };\r\n\r\n function checkMoreBtn() {\r\n if (state.skip >= state.total) {\r\n state.count = state.total;\r\n form.querySelector(\".js-search-result__form-submit\").remove();\r\n } else {\r\n state.count = state.skip;\r\n }\r\n }\r\n\r\n checkMoreBtn();\r\n}\r\n\r\nexport default initSearchResult;\n\n\n// WEBPACK FOOTER //\n// ./uPortal/Core/Pages/SearchPage/Js/index.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./uPortal/Core/Pages/SearchPage/css/style.css\n// module id = 412\n// module chunks = 0","require('./../Css/style.css');\r\n\r\nfunction initCookieDisclaimer() {\r\n var cookiePopup = $(\".js-cookie-popup\");\r\n var cookiePopupBtn = $(\".js-cookie-popup-btn\");\r\n\r\n cookiePopupBtn.on(\"click\", function (e) {\r\n e.preventDefault();\r\n localStorage.setItem(\"isCookieDisclaimed\", \"true\");\r\n cookiePopup.addClass(\"hide\");\r\n });\r\n\r\n if (localStorage.getItem(\"isCookieDisclaimed\") !== \"true\") {\r\n cookiePopup.removeClass(\"hide\");\r\n }\r\n}\r\n\r\nexport default initCookieDisclaimer;\n\n\n// WEBPACK FOOTER //\n// ./uPortal/Core/Shared/CookieDisclaimer/Js/index.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./uPortal/Core/Shared/CookieDisclaimer/Css/style.css\n// module id = 414\n// module chunks = 0","require('./../Css/style.css');\r\n\r\nimport Player from '@vimeo/player';\r\n\r\nfunction initTopImage() {\r\n initVimeoVideo();\r\n}\r\n\r\nfunction initVimeoVideo() {\r\n\r\n var vimeoOpenBtn = document.querySelector('.js-vimeo-open-btn');\r\n if (!vimeoOpenBtn) {\r\n return;\r\n }\r\n \r\n var vimeoCloseButtons = document.querySelectorAll('.js-vimeo-close-btn, .video-lightbox__overlay');\r\n \r\n const options = {\r\n id: vimeoOpenBtn.getAttribute('data-video'),\r\n width: 640,\r\n loop: true\r\n };\r\n \r\n const player = new Player('vimeoPlayer', options);\r\n\r\n vimeoOpenBtn.addEventListener(\"click\", () => {\r\n player.play();\r\n });\r\n\r\n if (vimeoCloseButtons) {\r\n for (var i = 0; i < vimeoCloseButtons.length; i++){\r\n vimeoCloseButtons[i].addEventListener(\"click\", () => {\r\n player.unload();\r\n });\r\n }\r\n }\r\n}\r\n\r\nexport default initTopImage;\n\n\n// WEBPACK FOOTER //\n// ./Core/Shared/TopImage/Js/index.js","/*! @vimeo/player v2.6.1 | (c) 2018 Vimeo | MIT License | https://github.com/vimeo/player.js */\n/**\n * @module lib/functions\n */\n\n/**\n * Check to see this is a node environment.\n * @type {Boolean}\n */\n/* global global */\nvar isNode = typeof global !== 'undefined' && {}.toString.call(global) === '[object global]';\n\n/**\n * Get the name of the method for a given getter or setter.\n *\n * @param {string} prop The name of the property.\n * @param {string} type Either “get” or “set”.\n * @return {string}\n */\nfunction getMethodName(prop, type) {\n if (prop.indexOf(type.toLowerCase()) === 0) {\n return prop;\n }\n\n return '' + type.toLowerCase() + prop.substr(0, 1).toUpperCase() + prop.substr(1);\n}\n\n/**\n * Check to see if the object is a DOM Element.\n *\n * @param {*} element The object to check.\n * @return {boolean}\n */\nfunction isDomElement(element) {\n return element instanceof window.HTMLElement;\n}\n\n/**\n * Check to see whether the value is a number.\n *\n * @see http://dl.dropboxusercontent.com/u/35146/js/tests/isNumber.html\n * @param {*} value The value to check.\n * @param {boolean} integer Check if the value is an integer.\n * @return {boolean}\n */\nfunction isInteger(value) {\n // eslint-disable-next-line eqeqeq\n return !isNaN(parseFloat(value)) && isFinite(value) && Math.floor(value) == value;\n}\n\n/**\n * Check to see if the URL is a Vimeo url.\n *\n * @param {string} url The url string.\n * @return {boolean}\n */\nfunction isVimeoUrl(url) {\n return (/^(https?:)?\\/\\/((player|www).)?vimeo.com(?=$|\\/)/.test(url)\n );\n}\n\n/**\n * Get the Vimeo URL from an element.\n * The element must have either a data-vimeo-id or data-vimeo-url attribute.\n *\n * @param {object} oEmbedParameters The oEmbed parameters.\n * @return {string}\n */\nfunction getVimeoUrl() {\n var oEmbedParameters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var id = oEmbedParameters.id;\n var url = oEmbedParameters.url;\n var idOrUrl = id || url;\n\n if (!idOrUrl) {\n throw new Error('An id or url must be passed, either in an options object or as a data-vimeo-id or data-vimeo-url attribute.');\n }\n\n if (isInteger(idOrUrl)) {\n return 'https://vimeo.com/' + idOrUrl;\n }\n\n if (isVimeoUrl(idOrUrl)) {\n return idOrUrl.replace('http:', 'https:');\n }\n\n if (id) {\n throw new TypeError('\\u201C' + id + '\\u201D is not a valid video id.');\n }\n\n throw new TypeError('\\u201C' + idOrUrl + '\\u201D is not a vimeo.com url.');\n}\n\nvar arrayIndexOfSupport = typeof Array.prototype.indexOf !== 'undefined';\nvar postMessageSupport = typeof window !== 'undefined' && typeof window.postMessage !== 'undefined';\n\nif (!isNode && (!arrayIndexOfSupport || !postMessageSupport)) {\n throw new Error('Sorry, the Vimeo Player API is not available in this browser.');\n}\n\nvar commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\n\n\n\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar index = createCommonjsModule(function (module, exports) {\n(function (exports) {\n 'use strict';\n //shared pointer\n\n var i;\n //shortcuts\n var defineProperty = Object.defineProperty,\n is = function is(a, b) {\n return a === b || a !== a && b !== b;\n };\n\n //Polyfill global objects\n if (typeof WeakMap == 'undefined') {\n exports.WeakMap = createCollection({\n // WeakMap#delete(key:void*):boolean\n 'delete': sharedDelete,\n // WeakMap#clear():\n clear: sharedClear,\n // WeakMap#get(key:void*):void*\n get: sharedGet,\n // WeakMap#has(key:void*):boolean\n has: mapHas,\n // WeakMap#set(key:void*, value:void*):void\n set: sharedSet\n }, true);\n }\n\n if (typeof Map == 'undefined' || typeof new Map().values !== 'function' || !new Map().values().next) {\n exports.Map = createCollection({\n // WeakMap#delete(key:void*):boolean\n 'delete': sharedDelete,\n //:was Map#get(key:void*[, d3fault:void*]):void*\n // Map#has(key:void*):boolean\n has: mapHas,\n // Map#get(key:void*):boolean\n get: sharedGet,\n // Map#set(key:void*, value:void*):void\n set: sharedSet,\n // Map#keys(void):Iterator\n keys: sharedKeys,\n // Map#values(void):Iterator\n values: sharedValues,\n // Map#entries(void):Iterator\n entries: mapEntries,\n // Map#forEach(callback:Function, context:void*):void ==> callback.call(context, key, value, mapObject) === not in specs`\n forEach: sharedForEach,\n // Map#clear():\n clear: sharedClear\n });\n }\n\n if (typeof Set == 'undefined' || typeof new Set().values !== 'function' || !new Set().values().next) {\n exports.Set = createCollection({\n // Set#has(value:void*):boolean\n has: setHas,\n // Set#add(value:void*):boolean\n add: sharedAdd,\n // Set#delete(key:void*):boolean\n 'delete': sharedDelete,\n // Set#clear():\n clear: sharedClear,\n // Set#keys(void):Iterator\n keys: sharedValues, // specs actually say \"the same function object as the initial value of the values property\"\n // Set#values(void):Iterator\n values: sharedValues,\n // Set#entries(void):Iterator\n entries: setEntries,\n // Set#forEach(callback:Function, context:void*):void ==> callback.call(context, value, index) === not in specs\n forEach: sharedForEach\n });\n }\n\n if (typeof WeakSet == 'undefined') {\n exports.WeakSet = createCollection({\n // WeakSet#delete(key:void*):boolean\n 'delete': sharedDelete,\n // WeakSet#add(value:void*):boolean\n add: sharedAdd,\n // WeakSet#clear():\n clear: sharedClear,\n // WeakSet#has(value:void*):boolean\n has: setHas\n }, true);\n }\n\n /**\n * ES6 collection constructor\n * @return {Function} a collection class\n */\n function createCollection(proto, objectOnly) {\n function Collection(a) {\n if (!this || this.constructor !== Collection) return new Collection(a);\n this._keys = [];\n this._values = [];\n this._itp = []; // iteration pointers\n this.objectOnly = objectOnly;\n\n //parse initial iterable argument passed\n if (a) init.call(this, a);\n }\n\n //define size for non object-only collections\n if (!objectOnly) {\n defineProperty(proto, 'size', {\n get: sharedSize\n });\n }\n\n //set prototype\n proto.constructor = Collection;\n Collection.prototype = proto;\n\n return Collection;\n }\n\n /** parse initial iterable argument passed */\n function init(a) {\n var i;\n //init Set argument, like `[1,2,3,{}]`\n if (this.add) a.forEach(this.add, this);\n //init Map argument like `[[1,2], [{}, 4]]`\n else a.forEach(function (a) {\n this.set(a[0], a[1]);\n }, this);\n }\n\n /** delete */\n function sharedDelete(key) {\n if (this.has(key)) {\n this._keys.splice(i, 1);\n this._values.splice(i, 1);\n // update iteration pointers\n this._itp.forEach(function (p) {\n if (i < p[0]) p[0]--;\n });\n }\n // Aurora here does it while Canary doesn't\n return -1 < i;\n }\n\n function sharedGet(key) {\n return this.has(key) ? this._values[i] : undefined;\n }\n\n function has(list, key) {\n if (this.objectOnly && key !== Object(key)) throw new TypeError(\"Invalid value used as weak collection key\");\n //NaN or 0 passed\n if (key != key || key === 0) for (i = list.length; i-- && !is(list[i], key);) {} else i = list.indexOf(key);\n return -1 < i;\n }\n\n function setHas(value) {\n return has.call(this, this._values, value);\n }\n\n function mapHas(value) {\n return has.call(this, this._keys, value);\n }\n\n /** @chainable */\n function sharedSet(key, value) {\n this.has(key) ? this._values[i] = value : this._values[this._keys.push(key) - 1] = value;\n return this;\n }\n\n /** @chainable */\n function sharedAdd(value) {\n if (!this.has(value)) this._values.push(value);\n return this;\n }\n\n function sharedClear() {\n (this._keys || 0).length = this._values.length = 0;\n }\n\n /** keys, values, and iterate related methods */\n function sharedKeys() {\n return sharedIterator(this._itp, this._keys);\n }\n\n function sharedValues() {\n return sharedIterator(this._itp, this._values);\n }\n\n function mapEntries() {\n return sharedIterator(this._itp, this._keys, this._values);\n }\n\n function setEntries() {\n return sharedIterator(this._itp, this._values, this._values);\n }\n\n function sharedIterator(itp, array, array2) {\n var p = [0],\n done = false;\n itp.push(p);\n return {\n next: function next() {\n var v,\n k = p[0];\n if (!done && k < array.length) {\n v = array2 ? [array[k], array2[k]] : array[k];\n p[0]++;\n } else {\n done = true;\n itp.splice(itp.indexOf(p), 1);\n }\n return { done: done, value: v };\n }\n };\n }\n\n function sharedSize() {\n return this._values.length;\n }\n\n function sharedForEach(callback, context) {\n var it = this.entries();\n for (;;) {\n var r = it.next();\n if (r.done) break;\n callback.call(context, r.value[1], r.value[0], this);\n }\n }\n})('object' != 'undefined' && typeof commonjsGlobal != 'undefined' ? commonjsGlobal : window);\n});\n\nvar npo_src = createCommonjsModule(function (module) {\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/*! Native Promise Only\n v0.8.1 (c) Kyle Simpson\n MIT License: http://getify.mit-license.org\n*/\n\n(function UMD(name, context, definition) {\n\t// special form of UMD for polyfilling across evironments\n\tcontext[name] = context[name] || definition();\n\tif ('object' != \"undefined\" && module.exports) {\n\t\tmodule.exports = context[name];\n\t} else if (typeof undefined == \"function\" && undefined.amd) {\n\t\tundefined(function $AMD$() {\n\t\t\treturn context[name];\n\t\t});\n\t}\n})(\"Promise\", typeof commonjsGlobal != \"undefined\" ? commonjsGlobal : commonjsGlobal, function DEF() {\n\t/*jshint validthis:true */\n\t\"use strict\";\n\n\tvar builtInProp,\n\t cycle,\n\t scheduling_queue,\n\t ToString = Object.prototype.toString,\n\t timer = typeof setImmediate != \"undefined\" ? function timer(fn) {\n\t\treturn setImmediate(fn);\n\t} : setTimeout;\n\n\t// dammit, IE8.\n\ttry {\n\t\tObject.defineProperty({}, \"x\", {});\n\t\tbuiltInProp = function builtInProp(obj, name, val, config) {\n\t\t\treturn Object.defineProperty(obj, name, {\n\t\t\t\tvalue: val,\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: config !== false\n\t\t\t});\n\t\t};\n\t} catch (err) {\n\t\tbuiltInProp = function builtInProp(obj, name, val) {\n\t\t\tobj[name] = val;\n\t\t\treturn obj;\n\t\t};\n\t}\n\n\t// Note: using a queue instead of array for efficiency\n\tscheduling_queue = function Queue() {\n\t\tvar first, last, item;\n\n\t\tfunction Item(fn, self) {\n\t\t\tthis.fn = fn;\n\t\t\tthis.self = self;\n\t\t\tthis.next = void 0;\n\t\t}\n\n\t\treturn {\n\t\t\tadd: function add(fn, self) {\n\t\t\t\titem = new Item(fn, self);\n\t\t\t\tif (last) {\n\t\t\t\t\tlast.next = item;\n\t\t\t\t} else {\n\t\t\t\t\tfirst = item;\n\t\t\t\t}\n\t\t\t\tlast = item;\n\t\t\t\titem = void 0;\n\t\t\t},\n\t\t\tdrain: function drain() {\n\t\t\t\tvar f = first;\n\t\t\t\tfirst = last = cycle = void 0;\n\n\t\t\t\twhile (f) {\n\t\t\t\t\tf.fn.call(f.self);\n\t\t\t\t\tf = f.next;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}();\n\n\tfunction schedule(fn, self) {\n\t\tscheduling_queue.add(fn, self);\n\t\tif (!cycle) {\n\t\t\tcycle = timer(scheduling_queue.drain);\n\t\t}\n\t}\n\n\t// promise duck typing\n\tfunction isThenable(o) {\n\t\tvar _then,\n\t\t o_type = typeof o === \"undefined\" ? \"undefined\" : _typeof(o);\n\n\t\tif (o != null && (o_type == \"object\" || o_type == \"function\")) {\n\t\t\t_then = o.then;\n\t\t}\n\t\treturn typeof _then == \"function\" ? _then : false;\n\t}\n\n\tfunction notify() {\n\t\tfor (var i = 0; i < this.chain.length; i++) {\n\t\t\tnotifyIsolated(this, this.state === 1 ? this.chain[i].success : this.chain[i].failure, this.chain[i]);\n\t\t}\n\t\tthis.chain.length = 0;\n\t}\n\n\t// NOTE: This is a separate function to isolate\n\t// the `try..catch` so that other code can be\n\t// optimized better\n\tfunction notifyIsolated(self, cb, chain) {\n\t\tvar ret, _then;\n\t\ttry {\n\t\t\tif (cb === false) {\n\t\t\t\tchain.reject(self.msg);\n\t\t\t} else {\n\t\t\t\tif (cb === true) {\n\t\t\t\t\tret = self.msg;\n\t\t\t\t} else {\n\t\t\t\t\tret = cb.call(void 0, self.msg);\n\t\t\t\t}\n\n\t\t\t\tif (ret === chain.promise) {\n\t\t\t\t\tchain.reject(TypeError(\"Promise-chain cycle\"));\n\t\t\t\t} else if (_then = isThenable(ret)) {\n\t\t\t\t\t_then.call(ret, chain.resolve, chain.reject);\n\t\t\t\t} else {\n\t\t\t\t\tchain.resolve(ret);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tchain.reject(err);\n\t\t}\n\t}\n\n\tfunction resolve(msg) {\n\t\tvar _then,\n\t\t self = this;\n\n\t\t// already triggered?\n\t\tif (self.triggered) {\n\t\t\treturn;\n\t\t}\n\n\t\tself.triggered = true;\n\n\t\t// unwrap\n\t\tif (self.def) {\n\t\t\tself = self.def;\n\t\t}\n\n\t\ttry {\n\t\t\tif (_then = isThenable(msg)) {\n\t\t\t\tschedule(function () {\n\t\t\t\t\tvar def_wrapper = new MakeDefWrapper(self);\n\t\t\t\t\ttry {\n\t\t\t\t\t\t_then.call(msg, function $resolve$() {\n\t\t\t\t\t\t\tresolve.apply(def_wrapper, arguments);\n\t\t\t\t\t\t}, function $reject$() {\n\t\t\t\t\t\t\treject.apply(def_wrapper, arguments);\n\t\t\t\t\t\t});\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\treject.call(def_wrapper, err);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tself.msg = msg;\n\t\t\t\tself.state = 1;\n\t\t\t\tif (self.chain.length > 0) {\n\t\t\t\t\tschedule(notify, self);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (err) {\n\t\t\treject.call(new MakeDefWrapper(self), err);\n\t\t}\n\t}\n\n\tfunction reject(msg) {\n\t\tvar self = this;\n\n\t\t// already triggered?\n\t\tif (self.triggered) {\n\t\t\treturn;\n\t\t}\n\n\t\tself.triggered = true;\n\n\t\t// unwrap\n\t\tif (self.def) {\n\t\t\tself = self.def;\n\t\t}\n\n\t\tself.msg = msg;\n\t\tself.state = 2;\n\t\tif (self.chain.length > 0) {\n\t\t\tschedule(notify, self);\n\t\t}\n\t}\n\n\tfunction iteratePromises(Constructor, arr, resolver, rejecter) {\n\t\tfor (var idx = 0; idx < arr.length; idx++) {\n\t\t\t(function IIFE(idx) {\n\t\t\t\tConstructor.resolve(arr[idx]).then(function $resolver$(msg) {\n\t\t\t\t\tresolver(idx, msg);\n\t\t\t\t}, rejecter);\n\t\t\t})(idx);\n\t\t}\n\t}\n\n\tfunction MakeDefWrapper(self) {\n\t\tthis.def = self;\n\t\tthis.triggered = false;\n\t}\n\n\tfunction MakeDef(self) {\n\t\tthis.promise = self;\n\t\tthis.state = 0;\n\t\tthis.triggered = false;\n\t\tthis.chain = [];\n\t\tthis.msg = void 0;\n\t}\n\n\tfunction Promise(executor) {\n\t\tif (typeof executor != \"function\") {\n\t\t\tthrow TypeError(\"Not a function\");\n\t\t}\n\n\t\tif (this.__NPO__ !== 0) {\n\t\t\tthrow TypeError(\"Not a promise\");\n\t\t}\n\n\t\t// instance shadowing the inherited \"brand\"\n\t\t// to signal an already \"initialized\" promise\n\t\tthis.__NPO__ = 1;\n\n\t\tvar def = new MakeDef(this);\n\n\t\tthis[\"then\"] = function then(success, failure) {\n\t\t\tvar o = {\n\t\t\t\tsuccess: typeof success == \"function\" ? success : true,\n\t\t\t\tfailure: typeof failure == \"function\" ? failure : false\n\t\t\t};\n\t\t\t// Note: `then(..)` itself can be borrowed to be used against\n\t\t\t// a different promise constructor for making the chained promise,\n\t\t\t// by substituting a different `this` binding.\n\t\t\to.promise = new this.constructor(function extractChain(resolve, reject) {\n\t\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t\t}\n\n\t\t\t\to.resolve = resolve;\n\t\t\t\to.reject = reject;\n\t\t\t});\n\t\t\tdef.chain.push(o);\n\n\t\t\tif (def.state !== 0) {\n\t\t\t\tschedule(notify, def);\n\t\t\t}\n\n\t\t\treturn o.promise;\n\t\t};\n\t\tthis[\"catch\"] = function $catch$(failure) {\n\t\t\treturn this.then(void 0, failure);\n\t\t};\n\n\t\ttry {\n\t\t\texecutor.call(void 0, function publicResolve(msg) {\n\t\t\t\tresolve.call(def, msg);\n\t\t\t}, function publicReject(msg) {\n\t\t\t\treject.call(def, msg);\n\t\t\t});\n\t\t} catch (err) {\n\t\t\treject.call(def, err);\n\t\t}\n\t}\n\n\tvar PromisePrototype = builtInProp({}, \"constructor\", Promise,\n\t/*configurable=*/false);\n\n\t// Note: Android 4 cannot use `Object.defineProperty(..)` here\n\tPromise.prototype = PromisePrototype;\n\n\t// built-in \"brand\" to signal an \"uninitialized\" promise\n\tbuiltInProp(PromisePrototype, \"__NPO__\", 0,\n\t/*configurable=*/false);\n\n\tbuiltInProp(Promise, \"resolve\", function Promise$resolve(msg) {\n\t\tvar Constructor = this;\n\n\t\t// spec mandated checks\n\t\t// note: best \"isPromise\" check that's practical for now\n\t\tif (msg && (typeof msg === \"undefined\" ? \"undefined\" : _typeof(msg)) == \"object\" && msg.__NPO__ === 1) {\n\t\t\treturn msg;\n\t\t}\n\n\t\treturn new Constructor(function executor(resolve, reject) {\n\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t}\n\n\t\t\tresolve(msg);\n\t\t});\n\t});\n\n\tbuiltInProp(Promise, \"reject\", function Promise$reject(msg) {\n\t\treturn new this(function executor(resolve, reject) {\n\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t}\n\n\t\t\treject(msg);\n\t\t});\n\t});\n\n\tbuiltInProp(Promise, \"all\", function Promise$all(arr) {\n\t\tvar Constructor = this;\n\n\t\t// spec mandated checks\n\t\tif (ToString.call(arr) != \"[object Array]\") {\n\t\t\treturn Constructor.reject(TypeError(\"Not an array\"));\n\t\t}\n\t\tif (arr.length === 0) {\n\t\t\treturn Constructor.resolve([]);\n\t\t}\n\n\t\treturn new Constructor(function executor(resolve, reject) {\n\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t}\n\n\t\t\tvar len = arr.length,\n\t\t\t msgs = Array(len),\n\t\t\t count = 0;\n\n\t\t\titeratePromises(Constructor, arr, function resolver(idx, msg) {\n\t\t\t\tmsgs[idx] = msg;\n\t\t\t\tif (++count === len) {\n\t\t\t\t\tresolve(msgs);\n\t\t\t\t}\n\t\t\t}, reject);\n\t\t});\n\t});\n\n\tbuiltInProp(Promise, \"race\", function Promise$race(arr) {\n\t\tvar Constructor = this;\n\n\t\t// spec mandated checks\n\t\tif (ToString.call(arr) != \"[object Array]\") {\n\t\t\treturn Constructor.reject(TypeError(\"Not an array\"));\n\t\t}\n\n\t\treturn new Constructor(function executor(resolve, reject) {\n\t\t\tif (typeof resolve != \"function\" || typeof reject != \"function\") {\n\t\t\t\tthrow TypeError(\"Not a function\");\n\t\t\t}\n\n\t\t\titeratePromises(Constructor, arr, function resolver(idx, msg) {\n\t\t\t\tresolve(msg);\n\t\t\t}, reject);\n\t\t});\n\t});\n\n\treturn Promise;\n});\n});\n\n/**\n * @module lib/callbacks\n */\n\nvar callbackMap = new WeakMap();\n\n/**\n * Store a callback for a method or event for a player.\n *\n * @param {Player} player The player object.\n * @param {string} name The method or event name.\n * @param {(function(this:Player, *): void|{resolve: function, reject: function})} callback\n * The callback to call or an object with resolve and reject functions for a promise.\n * @return {void}\n */\nfunction storeCallback(player, name, callback) {\n var playerCallbacks = callbackMap.get(player.element) || {};\n\n if (!(name in playerCallbacks)) {\n playerCallbacks[name] = [];\n }\n\n playerCallbacks[name].push(callback);\n callbackMap.set(player.element, playerCallbacks);\n}\n\n/**\n * Get the callbacks for a player and event or method.\n *\n * @param {Player} player The player object.\n * @param {string} name The method or event name\n * @return {function[]}\n */\nfunction getCallbacks(player, name) {\n var playerCallbacks = callbackMap.get(player.element) || {};\n return playerCallbacks[name] || [];\n}\n\n/**\n * Remove a stored callback for a method or event for a player.\n *\n * @param {Player} player The player object.\n * @param {string} name The method or event name\n * @param {function} [callback] The specific callback to remove.\n * @return {boolean} Was this the last callback?\n */\nfunction removeCallback(player, name, callback) {\n var playerCallbacks = callbackMap.get(player.element) || {};\n\n if (!playerCallbacks[name]) {\n return true;\n }\n\n // If no callback is passed, remove all callbacks for the event\n if (!callback) {\n playerCallbacks[name] = [];\n callbackMap.set(player.element, playerCallbacks);\n\n return true;\n }\n\n var index = playerCallbacks[name].indexOf(callback);\n\n if (index !== -1) {\n playerCallbacks[name].splice(index, 1);\n }\n\n callbackMap.set(player.element, playerCallbacks);\n return playerCallbacks[name] && playerCallbacks[name].length === 0;\n}\n\n/**\n * Return the first stored callback for a player and event or method.\n *\n * @param {Player} player The player object.\n * @param {string} name The method or event name.\n * @return {function} The callback, or false if there were none\n */\nfunction shiftCallbacks(player, name) {\n var playerCallbacks = getCallbacks(player, name);\n\n if (playerCallbacks.length < 1) {\n return false;\n }\n\n var callback = playerCallbacks.shift();\n removeCallback(player, name, callback);\n return callback;\n}\n\n/**\n * Move callbacks associated with an element to another element.\n *\n * @param {HTMLElement} oldElement The old element.\n * @param {HTMLElement} newElement The new element.\n * @return {void}\n */\nfunction swapCallbacks(oldElement, newElement) {\n var playerCallbacks = callbackMap.get(oldElement);\n\n callbackMap.set(newElement, playerCallbacks);\n callbackMap.delete(oldElement);\n}\n\n/**\n * @module lib/embed\n */\n\nvar oEmbedParameters = ['autopause', 'autoplay', 'background', 'byline', 'color', 'height', 'id', 'loop', 'maxheight', 'maxwidth', 'muted', 'playsinline', 'portrait', 'responsive', 'speed', 'title', 'transparent', 'url', 'width'];\n\n/**\n * Get the 'data-vimeo'-prefixed attributes from an element as an object.\n *\n * @param {HTMLElement} element The element.\n * @param {Object} [defaults={}] The default values to use.\n * @return {Object}\n */\nfunction getOEmbedParameters(element) {\n var defaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return oEmbedParameters.reduce(function (params, param) {\n var value = element.getAttribute('data-vimeo-' + param);\n\n if (value || value === '') {\n params[param] = value === '' ? 1 : value;\n }\n\n return params;\n }, defaults);\n}\n\n/**\n * Make an oEmbed call for the specified URL.\n *\n * @param {string} videoUrl The vimeo.com url for the video.\n * @param {Object} [params] Parameters to pass to oEmbed.\n * @return {Promise}\n */\nfunction getOEmbedData(videoUrl) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return new Promise(function (resolve, reject) {\n if (!isVimeoUrl(videoUrl)) {\n throw new TypeError('\\u201C' + videoUrl + '\\u201D is not a vimeo.com url.');\n }\n\n var url = 'https://vimeo.com/api/oembed.json?url=' + encodeURIComponent(videoUrl);\n\n for (var param in params) {\n if (params.hasOwnProperty(param)) {\n url += '&' + param + '=' + encodeURIComponent(params[param]);\n }\n }\n\n var xhr = 'XDomainRequest' in window ? new XDomainRequest() : new XMLHttpRequest();\n xhr.open('GET', url, true);\n\n xhr.onload = function () {\n if (xhr.status === 404) {\n reject(new Error('\\u201C' + videoUrl + '\\u201D was not found.'));\n return;\n }\n\n if (xhr.status === 403) {\n reject(new Error('\\u201C' + videoUrl + '\\u201D is not embeddable.'));\n return;\n }\n\n try {\n var json = JSON.parse(xhr.responseText);\n resolve(json);\n } catch (error) {\n reject(error);\n }\n };\n\n xhr.onerror = function () {\n var status = xhr.status ? ' (' + xhr.status + ')' : '';\n reject(new Error('There was an error fetching the embed code from Vimeo' + status + '.'));\n };\n\n xhr.send();\n });\n}\n\n/**\n * Create an embed from oEmbed data inside an element.\n *\n * @param {object} data The oEmbed data.\n * @param {HTMLElement} element The element to put the iframe in.\n * @return {HTMLIFrameElement} The iframe embed.\n */\nfunction createEmbed(_ref, element) {\n var html = _ref.html;\n\n if (!element) {\n throw new TypeError('An element must be provided');\n }\n\n if (element.getAttribute('data-vimeo-initialized') !== null) {\n return element.querySelector('iframe');\n }\n\n var div = document.createElement('div');\n div.innerHTML = html;\n\n element.appendChild(div.firstChild);\n element.setAttribute('data-vimeo-initialized', 'true');\n\n return element.querySelector('iframe');\n}\n\n/**\n * Initialize all embeds within a specific element\n *\n * @param {HTMLElement} [parent=document] The parent element.\n * @return {void}\n */\nfunction initializeEmbeds() {\n var parent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n\n var elements = [].slice.call(parent.querySelectorAll('[data-vimeo-id], [data-vimeo-url]'));\n\n var handleError = function handleError(error) {\n if ('console' in window && console.error) {\n console.error('There was an error creating an embed: ' + error);\n }\n };\n\n elements.forEach(function (element) {\n try {\n // Skip any that have data-vimeo-defer\n if (element.getAttribute('data-vimeo-defer') !== null) {\n return;\n }\n\n var params = getOEmbedParameters(element);\n var url = getVimeoUrl(params);\n\n getOEmbedData(url, params).then(function (data) {\n return createEmbed(data, element);\n }).catch(handleError);\n } catch (error) {\n handleError(error);\n }\n });\n}\n\n/**\n * Resize embeds when messaged by the player.\n *\n * @param {HTMLElement} [parent=document] The parent element.\n * @return {void}\n */\nfunction resizeEmbeds() {\n var parent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n\n var onMessage = function onMessage(event) {\n if (!isVimeoUrl(event.origin)) {\n return;\n }\n\n // 'spacechange' is fired only on embeds with cards\n if (!event.data || event.data.event !== 'spacechange') {\n return;\n }\n\n var iframes = parent.querySelectorAll('iframe');\n\n for (var i = 0; i < iframes.length; i++) {\n if (iframes[i].contentWindow !== event.source) {\n continue;\n }\n\n // Change padding-bottom of the enclosing div to accommodate\n // card carousel without distorting aspect ratio\n var space = iframes[i].parentElement;\n space.style.paddingBottom = event.data.data[0].bottom + 'px';\n\n break;\n }\n };\n\n if (window.addEventListener) {\n window.addEventListener('message', onMessage, false);\n } else if (window.attachEvent) {\n window.attachEvent('onmessage', onMessage);\n }\n}\n\n/**\n * @module lib/postmessage\n */\n\n/**\n * Parse a message received from postMessage.\n *\n * @param {*} data The data received from postMessage.\n * @return {object}\n */\nfunction parseMessageData(data) {\n if (typeof data === 'string') {\n data = JSON.parse(data);\n }\n\n return data;\n}\n\n/**\n * Post a message to the specified target.\n *\n * @param {Player} player The player object to use.\n * @param {string} method The API method to call.\n * @param {object} params The parameters to send to the player.\n * @return {void}\n */\nfunction postMessage(player, method, params) {\n if (!player.element.contentWindow || !player.element.contentWindow.postMessage) {\n return;\n }\n\n var message = {\n method: method\n };\n\n if (params !== undefined) {\n message.value = params;\n }\n\n // IE 8 and 9 do not support passing messages, so stringify them\n var ieVersion = parseFloat(navigator.userAgent.toLowerCase().replace(/^.*msie (\\d+).*$/, '$1'));\n if (ieVersion >= 8 && ieVersion < 10) {\n message = JSON.stringify(message);\n }\n\n player.element.contentWindow.postMessage(message, player.origin);\n}\n\n/**\n * Parse the data received from a message event.\n *\n * @param {Player} player The player that received the message.\n * @param {(Object|string)} data The message data. Strings will be parsed into JSON.\n * @return {void}\n */\nfunction processData(player, data) {\n data = parseMessageData(data);\n var callbacks = [];\n var param = void 0;\n\n if (data.event) {\n if (data.event === 'error') {\n var promises = getCallbacks(player, data.data.method);\n\n promises.forEach(function (promise) {\n var error = new Error(data.data.message);\n error.name = data.data.name;\n\n promise.reject(error);\n removeCallback(player, data.data.method, promise);\n });\n }\n\n callbacks = getCallbacks(player, 'event:' + data.event);\n param = data.data;\n } else if (data.method) {\n var callback = shiftCallbacks(player, data.method);\n\n if (callback) {\n callbacks.push(callback);\n param = data.value;\n }\n }\n\n callbacks.forEach(function (callback) {\n try {\n if (typeof callback === 'function') {\n callback.call(player, param);\n return;\n }\n\n callback.resolve(param);\n } catch (e) {\n // empty\n }\n });\n}\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar playerMap = new WeakMap();\nvar readyMap = new WeakMap();\n\nvar Player = function () {\n /**\n * Create a Player.\n *\n * @param {(HTMLIFrameElement|HTMLElement|string|jQuery)} element A reference to the Vimeo\n * player iframe, and id, or a jQuery object.\n * @param {object} [options] oEmbed parameters to use when creating an embed in the element.\n * @return {Player}\n */\n function Player(element) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Player);\n\n /* global jQuery */\n if (window.jQuery && element instanceof jQuery) {\n if (element.length > 1 && window.console && console.warn) {\n console.warn('A jQuery object with multiple elements was passed, using the first element.');\n }\n\n element = element[0];\n }\n\n // Find an element by ID\n if (typeof document !== 'undefined' && typeof element === 'string') {\n element = document.getElementById(element);\n }\n\n // Not an element!\n if (!isDomElement(element)) {\n throw new TypeError('You must pass either a valid element or a valid id.');\n }\n\n // Already initialized an embed in this div, so grab the iframe\n if (element.nodeName !== 'IFRAME') {\n var iframe = element.querySelector('iframe');\n\n if (iframe) {\n element = iframe;\n }\n }\n\n // iframe url is not a Vimeo url\n if (element.nodeName === 'IFRAME' && !isVimeoUrl(element.getAttribute('src') || '')) {\n throw new Error('The player element passed isn’t a Vimeo embed.');\n }\n\n // If there is already a player object in the map, return that\n if (playerMap.has(element)) {\n return playerMap.get(element);\n }\n\n this.element = element;\n this.origin = '*';\n\n var readyPromise = new npo_src(function (resolve, reject) {\n var onMessage = function onMessage(event) {\n if (!isVimeoUrl(event.origin) || _this.element.contentWindow !== event.source) {\n return;\n }\n\n if (_this.origin === '*') {\n _this.origin = event.origin;\n }\n\n var data = parseMessageData(event.data);\n var isReadyEvent = 'event' in data && data.event === 'ready';\n var isPingResponse = 'method' in data && data.method === 'ping';\n\n if (isReadyEvent || isPingResponse) {\n _this.element.setAttribute('data-ready', 'true');\n resolve();\n return;\n }\n\n processData(_this, data);\n };\n\n if (window.addEventListener) {\n window.addEventListener('message', onMessage, false);\n } else if (window.attachEvent) {\n window.attachEvent('onmessage', onMessage);\n }\n\n if (_this.element.nodeName !== 'IFRAME') {\n var params = getOEmbedParameters(element, options);\n var url = getVimeoUrl(params);\n\n getOEmbedData(url, params).then(function (data) {\n var iframe = createEmbed(data, element);\n // Overwrite element with the new iframe,\n // but store reference to the original element\n _this.element = iframe;\n _this._originalElement = element;\n\n swapCallbacks(element, iframe);\n playerMap.set(_this.element, _this);\n\n return data;\n }).catch(function (error) {\n return reject(error);\n });\n }\n });\n\n // Store a copy of this Player in the map\n readyMap.set(this, readyPromise);\n playerMap.set(this.element, this);\n\n // Send a ping to the iframe so the ready promise will be resolved if\n // the player is already ready.\n if (this.element.nodeName === 'IFRAME') {\n postMessage(this, 'ping');\n }\n\n return this;\n }\n\n /**\n * Get a promise for a method.\n *\n * @param {string} name The API method to call.\n * @param {Object} [args={}] Arguments to send via postMessage.\n * @return {Promise}\n */\n\n\n _createClass(Player, [{\n key: 'callMethod',\n value: function callMethod(name) {\n var _this2 = this;\n\n var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return new npo_src(function (resolve, reject) {\n // We are storing the resolve/reject handlers to call later, so we\n // can’t return here.\n // eslint-disable-next-line promise/always-return\n return _this2.ready().then(function () {\n storeCallback(_this2, name, {\n resolve: resolve,\n reject: reject\n });\n\n postMessage(_this2, name, args);\n }).catch(function (error) {\n reject(error);\n });\n });\n }\n\n /**\n * Get a promise for the value of a player property.\n *\n * @param {string} name The property name\n * @return {Promise}\n */\n\n }, {\n key: 'get',\n value: function get(name) {\n var _this3 = this;\n\n return new npo_src(function (resolve, reject) {\n name = getMethodName(name, 'get');\n\n // We are storing the resolve/reject handlers to call later, so we\n // can’t return here.\n // eslint-disable-next-line promise/always-return\n return _this3.ready().then(function () {\n storeCallback(_this3, name, {\n resolve: resolve,\n reject: reject\n });\n\n postMessage(_this3, name);\n });\n });\n }\n\n /**\n * Get a promise for setting the value of a player property.\n *\n * @param {string} name The API method to call.\n * @param {mixed} value The value to set.\n * @return {Promise}\n */\n\n }, {\n key: 'set',\n value: function set(name, value) {\n var _this4 = this;\n\n return npo_src.resolve(value).then(function (val) {\n name = getMethodName(name, 'set');\n\n if (val === undefined || val === null) {\n throw new TypeError('There must be a value to set.');\n }\n\n return _this4.ready().then(function () {\n return new npo_src(function (resolve, reject) {\n storeCallback(_this4, name, {\n resolve: resolve,\n reject: reject\n });\n\n postMessage(_this4, name, val);\n });\n });\n });\n }\n\n /**\n * Add an event listener for the specified event. Will call the\n * callback with a single parameter, `data`, that contains the data for\n * that event.\n *\n * @param {string} eventName The name of the event.\n * @param {function(*)} callback The function to call when the event fires.\n * @return {void}\n */\n\n }, {\n key: 'on',\n value: function on(eventName, callback) {\n if (!eventName) {\n throw new TypeError('You must pass an event name.');\n }\n\n if (!callback) {\n throw new TypeError('You must pass a callback function.');\n }\n\n if (typeof callback !== 'function') {\n throw new TypeError('The callback must be a function.');\n }\n\n var callbacks = getCallbacks(this, 'event:' + eventName);\n if (callbacks.length === 0) {\n this.callMethod('addEventListener', eventName).catch(function () {\n // Ignore the error. There will be an error event fired that\n // will trigger the error callback if they are listening.\n });\n }\n\n storeCallback(this, 'event:' + eventName, callback);\n }\n\n /**\n * Remove an event listener for the specified event. Will remove all\n * listeners for that event if a `callback` isn’t passed, or only that\n * specific callback if it is passed.\n *\n * @param {string} eventName The name of the event.\n * @param {function} [callback] The specific callback to remove.\n * @return {void}\n */\n\n }, {\n key: 'off',\n value: function off(eventName, callback) {\n if (!eventName) {\n throw new TypeError('You must pass an event name.');\n }\n\n if (callback && typeof callback !== 'function') {\n throw new TypeError('The callback must be a function.');\n }\n\n var lastCallback = removeCallback(this, 'event:' + eventName, callback);\n\n // If there are no callbacks left, remove the listener\n if (lastCallback) {\n this.callMethod('removeEventListener', eventName).catch(function (e) {\n // Ignore the error. There will be an error event fired that\n // will trigger the error callback if they are listening.\n });\n }\n }\n\n /**\n * A promise to load a new video.\n *\n * @promise LoadVideoPromise\n * @fulfill {number} The video with this id successfully loaded.\n * @reject {TypeError} The id was not a number.\n */\n /**\n * Load a new video into this embed. The promise will be resolved if\n * the video is successfully loaded, or it will be rejected if it could\n * not be loaded.\n *\n * @param {number} id The id of the video.\n * @return {LoadVideoPromise}\n */\n\n }, {\n key: 'loadVideo',\n value: function loadVideo(id) {\n return this.callMethod('loadVideo', id);\n }\n\n /**\n * A promise to perform an action when the Player is ready.\n *\n * @todo document errors\n * @promise LoadVideoPromise\n * @fulfill {void}\n */\n /**\n * Trigger a function when the player iframe has initialized. You do not\n * need to wait for `ready` to trigger to begin adding event listeners\n * or calling other methods.\n *\n * @return {ReadyPromise}\n */\n\n }, {\n key: 'ready',\n value: function ready() {\n var readyPromise = readyMap.get(this) || new npo_src(function (resolve, reject) {\n reject('Unknown player. Probably unloaded.');\n });\n return npo_src.resolve(readyPromise);\n }\n\n /**\n * A promise to add a cue point to the player.\n *\n * @promise AddCuePointPromise\n * @fulfill {string} The id of the cue point to use for removeCuePoint.\n * @reject {RangeError} the time was less than 0 or greater than the\n * video’s duration.\n * @reject {UnsupportedError} Cue points are not supported with the current\n * player or browser.\n */\n /**\n * Add a cue point to the player.\n *\n * @param {number} time The time for the cue point.\n * @param {object} [data] Arbitrary data to be returned with the cue point.\n * @return {AddCuePointPromise}\n */\n\n }, {\n key: 'addCuePoint',\n value: function addCuePoint(time) {\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return this.callMethod('addCuePoint', { time: time, data: data });\n }\n\n /**\n * A promise to remove a cue point from the player.\n *\n * @promise AddCuePointPromise\n * @fulfill {string} The id of the cue point that was removed.\n * @reject {InvalidCuePoint} The cue point with the specified id was not\n * found.\n * @reject {UnsupportedError} Cue points are not supported with the current\n * player or browser.\n */\n /**\n * Remove a cue point from the video.\n *\n * @param {string} id The id of the cue point to remove.\n * @return {RemoveCuePointPromise}\n */\n\n }, {\n key: 'removeCuePoint',\n value: function removeCuePoint(id) {\n return this.callMethod('removeCuePoint', id);\n }\n\n /**\n * A representation of a text track on a video.\n *\n * @typedef {Object} VimeoTextTrack\n * @property {string} language The ISO language code.\n * @property {string} kind The kind of track it is (captions or subtitles).\n * @property {string} label The human‐readable label for the track.\n */\n /**\n * A promise to enable a text track.\n *\n * @promise EnableTextTrackPromise\n * @fulfill {VimeoTextTrack} The text track that was enabled.\n * @reject {InvalidTrackLanguageError} No track was available with the\n * specified language.\n * @reject {InvalidTrackError} No track was available with the specified\n * language and kind.\n */\n /**\n * Enable the text track with the specified language, and optionally the\n * specified kind (captions or subtitles).\n *\n * When set via the API, the track language will not change the viewer’s\n * stored preference.\n *\n * @param {string} language The two‐letter language code.\n * @param {string} [kind] The kind of track to enable (captions or subtitles).\n * @return {EnableTextTrackPromise}\n */\n\n }, {\n key: 'enableTextTrack',\n value: function enableTextTrack(language, kind) {\n if (!language) {\n throw new TypeError('You must pass a language.');\n }\n\n return this.callMethod('enableTextTrack', {\n language: language,\n kind: kind\n });\n }\n\n /**\n * A promise to disable the active text track.\n *\n * @promise DisableTextTrackPromise\n * @fulfill {void} The track was disabled.\n */\n /**\n * Disable the currently-active text track.\n *\n * @return {DisableTextTrackPromise}\n */\n\n }, {\n key: 'disableTextTrack',\n value: function disableTextTrack() {\n return this.callMethod('disableTextTrack');\n }\n\n /**\n * A promise to pause the video.\n *\n * @promise PausePromise\n * @fulfill {void} The video was paused.\n */\n /**\n * Pause the video if it’s playing.\n *\n * @return {PausePromise}\n */\n\n }, {\n key: 'pause',\n value: function pause() {\n return this.callMethod('pause');\n }\n\n /**\n * A promise to play the video.\n *\n * @promise PlayPromise\n * @fulfill {void} The video was played.\n */\n /**\n * Play the video if it’s paused. **Note:** on iOS and some other\n * mobile devices, you cannot programmatically trigger play. Once the\n * viewer has tapped on the play button in the player, however, you\n * will be able to use this function.\n *\n * @return {PlayPromise}\n */\n\n }, {\n key: 'play',\n value: function play() {\n return this.callMethod('play');\n }\n\n /**\n * A promise to unload the video.\n *\n * @promise UnloadPromise\n * @fulfill {void} The video was unloaded.\n */\n /**\n * Return the player to its initial state.\n *\n * @return {UnloadPromise}\n */\n\n }, {\n key: 'unload',\n value: function unload() {\n return this.callMethod('unload');\n }\n\n /**\n * Cleanup the player and remove it from the DOM\n *\n * It won't be usable and a new one should be constructed\n * in order to do any operations.\n *\n * @return {Promise}\n */\n\n }, {\n key: 'destroy',\n value: function destroy() {\n var _this5 = this;\n\n return new npo_src(function (resolve) {\n readyMap.delete(_this5);\n playerMap.delete(_this5.element);\n if (_this5._originalElement) {\n playerMap.delete(_this5._originalElement);\n _this5._originalElement.removeAttribute('data-vimeo-initialized');\n }\n if (_this5.element && _this5.element.nodeName === 'IFRAME') {\n _this5.element.remove();\n }\n resolve();\n });\n }\n\n /**\n * A promise to get the autopause behavior of the video.\n *\n * @promise GetAutopausePromise\n * @fulfill {boolean} Whether autopause is turned on or off.\n * @reject {UnsupportedError} Autopause is not supported with the current\n * player or browser.\n */\n /**\n * Get the autopause behavior for this player.\n *\n * @return {GetAutopausePromise}\n */\n\n }, {\n key: 'getAutopause',\n value: function getAutopause() {\n return this.get('autopause');\n }\n\n /**\n * A promise to set the autopause behavior of the video.\n *\n * @promise SetAutopausePromise\n * @fulfill {boolean} Whether autopause is turned on or off.\n * @reject {UnsupportedError} Autopause is not supported with the current\n * player or browser.\n */\n /**\n * Enable or disable the autopause behavior of this player.\n *\n * By default, when another video is played in the same browser, this\n * player will automatically pause. Unless you have a specific reason\n * for doing so, we recommend that you leave autopause set to the\n * default (`true`).\n *\n * @param {boolean} autopause\n * @return {SetAutopausePromise}\n */\n\n }, {\n key: 'setAutopause',\n value: function setAutopause(autopause) {\n return this.set('autopause', autopause);\n }\n\n /**\n * A promise to get the color of the player.\n *\n * @promise GetColorPromise\n * @fulfill {string} The hex color of the player.\n */\n /**\n * Get the color for this player.\n *\n * @return {GetColorPromise}\n */\n\n }, {\n key: 'getColor',\n value: function getColor() {\n return this.get('color');\n }\n\n /**\n * A promise to set the color of the player.\n *\n * @promise SetColorPromise\n * @fulfill {string} The color was successfully set.\n * @reject {TypeError} The string was not a valid hex or rgb color.\n * @reject {ContrastError} The color was set, but the contrast is\n * outside of the acceptable range.\n * @reject {EmbedSettingsError} The owner of the player has chosen to\n * use a specific color.\n */\n /**\n * Set the color of this player to a hex or rgb string. Setting the\n * color may fail if the owner of the video has set their embed\n * preferences to force a specific color.\n *\n * @param {string} color The hex or rgb color string to set.\n * @return {SetColorPromise}\n */\n\n }, {\n key: 'setColor',\n value: function setColor(color) {\n return this.set('color', color);\n }\n\n /**\n * A representation of a cue point.\n *\n * @typedef {Object} VimeoCuePoint\n * @property {number} time The time of the cue point.\n * @property {object} data The data passed when adding the cue point.\n * @property {string} id The unique id for use with removeCuePoint.\n */\n /**\n * A promise to get the cue points of a video.\n *\n * @promise GetCuePointsPromise\n * @fulfill {VimeoCuePoint[]} The cue points added to the video.\n * @reject {UnsupportedError} Cue points are not supported with the current\n * player or browser.\n */\n /**\n * Get an array of the cue points added to the video.\n *\n * @return {GetCuePointsPromise}\n */\n\n }, {\n key: 'getCuePoints',\n value: function getCuePoints() {\n return this.get('cuePoints');\n }\n\n /**\n * A promise to get the current time of the video.\n *\n * @promise GetCurrentTimePromise\n * @fulfill {number} The current time in seconds.\n */\n /**\n * Get the current playback position in seconds.\n *\n * @return {GetCurrentTimePromise}\n */\n\n }, {\n key: 'getCurrentTime',\n value: function getCurrentTime() {\n return this.get('currentTime');\n }\n\n /**\n * A promise to set the current time of the video.\n *\n * @promise SetCurrentTimePromise\n * @fulfill {number} The actual current time that was set.\n * @reject {RangeError} the time was less than 0 or greater than the\n * video’s duration.\n */\n /**\n * Set the current playback position in seconds. If the player was\n * paused, it will remain paused. Likewise, if the player was playing,\n * it will resume playing once the video has buffered.\n *\n * You can provide an accurate time and the player will attempt to seek\n * to as close to that time as possible. The exact time will be the\n * fulfilled value of the promise.\n *\n * @param {number} currentTime\n * @return {SetCurrentTimePromise}\n */\n\n }, {\n key: 'setCurrentTime',\n value: function setCurrentTime(currentTime) {\n return this.set('currentTime', currentTime);\n }\n\n /**\n * A promise to get the duration of the video.\n *\n * @promise GetDurationPromise\n * @fulfill {number} The duration in seconds.\n */\n /**\n * Get the duration of the video in seconds. It will be rounded to the\n * nearest second before playback begins, and to the nearest thousandth\n * of a second after playback begins.\n *\n * @return {GetDurationPromise}\n */\n\n }, {\n key: 'getDuration',\n value: function getDuration() {\n return this.get('duration');\n }\n\n /**\n * A promise to get the ended state of the video.\n *\n * @promise GetEndedPromise\n * @fulfill {boolean} Whether or not the video has ended.\n */\n /**\n * Get the ended state of the video. The video has ended if\n * `currentTime === duration`.\n *\n * @return {GetEndedPromise}\n */\n\n }, {\n key: 'getEnded',\n value: function getEnded() {\n return this.get('ended');\n }\n\n /**\n * A promise to get the loop state of the player.\n *\n * @promise GetLoopPromise\n * @fulfill {boolean} Whether or not the player is set to loop.\n */\n /**\n * Get the loop state of the player.\n *\n * @return {GetLoopPromise}\n */\n\n }, {\n key: 'getLoop',\n value: function getLoop() {\n return this.get('loop');\n }\n\n /**\n * A promise to set the loop state of the player.\n *\n * @promise SetLoopPromise\n * @fulfill {boolean} The loop state that was set.\n */\n /**\n * Set the loop state of the player. When set to `true`, the player\n * will start over immediately once playback ends.\n *\n * @param {boolean} loop\n * @return {SetLoopPromise}\n */\n\n }, {\n key: 'setLoop',\n value: function setLoop(loop) {\n return this.set('loop', loop);\n }\n\n /**\n * A promise to get the paused state of the player.\n *\n * @promise GetLoopPromise\n * @fulfill {boolean} Whether or not the video is paused.\n */\n /**\n * Get the paused state of the player.\n *\n * @return {GetLoopPromise}\n */\n\n }, {\n key: 'getPaused',\n value: function getPaused() {\n return this.get('paused');\n }\n\n /**\n * A promise to get the playback rate of the player.\n *\n * @promise GetPlaybackRatePromise\n * @fulfill {number} The playback rate of the player on a scale from 0.5 to 2.\n */\n /**\n * Get the playback rate of the player on a scale from `0.5` to `2`.\n *\n * @return {GetPlaybackRatePromise}\n */\n\n }, {\n key: 'getPlaybackRate',\n value: function getPlaybackRate() {\n return this.get('playbackRate');\n }\n\n /**\n * A promise to set the playbackrate of the player.\n *\n * @promise SetPlaybackRatePromise\n * @fulfill {number} The playback rate was set.\n * @reject {RangeError} The playback rate was less than 0.5 or greater than 2.\n */\n /**\n * Set the playback rate of the player on a scale from `0.5` to `2`. When set\n * via the API, the playback rate will not be synchronized to other\n * players or stored as the viewer's preference.\n *\n * @param {number} playbackRate\n * @return {SetPlaybackRatePromise}\n */\n\n }, {\n key: 'setPlaybackRate',\n value: function setPlaybackRate(playbackRate) {\n return this.set('playbackRate', playbackRate);\n }\n\n /**\n * A promise to get the text tracks of a video.\n *\n * @promise GetTextTracksPromise\n * @fulfill {VimeoTextTrack[]} The text tracks associated with the video.\n */\n /**\n * Get an array of the text tracks that exist for the video.\n *\n * @return {GetTextTracksPromise}\n */\n\n }, {\n key: 'getTextTracks',\n value: function getTextTracks() {\n return this.get('textTracks');\n }\n\n /**\n * A promise to get the embed code for the video.\n *\n * @promise GetVideoEmbedCodePromise\n * @fulfill {string} The `