{"version":3,"sources":["webpack:///./Content/javascripts/vendor/perfect-scrollbar.jquery.js","webpack:///./Content/javascripts/modules/header/jb/header-jb.js","webpack:///./Content/javascripts/modules/responsive/scroll-to-top.js","webpack:///./Content/javascripts/components/bdc-accordion.js","webpack:///./Content/javascripts/components/bdc-tabs.js","webpack:///./Content/javascripts/binding-handlers/select-element-content.js","webpack:///./javascript/jb/theme/index.js"],"names":["e","t","n","r","s","o","u","i","f","Error","code","l","exports","call","length","1","require","module","ps","psInstances","mountJQuery","jQuery","fn","perfectScrollbar","settingOrCommand","this","each","settings","get","initialize","command","update","destroy","define","2","add","element","className","classList","classes","split","indexOf","push","join","oldAdd","remove","idx","splice","oldRemove","list","Array","prototype","slice","apply","3","DOM","tagName","document","createElement","appendTo","child","parent","appendChild","css","styleNameOrObject","styleValue","obj","key","val","toString","style","cssMultiSet","styleName","window","getComputedStyle","cssGet","cssSet","matches","query","matchesSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","parentNode","removeChild","queryChildren","selector","filter","childNodes","4","EventElement","events","bind","eventName","handler","addEventListener","unbind","isHandlerProvided","hdlr","removeEventListener","unbindAll","name","EventManager","eventElements","eventElement","ee","once","onceHandler","5","s4","Math","floor","random","substring","6","cls","dom","toInt","x","parseInt","clone","constructor","map","result","extend","original","source","isEditable","el","removePsClasses","clsList","outerWidth","startScrolling","axis","stopScrolling","env","isWebKit","documentElement","supportsTouch","DocumentTouch","supportsIePointer","navigator","msMaxTouchPoints","7","8","handlers","maxScrollbarLength","minScrollbarLength","scrollXMarginOffset","scrollYMarginOffset","stopPropagationOnClick","suppressScrollX","suppressScrollY","swipePropagation","useBothWheelAxes","wheelPropagation","wheelSpeed","theme","9","_","instances","event","scrollbarX","scrollbarY","scrollbarXRail","scrollbarYRail","10","updateGeometry","updateScroll","pageOffset","getBoundingClientRect","stopPropagation","halfOfScrollbarLength","scrollbarYHeight","positionRatio","railYRatio","pageY","pageYOffset","top","railYHeight","contentHeight","containerHeight","scrollbarXWidth","railXRatio","pageX","pageXOffset","left","railXWidth","contentWidth","containerWidth","negativeScrollAdjustment","bindClickRailHandler","11","bindMouseScrollXHandler","currentLeft","currentPageX","mouseMoveHandler","deltaX","newLeft","maxLeft","max","scrollbarXLeft","scrollLeft","updateScrollLeft","preventDefault","mouseUpHandler","ownerDocument","bindMouseScrollYHandler","currentTop","currentPageY","deltaY","newTop","maxTop","scrollbarYTop","scrollTop","updateScrollTop","12","bindKeyboardHandler","hovered","isDefaultPrevented","defaultPrevented","focused","activeElement","contentDocument","shadowRoot","which","shiftKey","ctrlKey","scrollbarYActive","scrollbarXActive","shouldPreventDefault","13","bindMouseWheelHandler","shouldPrevent","mousewheelHandler","delta","wheelDeltaX","wheelDeltaY","deltaMode","wheelDelta","getDeltaFromEvent","querySelector","overflow","match","maxScrollTop","scrollHeight","clientHeight","maxScrollLeft","clientWidth","shouldBeConsumedByChild","onwheel","onmousewheel","14","bindNativeScrollHandler","15","bindSelectionHandler","scrollingLoop","scrollDiff","clearInterval","isSelected","selection","contains","getSelection","getRangeAt","commonAncestorContainer","mousePosition","y","containerGeometry","offsetLeft","right","offsetWidth","offsetTop","bottom","offsetHeight","setInterval","16","bindTouchHandler","applyTouchMove","differenceX","differenceY","startOffset","startTime","speed","easingLoop","inGlobalTouch","inLocalTouch","globalTouchStart","globalTouchEnd","getTouch","targetTouches","shouldHandle","pointerType","MSPOINTER_TYPE_MOUSE","touchStart","touch","Date","getTime","touchMove","currentOffset","currentTime","timeGap","magnitudeX","abs","magnitudeY","touchEnd","PointerEvent","MSPointerEvent","17","nativeScrollHandler","userSettings","forEach","handlerName","18","defaultSettings","guid","Instance","originalScrollLeft","focus","blur","isRtl","isNegativeScroll","scrollWidth","setAttribute","scrollbarXBottom","isScrollbarXUsingBottom","scrollbarXTop","railBorderXWidth","railXMarginWidth","scrollbarYRight","isScrollbarYUsingRight","scrollbarYLeft","scrollbarYOuterWidth","railBorderYWidth","railYMarginHeight","getId","getAttribute","newId","id","setId","removeAttribute","removeId","19","getThumbSize","thumbSize","min","existingRails","rail","xRailOffset","width","yRailOffset","height","updateCss","20","lastTop","lastLeft","upEvent","createEvent","downEvent","leftEvent","rightEvent","yEvent","xEvent","xStartEvent","xEndEvent","yStartEvent","yEndEvent","initEvent","value","dispatchEvent","21","globals","$","HeaderViewModel","lozad","querySelectorAll","rootMargin","observe","loaded","then","getFooterData","default","Enews","ReactDOM","render","mode","getElementById","on","hasClass","location","href","find","trigger","innerWidth","toggle","stick_in_parent","prop","tb","tbIndex","showNextTrustBooster","eq","fadeIn","delay","fadeOut","pathname","includes","ThemeProvider","Modals","toggleScrollTop","show","hide","ssm","getState","active","animate","scroll","append","$selectedAccordion","closest","currentChecked","attr","outerHeight","next","ko","bindingHandlers","selectElementContent","init","valueAccessor","allBindingsAccessor","viewModel","bindingContext","click","range","body","createTextRange","moveToElementText","select","createRange","selectNodeContents","removeAllRanges","addRange","tachyonsVariables","backgroundColor","alert","base","container","icon","text","error","warning","configurator","global","choice","border","maxWidth","option","dictionaryTermBackgroundColor","dictionaryTermColor","dictionaryTermIconColor","image","withLongLabel","withoutLongLabel","selectedBorder","selectedIcon","selectedText","title","price","addsPrice","promo","summary","background","choiceValue","floatingBar","stickyTop","modal","closeButton","closeButtonHover"],"mappings":"qJACA,SAAUA,EAAEC,EAAEC,EAAEC,GAAG,SAASC,EAAEC,EAAEC,GAAG,IAAIJ,EAAEG,GAAG,CAAC,IAAIJ,EAAEI,GAAG,CAAmE,GAAGE,EAAE,OAAOA,EAAEF,GAAE,GAAI,IAAIG,EAAE,IAAIC,MAAM,uBAAuBJ,EAAE,KAAK,MAAMG,EAAEE,KAAK,mBAAmBF,EAAE,IAAIG,EAAET,EAAEG,GAAG,CAACO,QAAQ,IAAIX,EAAEI,GAAG,GAAGQ,KAAKF,EAAEC,SAAQ,SAASZ,GAAG,IAAIE,EAAED,EAAEI,GAAG,GAAGL,GAAG,OAAOI,EAAEF,GAAIF,KAAIW,EAAEA,EAAEC,QAAQZ,EAAEC,EAAEC,EAAEC,GAAG,OAAOD,EAAEG,GAAGO,QAAkD,IAA1C,IAAIL,GAAE,EAA4CF,EAAE,EAAEA,EAAEF,EAAEW,OAAOT,IAAID,EAAED,EAAEE,IAAI,OAAOD,EAAvb,CAA2b,CAACW,EAAE,CAAC,SAASC,EAAQC,EAAOL,GAGvd,IAAIM,EAAKF,EAAQ,WACbG,EAAcH,EAAQ,uBAE1B,SAASI,EAAYC,GACnBA,EAAOC,GAAGC,iBAAmB,SAAUC,GACrC,OAAOC,KAAKC,MAAK,WACf,GAAgC,iBAA5B,IAAOF,EAAP,0BAAOA,UACqB,IAArBA,EAAkC,CAE3C,IAAIG,EAAWH,EAEVL,EAAYS,IAAIH,OACnBP,EAAGW,WAAWJ,KAAME,OAEjB,CAEL,IAAIG,EAAUN,EAEE,WAAZM,EACFZ,EAAGa,OAAON,MACW,YAAZK,GACTZ,EAAGc,QAAQP,WASnBQ,EAAO,CAAC,WAAR,8DAQFhB,EAAOL,QAAUQ,GAEf,CAAC,UAAU,EAAE,sBAAsB,KAAKc,EAAE,CAAC,SAASlB,EAAQC,EAAOL,GAoBrEA,EAAQuB,IAAM,SAAUC,EAASC,GAC3BD,EAAQE,UACVF,EAAQE,UAAUH,IAAIE,GAnB1B,SAAgBD,EAASC,GACvB,IAAIE,EAAUH,EAAQC,UAAUG,MAAM,KAClCD,EAAQE,QAAQJ,GAAa,GAC/BE,EAAQG,KAAKL,GAEfD,EAAQC,UAAYE,EAAQI,KAAK,KAgB/BC,CAAOR,EAASC,IAIpBzB,EAAQiC,OAAS,SAAUT,EAASC,GAC9BD,EAAQE,UACVF,EAAQE,UAAUO,OAAOR,GAnB7B,SAAmBD,EAASC,GAC1B,IAAIE,EAAUH,EAAQC,UAAUG,MAAM,KAClCM,EAAMP,EAAQE,QAAQJ,GACtBS,GAAO,GACTP,EAAQQ,OAAOD,EAAK,GAEtBV,EAAQC,UAAYE,EAAQI,KAAK,KAe/BK,CAAUZ,EAASC,IAIvBzB,EAAQqC,KAAO,SAAUb,GACvB,OAAIA,EAAQE,UACHY,MAAMC,UAAUC,MAAMC,MAAMjB,EAAQE,WAEpCF,EAAQC,UAAUG,MAAM,OAIjC,IAAIc,EAAE,CAAC,SAAStC,EAAQC,EAAOL,GAGjC,IAAI2C,EAAM,GAEVA,EAAIvD,EAAI,SAAUwD,EAASnB,GACzB,IAAID,EAAUqB,SAASC,cAAcF,GAErC,OADApB,EAAQC,UAAYA,EACbD,GAGTmB,EAAII,SAAW,SAAUC,EAAOC,GAE9B,OADAA,EAAOC,YAAYF,GACZA,GA0BTL,EAAIQ,IAAM,SAAU3B,EAAS4B,EAAmBC,GAC9C,MAAiC,iBAA7B,IAAOD,EAAP,0BAAOA,IAZb,SAAqB5B,EAAS8B,GAC5B,IAAK,IAAIC,KAAOD,EAAK,CACnB,IAAIE,EAAMF,EAAIC,GACK,iBAARC,IACTA,EAAMA,EAAIC,WAAa,MAEzBjC,EAAQkC,MAAMH,GAAOC,EAEvB,OAAOhC,EAMEmC,CAAYnC,EAAS4B,QAEF,IAAfC,EA5Bf,SAAgB7B,EAASoC,GACvB,OAAOC,OAAOC,iBAAiBtC,GAASoC,GA4B7BG,CAAOvC,EAAS4B,GAzB7B,SAAgB5B,EAASoC,EAAWP,GAKlC,MAJ0B,iBAAfA,IACTA,EAAaA,EAAWI,WAAa,MAEvCjC,EAAQkC,MAAME,GAAaP,EACpB7B,EAsBIwC,CAAOxC,EAAS4B,EAAmBC,IAKhDV,EAAIsB,QAAU,SAAUzC,EAAS0C,GAC/B,YAA+B,IAApB1C,EAAQyC,QACVzC,EAAQyC,QAAQC,QAEgB,IAA5B1C,EAAQ2C,gBACV3C,EAAQ2C,gBAAgBD,QACmB,IAAlC1C,EAAQ4C,sBACjB5C,EAAQ4C,sBAAsBF,QACU,IAA/B1C,EAAQ6C,mBACjB7C,EAAQ6C,mBAAmBH,QACY,IAA9B1C,EAAQ8C,kBACjB9C,EAAQ8C,kBAAkBJ,QAD5B,GAMXvB,EAAIV,OAAS,SAAUT,QACS,IAAnBA,EAAQS,OACjBT,EAAQS,SAEJT,EAAQ+C,YACV/C,EAAQ+C,WAAWC,YAAYhD,IAKrCmB,EAAI8B,cAAgB,SAAUjD,EAASkD,GACrC,OAAOpC,MAAMC,UAAUoC,OAAO1E,KAAKuB,EAAQoD,YAAY,SAAU5B,GAC/D,OAAOL,EAAIsB,QAAQjB,EAAO0B,OAI9BrE,EAAOL,QAAU2C,GAEf,IAAIkC,EAAE,CAAC,SAASzE,EAAQC,EAAOL,GAGjC,IAAI8E,EAAe,SAAUtD,GAC3BX,KAAKW,QAAUA,EACfX,KAAKkE,OAAS,IAGhBD,EAAavC,UAAUyC,KAAO,SAAUC,EAAWC,QACX,IAA3BrE,KAAKkE,OAAOE,KACrBpE,KAAKkE,OAAOE,GAAa,IAE3BpE,KAAKkE,OAAOE,GAAWnD,KAAKoD,GAC5BrE,KAAKW,QAAQ2D,iBAAiBF,EAAWC,GAAS,IAGpDJ,EAAavC,UAAU6C,OAAS,SAAUH,EAAWC,GACnD,IAAIG,OAAwC,IAAZH,EAChCrE,KAAKkE,OAAOE,GAAapE,KAAKkE,OAAOE,GAAWN,QAAO,SAAUW,GAC/D,SAAID,GAAqBC,IAASJ,KAGlCrE,KAAKW,QAAQ+D,oBAAoBN,EAAWK,GAAM,IAC3C,KACNzE,OAGLiE,EAAavC,UAAUiD,UAAY,WACjC,IAAK,IAAIC,KAAQ5E,KAAKkE,OACpBlE,KAAKuE,OAAOK,IAIhB,IAAIC,EAAe,WACjB7E,KAAK8E,cAAgB,IAGvBD,EAAanD,UAAUqD,aAAe,SAAUpE,GAC9C,IAAIqE,EAAKhF,KAAK8E,cAAchB,QAAO,SAAUiB,GAC3C,OAAOA,EAAapE,UAAYA,KAC/B,GAKH,YAJkB,IAAPqE,IACTA,EAAK,IAAIf,EAAatD,GACtBX,KAAK8E,cAAc7D,KAAK+D,IAEnBA,GAGTH,EAAanD,UAAUyC,KAAO,SAAUxD,EAASyD,EAAWC,GAC1DrE,KAAK+E,aAAapE,GAASwD,KAAKC,EAAWC,IAG7CQ,EAAanD,UAAU6C,OAAS,SAAU5D,EAASyD,EAAWC,GAC5DrE,KAAK+E,aAAapE,GAAS4D,OAAOH,EAAWC,IAG/CQ,EAAanD,UAAUiD,UAAY,WACjC,IAAK,IAAI7F,EAAI,EAAGA,EAAIkB,KAAK8E,cAAczF,OAAQP,IAC7CkB,KAAK8E,cAAchG,GAAG6F,aAI1BE,EAAanD,UAAUuD,KAAO,SAAUtE,EAASyD,EAAWC,GAC1D,IAAIW,EAAKhF,KAAK+E,aAAapE,GAK3BqE,EAAGb,KAAKC,GAJU,SAAdc,EAAwB3G,GAC1ByG,EAAGT,OAAOH,EAAWc,GACrBb,EAAQ9F,OAKZiB,EAAOL,QAAU0F,GAEf,IAAIM,EAAE,CAAC,SAAS5F,EAAQC,EAAOL,GAGjCK,EAAOL,QAAW,WAChB,SAASiG,IACP,OAAOC,KAAKC,MAA4B,OAArB,EAAID,KAAKE,WAChB3C,SAAS,IACT4C,UAAU,GAExB,OAAO,WACL,OAAOJ,IAAOA,IAAO,IAAMA,IAAO,IAAMA,IAAO,IACxCA,IAAO,IAAMA,IAAOA,IAAOA,KARpB,IAYhB,IAAIK,EAAE,CAAC,SAASlG,EAAQC,EAAOL,GAGjC,IAAIuG,EAAMnG,EAAQ,WACdoG,EAAMpG,EAAQ,SAEdqG,EAAQzG,EAAQyG,MAAQ,SAAUC,GACpC,OAAOC,SAASD,EAAG,KAAO,GAGxBE,EAAQ5G,EAAQ4G,MAAQ,SAAUtD,GACpC,GAAY,OAARA,EACF,OAAO,KACF,GAAIA,EAAIuD,cAAgBvE,MAC7B,OAAOgB,EAAIwD,IAAIF,GACV,GAAmB,iBAAf,IAAOtD,EAAP,0BAAOA,IAAkB,CAClC,IAAIyD,EAAS,GACb,IAAK,IAAIxD,KAAOD,EACdyD,EAAOxD,GAAOqD,EAAMtD,EAAIC,IAE1B,OAAOwD,EAEP,OAAOzD,GAIXtD,EAAQgH,OAAS,SAAUC,EAAUC,GACnC,IAAIH,EAASH,EAAMK,GACnB,IAAK,IAAI1D,KAAO2D,EACdH,EAAOxD,GAAOqD,EAAMM,EAAO3D,IAE7B,OAAOwD,GAGT/G,EAAQmH,WAAa,SAAUC,GAC7B,OAAOZ,EAAIvC,QAAQmD,EAAI,4BAChBZ,EAAIvC,QAAQmD,EAAI,6BAChBZ,EAAIvC,QAAQmD,EAAI,+BAChBZ,EAAIvC,QAAQmD,EAAI,6BAGzBpH,EAAQqH,gBAAkB,SAAU7F,GAElC,IADA,IAAI8F,EAAUf,EAAIlE,KAAKb,GACd7B,EAAI,EAAGA,EAAI2H,EAAQpH,OAAQP,IAAK,CACvC,IAAI8B,EAAY6F,EAAQ3H,GACS,IAA7B8B,EAAUI,QAAQ,QACpB0E,EAAItE,OAAOT,EAASC,KAK1BzB,EAAQuH,WAAa,SAAU/F,GAC7B,OAAOiF,EAAMD,EAAIrD,IAAI3B,EAAS,UACvBiF,EAAMD,EAAIrD,IAAI3B,EAAS,gBACvBiF,EAAMD,EAAIrD,IAAI3B,EAAS,iBACvBiF,EAAMD,EAAIrD,IAAI3B,EAAS,oBACvBiF,EAAMD,EAAIrD,IAAI3B,EAAS,sBAGhCxB,EAAQwH,eAAiB,SAAUhG,EAASiG,GAC1ClB,EAAIhF,IAAIC,EAAS,wBACG,IAATiG,EACTlB,EAAIhF,IAAIC,EAAS,MAAQiG,IAEzBlB,EAAIhF,IAAIC,EAAS,QACjB+E,EAAIhF,IAAIC,EAAS,UAIrBxB,EAAQ0H,cAAgB,SAAUlG,EAASiG,GACzClB,EAAItE,OAAOT,EAAS,wBACA,IAATiG,EACTlB,EAAItE,OAAOT,EAAS,MAAQiG,IAE5BlB,EAAItE,OAAOT,EAAS,QACpB+E,EAAItE,OAAOT,EAAS,UAIxBxB,EAAQ2H,IAAM,CACZC,SAAU,qBAAsB/E,SAASgF,gBAAgBnE,MACzDoE,cAAiB,iBAAkBjE,QAAWA,OAAOkE,eAAiBlF,oBAAoBgB,OAAOkE,cACjGC,kBAAyD,OAAtCnE,OAAOoE,UAAUC,mBAGpC,CAAC,UAAU,EAAE,QAAQ,IAAIC,EAAE,CAAC,SAAS/H,EAAQC,EAAOL,GAGtD,IAAIoB,EAAUhB,EAAQ,oBAClBa,EAAab,EAAQ,uBACrBe,EAASf,EAAQ,mBAErBC,EAAOL,QAAU,CACfiB,WAAYA,EACZE,OAAQA,EACRC,QAASA,IAGT,CAAC,mBAAmB,EAAE,sBAAsB,GAAG,kBAAkB,KAAKgH,EAAE,CAAC,SAAShI,EAAQC,EAAOL,GAGnGK,EAAOL,QAAU,CACfqI,SAAU,CAAC,aAAc,iBAAkB,WAAY,QAAS,SAChEC,mBAAoB,KACpBC,mBAAoB,KACpBC,oBAAqB,EACrBC,oBAAqB,EACrBC,wBAAwB,EACxBC,iBAAiB,EACjBC,iBAAiB,EACjBC,kBAAkB,EAClBC,kBAAkB,EAClBC,kBAAkB,EAClBC,WAAY,EACZC,MAAO,YAGP,IAAIC,EAAE,CAAC,SAAS9I,EAAQC,EAAOL,GAGjC,IAAImJ,EAAI/I,EAAQ,iBACZoG,EAAMpG,EAAQ,cACdgJ,EAAYhJ,EAAQ,eAExBC,EAAOL,QAAU,SAAUwB,GACzB,IAAI7B,EAAIyJ,EAAUpI,IAAIQ,GAEjB7B,IAILA,EAAE0J,MAAM7D,YACRgB,EAAIvE,OAAOtC,EAAE2J,YACb9C,EAAIvE,OAAOtC,EAAE4J,YACb/C,EAAIvE,OAAOtC,EAAE6J,gBACbhD,EAAIvE,OAAOtC,EAAE8J,gBACbN,EAAE9B,gBAAgB7F,GAElB4H,EAAUnH,OAAOT,MAGjB,CAAC,aAAa,EAAE,gBAAgB,EAAE,cAAc,KAAKkI,GAAG,CAAC,SAAStJ,EAAQC,EAAOL,GAGnF,IAAImJ,EAAI/I,EAAQ,oBACZgJ,EAAYhJ,EAAQ,gBACpBuJ,EAAiBvJ,EAAQ,sBACzBwJ,EAAexJ,EAAQ,oBAmD3BC,EAAOL,QAAU,SAAUwB,IAjD3B,SAA8BA,EAAS7B,GACrC,SAASkK,EAAWzC,GAClB,OAAOA,EAAG0C,wBAEZ,IAAIC,EAAkB,SAAU3K,GAAKA,EAAE2K,mBAEnCpK,EAAEoB,SAAS2H,wBACb/I,EAAE0J,MAAMrE,KAAKrF,EAAE4J,WAAY,QAASQ,GAEtCpK,EAAE0J,MAAMrE,KAAKrF,EAAE8J,eAAgB,SAAS,SAAUrK,GAChD,IAAI4K,EAAwBb,EAAE1C,MAAM9G,EAAEsK,iBAAmB,GAGrDC,EAFcvK,EAAEwK,YAAc/K,EAAEgL,MAAQvG,OAAOwG,YAAcR,EAAWlK,EAAE8J,gBAAgBa,IAAMN,IAC/ErK,EAAEwK,YAAcxK,EAAE4K,YAAc5K,EAAEsK,mBAGnDC,EAAgB,EAClBA,EAAgB,EACPA,EAAgB,IACzBA,EAAgB,GAGlBN,EAAapI,EAAS,OAAQ7B,EAAE6K,cAAgB7K,EAAE8K,iBAAmBP,GACrEP,EAAenI,GAEfpC,EAAE2K,qBAGApK,EAAEoB,SAAS2H,wBACb/I,EAAE0J,MAAMrE,KAAKrF,EAAE2J,WAAY,QAASS,GAEtCpK,EAAE0J,MAAMrE,KAAKrF,EAAE6J,eAAgB,SAAS,SAAUpK,GAChD,IAAI4K,EAAwBb,EAAE1C,MAAM9G,EAAE+K,gBAAkB,GAGpDR,EAFevK,EAAEgL,YAAcvL,EAAEwL,MAAQ/G,OAAOgH,YAAchB,EAAWlK,EAAE6J,gBAAgBsB,KAAOd,IAChFrK,EAAEgL,YAAchL,EAAEoL,WAAapL,EAAE+K,kBAGnDR,EAAgB,EAClBA,EAAgB,EACPA,EAAgB,IACzBA,EAAgB,GAGlBN,EAAapI,EAAS,QAAU7B,EAAEqL,aAAerL,EAAEsL,gBAAkBf,EAAiBvK,EAAEuL,0BACxFvB,EAAenI,GAEfpC,EAAE2K,qBAMJoB,CAAqB3J,EADb4H,EAAUpI,IAAIQ,MAItB,CAAC,mBAAmB,EAAE,eAAe,GAAG,qBAAqB,GAAG,mBAAmB,KAAK4J,GAAG,CAAC,SAAShL,EAAQC,EAAOL,GAGtH,IAAImJ,EAAI/I,EAAQ,oBACZoG,EAAMpG,EAAQ,iBACdgJ,EAAYhJ,EAAQ,gBACpBuJ,EAAiBvJ,EAAQ,sBACzBwJ,EAAexJ,EAAQ,oBAE3B,SAASiL,EAAwB7J,EAAS7B,GACxC,IAAI2L,EAAc,KACdC,EAAe,KAkBnB,IAAIC,EAAmB,SAAUpM,IAhBjC,SAA0BqM,GACxB,IAAIC,EAAUJ,EAAeG,EAAS9L,EAAEgL,WACpCgB,EAAUzF,KAAK0F,IAAI,EAAGjM,EAAE6J,eAAeM,wBAAwBgB,MAASnL,EAAEgL,YAAchL,EAAEoL,WAAapL,EAAE+K,iBAG3G/K,EAAEkM,eADAH,EAAU,EACO,EACVA,EAAUC,EACAA,EAEAD,EAGrB,IAAII,EAAa3C,EAAE1C,MAAM9G,EAAEkM,gBAAkBlM,EAAEqL,aAAerL,EAAEsL,iBAAmBtL,EAAEsL,eAAkBtL,EAAEgL,WAAahL,EAAE+K,kBAAqB/K,EAAEuL,yBAC/ItB,EAAapI,EAAS,OAAQsK,GAI9BC,CAAiB3M,EAAEwL,MAAQW,GAC3B5B,EAAenI,GACfpC,EAAE2K,kBACF3K,EAAE4M,kBAGAC,EAAiB,WACnB9C,EAAEzB,cAAclG,EAAS,KACzB7B,EAAE0J,MAAMjE,OAAOzF,EAAEuM,cAAe,YAAaV,IAG/C7L,EAAE0J,MAAMrE,KAAKrF,EAAE2J,WAAY,aAAa,SAAUlK,GAChDmM,EAAenM,EAAEwL,MACjBU,EAAcnC,EAAE1C,MAAMD,EAAIrD,IAAIxD,EAAE2J,WAAY,SAAW3J,EAAEgL,WACzDxB,EAAE3B,eAAehG,EAAS,KAE1B7B,EAAE0J,MAAMrE,KAAKrF,EAAEuM,cAAe,YAAaV,GAC3C7L,EAAE0J,MAAMvD,KAAKnG,EAAEuM,cAAe,UAAWD,GAEzC7M,EAAE2K,kBACF3K,EAAE4M,oBAIN,SAASG,EAAwB3K,EAAS7B,GACxC,IAAIyM,EAAa,KACbC,EAAe,KAkBnB,IAAIb,EAAmB,SAAUpM,IAhBjC,SAAyBkN,GACvB,IAAIC,EAASH,EAAcE,EAAS3M,EAAEwK,WAClCqC,EAAStG,KAAK0F,IAAI,EAAGjM,EAAE8J,eAAeK,wBAAwBQ,KAAQ3K,EAAEwK,YAAcxK,EAAE4K,YAAc5K,EAAEsK,kBAG1GtK,EAAE8M,cADAF,EAAS,EACO,EACTA,EAASC,EACAA,EAEAD,EAGpB,IAAIG,EAAYvD,EAAE1C,MAAM9G,EAAE8M,eAAiB9M,EAAE6K,cAAgB7K,EAAE8K,kBAAoB9K,EAAE8K,gBAAmB9K,EAAEwK,WAAaxK,EAAEsK,mBACzHL,EAAapI,EAAS,MAAOkL,GAI7BC,CAAgBvN,EAAEgL,MAAQiC,GAC1B1C,EAAenI,GACfpC,EAAE2K,kBACF3K,EAAE4M,kBAGAC,EAAiB,WACnB9C,EAAEzB,cAAclG,EAAS,KACzB7B,EAAE0J,MAAMjE,OAAOzF,EAAEuM,cAAe,YAAaV,IAG/C7L,EAAE0J,MAAMrE,KAAKrF,EAAE4J,WAAY,aAAa,SAAUnK,GAChDiN,EAAejN,EAAEgL,MACjBgC,EAAajD,EAAE1C,MAAMD,EAAIrD,IAAIxD,EAAE4J,WAAY,QAAU5J,EAAEwK,WACvDhB,EAAE3B,eAAehG,EAAS,KAE1B7B,EAAE0J,MAAMrE,KAAKrF,EAAEuM,cAAe,YAAaV,GAC3C7L,EAAE0J,MAAMvD,KAAKnG,EAAEuM,cAAe,UAAWD,GAEzC7M,EAAE2K,kBACF3K,EAAE4M,oBAIN3L,EAAOL,QAAU,SAAUwB,GACzB,IAAI7B,EAAIyJ,EAAUpI,IAAIQ,GACtB6J,EAAwB7J,EAAS7B,GACjCwM,EAAwB3K,EAAS7B,KAGjC,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,eAAe,GAAG,qBAAqB,GAAG,mBAAmB,KAAKiN,GAAG,CAAC,SAASxM,EAAQC,EAAOL,GAGxI,IAAImJ,EAAI/I,EAAQ,oBACZoG,EAAMpG,EAAQ,iBACdgJ,EAAYhJ,EAAQ,gBACpBuJ,EAAiBvJ,EAAQ,sBACzBwJ,EAAexJ,EAAQ,oBAE3B,SAASyM,EAAoBrL,EAAS7B,GACpC,IAAImN,GAAU,EACdnN,EAAE0J,MAAMrE,KAAKxD,EAAS,cAAc,WAClCsL,GAAU,KAEZnN,EAAE0J,MAAMrE,KAAKxD,EAAS,cAAc,WAClCsL,GAAU,KA2BZnN,EAAE0J,MAAMrE,KAAKrF,EAAEuM,cAAe,WAAW,SAAU9M,GACjD,KAAKA,EAAE2N,oBAAsB3N,EAAE2N,sBAAyB3N,EAAE4N,kBAA1D,CAIA,IAAIC,EAAUzG,EAAIvC,QAAQtE,EAAE2J,WAAY,WAC1B9C,EAAIvC,QAAQtE,EAAE4J,WAAY,UAExC,GAAKuD,GAAYG,EAAjB,CAIA,IAAIC,EAAgBrK,SAASqK,cAAgBrK,SAASqK,cAAgBvN,EAAEuM,cAAcgB,cACtF,GAAIA,EAAe,CACjB,GAA8B,WAA1BA,EAActK,QAChBsK,EAAgBA,EAAcC,gBAAgBD,mBAG9C,KAAOA,EAAcE,YACnBF,EAAgBA,EAAcE,WAAWF,cAG7C,GAAI/D,EAAEhC,WAAW+F,GACf,OAIJ,IAAIzB,EAAS,EACTa,EAAS,EAEb,OAAQlN,EAAEiO,OACV,KAAK,GACH5B,GAAU,GACV,MACF,KAAK,GACHa,EAAS,GACT,MACF,KAAK,GACHb,EAAS,GACT,MACF,KAAK,GACHa,GAAU,GACV,MACF,KAAK,GACHA,EAAS,GACT,MACF,KAAK,GAEDA,EADElN,EAAEkO,SACK,IAEC,GAEZ,MACF,KAAK,GACHhB,GAAU,GACV,MACF,KAAK,GAEDA,EADElN,EAAEmO,SACM5N,EAAE6K,eAEF7K,EAAE8K,gBAEd,MACF,KAAK,GAED6B,EADElN,EAAEmO,QACK/L,EAAQkL,UAER/M,EAAE8K,gBAEb,MACF,QACE,OAGFb,EAAapI,EAAS,MAAOA,EAAQkL,UAAYJ,GACjD1C,EAAapI,EAAS,OAAQA,EAAQsK,WAAaL,GACnD9B,EAAenI,GAnGjB,SAA8BiK,EAAQa,GACpC,IAAII,EAAYlL,EAAQkL,UACxB,GAAe,IAAXjB,EAAc,CAChB,IAAK9L,EAAE6N,iBACL,OAAO,EAET,GAAmB,IAAdd,GAAmBJ,EAAS,GAAOI,GAAa/M,EAAE6K,cAAgB7K,EAAE8K,iBAAmB6B,EAAS,EACnG,OAAQ3M,EAAEoB,SAASgI,iBAIvB,IAAI+C,EAAatK,EAAQsK,WACzB,GAAe,IAAXQ,EAAc,CAChB,IAAK3M,EAAE8N,iBACL,OAAO,EAET,GAAoB,IAAf3B,GAAoBL,EAAS,GAAOK,GAAcnM,EAAEqL,aAAerL,EAAEsL,gBAAkBQ,EAAS,EACnG,OAAQ9L,EAAEoB,SAASgI,iBAGvB,OAAO,EAiFS2E,CAAqBjC,EAAQa,IAE3ClN,EAAE4M,sBAKR3L,EAAOL,QAAU,SAAUwB,GAEzBqL,EAAoBrL,EADZ4H,EAAUpI,IAAIQ,MAItB,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,eAAe,GAAG,qBAAqB,GAAG,mBAAmB,KAAKmM,GAAG,CAAC,SAASvN,EAAQC,EAAOL,GAGxI,IAAIoJ,EAAYhJ,EAAQ,gBACpBuJ,EAAiBvJ,EAAQ,sBACzBwJ,EAAexJ,EAAQ,oBAE3B,SAASwN,EAAsBpM,EAAS7B,GACtC,IAAIkO,GAAgB,EAyEpB,SAASC,EAAkB1O,GACzB,IAAI2O,EAjDN,SAA2B3O,GACzB,IAAIqM,EAASrM,EAAEqM,OACXa,GAAU,EAAIlN,EAAEkN,OAoBpB,YAlBsB,IAAXb,QAA4C,IAAXa,IAE1Cb,GAAU,EAAIrM,EAAE4O,YAAc,EAC9B1B,EAASlN,EAAE6O,YAAc,GAGvB7O,EAAE8O,WAA6B,IAAhB9O,EAAE8O,YAEnBzC,GAAU,GACVa,GAAU,IAGRb,GAAWA,GAAUa,GAAWA,IAElCb,EAAS,EACTa,EAASlN,EAAE+O,YAGN,CAAC1C,EAAQa,GA2BJ8B,CAAkBhP,GAE1BqM,EAASsC,EAAM,GACfzB,EAASyB,EAAM,IA3BrB,SAAiCtC,EAAQa,GACvC,IAAItJ,EAAQxB,EAAQ6M,cAAc,2DAClC,GAAIrL,EAAO,CACT,GAAsB,aAAlBA,EAAMJ,UAA2BiB,OAAOC,iBAAiBd,GAAOsL,SAASC,MAAM,iBACjF,OAAO,EAGT,IAAIC,EAAexL,EAAMyL,aAAezL,EAAM0L,aAC9C,GAAIF,EAAe,KACS,IAApBxL,EAAM0J,WAAmBJ,EAAS,GAAQtJ,EAAM0J,YAAc8B,GAAgBlC,EAAS,GAC3F,OAAO,EAGX,IAAIqC,EAAgB3L,EAAM8I,WAAa9I,EAAM4L,YAC7C,GAAID,EAAgB,KACS,IAArB3L,EAAM8I,YAAoBL,EAAS,GAAQzI,EAAM8I,aAAe6C,GAAiBlD,EAAS,GAC9F,OAAO,EAIb,OAAO,GASHoD,CAAwBpD,EAAQa,KAIpCuB,GAAgB,EACXlO,EAAEoB,SAAS+H,iBAKLnJ,EAAE6N,mBAAqB7N,EAAE8N,kBAIhC7D,EAAapI,EAAS,MADpB8K,EAC2B9K,EAAQkL,UAAaJ,EAAS3M,EAAEoB,SAASiI,WAEzCxH,EAAQkL,UAAajB,EAAS9L,EAAEoB,SAASiI,YAExE6E,GAAgB,GACPlO,EAAE8N,mBAAqB9N,EAAE6N,mBAIhC5D,EAAapI,EAAS,OADpBiK,EAC4BjK,EAAQsK,WAAcL,EAAS9L,EAAEoB,SAASiI,WAE1CxH,EAAQsK,WAAcQ,EAAS3M,EAAEoB,SAASiI,YAE1E6E,GAAgB,IAnBhBjE,EAAapI,EAAS,MAAOA,EAAQkL,UAAaJ,EAAS3M,EAAEoB,SAASiI,YACtEY,EAAapI,EAAS,OAAQA,EAAQsK,WAAcL,EAAS9L,EAAEoB,SAASiI,aAqB1EW,EAAenI,IAEfqM,EAAiBA,GA7GnB,SAA8BpC,EAAQa,GACpC,IAAII,EAAYlL,EAAQkL,UACxB,GAAe,IAAXjB,EAAc,CAChB,IAAK9L,EAAE6N,iBACL,OAAO,EAET,GAAmB,IAAdd,GAAmBJ,EAAS,GAAOI,GAAa/M,EAAE6K,cAAgB7K,EAAE8K,iBAAmB6B,EAAS,EACnG,OAAQ3M,EAAEoB,SAASgI,iBAIvB,IAAI+C,EAAatK,EAAQsK,WACzB,GAAe,IAAXQ,EAAc,CAChB,IAAK3M,EAAE8N,iBACL,OAAO,EAET,GAAoB,IAAf3B,GAAoBL,EAAS,GAAOK,GAAcnM,EAAEqL,aAAerL,EAAEsL,gBAAkBQ,EAAS,EACnG,OAAQ9L,EAAEoB,SAASgI,iBAGvB,OAAO,EAyF2B2E,CAAqBjC,EAAQa,MAE7DlN,EAAE2K,kBACF3K,EAAE4M,wBAIwB,IAAnBnI,OAAOiL,QAChBnP,EAAE0J,MAAMrE,KAAKxD,EAAS,QAASsM,QACS,IAAxBjK,OAAOkL,cACvBpP,EAAE0J,MAAMrE,KAAKxD,EAAS,aAAcsM,GAIxCzN,EAAOL,QAAU,SAAUwB,GAEzBoM,EAAsBpM,EADd4H,EAAUpI,IAAIQ,MAItB,CAAC,eAAe,GAAG,qBAAqB,GAAG,mBAAmB,KAAKwN,GAAG,CAAC,SAAS5O,EAAQC,EAAOL,GAGjG,IAAIoJ,EAAYhJ,EAAQ,gBACpBuJ,EAAiBvJ,EAAQ,sBAQ7BC,EAAOL,QAAU,SAAUwB,IAN3B,SAAiCA,EAAS7B,GACxCA,EAAE0J,MAAMrE,KAAKxD,EAAS,UAAU,WAC9BmI,EAAenI,MAMjByN,CAAwBzN,EADhB4H,EAAUpI,IAAIQ,MAItB,CAAC,eAAe,GAAG,qBAAqB,KAAK0N,GAAG,CAAC,SAAS9O,EAAQC,EAAOL,GAG3E,IAAImJ,EAAI/I,EAAQ,oBACZgJ,EAAYhJ,EAAQ,gBACpBuJ,EAAiBvJ,EAAQ,sBACzBwJ,EAAexJ,EAAQ,oBAE3B,SAAS+O,EAAqB3N,EAAS7B,GAWrC,IAAIyP,EAAgB,KAChBC,EAAa,CAAC/E,IAAK,EAAGQ,KAAM,GAehC,SAASpD,IACH0H,IACFE,cAAcF,GACdA,EAAgB,MAElBjG,EAAEzB,cAAclG,GAGlB,IAAI+N,GAAa,EACjB5P,EAAE0J,MAAMrE,KAAKrF,EAAEuM,cAAe,mBAAmB,WAnCjD,IACMsD,EAmCAhO,EAAQiO,SAjCwB,KAFhCD,EAAY3L,OAAO6L,aAAe7L,OAAO6L,eAC7B7M,SAAS6M,aAAe7M,SAAS6M,eAAiB,IACpDjM,WAAWvD,OAChB,KAEAsP,EAAUG,WAAW,GAAGC,yBA+B/BL,GAAa,GAEbA,GAAa,EACb7H,QAGJ/H,EAAE0J,MAAMrE,KAAKnB,OAAQ,WAAW,WAC1B0L,IACFA,GAAa,EACb7H,QAIJ/H,EAAE0J,MAAMrE,KAAKnB,OAAQ,aAAa,SAAUzE,GAC1C,GAAImQ,EAAY,CACd,IAAIM,EAAgB,CAACnJ,EAAGtH,EAAEwL,MAAOkF,EAAG1Q,EAAEgL,OAClC2F,EAAoB,CACtBjF,KAAMtJ,EAAQwO,WACdC,MAAOzO,EAAQwO,WAAaxO,EAAQ0O,YACpC5F,IAAK9I,EAAQ2O,UACbC,OAAQ5O,EAAQ2O,UAAY3O,EAAQ6O,cAGlCR,EAAcnJ,EAAIqJ,EAAkBjF,KAAO,GAC7CuE,EAAWvE,MAAQ,EACnB3B,EAAE3B,eAAehG,EAAS,MACjBqO,EAAcnJ,EAAIqJ,EAAkBE,MAAQ,GACrDZ,EAAWvE,KAAO,EAClB3B,EAAE3B,eAAehG,EAAS,MAE1B6N,EAAWvE,KAAO,EAGhB+E,EAAcC,EAAIC,EAAkBzF,IAAM,GAE1C+E,EAAW/E,IADTyF,EAAkBzF,IAAM,EAAIuF,EAAcC,EAAI,GAC9B,GAEA,GAEpB3G,EAAE3B,eAAehG,EAAS,MACjBqO,EAAcC,EAAIC,EAAkBK,OAAS,GAEpDf,EAAW/E,IADTuF,EAAcC,EAAIC,EAAkBK,OAAS,EAAI,EAClC,EAEA,GAEnBjH,EAAE3B,eAAehG,EAAS,MAE1B6N,EAAW/E,IAAM,EAGI,IAAnB+E,EAAW/E,KAAiC,IAApB+E,EAAWvE,KACrCpD,IA5EC0H,IACHA,EAAgBkB,aAAY,WACrBlH,EAAUpI,IAAIQ,IAKnBoI,EAAapI,EAAS,MAAOA,EAAQkL,UAAY2C,EAAW/E,KAC5DV,EAAapI,EAAS,OAAQA,EAAQsK,WAAauD,EAAWvE,MAC9DnB,EAAenI,IANb8N,cAAcF,KAOf,SA0ET/O,EAAOL,QAAU,SAAUwB,GAEzB2N,EAAqB3N,EADb4H,EAAUpI,IAAIQ,MAItB,CAAC,mBAAmB,EAAE,eAAe,GAAG,qBAAqB,GAAG,mBAAmB,KAAK+O,GAAG,CAAC,SAASnQ,EAAQC,EAAOL,GAGtH,IAAImJ,EAAI/I,EAAQ,oBACZgJ,EAAYhJ,EAAQ,gBACpBuJ,EAAiBvJ,EAAQ,sBACzBwJ,EAAexJ,EAAQ,oBAE3B,SAASoQ,EAAiBhP,EAAS7B,EAAGmI,EAAeE,GA0BnD,SAASyI,EAAeC,EAAaC,GACnC/G,EAAapI,EAAS,MAAOA,EAAQkL,UAAYiE,GACjD/G,EAAapI,EAAS,OAAQA,EAAQsK,WAAa4E,GAEnD/G,EAAenI,GAGjB,IAAIoP,EAAc,GACdC,EAAY,EACZC,EAAQ,GACRC,EAAa,KACbC,GAAgB,EAChBC,GAAe,EAEnB,SAASC,IACPF,GAAgB,EAElB,SAASG,IACPH,GAAgB,EAGlB,SAASI,EAAShS,GAChB,OAAIA,EAAEiS,cACGjS,EAAEiS,cAAc,GAGhBjS,EAGX,SAASkS,EAAalS,GACpB,SAAIA,EAAEiS,eAA4C,IAA3BjS,EAAEiS,cAAcnR,YAGnCd,EAAEmS,aAAiC,UAAlBnS,EAAEmS,aAA2BnS,EAAEmS,cAAgBnS,EAAEoS,sBAKxE,SAASC,EAAWrS,GAClB,GAAIkS,EAAalS,GAAI,CACnB6R,GAAe,EAEf,IAAIS,EAAQN,EAAShS,GAErBwR,EAAYhG,MAAQ8G,EAAM9G,MAC1BgG,EAAYxG,MAAQsH,EAAMtH,MAE1ByG,GAAa,IAAIc,MAAQC,UAEN,OAAfb,GACFzB,cAAcyB,GAGhB3R,EAAE2K,mBAGN,SAAS8H,EAAUzS,GAIjB,IAHK6R,GAAgBtR,EAAEoB,SAAS8H,kBAC9B4I,EAAWrS,IAER4R,GAAiBC,GAAgBK,EAAalS,GAAI,CACrD,IAAIsS,EAAQN,EAAShS,GAEjB0S,EAAgB,CAAClH,MAAO8G,EAAM9G,MAAOR,MAAOsH,EAAMtH,OAElDsG,EAAcoB,EAAclH,MAAQgG,EAAYhG,MAChD+F,EAAcmB,EAAc1H,MAAQwG,EAAYxG,MAEpDqG,EAAeC,EAAaC,GAC5BC,EAAckB,EAEd,IAAIC,GAAe,IAAIJ,MAAQC,UAE3BI,EAAUD,EAAclB,EACxBmB,EAAU,IACZlB,EAAMpK,EAAIgK,EAAcsB,EACxBlB,EAAMhB,EAAIa,EAAcqB,EACxBnB,EAAYkB,GAtGlB,SAA8BtG,EAAQa,GACpC,IAAII,EAAYlL,EAAQkL,UACpBZ,EAAatK,EAAQsK,WACrBmG,EAAa/L,KAAKgM,IAAIzG,GACtB0G,EAAajM,KAAKgM,IAAI5F,GAE1B,GAAI6F,EAAaF,GAGf,GAAM3F,EAAS,GAAOI,IAAc/M,EAAE6K,cAAgB7K,EAAE8K,iBAClD6B,EAAS,GAAqB,IAAdI,EACpB,OAAQ/M,EAAEoB,SAAS8H,sBAEhB,GAAIoJ,EAAaE,IAGhB1G,EAAS,GAAOK,IAAenM,EAAEqL,aAAerL,EAAEsL,gBAClDQ,EAAS,GAAsB,IAAfK,GACpB,OAAQnM,EAAEoB,SAAS8H,iBAIvB,OAAO,EAmFD6E,CAAqBgD,EAAaC,KACpCvR,EAAE2K,kBACF3K,EAAE4M,mBAIR,SAASoG,KACFpB,GAAiBC,IACpBA,GAAe,EAEf3B,cAAcyB,GACdA,EAAaT,aAAY,WAClBlH,EAAUpI,IAAIQ,GAKf0E,KAAKgM,IAAIpB,EAAMpK,GAAK,KAAQR,KAAKgM,IAAIpB,EAAMhB,GAAK,IAClDR,cAAcyB,IAIhBN,EAAyB,GAAVK,EAAMpK,EAAkB,GAAVoK,EAAMhB,GAEnCgB,EAAMpK,GAAK,GACXoK,EAAMhB,GAAK,IAZTR,cAAcyB,KAaf,KAIHjJ,IACFnI,EAAE0J,MAAMrE,KAAKnB,OAAQ,aAAcqN,GACnCvR,EAAE0J,MAAMrE,KAAKnB,OAAQ,WAAYsN,GACjCxR,EAAE0J,MAAMrE,KAAKxD,EAAS,aAAciQ,GACpC9R,EAAE0J,MAAMrE,KAAKxD,EAAS,YAAaqQ,GACnClS,EAAE0J,MAAMrE,KAAKxD,EAAS,WAAY4Q,IAGhCpK,IACEnE,OAAOwO,cACT1S,EAAE0J,MAAMrE,KAAKnB,OAAQ,cAAeqN,GACpCvR,EAAE0J,MAAMrE,KAAKnB,OAAQ,YAAasN,GAClCxR,EAAE0J,MAAMrE,KAAKxD,EAAS,cAAeiQ,GACrC9R,EAAE0J,MAAMrE,KAAKxD,EAAS,cAAeqQ,GACrClS,EAAE0J,MAAMrE,KAAKxD,EAAS,YAAa4Q,IAC1BvO,OAAOyO,iBAChB3S,EAAE0J,MAAMrE,KAAKnB,OAAQ,gBAAiBqN,GACtCvR,EAAE0J,MAAMrE,KAAKnB,OAAQ,cAAesN,GACpCxR,EAAE0J,MAAMrE,KAAKxD,EAAS,gBAAiBiQ,GACvC9R,EAAE0J,MAAMrE,KAAKxD,EAAS,gBAAiBqQ,GACvClS,EAAE0J,MAAMrE,KAAKxD,EAAS,cAAe4Q,KAK3C/R,EAAOL,QAAU,SAAUwB,IACpB2H,EAAExB,IAAIG,eAAkBqB,EAAExB,IAAIK,oBAKnCwI,EAAiBhP,EADT4H,EAAUpI,IAAIQ,GACO2H,EAAExB,IAAIG,cAAeqB,EAAExB,IAAIK,qBAGxD,CAAC,mBAAmB,EAAE,eAAe,GAAG,qBAAqB,GAAG,mBAAmB,KAAKuK,GAAG,CAAC,SAASnS,EAAQC,EAAOL,GAGtH,IAAImJ,EAAI/I,EAAQ,iBACZmG,EAAMnG,EAAQ,gBACdgJ,EAAYhJ,EAAQ,eACpBuJ,EAAiBvJ,EAAQ,qBAGzBiI,EAAW,CACb,aAAcjI,EAAQ,wBACtB,iBAAkBA,EAAQ,4BAC1B,SAAYA,EAAQ,sBACpB,MAASA,EAAQ,yBACjB,MAASA,EAAQ,mBACjB,UAAaA,EAAQ,wBAEnBoS,EAAsBpS,EAAQ,2BAElCC,EAAOL,QAAU,SAAUwB,EAASiR,GAClCA,EAAuC,iBAAxB,IAAOA,EAAP,0BAAOA,IAA4BA,EAAe,GAEjElM,EAAIhF,IAAIC,EAAS,gBAGjB,IAAI7B,EAAIyJ,EAAU7H,IAAIC,GAEtB7B,EAAEoB,SAAWoI,EAAEnC,OAAOrH,EAAEoB,SAAU0R,GAClClM,EAAIhF,IAAIC,EAAS,YAAc7B,EAAEoB,SAASkI,OAE1CtJ,EAAEoB,SAASsH,SAASqK,SAAQ,SAAUC,GACpCtK,EAASsK,GAAanR,MAGxBgR,EAAoBhR,GAEpBmI,EAAenI,KAGf,CAAC,eAAe,EAAE,gBAAgB,EAAE,uBAAuB,GAAG,2BAA2B,GAAG,qBAAqB,GAAG,wBAAwB,GAAG,0BAA0B,GAAG,sBAAsB,GAAG,kBAAkB,GAAG,cAAc,GAAG,oBAAoB,KAAKoR,GAAG,CAAC,SAASxS,EAAQC,EAAOL,GAGlS,IAAImJ,EAAI/I,EAAQ,iBACZmG,EAAMnG,EAAQ,gBACdyS,EAAkBzS,EAAQ,qBAC1BoG,EAAMpG,EAAQ,cACdsF,EAAetF,EAAQ,wBACvB0S,EAAO1S,EAAQ,eAEfgJ,EAAY,GAEhB,SAAS2J,EAASvR,GAChB,IAWMuF,EADAiM,EAVFrT,EAAIkB,KAqBR,SAASoS,IACP1M,EAAIhF,IAAIC,EAAS,YAGnB,SAAS0R,IACP3M,EAAItE,OAAOT,EAAS,YAxBtB7B,EAAEoB,SAAWoI,EAAEvC,MAAMiM,GACrBlT,EAAEsL,eAAiB,KACnBtL,EAAE8K,gBAAkB,KACpB9K,EAAEqL,aAAe,KACjBrL,EAAE6K,cAAgB,KAElB7K,EAAEwT,MAA0C,QAAlC3M,EAAIrD,IAAI3B,EAAS,aAC3B7B,EAAEyT,kBACIJ,EAAqBxR,EAAQsK,WAEjCtK,EAAQsK,YAAc,EACtB/E,EAASvF,EAAQsK,WAAa,EAC9BtK,EAAQsK,WAAakH,EACdjM,GAETpH,EAAEuL,yBAA2BvL,EAAEyT,iBAAmB5R,EAAQ6R,YAAc7R,EAAQoN,YAAc,EAC9FjP,EAAE0J,MAAQ,IAAI3D,EACd/F,EAAEuM,cAAgB1K,EAAQ0K,eAAiBrJ,SAU3ClD,EAAE6J,eAAiBhD,EAAIzD,SAASyD,EAAIpH,EAAE,MAAO,uBAAwBoC,GACrE7B,EAAE2J,WAAa9C,EAAIzD,SAASyD,EAAIpH,EAAE,MAAO,kBAAmBO,EAAE6J,gBAC9D7J,EAAE2J,WAAWgK,aAAa,WAAY,GACtC3T,EAAE0J,MAAMrE,KAAKrF,EAAE2J,WAAY,QAAS2J,GACpCtT,EAAE0J,MAAMrE,KAAKrF,EAAE2J,WAAY,OAAQ4J,GACnCvT,EAAE8N,iBAAmB,KACrB9N,EAAE+K,gBAAkB,KACpB/K,EAAEkM,eAAiB,KACnBlM,EAAE4T,iBAAmBpK,EAAE1C,MAAMD,EAAIrD,IAAIxD,EAAE6J,eAAgB,WACvD7J,EAAE6T,wBAA0B7T,EAAE4T,kBAAqB5T,EAAE4T,iBACrD5T,EAAE8T,cAAgB9T,EAAE6T,wBAA0B,KAAOrK,EAAE1C,MAAMD,EAAIrD,IAAIxD,EAAE6J,eAAgB,QACvF7J,EAAE+T,iBAAmBvK,EAAE1C,MAAMD,EAAIrD,IAAIxD,EAAE6J,eAAgB,oBAAsBL,EAAE1C,MAAMD,EAAIrD,IAAIxD,EAAE6J,eAAgB,qBAE/GhD,EAAIrD,IAAIxD,EAAE6J,eAAgB,UAAW,SACrC7J,EAAEgU,iBAAmBxK,EAAE1C,MAAMD,EAAIrD,IAAIxD,EAAE6J,eAAgB,eAAiBL,EAAE1C,MAAMD,EAAIrD,IAAIxD,EAAE6J,eAAgB,gBAC1GhD,EAAIrD,IAAIxD,EAAE6J,eAAgB,UAAW,IACrC7J,EAAEoL,WAAa,KACfpL,EAAEgL,WAAa,KAEfhL,EAAE8J,eAAiBjD,EAAIzD,SAASyD,EAAIpH,EAAE,MAAO,uBAAwBoC,GACrE7B,EAAE4J,WAAa/C,EAAIzD,SAASyD,EAAIpH,EAAE,MAAO,kBAAmBO,EAAE8J,gBAC9D9J,EAAE4J,WAAW+J,aAAa,WAAY,GACtC3T,EAAE0J,MAAMrE,KAAKrF,EAAE4J,WAAY,QAAS0J,GACpCtT,EAAE0J,MAAMrE,KAAKrF,EAAE4J,WAAY,OAAQ2J,GACnCvT,EAAE6N,iBAAmB,KACrB7N,EAAEsK,iBAAmB,KACrBtK,EAAE8M,cAAgB,KAClB9M,EAAEiU,gBAAkBzK,EAAE1C,MAAMD,EAAIrD,IAAIxD,EAAE8J,eAAgB,UACtD9J,EAAEkU,uBAAyBlU,EAAEiU,iBAAoBjU,EAAEiU,gBACnDjU,EAAEmU,eAAiBnU,EAAEkU,uBAAyB,KAAO1K,EAAE1C,MAAMD,EAAIrD,IAAIxD,EAAE8J,eAAgB,SACvF9J,EAAEoU,qBAAuBpU,EAAEwT,MAAQhK,EAAE5B,WAAW5H,EAAE4J,YAAc,KAChE5J,EAAEqU,iBAAmB7K,EAAE1C,MAAMD,EAAIrD,IAAIxD,EAAE8J,eAAgB,mBAAqBN,EAAE1C,MAAMD,EAAIrD,IAAIxD,EAAE8J,eAAgB,sBAC9GjD,EAAIrD,IAAIxD,EAAE8J,eAAgB,UAAW,SACrC9J,EAAEsU,kBAAoB9K,EAAE1C,MAAMD,EAAIrD,IAAIxD,EAAE8J,eAAgB,cAAgBN,EAAE1C,MAAMD,EAAIrD,IAAIxD,EAAE8J,eAAgB,iBAC1GjD,EAAIrD,IAAIxD,EAAE8J,eAAgB,UAAW,IACrC9J,EAAE4K,YAAc,KAChB5K,EAAEwK,WAAa,KAGjB,SAAS+J,EAAM1S,GACb,OAAOA,EAAQ2S,aAAa,cAW9BnU,EAAQuB,IAAM,SAAUC,GACtB,IAAI4S,EAAQtB,IAGZ,OAZF,SAAetR,EAAS6S,GACtB7S,EAAQ8R,aAAa,aAAce,GASnCC,CAAM9S,EAAS4S,GACfhL,EAAUgL,GAAS,IAAIrB,EAASvR,GACzB4H,EAAUgL,IAGnBpU,EAAQiC,OAAS,SAAUT,UAClB4H,EAAU8K,EAAM1S,IAZzB,SAAkBA,GAChBA,EAAQ+S,gBAAgB,cAYxBC,CAAShT,IAGXxB,EAAQgB,IAAM,SAAUQ,GACtB,OAAO4H,EAAU8K,EAAM1S,MAGvB,CAAC,eAAe,EAAE,aAAa,EAAE,uBAAuB,EAAE,cAAc,EAAE,gBAAgB,EAAE,oBAAoB,IAAIiT,GAAG,CAAC,SAASrU,EAAQC,EAAOL,GAGlJ,IAAImJ,EAAI/I,EAAQ,iBACZmG,EAAMnG,EAAQ,gBACdoG,EAAMpG,EAAQ,cACdgJ,EAAYhJ,EAAQ,eACpBwJ,EAAexJ,EAAQ,mBAE3B,SAASsU,EAAa/U,EAAGgV,GAOvB,OANIhV,EAAEoB,SAASwH,qBACboM,EAAYzO,KAAK0F,IAAI+I,EAAWhV,EAAEoB,SAASwH,qBAEzC5I,EAAEoB,SAASuH,qBACbqM,EAAYzO,KAAK0O,IAAID,EAAWhV,EAAEoB,SAASuH,qBAEtCqM,EAqCTtU,EAAOL,QAAU,SAAUwB,GACzB,IAOIqT,EAPAlV,EAAIyJ,EAAUpI,IAAIQ,GAEtB7B,EAAEsL,eAAiBzJ,EAAQoN,YAC3BjP,EAAE8K,gBAAkBjJ,EAAQkN,aAC5B/O,EAAEqL,aAAexJ,EAAQ6R,YACzB1T,EAAE6K,cAAgBhJ,EAAQiN,aAGrBjN,EAAQiO,SAAS9P,EAAE6J,mBACtBqL,EAAgBrO,EAAI/B,cAAcjD,EAAS,yBACzBtB,OAAS,GACzB2U,EAAcnC,SAAQ,SAAUoC,GAC9BtO,EAAIvE,OAAO6S,MAGftO,EAAIzD,SAASpD,EAAE6J,eAAgBhI,IAE5BA,EAAQiO,SAAS9P,EAAE8J,mBACtBoL,EAAgBrO,EAAI/B,cAAcjD,EAAS,yBACzBtB,OAAS,GACzB2U,EAAcnC,SAAQ,SAAUoC,GAC9BtO,EAAIvE,OAAO6S,MAGftO,EAAIzD,SAASpD,EAAE8J,eAAgBjI,KAG5B7B,EAAEoB,SAAS4H,iBAAmBhJ,EAAEsL,eAAiBtL,EAAEoB,SAASyH,oBAAsB7I,EAAEqL,cACvFrL,EAAE8N,kBAAmB,EACrB9N,EAAEoL,WAAapL,EAAEsL,eAAiBtL,EAAEgU,iBACpChU,EAAEgL,WAAahL,EAAEsL,eAAiBtL,EAAEoL,WACpCpL,EAAE+K,gBAAkBgK,EAAa/U,EAAGwJ,EAAE1C,MAAM9G,EAAEoL,WAAapL,EAAEsL,eAAiBtL,EAAEqL,eAChFrL,EAAEkM,eAAiB1C,EAAE1C,OAAO9G,EAAEuL,yBAA2B1J,EAAQsK,aAAenM,EAAEoL,WAAapL,EAAE+K,kBAAoB/K,EAAEqL,aAAerL,EAAEsL,kBAExItL,EAAE8N,kBAAmB,GAGlB9N,EAAEoB,SAAS6H,iBAAmBjJ,EAAE8K,gBAAkB9K,EAAEoB,SAAS0H,oBAAsB9I,EAAE6K,eACxF7K,EAAE6N,kBAAmB,EACrB7N,EAAE4K,YAAc5K,EAAE8K,gBAAkB9K,EAAEsU,kBACtCtU,EAAEwK,WAAaxK,EAAE8K,gBAAkB9K,EAAE4K,YACrC5K,EAAEsK,iBAAmByK,EAAa/U,EAAGwJ,EAAE1C,MAAM9G,EAAE4K,YAAc5K,EAAE8K,gBAAkB9K,EAAE6K,gBACnF7K,EAAE8M,cAAgBtD,EAAE1C,MAAMjF,EAAQkL,WAAa/M,EAAE4K,YAAc5K,EAAEsK,mBAAqBtK,EAAE6K,cAAgB7K,EAAE8K,mBAE1G9K,EAAE6N,kBAAmB,EAGnB7N,EAAEkM,gBAAkBlM,EAAEoL,WAAapL,EAAE+K,kBACvC/K,EAAEkM,eAAiBlM,EAAEoL,WAAapL,EAAE+K,iBAElC/K,EAAE8M,eAAiB9M,EAAE4K,YAAc5K,EAAEsK,mBACvCtK,EAAE8M,cAAgB9M,EAAE4K,YAAc5K,EAAEsK,kBAtFxC,SAAmBzI,EAAS7B,GAC1B,IAAIoV,EAAc,CAACC,MAAOrV,EAAEoL,YACxBpL,EAAEwT,MACJ4B,EAAYjK,KAAOnL,EAAEuL,yBAA2B1J,EAAQsK,WAAanM,EAAEsL,eAAiBtL,EAAEqL,aAE1F+J,EAAYjK,KAAOtJ,EAAQsK,WAEzBnM,EAAE6T,wBACJuB,EAAY3E,OAASzQ,EAAE4T,iBAAmB/R,EAAQkL,UAElDqI,EAAYzK,IAAM3K,EAAE8T,cAAgBjS,EAAQkL,UAE9ClG,EAAIrD,IAAIxD,EAAE6J,eAAgBuL,GAE1B,IAAIE,EAAc,CAAC3K,IAAK9I,EAAQkL,UAAWwI,OAAQvV,EAAE4K,aACjD5K,EAAEkU,uBACAlU,EAAEwT,MACJ8B,EAAYhF,MAAQtQ,EAAEqL,cAAgBrL,EAAEuL,yBAA2B1J,EAAQsK,YAAcnM,EAAEiU,gBAAkBjU,EAAEoU,qBAE/GkB,EAAYhF,MAAQtQ,EAAEiU,gBAAkBpS,EAAQsK,WAG9CnM,EAAEwT,MACJ8B,EAAYnK,KAAOnL,EAAEuL,yBAA2B1J,EAAQsK,WAAgC,EAAnBnM,EAAEsL,eAAqBtL,EAAEqL,aAAerL,EAAEmU,eAAiBnU,EAAEoU,qBAElIkB,EAAYnK,KAAOnL,EAAEmU,eAAiBtS,EAAQsK,WAGlDtF,EAAIrD,IAAIxD,EAAE8J,eAAgBwL,GAE1BzO,EAAIrD,IAAIxD,EAAE2J,WAAY,CAACwB,KAAMnL,EAAEkM,eAAgBmJ,MAAOrV,EAAE+K,gBAAkB/K,EAAE+T,mBAC5ElN,EAAIrD,IAAIxD,EAAE4J,WAAY,CAACe,IAAK3K,EAAE8M,cAAeyI,OAAQvV,EAAEsK,iBAAmBtK,EAAEqU,mBA0D5EmB,CAAU3T,EAAS7B,GAEfA,EAAE8N,iBACJlH,EAAIhF,IAAIC,EAAS,gBAEjB+E,EAAItE,OAAOT,EAAS,eACpB7B,EAAE+K,gBAAkB,EACpB/K,EAAEkM,eAAiB,EACnBjC,EAAapI,EAAS,OAAQ,IAE5B7B,EAAE6N,iBACJjH,EAAIhF,IAAIC,EAAS,gBAEjB+E,EAAItE,OAAOT,EAAS,eACpB7B,EAAEsK,iBAAmB,EACrBtK,EAAE8M,cAAgB,EAClB7C,EAAapI,EAAS,MAAO,MAI/B,CAAC,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,GAAG,kBAAkB,KAAK4T,GAAG,CAAC,SAAShV,EAAQC,EAAOL,GAGzH,IAYIqV,EACAC,EAbAlM,EAAYhJ,EAAQ,eAEpBmV,EAAU1S,SAAS2S,YAAY,SAC/BC,EAAY5S,SAAS2S,YAAY,SACjCE,EAAY7S,SAAS2S,YAAY,SACjCG,EAAa9S,SAAS2S,YAAY,SAClCI,EAAS/S,SAAS2S,YAAY,SAC9BK,EAAShT,SAAS2S,YAAY,SAC9BM,EAAcjT,SAAS2S,YAAY,SACnCO,EAAYlT,SAAS2S,YAAY,SACjCQ,EAAcnT,SAAS2S,YAAY,SACnCS,EAAYpT,SAAS2S,YAAY,SAIrCD,EAAQW,UAAU,gBAAgB,GAAM,GACxCT,EAAUS,UAAU,kBAAkB,GAAM,GAC5CR,EAAUQ,UAAU,kBAAkB,GAAM,GAC5CP,EAAWO,UAAU,mBAAmB,GAAM,GAC9CN,EAAOM,UAAU,eAAe,GAAM,GACtCL,EAAOK,UAAU,eAAe,GAAM,GACtCJ,EAAYI,UAAU,oBAAoB,GAAM,GAChDH,EAAUG,UAAU,kBAAkB,GAAM,GAC5CF,EAAYE,UAAU,oBAAoB,GAAM,GAChDD,EAAUC,UAAU,kBAAkB,GAAM,GAE5C7V,EAAOL,QAAU,SAAUwB,EAASiG,EAAM0O,GACxC,QAAuB,IAAZ3U,EACT,KAAM,4DAGR,QAAoB,IAATiG,EACT,KAAM,yDAGR,QAAqB,IAAV0O,EACT,KAAM,yDAGK,QAAT1O,GAAkB0O,GAAS,IAC7B3U,EAAQkL,UAAYyJ,EAAQ,EAC5B3U,EAAQ4U,cAAcJ,IAGX,SAATvO,GAAmB0O,GAAS,IAC9B3U,EAAQsK,WAAaqK,EAAQ,EAC7B3U,EAAQ4U,cAAcN,IAGxB,IAAInW,EAAIyJ,EAAUpI,IAAIQ,GAET,QAATiG,GAAkB0O,GAASxW,EAAE6K,cAAgB7K,EAAE8K,mBAEjD0L,EAAQxW,EAAE6K,cAAgB7K,EAAE8K,iBAChBjJ,EAAQkL,WAAa,EAE/ByJ,EAAQ3U,EAAQkL,UAEhBlL,EAAQkL,UAAYyJ,EAEtB3U,EAAQ4U,cAAcH,IAGX,SAATxO,GAAmB0O,GAASxW,EAAEqL,aAAerL,EAAEsL,kBAEjDkL,EAAQxW,EAAEqL,aAAerL,EAAEsL,gBACfzJ,EAAQsK,YAAc,EAEhCqK,EAAQ3U,EAAQsK,WAEhBtK,EAAQsK,WAAaqK,EAEvB3U,EAAQ4U,cAAcL,IAGnBV,IACHA,EAAU7T,EAAQkL,WAGf4I,IACHA,EAAW9T,EAAQsK,YAGR,QAATrE,GAAkB0O,EAAQd,GAC5B7T,EAAQ4U,cAAcb,GAGX,QAAT9N,GAAkB0O,EAAQd,GAC5B7T,EAAQ4U,cAAcX,GAGX,SAAThO,GAAmB0O,EAAQb,GAC7B9T,EAAQ4U,cAAcV,GAGX,SAATjO,GAAmB0O,EAAQb,GAC7B9T,EAAQ4U,cAAcT,GAGX,QAATlO,IACFjG,EAAQkL,UAAY2I,EAAUc,EAC9B3U,EAAQ4U,cAAcR,IAGX,SAATnO,IACFjG,EAAQsK,WAAawJ,EAAWa,EAChC3U,EAAQ4U,cAAcP,MAKxB,CAAC,cAAc,KAAKQ,GAAG,CAAC,SAASjW,EAAQC,EAAOL,GAGlD,IAAImJ,EAAI/I,EAAQ,iBACZoG,EAAMpG,EAAQ,cACdgJ,EAAYhJ,EAAQ,eACpBuJ,EAAiBvJ,EAAQ,qBACzBwJ,EAAexJ,EAAQ,mBAE3BC,EAAOL,QAAU,SAAUwB,GACzB,IAAI7B,EAAIyJ,EAAUpI,IAAIQ,GAEjB7B,IAKLA,EAAEuL,yBAA2BvL,EAAEyT,iBAAmB5R,EAAQ6R,YAAc7R,EAAQoN,YAAc,EAG9FpI,EAAIrD,IAAIxD,EAAE6J,eAAgB,UAAW,SACrChD,EAAIrD,IAAIxD,EAAE8J,eAAgB,UAAW,SACrC9J,EAAEgU,iBAAmBxK,EAAE1C,MAAMD,EAAIrD,IAAIxD,EAAE6J,eAAgB,eAAiBL,EAAE1C,MAAMD,EAAIrD,IAAIxD,EAAE6J,eAAgB,gBAC1G7J,EAAEsU,kBAAoB9K,EAAE1C,MAAMD,EAAIrD,IAAIxD,EAAE8J,eAAgB,cAAgBN,EAAE1C,MAAMD,EAAIrD,IAAIxD,EAAE8J,eAAgB,iBAG1GjD,EAAIrD,IAAIxD,EAAE6J,eAAgB,UAAW,QACrChD,EAAIrD,IAAIxD,EAAE8J,eAAgB,UAAW,QAErCE,EAAenI,GAGfoI,EAAapI,EAAS,MAAOA,EAAQkL,WACrC9C,EAAapI,EAAS,OAAQA,EAAQsK,YAEtCtF,EAAIrD,IAAIxD,EAAE6J,eAAgB,UAAW,IACrChD,EAAIrD,IAAIxD,EAAE8J,eAAgB,UAAW,OAGrC,CAAC,aAAa,EAAE,gBAAgB,EAAE,cAAc,GAAG,oBAAoB,GAAG,kBAAkB,MAAM,GAAG,CAAC,K,8CCviDxG,M,IACA,O,mDAEApI,EAAO,CACL,MACA,KACA,QACA,QACA,QACA,QACA,QACA,QACA,MACA,QACA,cAXF,gBAYUiV,EAASC,EAAGC,GACpB,IAAMC,EAAQrW,EAAQ,KAEtB,IAAIoW,EACJC,EAAM5T,SAAS6T,iBAAiB,UAAU,CACxCC,WAAY,cACXC,UAEHH,EAAM5T,SAAS6T,iBAAiB,kBAAmB,CACjDC,WAAY,YACZE,OAAQ,WACN,0DAA8DC,MAAK,SAACzW,IAElE0W,EADsB1W,EAAO2W,cAG/B,iEAA6FF,MAAK,SAACzW,GACjG,IAAM4W,EAAQ5W,EAAO2W,QACrBE,UAASC,OAAO,wBAACF,EAAD,CAAOG,KAAK,SAAWvU,SAASwU,eAAe,oBAGlET,UAEHL,GAAE,WACAA,EAAE,+BAA+Be,GAAG,SAAS,WACvCf,EAAE1V,MAAM0W,SAAS,YACnB1T,OAAO2T,SAASC,KAAO,YACdlB,EAAE1V,MAAM0W,SAAS,QAC1BhB,EAAE1V,MAAM6W,KAAK,iBAAiBC,QAAQ,SAC7B9T,OAAO+T,WAAa,MAC7BrB,EAAE1V,MAAM6W,KAAK,sBAAsBG,eAKzCtB,EAAE,cAAcuB,kBAChBvB,EAAE,wBAAwBe,GAAG,SAAS,WACpCf,EAAE,wBAAwBwB,KAAK,WAAYxB,EAAE,wBAAwBwB,KAAK,YAC1ExB,EAAE,mBAAmBsB,YAIvB,IAAMG,EAAKzB,EAAE,iBACT0B,GAAW,GACc,SAAvBC,MACFD,EACFD,EAAGG,GAAGF,EAAUD,EAAG9X,QAChBkY,OAAO,KACPC,MAAM,KACNC,QAAQ,IAAKJ,GAElBA,GAEKV,SAASe,SAASC,SAAS,0BAC9B,0DAAoF1B,MAAK,SAACzW,GAAW,IAC3FoY,EAAkBrY,EAAQ,IAA1BqY,cACAxP,EAAU7I,EAAQ,MAAlB6I,MACFyP,EAASrY,EAAO2W,QACtBE,UAASC,OAAO,wBAACsB,EAAD,CAAexP,MAAOA,GAAO,wBAACyP,EAAD,OAA4B7V,SAASwU,eAAe,kBArEvG,4B,0CCHAhW,EAAO,CACL,MACA,WAFF,gBAGSiV,EAASC,GAEhB,IAAIoC,EAAkB,WAChBpC,EAAE1S,QAAQ6I,YAAc,IAC1B6J,EAAE,uBAAuBqC,OAEzBrC,EAAE,uBAAuBsC,QAKzBvC,EAAQwC,IAAIC,SAAS,UAAUC,SACjCL,IACApC,EAAE1T,UAAUyU,GAAG,QAAS,uBAAuB,WAC7Cf,EAAE,cAAc0C,QAAQ,CAAEvM,UAAW,GAAK,WAE5C6J,EAAE1S,QAAQqV,QAAO,WACfP,SApBN,4B,0CCAAtX,EAAO,CACL,WADF,gBAEUkV,GAURA,EAAE,kBAAkB4C,OAAO,0DAC3B5C,EAAE,6BAA6Be,GAAG,SAAS,WACzC,IAAI8B,EAAqB7C,EAAE1V,MAAMwY,QAAQ,kBAAkB3B,KAAK,2BAC5D4B,EAAiBF,EAAmB5V,MACxC4V,EAAmB5V,IAAI+S,EAAE1V,MAAM0Y,KAAK,OAChCD,IAAmB/C,EAAE1V,MAAM0Y,KAAK,QAClChD,EAAE1V,MAAMkX,KAAK,WAAW,GACxBqB,EAAmB5V,IAAI,SAnB7B,4B,0CCAAnC,EAAO,CACL,WADF,gBAEUkV,GAIRA,GAAE,WACAA,EAAE,aAAazV,MAAK,WAClByV,EAAE1V,MAAMqU,OAAOqB,EAAE1V,MAAM6W,KAAK,YAAY8B,cAAgBjD,EAAE1V,MAAM6W,KAAK,6BAA6B8B,kBAEpGjD,EAAE,QAAQe,GAAG,QAAS,kBAAkB,WACrBf,EAAE1V,MAAMwY,QAAQ,aACtBnE,OAAOqB,EAAE1V,MAAM4Y,OAAOD,cAAgBjD,EAAE1V,MAAM4Y,OAAOA,OAAOD,sBAZ7E,4B,0CCAAnY,EAAO,CACL,KACA,WAFF,gBAGSkV,EAAGmD,GAIVA,EAAGC,gBAAgBC,qBAAuB,CAExCC,KAAM,SAASrY,EAASsY,EAAeC,EAAqBC,EAAWC,GAErE1D,EAAE/U,GAAS0Y,OAAM,WACf,IACIC,EACA3K,EAFM3M,SAGFuX,KAAKC,kBACXF,EAAQtX,SAASuX,KAAKC,mBAChBC,kBAAkB9Y,GACxB2Y,EAAMI,UACG1W,OAAO6L,eAChBF,EAAY3L,OAAO6L,gBACnByK,EAAQtX,SAAS2X,eACXC,mBAAmBjZ,GACzBgO,EAAUkL,kBACVlL,EAAUmL,SAASR,UAxB7B,4B,mFCEiCS,EAApBA,osIAiKQ3R,EAARA,MAAQ,CACnBxD,KAAM,KACNoV,gBAAiB,WACjBC,MAAO,CACLC,KAAM,iBACN/D,QAAS,CACPgE,UAAW,4BACXC,KAAM,OACNC,KAAM,cAERC,MAAO,CACLH,UAAW,uBACXC,KAAM,MACNC,KAAM,OAERE,QAAS,CACPJ,UAAW,6BACXC,KAAM,SACNC,KAAM,UAGVG,aAAc,CACZC,OAAQ,GACRC,OAAQ,CACNC,OAAQ,UACRC,SAAU,OAEZC,OAAQ,CACNX,KAAM,mDACNY,8BAA+B,WAC/BC,oBAAqB,aACrBC,wBAAyB,MACzBC,MAAO,CACLN,OAAQ,uBACRO,cAAe,wBACfC,iBAAkB,OAEpBC,eAAgB,QAChBC,aAAc,QACdC,aAAc,aACdC,MAAO,CACLrB,KAAM,qBACNS,OAAQ,4BAGZa,MAAO,CACLC,UAAW,QACXpB,KAAM,UAERqB,MAAO,QACPC,QAAS,CACPC,WAAY,WACZjB,OAAQ,oBACRkB,YAAa,QACbC,YAAa,CACXF,WAAY,iBAEdG,UAAW,SAGfC,MAAO,CACLC,YAAa,QACbC,iBAAkB","file":"77-b78ba52823f3c39e284b.js","sourcesContent":["/* perfect-scrollbar v0.6.12 */\r\n(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar ps = require('../main');\r\nvar psInstances = require('../plugin/instances');\r\n\r\nfunction mountJQuery(jQuery) {\r\n  jQuery.fn.perfectScrollbar = function (settingOrCommand) {\r\n    return this.each(function () {\r\n      if (typeof settingOrCommand === 'object' ||\r\n          typeof settingOrCommand === 'undefined') {\r\n        // If it's an object or none, initialize.\r\n        var settings = settingOrCommand;\r\n\r\n        if (!psInstances.get(this)) {\r\n          ps.initialize(this, settings);\r\n        }\r\n      } else {\r\n        // Unless, it may be a command.\r\n        var command = settingOrCommand;\r\n\r\n        if (command === 'update') {\r\n          ps.update(this);\r\n        } else if (command === 'destroy') {\r\n          ps.destroy(this);\r\n        }\r\n      }\r\n    });\r\n  };\r\n}\r\n\r\nif (typeof define === 'function' && define.amd) {\r\n  // AMD. Register as an anonymous module.\r\n  define(['jquery'], mountJQuery);\r\n} else {\r\n  var jq = window.jQuery ? window.jQuery : window.$;\r\n  if (typeof jq !== 'undefined') {\r\n    mountJQuery(jq);\r\n  }\r\n}\r\n\r\nmodule.exports = mountJQuery;\r\n\r\n},{\"../main\":7,\"../plugin/instances\":18}],2:[function(require,module,exports){\r\n'use strict';\r\n\r\nfunction oldAdd(element, className) {\r\n  var classes = element.className.split(' ');\r\n  if (classes.indexOf(className) < 0) {\r\n    classes.push(className);\r\n  }\r\n  element.className = classes.join(' ');\r\n}\r\n\r\nfunction oldRemove(element, className) {\r\n  var classes = element.className.split(' ');\r\n  var idx = classes.indexOf(className);\r\n  if (idx >= 0) {\r\n    classes.splice(idx, 1);\r\n  }\r\n  element.className = classes.join(' ');\r\n}\r\n\r\nexports.add = function (element, className) {\r\n  if (element.classList) {\r\n    element.classList.add(className);\r\n  } else {\r\n    oldAdd(element, className);\r\n  }\r\n};\r\n\r\nexports.remove = function (element, className) {\r\n  if (element.classList) {\r\n    element.classList.remove(className);\r\n  } else {\r\n    oldRemove(element, className);\r\n  }\r\n};\r\n\r\nexports.list = function (element) {\r\n  if (element.classList) {\r\n    return Array.prototype.slice.apply(element.classList);\r\n  } else {\r\n    return element.className.split(' ');\r\n  }\r\n};\r\n\r\n},{}],3:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar DOM = {};\r\n\r\nDOM.e = function (tagName, className) {\r\n  var element = document.createElement(tagName);\r\n  element.className = className;\r\n  return element;\r\n};\r\n\r\nDOM.appendTo = function (child, parent) {\r\n  parent.appendChild(child);\r\n  return child;\r\n};\r\n\r\nfunction cssGet(element, styleName) {\r\n  return window.getComputedStyle(element)[styleName];\r\n}\r\n\r\nfunction cssSet(element, styleName, styleValue) {\r\n  if (typeof styleValue === 'number') {\r\n    styleValue = styleValue.toString() + 'px';\r\n  }\r\n  element.style[styleName] = styleValue;\r\n  return element;\r\n}\r\n\r\nfunction cssMultiSet(element, obj) {\r\n  for (var key in obj) {\r\n    var val = obj[key];\r\n    if (typeof val === 'number') {\r\n      val = val.toString() + 'px';\r\n    }\r\n    element.style[key] = val;\r\n  }\r\n  return element;\r\n}\r\n\r\nDOM.css = function (element, styleNameOrObject, styleValue) {\r\n  if (typeof styleNameOrObject === 'object') {\r\n    // multiple set with object\r\n    return cssMultiSet(element, styleNameOrObject);\r\n  } else {\r\n    if (typeof styleValue === 'undefined') {\r\n      return cssGet(element, styleNameOrObject);\r\n    } else {\r\n      return cssSet(element, styleNameOrObject, styleValue);\r\n    }\r\n  }\r\n};\r\n\r\nDOM.matches = function (element, query) {\r\n  if (typeof element.matches !== 'undefined') {\r\n    return element.matches(query);\r\n  } else {\r\n    if (typeof element.matchesSelector !== 'undefined') {\r\n      return element.matchesSelector(query);\r\n    } else if (typeof element.webkitMatchesSelector !== 'undefined') {\r\n      return element.webkitMatchesSelector(query);\r\n    } else if (typeof element.mozMatchesSelector !== 'undefined') {\r\n      return element.mozMatchesSelector(query);\r\n    } else if (typeof element.msMatchesSelector !== 'undefined') {\r\n      return element.msMatchesSelector(query);\r\n    }\r\n  }\r\n};\r\n\r\nDOM.remove = function (element) {\r\n  if (typeof element.remove !== 'undefined') {\r\n    element.remove();\r\n  } else {\r\n    if (element.parentNode) {\r\n      element.parentNode.removeChild(element);\r\n    }\r\n  }\r\n};\r\n\r\nDOM.queryChildren = function (element, selector) {\r\n  return Array.prototype.filter.call(element.childNodes, function (child) {\r\n    return DOM.matches(child, selector);\r\n  });\r\n};\r\n\r\nmodule.exports = DOM;\r\n\r\n},{}],4:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar EventElement = function (element) {\r\n  this.element = element;\r\n  this.events = {};\r\n};\r\n\r\nEventElement.prototype.bind = function (eventName, handler) {\r\n  if (typeof this.events[eventName] === 'undefined') {\r\n    this.events[eventName] = [];\r\n  }\r\n  this.events[eventName].push(handler);\r\n  this.element.addEventListener(eventName, handler, false);\r\n};\r\n\r\nEventElement.prototype.unbind = function (eventName, handler) {\r\n  var isHandlerProvided = (typeof handler !== 'undefined');\r\n  this.events[eventName] = this.events[eventName].filter(function (hdlr) {\r\n    if (isHandlerProvided && hdlr !== handler) {\r\n      return true;\r\n    }\r\n    this.element.removeEventListener(eventName, hdlr, false);\r\n    return false;\r\n  }, this);\r\n};\r\n\r\nEventElement.prototype.unbindAll = function () {\r\n  for (var name in this.events) {\r\n    this.unbind(name);\r\n  }\r\n};\r\n\r\nvar EventManager = function () {\r\n  this.eventElements = [];\r\n};\r\n\r\nEventManager.prototype.eventElement = function (element) {\r\n  var ee = this.eventElements.filter(function (eventElement) {\r\n    return eventElement.element === element;\r\n  })[0];\r\n  if (typeof ee === 'undefined') {\r\n    ee = new EventElement(element);\r\n    this.eventElements.push(ee);\r\n  }\r\n  return ee;\r\n};\r\n\r\nEventManager.prototype.bind = function (element, eventName, handler) {\r\n  this.eventElement(element).bind(eventName, handler);\r\n};\r\n\r\nEventManager.prototype.unbind = function (element, eventName, handler) {\r\n  this.eventElement(element).unbind(eventName, handler);\r\n};\r\n\r\nEventManager.prototype.unbindAll = function () {\r\n  for (var i = 0; i < this.eventElements.length; i++) {\r\n    this.eventElements[i].unbindAll();\r\n  }\r\n};\r\n\r\nEventManager.prototype.once = function (element, eventName, handler) {\r\n  var ee = this.eventElement(element);\r\n  var onceHandler = function (e) {\r\n    ee.unbind(eventName, onceHandler);\r\n    handler(e);\r\n  };\r\n  ee.bind(eventName, onceHandler);\r\n};\r\n\r\nmodule.exports = EventManager;\r\n\r\n},{}],5:[function(require,module,exports){\r\n'use strict';\r\n\r\nmodule.exports = (function () {\r\n  function s4() {\r\n    return Math.floor((1 + Math.random()) * 0x10000)\r\n               .toString(16)\r\n               .substring(1);\r\n  }\r\n  return function () {\r\n    return s4() + s4() + '-' + s4() + '-' + s4() + '-' +\r\n           s4() + '-' + s4() + s4() + s4();\r\n  };\r\n})();\r\n\r\n},{}],6:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar cls = require('./class');\r\nvar dom = require('./dom');\r\n\r\nvar toInt = exports.toInt = function (x) {\r\n  return parseInt(x, 10) || 0;\r\n};\r\n\r\nvar clone = exports.clone = function (obj) {\r\n  if (obj === null) {\r\n    return null;\r\n  } else if (obj.constructor === Array) {\r\n    return obj.map(clone);\r\n  } else if (typeof obj === 'object') {\r\n    var result = {};\r\n    for (var key in obj) {\r\n      result[key] = clone(obj[key]);\r\n    }\r\n    return result;\r\n  } else {\r\n    return obj;\r\n  }\r\n};\r\n\r\nexports.extend = function (original, source) {\r\n  var result = clone(original);\r\n  for (var key in source) {\r\n    result[key] = clone(source[key]);\r\n  }\r\n  return result;\r\n};\r\n\r\nexports.isEditable = function (el) {\r\n  return dom.matches(el, \"input,[contenteditable]\") ||\r\n         dom.matches(el, \"select,[contenteditable]\") ||\r\n         dom.matches(el, \"textarea,[contenteditable]\") ||\r\n         dom.matches(el, \"button,[contenteditable]\");\r\n};\r\n\r\nexports.removePsClasses = function (element) {\r\n  var clsList = cls.list(element);\r\n  for (var i = 0; i < clsList.length; i++) {\r\n    var className = clsList[i];\r\n    if (className.indexOf('ps-') === 0) {\r\n      cls.remove(element, className);\r\n    }\r\n  }\r\n};\r\n\r\nexports.outerWidth = function (element) {\r\n  return toInt(dom.css(element, 'width')) +\r\n         toInt(dom.css(element, 'paddingLeft')) +\r\n         toInt(dom.css(element, 'paddingRight')) +\r\n         toInt(dom.css(element, 'borderLeftWidth')) +\r\n         toInt(dom.css(element, 'borderRightWidth'));\r\n};\r\n\r\nexports.startScrolling = function (element, axis) {\r\n  cls.add(element, 'ps-in-scrolling');\r\n  if (typeof axis !== 'undefined') {\r\n    cls.add(element, 'ps-' + axis);\r\n  } else {\r\n    cls.add(element, 'ps-x');\r\n    cls.add(element, 'ps-y');\r\n  }\r\n};\r\n\r\nexports.stopScrolling = function (element, axis) {\r\n  cls.remove(element, 'ps-in-scrolling');\r\n  if (typeof axis !== 'undefined') {\r\n    cls.remove(element, 'ps-' + axis);\r\n  } else {\r\n    cls.remove(element, 'ps-x');\r\n    cls.remove(element, 'ps-y');\r\n  }\r\n};\r\n\r\nexports.env = {\r\n  isWebKit: 'WebkitAppearance' in document.documentElement.style,\r\n  supportsTouch: (('ontouchstart' in window) || window.DocumentTouch && document instanceof window.DocumentTouch),\r\n  supportsIePointer: window.navigator.msMaxTouchPoints !== null\r\n};\r\n\r\n},{\"./class\":2,\"./dom\":3}],7:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar destroy = require('./plugin/destroy');\r\nvar initialize = require('./plugin/initialize');\r\nvar update = require('./plugin/update');\r\n\r\nmodule.exports = {\r\n  initialize: initialize,\r\n  update: update,\r\n  destroy: destroy\r\n};\r\n\r\n},{\"./plugin/destroy\":9,\"./plugin/initialize\":17,\"./plugin/update\":21}],8:[function(require,module,exports){\r\n'use strict';\r\n\r\nmodule.exports = {\r\n  handlers: ['click-rail', 'drag-scrollbar', 'keyboard', 'wheel', 'touch'],\r\n  maxScrollbarLength: null,\r\n  minScrollbarLength: null,\r\n  scrollXMarginOffset: 0,\r\n  scrollYMarginOffset: 0,\r\n  stopPropagationOnClick: true,\r\n  suppressScrollX: false,\r\n  suppressScrollY: false,\r\n  swipePropagation: true,\r\n  useBothWheelAxes: false,\r\n  wheelPropagation: false,\r\n  wheelSpeed: 1,\r\n  theme: 'default'\r\n};\r\n\r\n},{}],9:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar _ = require('../lib/helper');\r\nvar dom = require('../lib/dom');\r\nvar instances = require('./instances');\r\n\r\nmodule.exports = function (element) {\r\n  var i = instances.get(element);\r\n\r\n  if (!i) {\r\n    return;\r\n  }\r\n\r\n  i.event.unbindAll();\r\n  dom.remove(i.scrollbarX);\r\n  dom.remove(i.scrollbarY);\r\n  dom.remove(i.scrollbarXRail);\r\n  dom.remove(i.scrollbarYRail);\r\n  _.removePsClasses(element);\r\n\r\n  instances.remove(element);\r\n};\r\n\r\n},{\"../lib/dom\":3,\"../lib/helper\":6,\"./instances\":18}],10:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar _ = require('../../lib/helper');\r\nvar instances = require('../instances');\r\nvar updateGeometry = require('../update-geometry');\r\nvar updateScroll = require('../update-scroll');\r\n\r\nfunction bindClickRailHandler(element, i) {\r\n  function pageOffset(el) {\r\n    return el.getBoundingClientRect();\r\n  }\r\n  var stopPropagation = function (e) { e.stopPropagation(); };\r\n\r\n  if (i.settings.stopPropagationOnClick) {\r\n    i.event.bind(i.scrollbarY, 'click', stopPropagation);\r\n  }\r\n  i.event.bind(i.scrollbarYRail, 'click', function (e) {\r\n    var halfOfScrollbarLength = _.toInt(i.scrollbarYHeight / 2);\r\n    var positionTop = i.railYRatio * (e.pageY - window.pageYOffset - pageOffset(i.scrollbarYRail).top - halfOfScrollbarLength);\r\n    var maxPositionTop = i.railYRatio * (i.railYHeight - i.scrollbarYHeight);\r\n    var positionRatio = positionTop / maxPositionTop;\r\n\r\n    if (positionRatio < 0) {\r\n      positionRatio = 0;\r\n    } else if (positionRatio > 1) {\r\n      positionRatio = 1;\r\n    }\r\n\r\n    updateScroll(element, 'top', (i.contentHeight - i.containerHeight) * positionRatio);\r\n    updateGeometry(element);\r\n\r\n    e.stopPropagation();\r\n  });\r\n\r\n  if (i.settings.stopPropagationOnClick) {\r\n    i.event.bind(i.scrollbarX, 'click', stopPropagation);\r\n  }\r\n  i.event.bind(i.scrollbarXRail, 'click', function (e) {\r\n    var halfOfScrollbarLength = _.toInt(i.scrollbarXWidth / 2);\r\n    var positionLeft = i.railXRatio * (e.pageX - window.pageXOffset - pageOffset(i.scrollbarXRail).left - halfOfScrollbarLength);\r\n    var maxPositionLeft = i.railXRatio * (i.railXWidth - i.scrollbarXWidth);\r\n    var positionRatio = positionLeft / maxPositionLeft;\r\n\r\n    if (positionRatio < 0) {\r\n      positionRatio = 0;\r\n    } else if (positionRatio > 1) {\r\n      positionRatio = 1;\r\n    }\r\n\r\n    updateScroll(element, 'left', ((i.contentWidth - i.containerWidth) * positionRatio) - i.negativeScrollAdjustment);\r\n    updateGeometry(element);\r\n\r\n    e.stopPropagation();\r\n  });\r\n}\r\n\r\nmodule.exports = function (element) {\r\n  var i = instances.get(element);\r\n  bindClickRailHandler(element, i);\r\n};\r\n\r\n},{\"../../lib/helper\":6,\"../instances\":18,\"../update-geometry\":19,\"../update-scroll\":20}],11:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar _ = require('../../lib/helper');\r\nvar dom = require('../../lib/dom');\r\nvar instances = require('../instances');\r\nvar updateGeometry = require('../update-geometry');\r\nvar updateScroll = require('../update-scroll');\r\n\r\nfunction bindMouseScrollXHandler(element, i) {\r\n  var currentLeft = null;\r\n  var currentPageX = null;\r\n\r\n  function updateScrollLeft(deltaX) {\r\n    var newLeft = currentLeft + (deltaX * i.railXRatio);\r\n    var maxLeft = Math.max(0, i.scrollbarXRail.getBoundingClientRect().left) + (i.railXRatio * (i.railXWidth - i.scrollbarXWidth));\r\n\r\n    if (newLeft < 0) {\r\n      i.scrollbarXLeft = 0;\r\n    } else if (newLeft > maxLeft) {\r\n      i.scrollbarXLeft = maxLeft;\r\n    } else {\r\n      i.scrollbarXLeft = newLeft;\r\n    }\r\n\r\n    var scrollLeft = _.toInt(i.scrollbarXLeft * (i.contentWidth - i.containerWidth) / (i.containerWidth - (i.railXRatio * i.scrollbarXWidth))) - i.negativeScrollAdjustment;\r\n    updateScroll(element, 'left', scrollLeft);\r\n  }\r\n\r\n  var mouseMoveHandler = function (e) {\r\n    updateScrollLeft(e.pageX - currentPageX);\r\n    updateGeometry(element);\r\n    e.stopPropagation();\r\n    e.preventDefault();\r\n  };\r\n\r\n  var mouseUpHandler = function () {\r\n    _.stopScrolling(element, 'x');\r\n    i.event.unbind(i.ownerDocument, 'mousemove', mouseMoveHandler);\r\n  };\r\n\r\n  i.event.bind(i.scrollbarX, 'mousedown', function (e) {\r\n    currentPageX = e.pageX;\r\n    currentLeft = _.toInt(dom.css(i.scrollbarX, 'left')) * i.railXRatio;\r\n    _.startScrolling(element, 'x');\r\n\r\n    i.event.bind(i.ownerDocument, 'mousemove', mouseMoveHandler);\r\n    i.event.once(i.ownerDocument, 'mouseup', mouseUpHandler);\r\n\r\n    e.stopPropagation();\r\n    e.preventDefault();\r\n  });\r\n}\r\n\r\nfunction bindMouseScrollYHandler(element, i) {\r\n  var currentTop = null;\r\n  var currentPageY = null;\r\n\r\n  function updateScrollTop(deltaY) {\r\n    var newTop = currentTop + (deltaY * i.railYRatio);\r\n    var maxTop = Math.max(0, i.scrollbarYRail.getBoundingClientRect().top) + (i.railYRatio * (i.railYHeight - i.scrollbarYHeight));\r\n\r\n    if (newTop < 0) {\r\n      i.scrollbarYTop = 0;\r\n    } else if (newTop > maxTop) {\r\n      i.scrollbarYTop = maxTop;\r\n    } else {\r\n      i.scrollbarYTop = newTop;\r\n    }\r\n\r\n    var scrollTop = _.toInt(i.scrollbarYTop * (i.contentHeight - i.containerHeight) / (i.containerHeight - (i.railYRatio * i.scrollbarYHeight)));\r\n    updateScroll(element, 'top', scrollTop);\r\n  }\r\n\r\n  var mouseMoveHandler = function (e) {\r\n    updateScrollTop(e.pageY - currentPageY);\r\n    updateGeometry(element);\r\n    e.stopPropagation();\r\n    e.preventDefault();\r\n  };\r\n\r\n  var mouseUpHandler = function () {\r\n    _.stopScrolling(element, 'y');\r\n    i.event.unbind(i.ownerDocument, 'mousemove', mouseMoveHandler);\r\n  };\r\n\r\n  i.event.bind(i.scrollbarY, 'mousedown', function (e) {\r\n    currentPageY = e.pageY;\r\n    currentTop = _.toInt(dom.css(i.scrollbarY, 'top')) * i.railYRatio;\r\n    _.startScrolling(element, 'y');\r\n\r\n    i.event.bind(i.ownerDocument, 'mousemove', mouseMoveHandler);\r\n    i.event.once(i.ownerDocument, 'mouseup', mouseUpHandler);\r\n\r\n    e.stopPropagation();\r\n    e.preventDefault();\r\n  });\r\n}\r\n\r\nmodule.exports = function (element) {\r\n  var i = instances.get(element);\r\n  bindMouseScrollXHandler(element, i);\r\n  bindMouseScrollYHandler(element, i);\r\n};\r\n\r\n},{\"../../lib/dom\":3,\"../../lib/helper\":6,\"../instances\":18,\"../update-geometry\":19,\"../update-scroll\":20}],12:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar _ = require('../../lib/helper');\r\nvar dom = require('../../lib/dom');\r\nvar instances = require('../instances');\r\nvar updateGeometry = require('../update-geometry');\r\nvar updateScroll = require('../update-scroll');\r\n\r\nfunction bindKeyboardHandler(element, i) {\r\n  var hovered = false;\r\n  i.event.bind(element, 'mouseenter', function () {\r\n    hovered = true;\r\n  });\r\n  i.event.bind(element, 'mouseleave', function () {\r\n    hovered = false;\r\n  });\r\n\r\n  var shouldPrevent = false;\r\n  function shouldPreventDefault(deltaX, deltaY) {\r\n    var scrollTop = element.scrollTop;\r\n    if (deltaX === 0) {\r\n      if (!i.scrollbarYActive) {\r\n        return false;\r\n      }\r\n      if ((scrollTop === 0 && deltaY > 0) || (scrollTop >= i.contentHeight - i.containerHeight && deltaY < 0)) {\r\n        return !i.settings.wheelPropagation;\r\n      }\r\n    }\r\n\r\n    var scrollLeft = element.scrollLeft;\r\n    if (deltaY === 0) {\r\n      if (!i.scrollbarXActive) {\r\n        return false;\r\n      }\r\n      if ((scrollLeft === 0 && deltaX < 0) || (scrollLeft >= i.contentWidth - i.containerWidth && deltaX > 0)) {\r\n        return !i.settings.wheelPropagation;\r\n      }\r\n    }\r\n    return true;\r\n  }\r\n\r\n  i.event.bind(i.ownerDocument, 'keydown', function (e) {\r\n    if ((e.isDefaultPrevented && e.isDefaultPrevented()) || e.defaultPrevented) {\r\n      return;\r\n    }\r\n\r\n    var focused = dom.matches(i.scrollbarX, ':focus') ||\r\n                  dom.matches(i.scrollbarY, ':focus');\r\n\r\n    if (!hovered && !focused) {\r\n      return;\r\n    }\r\n\r\n    var activeElement = document.activeElement ? document.activeElement : i.ownerDocument.activeElement;\r\n    if (activeElement) {\r\n      if (activeElement.tagName === 'IFRAME') {\r\n        activeElement = activeElement.contentDocument.activeElement;\r\n      } else {\r\n        // go deeper if element is a webcomponent\r\n        while (activeElement.shadowRoot) {\r\n          activeElement = activeElement.shadowRoot.activeElement;\r\n        }\r\n      }\r\n      if (_.isEditable(activeElement)) {\r\n        return;\r\n      }\r\n    }\r\n\r\n    var deltaX = 0;\r\n    var deltaY = 0;\r\n\r\n    switch (e.which) {\r\n    case 37: // left\r\n      deltaX = -30;\r\n      break;\r\n    case 38: // up\r\n      deltaY = 30;\r\n      break;\r\n    case 39: // right\r\n      deltaX = 30;\r\n      break;\r\n    case 40: // down\r\n      deltaY = -30;\r\n      break;\r\n    case 33: // page up\r\n      deltaY = 90;\r\n      break;\r\n    case 32: // space bar\r\n      if (e.shiftKey) {\r\n        deltaY = 90;\r\n      } else {\r\n        deltaY = -90;\r\n      }\r\n      break;\r\n    case 34: // page down\r\n      deltaY = -90;\r\n      break;\r\n    case 35: // end\r\n      if (e.ctrlKey) {\r\n        deltaY = -i.contentHeight;\r\n      } else {\r\n        deltaY = -i.containerHeight;\r\n      }\r\n      break;\r\n    case 36: // home\r\n      if (e.ctrlKey) {\r\n        deltaY = element.scrollTop;\r\n      } else {\r\n        deltaY = i.containerHeight;\r\n      }\r\n      break;\r\n    default:\r\n      return;\r\n    }\r\n\r\n    updateScroll(element, 'top', element.scrollTop - deltaY);\r\n    updateScroll(element, 'left', element.scrollLeft + deltaX);\r\n    updateGeometry(element);\r\n\r\n    shouldPrevent = shouldPreventDefault(deltaX, deltaY);\r\n    if (shouldPrevent) {\r\n      e.preventDefault();\r\n    }\r\n  });\r\n}\r\n\r\nmodule.exports = function (element) {\r\n  var i = instances.get(element);\r\n  bindKeyboardHandler(element, i);\r\n};\r\n\r\n},{\"../../lib/dom\":3,\"../../lib/helper\":6,\"../instances\":18,\"../update-geometry\":19,\"../update-scroll\":20}],13:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar instances = require('../instances');\r\nvar updateGeometry = require('../update-geometry');\r\nvar updateScroll = require('../update-scroll');\r\n\r\nfunction bindMouseWheelHandler(element, i) {\r\n  var shouldPrevent = false;\r\n\r\n  function shouldPreventDefault(deltaX, deltaY) {\r\n    var scrollTop = element.scrollTop;\r\n    if (deltaX === 0) {\r\n      if (!i.scrollbarYActive) {\r\n        return false;\r\n      }\r\n      if ((scrollTop === 0 && deltaY > 0) || (scrollTop >= i.contentHeight - i.containerHeight && deltaY < 0)) {\r\n        return !i.settings.wheelPropagation;\r\n      }\r\n    }\r\n\r\n    var scrollLeft = element.scrollLeft;\r\n    if (deltaY === 0) {\r\n      if (!i.scrollbarXActive) {\r\n        return false;\r\n      }\r\n      if ((scrollLeft === 0 && deltaX < 0) || (scrollLeft >= i.contentWidth - i.containerWidth && deltaX > 0)) {\r\n        return !i.settings.wheelPropagation;\r\n      }\r\n    }\r\n    return true;\r\n  }\r\n\r\n  function getDeltaFromEvent(e) {\r\n    var deltaX = e.deltaX;\r\n    var deltaY = -1 * e.deltaY;\r\n\r\n    if (typeof deltaX === \"undefined\" || typeof deltaY === \"undefined\") {\r\n      // OS X Safari\r\n      deltaX = -1 * e.wheelDeltaX / 6;\r\n      deltaY = e.wheelDeltaY / 6;\r\n    }\r\n\r\n    if (e.deltaMode && e.deltaMode === 1) {\r\n      // Firefox in deltaMode 1: Line scrolling\r\n      deltaX *= 10;\r\n      deltaY *= 10;\r\n    }\r\n\r\n    if (deltaX !== deltaX && deltaY !== deltaY/* NaN checks */) {\r\n      // IE in some mouse drivers\r\n      deltaX = 0;\r\n      deltaY = e.wheelDelta;\r\n    }\r\n\r\n    return [deltaX, deltaY];\r\n  }\r\n\r\n  function shouldBeConsumedByChild(deltaX, deltaY) {\r\n    var child = element.querySelector('textarea:hover, select[multiple]:hover, .ps-child:hover');\r\n    if (child) {\r\n      if (child.tagName !== 'TEXTAREA' && !window.getComputedStyle(child).overflow.match(/(scroll|auto)/)) {\r\n        return false;\r\n      }\r\n\r\n      var maxScrollTop = child.scrollHeight - child.clientHeight;\r\n      if (maxScrollTop > 0) {\r\n        if (!(child.scrollTop === 0 && deltaY > 0) && !(child.scrollTop === maxScrollTop && deltaY < 0)) {\r\n          return true;\r\n        }\r\n      }\r\n      var maxScrollLeft = child.scrollLeft - child.clientWidth;\r\n      if (maxScrollLeft > 0) {\r\n        if (!(child.scrollLeft === 0 && deltaX < 0) && !(child.scrollLeft === maxScrollLeft && deltaX > 0)) {\r\n          return true;\r\n        }\r\n      }\r\n    }\r\n    return false;\r\n  }\r\n\r\n  function mousewheelHandler(e) {\r\n    var delta = getDeltaFromEvent(e);\r\n\r\n    var deltaX = delta[0];\r\n    var deltaY = delta[1];\r\n\r\n    if (shouldBeConsumedByChild(deltaX, deltaY)) {\r\n      return;\r\n    }\r\n\r\n    shouldPrevent = false;\r\n    if (!i.settings.useBothWheelAxes) {\r\n      // deltaX will only be used for horizontal scrolling and deltaY will\r\n      // only be used for vertical scrolling - this is the default\r\n      updateScroll(element, 'top', element.scrollTop - (deltaY * i.settings.wheelSpeed));\r\n      updateScroll(element, 'left', element.scrollLeft + (deltaX * i.settings.wheelSpeed));\r\n    } else if (i.scrollbarYActive && !i.scrollbarXActive) {\r\n      // only vertical scrollbar is active and useBothWheelAxes option is\r\n      // active, so let's scroll vertical bar using both mouse wheel axes\r\n      if (deltaY) {\r\n        updateScroll(element, 'top', element.scrollTop - (deltaY * i.settings.wheelSpeed));\r\n      } else {\r\n        updateScroll(element, 'top', element.scrollTop + (deltaX * i.settings.wheelSpeed));\r\n      }\r\n      shouldPrevent = true;\r\n    } else if (i.scrollbarXActive && !i.scrollbarYActive) {\r\n      // useBothWheelAxes and only horizontal bar is active, so use both\r\n      // wheel axes for horizontal bar\r\n      if (deltaX) {\r\n        updateScroll(element, 'left', element.scrollLeft + (deltaX * i.settings.wheelSpeed));\r\n      } else {\r\n        updateScroll(element, 'left', element.scrollLeft - (deltaY * i.settings.wheelSpeed));\r\n      }\r\n      shouldPrevent = true;\r\n    }\r\n\r\n    updateGeometry(element);\r\n\r\n    shouldPrevent = (shouldPrevent || shouldPreventDefault(deltaX, deltaY));\r\n    if (shouldPrevent) {\r\n      e.stopPropagation();\r\n      e.preventDefault();\r\n    }\r\n  }\r\n\r\n  if (typeof window.onwheel !== \"undefined\") {\r\n    i.event.bind(element, 'wheel', mousewheelHandler);\r\n  } else if (typeof window.onmousewheel !== \"undefined\") {\r\n    i.event.bind(element, 'mousewheel', mousewheelHandler);\r\n  }\r\n}\r\n\r\nmodule.exports = function (element) {\r\n  var i = instances.get(element);\r\n  bindMouseWheelHandler(element, i);\r\n};\r\n\r\n},{\"../instances\":18,\"../update-geometry\":19,\"../update-scroll\":20}],14:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar instances = require('../instances');\r\nvar updateGeometry = require('../update-geometry');\r\n\r\nfunction bindNativeScrollHandler(element, i) {\r\n  i.event.bind(element, 'scroll', function () {\r\n    updateGeometry(element);\r\n  });\r\n}\r\n\r\nmodule.exports = function (element) {\r\n  var i = instances.get(element);\r\n  bindNativeScrollHandler(element, i);\r\n};\r\n\r\n},{\"../instances\":18,\"../update-geometry\":19}],15:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar _ = require('../../lib/helper');\r\nvar instances = require('../instances');\r\nvar updateGeometry = require('../update-geometry');\r\nvar updateScroll = require('../update-scroll');\r\n\r\nfunction bindSelectionHandler(element, i) {\r\n  function getRangeNode() {\r\n    var selection = window.getSelection ? window.getSelection() :\r\n                    document.getSelection ? document.getSelection() : '';\r\n    if (selection.toString().length === 0) {\r\n      return null;\r\n    } else {\r\n      return selection.getRangeAt(0).commonAncestorContainer;\r\n    }\r\n  }\r\n\r\n  var scrollingLoop = null;\r\n  var scrollDiff = {top: 0, left: 0};\r\n  function startScrolling() {\r\n    if (!scrollingLoop) {\r\n      scrollingLoop = setInterval(function () {\r\n        if (!instances.get(element)) {\r\n          clearInterval(scrollingLoop);\r\n          return;\r\n        }\r\n\r\n        updateScroll(element, 'top', element.scrollTop + scrollDiff.top);\r\n        updateScroll(element, 'left', element.scrollLeft + scrollDiff.left);\r\n        updateGeometry(element);\r\n      }, 50); // every .1 sec\r\n    }\r\n  }\r\n  function stopScrolling() {\r\n    if (scrollingLoop) {\r\n      clearInterval(scrollingLoop);\r\n      scrollingLoop = null;\r\n    }\r\n    _.stopScrolling(element);\r\n  }\r\n\r\n  var isSelected = false;\r\n  i.event.bind(i.ownerDocument, 'selectionchange', function () {\r\n    if (element.contains(getRangeNode())) {\r\n      isSelected = true;\r\n    } else {\r\n      isSelected = false;\r\n      stopScrolling();\r\n    }\r\n  });\r\n  i.event.bind(window, 'mouseup', function () {\r\n    if (isSelected) {\r\n      isSelected = false;\r\n      stopScrolling();\r\n    }\r\n  });\r\n\r\n  i.event.bind(window, 'mousemove', function (e) {\r\n    if (isSelected) {\r\n      var mousePosition = {x: e.pageX, y: e.pageY};\r\n      var containerGeometry = {\r\n        left: element.offsetLeft,\r\n        right: element.offsetLeft + element.offsetWidth,\r\n        top: element.offsetTop,\r\n        bottom: element.offsetTop + element.offsetHeight\r\n      };\r\n\r\n      if (mousePosition.x < containerGeometry.left + 3) {\r\n        scrollDiff.left = -5;\r\n        _.startScrolling(element, 'x');\r\n      } else if (mousePosition.x > containerGeometry.right - 3) {\r\n        scrollDiff.left = 5;\r\n        _.startScrolling(element, 'x');\r\n      } else {\r\n        scrollDiff.left = 0;\r\n      }\r\n\r\n      if (mousePosition.y < containerGeometry.top + 3) {\r\n        if (containerGeometry.top + 3 - mousePosition.y < 5) {\r\n          scrollDiff.top = -5;\r\n        } else {\r\n          scrollDiff.top = -20;\r\n        }\r\n        _.startScrolling(element, 'y');\r\n      } else if (mousePosition.y > containerGeometry.bottom - 3) {\r\n        if (mousePosition.y - containerGeometry.bottom + 3 < 5) {\r\n          scrollDiff.top = 5;\r\n        } else {\r\n          scrollDiff.top = 20;\r\n        }\r\n        _.startScrolling(element, 'y');\r\n      } else {\r\n        scrollDiff.top = 0;\r\n      }\r\n\r\n      if (scrollDiff.top === 0 && scrollDiff.left === 0) {\r\n        stopScrolling();\r\n      } else {\r\n        startScrolling();\r\n      }\r\n    }\r\n  });\r\n}\r\n\r\nmodule.exports = function (element) {\r\n  var i = instances.get(element);\r\n  bindSelectionHandler(element, i);\r\n};\r\n\r\n},{\"../../lib/helper\":6,\"../instances\":18,\"../update-geometry\":19,\"../update-scroll\":20}],16:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar _ = require('../../lib/helper');\r\nvar instances = require('../instances');\r\nvar updateGeometry = require('../update-geometry');\r\nvar updateScroll = require('../update-scroll');\r\n\r\nfunction bindTouchHandler(element, i, supportsTouch, supportsIePointer) {\r\n  function shouldPreventDefault(deltaX, deltaY) {\r\n    var scrollTop = element.scrollTop;\r\n    var scrollLeft = element.scrollLeft;\r\n    var magnitudeX = Math.abs(deltaX);\r\n    var magnitudeY = Math.abs(deltaY);\r\n\r\n    if (magnitudeY > magnitudeX) {\r\n      // user is perhaps trying to swipe up/down the page\r\n\r\n      if (((deltaY < 0) && (scrollTop === i.contentHeight - i.containerHeight)) ||\r\n          ((deltaY > 0) && (scrollTop === 0))) {\r\n        return !i.settings.swipePropagation;\r\n      }\r\n    } else if (magnitudeX > magnitudeY) {\r\n      // user is perhaps trying to swipe left/right across the page\r\n\r\n      if (((deltaX < 0) && (scrollLeft === i.contentWidth - i.containerWidth)) ||\r\n          ((deltaX > 0) && (scrollLeft === 0))) {\r\n        return !i.settings.swipePropagation;\r\n      }\r\n    }\r\n\r\n    return true;\r\n  }\r\n\r\n  function applyTouchMove(differenceX, differenceY) {\r\n    updateScroll(element, 'top', element.scrollTop - differenceY);\r\n    updateScroll(element, 'left', element.scrollLeft - differenceX);\r\n\r\n    updateGeometry(element);\r\n  }\r\n\r\n  var startOffset = {};\r\n  var startTime = 0;\r\n  var speed = {};\r\n  var easingLoop = null;\r\n  var inGlobalTouch = false;\r\n  var inLocalTouch = false;\r\n\r\n  function globalTouchStart() {\r\n    inGlobalTouch = true;\r\n  }\r\n  function globalTouchEnd() {\r\n    inGlobalTouch = false;\r\n  }\r\n\r\n  function getTouch(e) {\r\n    if (e.targetTouches) {\r\n      return e.targetTouches[0];\r\n    } else {\r\n      // Maybe IE pointer\r\n      return e;\r\n    }\r\n  }\r\n  function shouldHandle(e) {\r\n    if (e.targetTouches && e.targetTouches.length === 1) {\r\n      return true;\r\n    }\r\n    if (e.pointerType && e.pointerType !== 'mouse' && e.pointerType !== e.MSPOINTER_TYPE_MOUSE) {\r\n      return true;\r\n    }\r\n    return false;\r\n  }\r\n  function touchStart(e) {\r\n    if (shouldHandle(e)) {\r\n      inLocalTouch = true;\r\n\r\n      var touch = getTouch(e);\r\n\r\n      startOffset.pageX = touch.pageX;\r\n      startOffset.pageY = touch.pageY;\r\n\r\n      startTime = (new Date()).getTime();\r\n\r\n      if (easingLoop !== null) {\r\n        clearInterval(easingLoop);\r\n      }\r\n\r\n      e.stopPropagation();\r\n    }\r\n  }\r\n  function touchMove(e) {\r\n    if (!inLocalTouch && i.settings.swipePropagation) {\r\n      touchStart(e);\r\n    }\r\n    if (!inGlobalTouch && inLocalTouch && shouldHandle(e)) {\r\n      var touch = getTouch(e);\r\n\r\n      var currentOffset = {pageX: touch.pageX, pageY: touch.pageY};\r\n\r\n      var differenceX = currentOffset.pageX - startOffset.pageX;\r\n      var differenceY = currentOffset.pageY - startOffset.pageY;\r\n\r\n      applyTouchMove(differenceX, differenceY);\r\n      startOffset = currentOffset;\r\n\r\n      var currentTime = (new Date()).getTime();\r\n\r\n      var timeGap = currentTime - startTime;\r\n      if (timeGap > 0) {\r\n        speed.x = differenceX / timeGap;\r\n        speed.y = differenceY / timeGap;\r\n        startTime = currentTime;\r\n      }\r\n\r\n      if (shouldPreventDefault(differenceX, differenceY)) {\r\n        e.stopPropagation();\r\n        e.preventDefault();\r\n      }\r\n    }\r\n  }\r\n  function touchEnd() {\r\n    if (!inGlobalTouch && inLocalTouch) {\r\n      inLocalTouch = false;\r\n\r\n      clearInterval(easingLoop);\r\n      easingLoop = setInterval(function () {\r\n        if (!instances.get(element)) {\r\n          clearInterval(easingLoop);\r\n          return;\r\n        }\r\n\r\n        if (Math.abs(speed.x) < 0.01 && Math.abs(speed.y) < 0.01) {\r\n          clearInterval(easingLoop);\r\n          return;\r\n        }\r\n\r\n        applyTouchMove(speed.x * 30, speed.y * 30);\r\n\r\n        speed.x *= 0.8;\r\n        speed.y *= 0.8;\r\n      }, 10);\r\n    }\r\n  }\r\n\r\n  if (supportsTouch) {\r\n    i.event.bind(window, 'touchstart', globalTouchStart);\r\n    i.event.bind(window, 'touchend', globalTouchEnd);\r\n    i.event.bind(element, 'touchstart', touchStart);\r\n    i.event.bind(element, 'touchmove', touchMove);\r\n    i.event.bind(element, 'touchend', touchEnd);\r\n  }\r\n\r\n  if (supportsIePointer) {\r\n    if (window.PointerEvent) {\r\n      i.event.bind(window, 'pointerdown', globalTouchStart);\r\n      i.event.bind(window, 'pointerup', globalTouchEnd);\r\n      i.event.bind(element, 'pointerdown', touchStart);\r\n      i.event.bind(element, 'pointermove', touchMove);\r\n      i.event.bind(element, 'pointerup', touchEnd);\r\n    } else if (window.MSPointerEvent) {\r\n      i.event.bind(window, 'MSPointerDown', globalTouchStart);\r\n      i.event.bind(window, 'MSPointerUp', globalTouchEnd);\r\n      i.event.bind(element, 'MSPointerDown', touchStart);\r\n      i.event.bind(element, 'MSPointerMove', touchMove);\r\n      i.event.bind(element, 'MSPointerUp', touchEnd);\r\n    }\r\n  }\r\n}\r\n\r\nmodule.exports = function (element) {\r\n  if (!_.env.supportsTouch && !_.env.supportsIePointer) {\r\n    return;\r\n  }\r\n\r\n  var i = instances.get(element);\r\n  bindTouchHandler(element, i, _.env.supportsTouch, _.env.supportsIePointer);\r\n};\r\n\r\n},{\"../../lib/helper\":6,\"../instances\":18,\"../update-geometry\":19,\"../update-scroll\":20}],17:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar _ = require('../lib/helper');\r\nvar cls = require('../lib/class');\r\nvar instances = require('./instances');\r\nvar updateGeometry = require('./update-geometry');\r\n\r\n// Handlers\r\nvar handlers = {\r\n  'click-rail': require('./handler/click-rail'),\r\n  'drag-scrollbar': require('./handler/drag-scrollbar'),\r\n  'keyboard': require('./handler/keyboard'),\r\n  'wheel': require('./handler/mouse-wheel'),\r\n  'touch': require('./handler/touch'),\r\n  'selection': require('./handler/selection')\r\n};\r\nvar nativeScrollHandler = require('./handler/native-scroll');\r\n\r\nmodule.exports = function (element, userSettings) {\r\n  userSettings = typeof userSettings === 'object' ? userSettings : {};\r\n\r\n  cls.add(element, 'ps-container');\r\n\r\n  // Create a plugin instance.\r\n  var i = instances.add(element);\r\n\r\n  i.settings = _.extend(i.settings, userSettings);\r\n  cls.add(element, 'ps-theme-' + i.settings.theme);\r\n\r\n  i.settings.handlers.forEach(function (handlerName) {\r\n    handlers[handlerName](element);\r\n  });\r\n\r\n  nativeScrollHandler(element);\r\n\r\n  updateGeometry(element);\r\n};\r\n\r\n},{\"../lib/class\":2,\"../lib/helper\":6,\"./handler/click-rail\":10,\"./handler/drag-scrollbar\":11,\"./handler/keyboard\":12,\"./handler/mouse-wheel\":13,\"./handler/native-scroll\":14,\"./handler/selection\":15,\"./handler/touch\":16,\"./instances\":18,\"./update-geometry\":19}],18:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar _ = require('../lib/helper');\r\nvar cls = require('../lib/class');\r\nvar defaultSettings = require('./default-setting');\r\nvar dom = require('../lib/dom');\r\nvar EventManager = require('../lib/event-manager');\r\nvar guid = require('../lib/guid');\r\n\r\nvar instances = {};\r\n\r\nfunction Instance(element) {\r\n  var i = this;\r\n\r\n  i.settings = _.clone(defaultSettings);\r\n  i.containerWidth = null;\r\n  i.containerHeight = null;\r\n  i.contentWidth = null;\r\n  i.contentHeight = null;\r\n\r\n  i.isRtl = dom.css(element, 'direction') === \"rtl\";\r\n  i.isNegativeScroll = (function () {\r\n    var originalScrollLeft = element.scrollLeft;\r\n    var result = null;\r\n    element.scrollLeft = -1;\r\n    result = element.scrollLeft < 0;\r\n    element.scrollLeft = originalScrollLeft;\r\n    return result;\r\n  })();\r\n  i.negativeScrollAdjustment = i.isNegativeScroll ? element.scrollWidth - element.clientWidth : 0;\r\n  i.event = new EventManager();\r\n  i.ownerDocument = element.ownerDocument || document;\r\n\r\n  function focus() {\r\n    cls.add(element, 'ps-focus');\r\n  }\r\n\r\n  function blur() {\r\n    cls.remove(element, 'ps-focus');\r\n  }\r\n\r\n  i.scrollbarXRail = dom.appendTo(dom.e('div', 'ps-scrollbar-x-rail'), element);\r\n  i.scrollbarX = dom.appendTo(dom.e('div', 'ps-scrollbar-x'), i.scrollbarXRail);\r\n  i.scrollbarX.setAttribute('tabindex', 0);\r\n  i.event.bind(i.scrollbarX, 'focus', focus);\r\n  i.event.bind(i.scrollbarX, 'blur', blur);\r\n  i.scrollbarXActive = null;\r\n  i.scrollbarXWidth = null;\r\n  i.scrollbarXLeft = null;\r\n  i.scrollbarXBottom = _.toInt(dom.css(i.scrollbarXRail, 'bottom'));\r\n  i.isScrollbarXUsingBottom = i.scrollbarXBottom === i.scrollbarXBottom; // !isNaN\r\n  i.scrollbarXTop = i.isScrollbarXUsingBottom ? null : _.toInt(dom.css(i.scrollbarXRail, 'top'));\r\n  i.railBorderXWidth = _.toInt(dom.css(i.scrollbarXRail, 'borderLeftWidth')) + _.toInt(dom.css(i.scrollbarXRail, 'borderRightWidth'));\r\n  // Set rail to display:block to calculate margins\r\n  dom.css(i.scrollbarXRail, 'display', 'block');\r\n  i.railXMarginWidth = _.toInt(dom.css(i.scrollbarXRail, 'marginLeft')) + _.toInt(dom.css(i.scrollbarXRail, 'marginRight'));\r\n  dom.css(i.scrollbarXRail, 'display', '');\r\n  i.railXWidth = null;\r\n  i.railXRatio = null;\r\n\r\n  i.scrollbarYRail = dom.appendTo(dom.e('div', 'ps-scrollbar-y-rail'), element);\r\n  i.scrollbarY = dom.appendTo(dom.e('div', 'ps-scrollbar-y'), i.scrollbarYRail);\r\n  i.scrollbarY.setAttribute('tabindex', 0);\r\n  i.event.bind(i.scrollbarY, 'focus', focus);\r\n  i.event.bind(i.scrollbarY, 'blur', blur);\r\n  i.scrollbarYActive = null;\r\n  i.scrollbarYHeight = null;\r\n  i.scrollbarYTop = null;\r\n  i.scrollbarYRight = _.toInt(dom.css(i.scrollbarYRail, 'right'));\r\n  i.isScrollbarYUsingRight = i.scrollbarYRight === i.scrollbarYRight; // !isNaN\r\n  i.scrollbarYLeft = i.isScrollbarYUsingRight ? null : _.toInt(dom.css(i.scrollbarYRail, 'left'));\r\n  i.scrollbarYOuterWidth = i.isRtl ? _.outerWidth(i.scrollbarY) : null;\r\n  i.railBorderYWidth = _.toInt(dom.css(i.scrollbarYRail, 'borderTopWidth')) + _.toInt(dom.css(i.scrollbarYRail, 'borderBottomWidth'));\r\n  dom.css(i.scrollbarYRail, 'display', 'block');\r\n  i.railYMarginHeight = _.toInt(dom.css(i.scrollbarYRail, 'marginTop')) + _.toInt(dom.css(i.scrollbarYRail, 'marginBottom'));\r\n  dom.css(i.scrollbarYRail, 'display', '');\r\n  i.railYHeight = null;\r\n  i.railYRatio = null;\r\n}\r\n\r\nfunction getId(element) {\r\n  return element.getAttribute('data-ps-id');\r\n}\r\n\r\nfunction setId(element, id) {\r\n  element.setAttribute('data-ps-id', id);\r\n}\r\n\r\nfunction removeId(element) {\r\n  element.removeAttribute('data-ps-id');\r\n}\r\n\r\nexports.add = function (element) {\r\n  var newId = guid();\r\n  setId(element, newId);\r\n  instances[newId] = new Instance(element);\r\n  return instances[newId];\r\n};\r\n\r\nexports.remove = function (element) {\r\n  delete instances[getId(element)];\r\n  removeId(element);\r\n};\r\n\r\nexports.get = function (element) {\r\n  return instances[getId(element)];\r\n};\r\n\r\n},{\"../lib/class\":2,\"../lib/dom\":3,\"../lib/event-manager\":4,\"../lib/guid\":5,\"../lib/helper\":6,\"./default-setting\":8}],19:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar _ = require('../lib/helper');\r\nvar cls = require('../lib/class');\r\nvar dom = require('../lib/dom');\r\nvar instances = require('./instances');\r\nvar updateScroll = require('./update-scroll');\r\n\r\nfunction getThumbSize(i, thumbSize) {\r\n  if (i.settings.minScrollbarLength) {\r\n    thumbSize = Math.max(thumbSize, i.settings.minScrollbarLength);\r\n  }\r\n  if (i.settings.maxScrollbarLength) {\r\n    thumbSize = Math.min(thumbSize, i.settings.maxScrollbarLength);\r\n  }\r\n  return thumbSize;\r\n}\r\n\r\nfunction updateCss(element, i) {\r\n  var xRailOffset = {width: i.railXWidth};\r\n  if (i.isRtl) {\r\n    xRailOffset.left = i.negativeScrollAdjustment + element.scrollLeft + i.containerWidth - i.contentWidth;\r\n  } else {\r\n    xRailOffset.left = element.scrollLeft;\r\n  }\r\n  if (i.isScrollbarXUsingBottom) {\r\n    xRailOffset.bottom = i.scrollbarXBottom - element.scrollTop;\r\n  } else {\r\n    xRailOffset.top = i.scrollbarXTop + element.scrollTop;\r\n  }\r\n  dom.css(i.scrollbarXRail, xRailOffset);\r\n\r\n  var yRailOffset = {top: element.scrollTop, height: i.railYHeight};\r\n  if (i.isScrollbarYUsingRight) {\r\n    if (i.isRtl) {\r\n      yRailOffset.right = i.contentWidth - (i.negativeScrollAdjustment + element.scrollLeft) - i.scrollbarYRight - i.scrollbarYOuterWidth;\r\n    } else {\r\n      yRailOffset.right = i.scrollbarYRight - element.scrollLeft;\r\n    }\r\n  } else {\r\n    if (i.isRtl) {\r\n      yRailOffset.left = i.negativeScrollAdjustment + element.scrollLeft + i.containerWidth * 2 - i.contentWidth - i.scrollbarYLeft - i.scrollbarYOuterWidth;\r\n    } else {\r\n      yRailOffset.left = i.scrollbarYLeft + element.scrollLeft;\r\n    }\r\n  }\r\n  dom.css(i.scrollbarYRail, yRailOffset);\r\n\r\n  dom.css(i.scrollbarX, {left: i.scrollbarXLeft, width: i.scrollbarXWidth - i.railBorderXWidth});\r\n  dom.css(i.scrollbarY, {top: i.scrollbarYTop, height: i.scrollbarYHeight - i.railBorderYWidth});\r\n}\r\n\r\nmodule.exports = function (element) {\r\n  var i = instances.get(element);\r\n\r\n  i.containerWidth = element.clientWidth;\r\n  i.containerHeight = element.clientHeight;\r\n  i.contentWidth = element.scrollWidth;\r\n  i.contentHeight = element.scrollHeight;\r\n\r\n  var existingRails;\r\n  if (!element.contains(i.scrollbarXRail)) {\r\n    existingRails = dom.queryChildren(element, '.ps-scrollbar-x-rail');\r\n    if (existingRails.length > 0) {\r\n      existingRails.forEach(function (rail) {\r\n        dom.remove(rail);\r\n      });\r\n    }\r\n    dom.appendTo(i.scrollbarXRail, element);\r\n  }\r\n  if (!element.contains(i.scrollbarYRail)) {\r\n    existingRails = dom.queryChildren(element, '.ps-scrollbar-y-rail');\r\n    if (existingRails.length > 0) {\r\n      existingRails.forEach(function (rail) {\r\n        dom.remove(rail);\r\n      });\r\n    }\r\n    dom.appendTo(i.scrollbarYRail, element);\r\n  }\r\n\r\n  if (!i.settings.suppressScrollX && i.containerWidth + i.settings.scrollXMarginOffset < i.contentWidth) {\r\n    i.scrollbarXActive = true;\r\n    i.railXWidth = i.containerWidth - i.railXMarginWidth;\r\n    i.railXRatio = i.containerWidth / i.railXWidth;\r\n    i.scrollbarXWidth = getThumbSize(i, _.toInt(i.railXWidth * i.containerWidth / i.contentWidth));\r\n    i.scrollbarXLeft = _.toInt((i.negativeScrollAdjustment + element.scrollLeft) * (i.railXWidth - i.scrollbarXWidth) / (i.contentWidth - i.containerWidth));\r\n  } else {\r\n    i.scrollbarXActive = false;\r\n  }\r\n\r\n  if (!i.settings.suppressScrollY && i.containerHeight + i.settings.scrollYMarginOffset < i.contentHeight) {\r\n    i.scrollbarYActive = true;\r\n    i.railYHeight = i.containerHeight - i.railYMarginHeight;\r\n    i.railYRatio = i.containerHeight / i.railYHeight;\r\n    i.scrollbarYHeight = getThumbSize(i, _.toInt(i.railYHeight * i.containerHeight / i.contentHeight));\r\n    i.scrollbarYTop = _.toInt(element.scrollTop * (i.railYHeight - i.scrollbarYHeight) / (i.contentHeight - i.containerHeight));\r\n  } else {\r\n    i.scrollbarYActive = false;\r\n  }\r\n\r\n  if (i.scrollbarXLeft >= i.railXWidth - i.scrollbarXWidth) {\r\n    i.scrollbarXLeft = i.railXWidth - i.scrollbarXWidth;\r\n  }\r\n  if (i.scrollbarYTop >= i.railYHeight - i.scrollbarYHeight) {\r\n    i.scrollbarYTop = i.railYHeight - i.scrollbarYHeight;\r\n  }\r\n\r\n  updateCss(element, i);\r\n\r\n  if (i.scrollbarXActive) {\r\n    cls.add(element, 'ps-active-x');\r\n  } else {\r\n    cls.remove(element, 'ps-active-x');\r\n    i.scrollbarXWidth = 0;\r\n    i.scrollbarXLeft = 0;\r\n    updateScroll(element, 'left', 0);\r\n  }\r\n  if (i.scrollbarYActive) {\r\n    cls.add(element, 'ps-active-y');\r\n  } else {\r\n    cls.remove(element, 'ps-active-y');\r\n    i.scrollbarYHeight = 0;\r\n    i.scrollbarYTop = 0;\r\n    updateScroll(element, 'top', 0);\r\n  }\r\n};\r\n\r\n},{\"../lib/class\":2,\"../lib/dom\":3,\"../lib/helper\":6,\"./instances\":18,\"./update-scroll\":20}],20:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar instances = require('./instances');\r\n\r\nvar upEvent = document.createEvent('Event');\r\nvar downEvent = document.createEvent('Event');\r\nvar leftEvent = document.createEvent('Event');\r\nvar rightEvent = document.createEvent('Event');\r\nvar yEvent = document.createEvent('Event');\r\nvar xEvent = document.createEvent('Event');\r\nvar xStartEvent = document.createEvent('Event');\r\nvar xEndEvent = document.createEvent('Event');\r\nvar yStartEvent = document.createEvent('Event');\r\nvar yEndEvent = document.createEvent('Event');\r\nvar lastTop;\r\nvar lastLeft;\r\n\r\nupEvent.initEvent('ps-scroll-up', true, true);\r\ndownEvent.initEvent('ps-scroll-down', true, true);\r\nleftEvent.initEvent('ps-scroll-left', true, true);\r\nrightEvent.initEvent('ps-scroll-right', true, true);\r\nyEvent.initEvent('ps-scroll-y', true, true);\r\nxEvent.initEvent('ps-scroll-x', true, true);\r\nxStartEvent.initEvent('ps-x-reach-start', true, true);\r\nxEndEvent.initEvent('ps-x-reach-end', true, true);\r\nyStartEvent.initEvent('ps-y-reach-start', true, true);\r\nyEndEvent.initEvent('ps-y-reach-end', true, true);\r\n\r\nmodule.exports = function (element, axis, value) {\r\n  if (typeof element === 'undefined') {\r\n    throw 'You must provide an element to the update-scroll function';\r\n  }\r\n\r\n  if (typeof axis === 'undefined') {\r\n    throw 'You must provide an axis to the update-scroll function';\r\n  }\r\n\r\n  if (typeof value === 'undefined') {\r\n    throw 'You must provide a value to the update-scroll function';\r\n  }\r\n\r\n  if (axis === 'top' && value <= 0) {\r\n    element.scrollTop = value = 0; // don't allow negative scroll\r\n    element.dispatchEvent(yStartEvent);\r\n  }\r\n\r\n  if (axis === 'left' && value <= 0) {\r\n    element.scrollLeft = value = 0; // don't allow negative scroll\r\n    element.dispatchEvent(xStartEvent);\r\n  }\r\n\r\n  var i = instances.get(element);\r\n\r\n  if (axis === 'top' && value >= i.contentHeight - i.containerHeight) {\r\n    // don't allow scroll past container\r\n    value = i.contentHeight - i.containerHeight;\r\n    if (value - element.scrollTop <= 1) {\r\n      // mitigates rounding errors on non-subpixel scroll values\r\n      value = element.scrollTop;\r\n    } else {\r\n      element.scrollTop = value;\r\n    }\r\n    element.dispatchEvent(yEndEvent);\r\n  }\r\n\r\n  if (axis === 'left' && value >= i.contentWidth - i.containerWidth) {\r\n    // don't allow scroll past container\r\n    value = i.contentWidth - i.containerWidth;\r\n    if (value - element.scrollLeft <= 1) {\r\n      // mitigates rounding errors on non-subpixel scroll values\r\n      value = element.scrollLeft;\r\n    } else {\r\n      element.scrollLeft = value;\r\n    }\r\n    element.dispatchEvent(xEndEvent);\r\n  }\r\n\r\n  if (!lastTop) {\r\n    lastTop = element.scrollTop;\r\n  }\r\n\r\n  if (!lastLeft) {\r\n    lastLeft = element.scrollLeft;\r\n  }\r\n\r\n  if (axis === 'top' && value < lastTop) {\r\n    element.dispatchEvent(upEvent);\r\n  }\r\n\r\n  if (axis === 'top' && value > lastTop) {\r\n    element.dispatchEvent(downEvent);\r\n  }\r\n\r\n  if (axis === 'left' && value < lastLeft) {\r\n    element.dispatchEvent(leftEvent);\r\n  }\r\n\r\n  if (axis === 'left' && value > lastLeft) {\r\n    element.dispatchEvent(rightEvent);\r\n  }\r\n\r\n  if (axis === 'top') {\r\n    element.scrollTop = lastTop = value;\r\n    element.dispatchEvent(yEvent);\r\n  }\r\n\r\n  if (axis === 'left') {\r\n    element.scrollLeft = lastLeft = value;\r\n    element.dispatchEvent(xEvent);\r\n  }\r\n\r\n};\r\n\r\n},{\"./instances\":18}],21:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar _ = require('../lib/helper');\r\nvar dom = require('../lib/dom');\r\nvar instances = require('./instances');\r\nvar updateGeometry = require('./update-geometry');\r\nvar updateScroll = require('./update-scroll');\r\n\r\nmodule.exports = function (element) {\r\n  var i = instances.get(element);\r\n\r\n  if (!i) {\r\n    return;\r\n  }\r\n\r\n  // Recalcuate negative scrollLeft adjustment\r\n  i.negativeScrollAdjustment = i.isNegativeScroll ? element.scrollWidth - element.clientWidth : 0;\r\n\r\n  // Recalculate rail margins\r\n  dom.css(i.scrollbarXRail, 'display', 'block');\r\n  dom.css(i.scrollbarYRail, 'display', 'block');\r\n  i.railXMarginWidth = _.toInt(dom.css(i.scrollbarXRail, 'marginLeft')) + _.toInt(dom.css(i.scrollbarXRail, 'marginRight'));\r\n  i.railYMarginHeight = _.toInt(dom.css(i.scrollbarYRail, 'marginTop')) + _.toInt(dom.css(i.scrollbarYRail, 'marginBottom'));\r\n\r\n  // Hide scrollbars not to affect scrollWidth and scrollHeight\r\n  dom.css(i.scrollbarXRail, 'display', 'none');\r\n  dom.css(i.scrollbarYRail, 'display', 'none');\r\n\r\n  updateGeometry(element);\r\n\r\n  // Update top/left scroll to trigger events\r\n  updateScroll(element, 'top', element.scrollTop);\r\n  updateScroll(element, 'left', element.scrollLeft);\r\n\r\n  dom.css(i.scrollbarXRail, 'display', '');\r\n  dom.css(i.scrollbarYRail, 'display', '');\r\n};\r\n\r\n},{\"../lib/dom\":3,\"../lib/helper\":6,\"./instances\":18,\"./update-geometry\":19,\"./update-scroll\":20}]},{},[1]);\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\n\r\ndefine([\r\n  'globals',\r\n  'jquery',\r\n  'header-view-model',\r\n  'select-element-content',\r\n  'scroll-to-top',\r\n  'internal-user-sticky',\r\n  'accordion',\r\n  'tabs',\r\n  'sticky-kit',\r\n  'perfect-scrollbar',\r\n  'internal-user-sticky'],\r\nfunction (globals, $, HeaderViewModel) {\r\n  const lozad = require('lozad');\r\n\r\n  new HeaderViewModel();\r\n  lozad(document.querySelectorAll('.lozad'),{\r\n    rootMargin: '200px 0px',\r\n  }).observe();\r\n\r\n  lozad(document.querySelectorAll('#jb-site-hours'), {\r\n    rootMargin: '200px 0px',\r\n    loaded: () => {\r\n      import(/* webpackChunkName: 'footer_jb' */ '../../footer/jb').then((module) => {\r\n        const getFooterData = module.default;\r\n        getFooterData();\r\n      });\r\n      import(/* webpackChunkName: \"enews\" */ '../../../../../javascript/_shared/components/Enews').then((module) => {\r\n        const Enews = module.default;\r\n        ReactDOM.render(<Enews mode=\"dark\" />, document.getElementById('gcc-enews'));\r\n      });\r\n    },\r\n  }).observe();\r\n\r\n  $(function() {\r\n    $('.jb-header-menu-parent-item').on('click', function() {\r\n      if ($(this).hasClass('shutters')) {\r\n        window.location.href = '/shutters';\r\n      } else if ($(this).hasClass('help')) {\r\n        $(this).find('a:first-child').trigger('click');\r\n      } else if (window.innerWidth < 1170) {\r\n        $(this).find('.jb-header-submenu').toggle();\r\n      }\r\n    });\r\n  });\r\n\r\n  $('.jb-header').stick_in_parent();\r\n  $('.jb-header-show-menu').on('click', () => {\r\n    $('#jb-header-show-menu').prop('checked', !$('#jb-header-show-menu').prop('checked'));\r\n    $('.ft-product-cta').toggle();\r\n  });\r\n\r\n  // Iterate trust boosters\r\n  const tb = $('.jb-header-tb');\r\n  let tbIndex = -1;\r\n  const showNextTrustBooster = () => {\r\n    ++tbIndex;\r\n    tb.eq(tbIndex % tb.length)\r\n      .fadeIn(500)\r\n      .delay(8000)\r\n      .fadeOut(500, showNextTrustBooster);\r\n  }\r\n  showNextTrustBooster();\r\n\r\n  if (!location.pathname.includes('/Catalog/Configurator')) {\r\n    import(/* webpackChunkName: \"modals\" */ '../../../../../javascript/_shared/modals').then((module) => {\r\n      const { ThemeProvider } = require('styled-components');\r\n      const { theme } = require('../../../../../javascript/jb/theme');\r\n      const Modals = module.default;\r\n      ReactDOM.render(<ThemeProvider theme={theme}><Modals /></ThemeProvider>, document.getElementById('jb-modals'));\r\n    });\r\n  }\r\n});\r\n","define([\r\n  \"globals\",\r\n  \"jquery\"],\r\nfunction(globals, $) {\r\n\r\n  var toggleScrollTop = function () {\r\n    if ($(window).scrollTop() > 700) {\r\n      $(\".bdc-btn-scroll-top\").show();\r\n    } else {\r\n      $(\".bdc-btn-scroll-top\").hide();\r\n    }\r\n  };\r\n\r\n  // Toggles \"Scroll To Top\" button on mobile\r\n  if (globals.ssm.getState(\"mobile\").active) {\r\n    toggleScrollTop();\r\n    $(document).on(\"click\", \".bdc-btn-scroll-top\", function () {\r\n      $(\"html, body\").animate({ scrollTop: 0 }, \"fast\");\r\n    });\r\n    $(window).scroll(function () {\r\n      toggleScrollTop();\r\n    });\r\n  }\r\n\r\n});\r\n","define([\r\n  \"jquery\"],\r\nfunction ($) {\r\n\r\n  \"use strict\";\r\n\r\n  /**\r\n   * The accordion component used in Blinds.com is 100% CSS using the input[type=radio]\r\n   * element to mimic its visual behavior. However, this CSS approach does not allow\r\n   * the user to close one accordion item once it's opened. To make that work, these\r\n   * few lines of JavaScript are needed.\r\n   */\r\n  $(\".bdc-accordion\").append(\"<input type='hidden' class='bdc-accordion-selected' />\");\r\n  $(\".bdc-accordion-item-radio\").on(\"click\", function () {\r\n    var $selectedAccordion = $(this).closest(\".bdc-accordion\").find(\".bdc-accordion-selected\");\r\n    var currentChecked = $selectedAccordion.val();\r\n    $selectedAccordion.val($(this).attr(\"id\"));\r\n    if (currentChecked === $(this).attr(\"id\")) {\r\n      $(this).prop(\"checked\", false);\r\n      $selectedAccordion.val(\"\");\r\n    }\r\n  });\r\n\r\n});\r\n","define([\r\n  \"jquery\"],\r\nfunction ($) {\r\n\r\n  \"use strict\";\r\n\r\n  $(function() {\r\n    $(\".bdc-tabs\").each(function() {\r\n      $(this).height($(this).find(\"li:first\").outerHeight() + $(this).find(\".bdc-tabs-content:visible\").outerHeight());\r\n    });\r\n    $(\"body\").on(\"click\", \".bdc-tabs-head\", function() {\r\n      var tabElement = $(this).closest(\".bdc-tabs\");\r\n      tabElement.height($(this).next().outerHeight() + $(this).next().next().outerHeight());\r\n    });\r\n  });\r\n\r\n});\r\n","define([\r\n  \"jquery\",\r\n  \"knockout\"],\r\nfunction($, ko) {\r\n\r\n  \"use strict\";\r\n\r\n  ko.bindingHandlers.selectElementContent = {\r\n\r\n    init: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {\r\n\r\n      $(element).click(function() {\r\n        var doc = document;\r\n        var range;\r\n        var selection;\r\n        if (doc.body.createTextRange) {\r\n          range = document.body.createTextRange();\r\n          range.moveToElementText(element);\r\n          range.select();\r\n        } else if (window.getSelection) {\r\n          selection = window.getSelection();\r\n          range = document.createRange();\r\n          range.selectNodeContents(element);\r\n          selection.removeAllRanges();\r\n          selection.addRange(range);\r\n        }\r\n      });\r\n\r\n    }\r\n  };\r\n\r\n});\r\n","/* eslint-disable import/prefer-default-export */\r\n\r\nexport const tachyonsVariables = `\r\n  :root {\r\n    --sans-serif:\r\n      -apple-system, BlinkMacSystemFont,\r\n      'avenir next', avenir,\r\n      helvetica, 'helvetica neue',\r\n      ubuntu,\r\n      noto,\r\n      'segoe ui',\r\n      arial,\r\n      sans-serif;\r\n    --serif: georgia, serif;\r\n    --code: consolas, monaco, monospace;\r\n\r\n    --font-size-headline: 6rem;\r\n    --font-size-subheadline: 5rem;\r\n    --font-size-1: 3rem;\r\n    --font-size-2: 2.25rem;\r\n    --font-size-3: 1.5rem;\r\n    --font-size-4: 1.25rem;\r\n    --font-size-5: 1rem;\r\n    --font-size-6: .875rem;\r\n\r\n    --letter-spacing-tight:-.05em;\r\n    --letter-spacing-1:.1em;\r\n    --letter-spacing-2:.25em;\r\n\r\n    --line-height-solid: 1;\r\n    --line-height-title: 1.25;\r\n    --line-height-copy: 1.5;\r\n\r\n    --measure: 30em;\r\n    --measure-narrow: 20em;\r\n    --measure-wide: 34em;\r\n\r\n    --spacing-none: 0;\r\n    --spacing-extra-small: .25rem;\r\n    --spacing-small: .5rem;\r\n    --spacing-medium: 1rem;\r\n    --spacing-large: 2rem;\r\n    --spacing-extra-large: 4rem;\r\n    --spacing-extra-extra-large: 8rem;\r\n    --spacing-extra-extra-extra-large: 16rem;\r\n\r\n    --height-1: 1rem;\r\n    --height-2: 2rem;\r\n    --height-3: 4rem;\r\n    --height-4: 8rem;\r\n    --height-5: 16rem;\r\n\r\n    --width-1: 1rem;\r\n    --width-2: 2rem;\r\n    --width-3: 4rem;\r\n    --width-4: 8rem;\r\n    --width-5: 16rem;\r\n\r\n    --max-width-1: 1rem;\r\n    --max-width-2: 2rem;\r\n    --max-width-3: 4rem;\r\n    --max-width-4: 8rem;\r\n    --max-width-5: 16rem;\r\n    --max-width-6: 32rem;\r\n    --max-width-7: 48rem;\r\n    --max-width-8: 64rem;\r\n    --max-width-9: 96rem;\r\n\r\n    --border-radius-none: 0;\r\n    --border-radius-1: .125rem;\r\n    --border-radius-2: .25rem;\r\n    --border-radius-3: .5rem;\r\n    --border-radius-4: 1rem;\r\n    --border-radius-circle: 100%;\r\n    --border-radius-pill: 9999px;\r\n\r\n    --border-width-none: 0;\r\n    --border-width-1: .125rem;\r\n    --border-width-2: .25rem;\r\n    --border-width-3: .5rem;\r\n    --border-width-4: 1rem;\r\n    --border-width-5: 2rem;\r\n\r\n    --box-shadow-1: 0px 0px 4px 2px rgba( 0, 0, 0, 0.2 );\r\n    --box-shadow-2: 0px 0px 8px 2px rgba( 0, 0, 0, 0.2 );\r\n    --box-shadow-3: 2px 2px 4px 2px rgba( 0, 0, 0, 0.2 );\r\n    --box-shadow-4: 2px 2px 8px 0px rgba( 0, 0, 0, 0.2 );\r\n    --box-shadow-5: 4px 4px 8px 0px rgba( 0, 0, 0, 0.2 );\r\n\r\n    --black: #43474d;\r\n    --near-black: #1c2833;\r\n    --dark-gray: #707c80;\r\n    --mid-gray:#dadedf;\r\n    --gray: #c1c7c9;\r\n    --silver: #999;\r\n    --light-silver: #aaa;\r\n    --moon-gray: #ccc;\r\n    --light-gray: #f8f8f8;\r\n    --near-white: #f4f4f4;\r\n    --white: #fff;\r\n\r\n    --transparent: transparent;\r\n\r\n    --black-90: rgba(0,0,0,.9);\r\n    --black-80: rgba(0,0,0,.8);\r\n    --black-70: rgba(0,0,0,.7);\r\n    --black-60: rgba(0,0,0,.6);\r\n    --black-50: rgba(0,0,0,.5);\r\n    --black-40: rgba(0,0,0,.4);\r\n    --black-30: rgba(0,0,0,.3);\r\n    --black-20: rgba(193,199,201,1);\r\n    --black-10: rgba(0,0,0,.1);\r\n    --black-05: rgba(0,0,0,.05);\r\n    --black-025: rgba(0,0,0,.025);\r\n    --black-0125: rgba(0,0,0,.0125);\r\n\r\n    --white-90: rgba(255,255,255,.9);\r\n    --white-80: rgba(255,255,255,.8);\r\n    --white-70: rgba(255,255,255,.7);\r\n    --white-60: rgba(255,255,255,.6);\r\n    --white-50: rgba(255,255,255,.5);\r\n    --white-40: rgba(255,255,255,.4);\r\n    --white-30: rgba(255,255,255,.3);\r\n    --white-20: rgba(255,255,255,.2);\r\n    --white-10: rgba(255,255,255,.1);\r\n    --white-05: rgba(255,255,255,.05);\r\n    --white-025: rgba(255,255,255,.025);\r\n    --white-0125: rgba(255,255,255,.0125);\r\n\r\n    --dark-red:  #e7040f;\r\n    --red:  #da3b00;\r\n    --light-red:  #ff725c;\r\n    --orange:  #f88b00;\r\n    --gold:  #ffb700;\r\n    --yellow:  #fcc300;\r\n    --light-yellow:  #fbf1a9;\r\n    --purple:  #5e2ca5;\r\n    --light-purple:  #a463f2;\r\n    --dark-pink:  #d5008f;\r\n    --hot-pink: #ff41b4;\r\n    --pink:  #ff80cc;\r\n    --light-pink:  #ffa3d7;\r\n    --dark-green:  #137752;\r\n    --green:  #00a895;\r\n    --light-green:  #9eebcf;\r\n    --navy:  #001b44;\r\n    --dark-blue:  #031f73;\r\n    --blue:  #3060af;\r\n    --light-blue:  #3455db;\r\n    --lightest-blue:  #417ca5;\r\n    --washed-blue:  #f2f5f8;\r\n    --washed-green:  #e8fdf5;\r\n    --washed-yellow:  #fef5d7;\r\n    --washed-red:  #fee0b9;\r\n    --alice-blue:  #eafaff;\r\n    --pacific-blue:  #0093d6;\r\n\r\n    --mobile-menu-width: 256px;\r\n\r\n    --mobile-menu-width: 256px;\r\n  }\r\n`;\r\n\r\nexport const theme = {\r\n  name: 'jb',\r\n  backgroundColor: 'bg-white',\r\n  alert: {\r\n    base: 'br3 ba pa2 mv3',\r\n    default: {\r\n      container: 'bg-light-gray b--mid-gray',\r\n      icon: 'gray',\r\n      text: 'near-black',\r\n    },\r\n    error: {\r\n      container: 'bg-washed-red b--red',\r\n      icon: 'red',\r\n      text: 'red',\r\n    },\r\n    warning: {\r\n      container: 'bg-washed-yellow b--yellow',\r\n      icon: 'yellow',\r\n      text: 'black',\r\n    },\r\n  },\r\n  configurator: {\r\n    global: '',\r\n    choice: {\r\n      border: 'bw2 br3',\r\n      maxWidth: 'mw4',\r\n    },\r\n    option: {\r\n      base: 'relative-ns br3-ns bn ba-ns bw2-ns flex-shrink-0',\r\n      dictionaryTermBackgroundColor: 'bg-green',\r\n      dictionaryTermColor: 'near-black',\r\n      dictionaryTermIconColor: 'red',\r\n      image: {\r\n        border: 'bn ba-ns br2 b--gray',\r\n        withLongLabel: 'br4 pa2 br2-ns pa0-ns',\r\n        withoutLongLabel: 'br2',\r\n      },\r\n      selectedBorder: 'green',\r\n      selectedIcon: 'green',\r\n      selectedText: 'near-black',\r\n      title: {\r\n        base: 'f3 fw7 pt3 pr3 ttc',\r\n        border: 'dib bb bw1 b--green pb2',\r\n      },\r\n    },\r\n    price: {\r\n      addsPrice: 'black',\r\n      text: 'orange',\r\n    },\r\n    promo: 'green',\r\n    summary: {\r\n      background: 'bg-white',\r\n      border: '1px solid #DADEDF',\r\n      choiceValue: 'green',\r\n      floatingBar: {\r\n        background: 'bg-near-black',\r\n      },\r\n      stickyTop: '5rem',\r\n    },\r\n  },\r\n  modal: {\r\n    closeButton: 'black',\r\n    closeButtonHover: 'hover-bg-light-gray hover-red',\r\n  },\r\n};\r\n"],"sourceRoot":""}