{"version":3,"sources":["webpack:///./src/components/legacy/Section.tsx","webpack:///./node_modules/date-fns/esm/constants/index.js","webpack:///./node_modules/date-fns/esm/parseISO/index.js","webpack:///./node_modules/react-id-swiper/lib/hooks.js","webpack:///./node_modules/react-id-swiper/lib/utils.js","webpack:///./src/components/legacy/LinkTile.tsx","webpack:///./src/components/legacy/FormattedRichText.tsx","webpack:///./src/components/legacy/Cols.tsx","webpack:///./src/components/legacy/HorizontalContainer.tsx","webpack:///./img/legacy/youtube.svg","webpack:///./src/constants/legacy/Color.tsx","webpack:///./src/constants/legacy/Dimen.tsx","webpack:///./img/pages/home/quote_left.svg","webpack:///./node_modules/react-id-swiper/lib/ReactIdSwiper.js","webpack:///./src/components/legacy/Col.tsx","webpack:///./img/ui/faq_contract.svg","webpack:///./img/legacy/linkedin.svg","webpack:///./src/components/legacy/Button.tsx","webpack:///./node_modules/swiper/esm/components/virtual/virtual.js","webpack:///./node_modules/swiper/esm/components/keyboard/keyboard.js","webpack:///./node_modules/swiper/esm/components/mousewheel/mousewheel.js","webpack:///./node_modules/swiper/esm/components/parallax/parallax.js","webpack:///./node_modules/swiper/esm/components/zoom/zoom.js","webpack:///./node_modules/swiper/esm/components/lazy/lazy.js","webpack:///./node_modules/swiper/esm/components/controller/controller.js","webpack:///./node_modules/swiper/esm/components/history/history.js","webpack:///./node_modules/swiper/esm/components/hash-navigation/hash-navigation.js","webpack:///./node_modules/swiper/esm/components/autoplay/autoplay.js","webpack:///./node_modules/swiper/esm/components/effect-fade/effect-fade.js","webpack:///./node_modules/swiper/esm/components/effect-cube/effect-cube.js","webpack:///./node_modules/swiper/esm/components/effect-flip/effect-flip.js","webpack:///./node_modules/swiper/esm/components/effect-coverflow/effect-coverflow.js","webpack:///./node_modules/swiper/esm/components/thumbs/thumbs.js","webpack:///./src/components/legacy/Modal.tsx","webpack:///./node_modules/react-id-swiper/lib/index.js","webpack:///./img/legacy/tick-box.svg","webpack:///./img/pages/home/quote_right.svg","webpack:///./img/ui/faq_expand.svg","webpack:///./src/components/legacy/BannerHeading.tsx","webpack:///./src/components/legacy/EbookPrompt.tsx","webpack:///./src/components/legacy/Faq.tsx","webpack:///./src/components/legacy/Hero.tsx","webpack:///./src/components/legacy/HeroCoverBackground.tsx","webpack:///./src/components/legacy/LinkTilesWrap.tsx","webpack:///./src/components/legacy/MediaResourceTile.tsx","webpack:///./src/components/legacy/SectionBullets.tsx","webpack:///./src/components/legacy/WrappingLogos.tsx","webpack:///./src/components/legacy/SectionHomeLogos.tsx","webpack:///./src/components/legacy/home/QuoteSlide.tsx","webpack:///./src/components/legacy/SectionQuotes.tsx","webpack:///./src/components/legacy/SectionSocials.tsx","webpack:///./img/legacy/twitter.svg","webpack:///./img/legacy/facebook.svg"],"names":["styled","withConfig","displayName","componentId","Dimen","breakpointDefault","Math","pow","parseISO","argument","options","_options$additionalDi","requiredArgs","arguments","additionalDigits","toInteger","RangeError","Object","prototype","toString","call","Date","NaN","date","dateStrings","splitDateString","parseYearResult","parseYear","parseDate","restDateString","year","isNaN","getTime","offset","timestamp","time","parseTime","timezone","dirtyDate","result","setFullYear","getUTCFullYear","getUTCMonth","getUTCDate","setHours","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","parseTimezone","patterns","dateTimeDelimiter","timeZoneDelimiter","dateRegex","timeRegex","timezoneRegex","dateString","timeString","array","split","length","test","substr","token","exec","replace","regex","RegExp","captures","match","parseInt","century","slice","isWeekDate","dayOfYear","parseDateUnit","month","day","week","dayOfWeek","_year","validateWeekDate","isoWeekYear","setUTCFullYear","fourthOfJanuaryDay","getUTCDay","diff","setUTCDate","dayOfISOWeekYear","daysInMonths","isLeapYearIndex","validateDate","validateDayOfYearDate","max","value","hours","parseTimeUnit","minutes","seconds","validateTime","parseFloat","timezoneString","sign","_hours","validateTimezone","defineProperty","exports","useForkRef","react_1","utils_1","refA","refB","useMemo","refValue","setRef","isModuleAvailable","isReactElement","validateChildren","classNames","el","join","trim","HTMLElement","className","children","isValid","Array","isArray","Children","forEach","child","isValidElement","element","type","modules","moduleName","moduleAvailable","i","name","ref","current","LinkTile","_ref","to","href","dark","imageFluid","logoSrc","infoLeft","infoRight","title","description","readTime","totalHeight","imageHeight","React","StyledContainer","StyledTile","$dark","$height","StyledAreaImage","StyledImg","fluid","StyledLogoImg","src","StyledAreaMain","StyledInfoBar","StyledNoInfoSpacer","StyledTitle","StyledSnippet","StyledAreaBelow","div","_ref2","rest","Link","assign","p","Color","blue","white","darkBlue","lightGrey","Img","img","strong","orange","FormattedRichText","render","onDark","fontSize","StyledContent","$onDark","$fontSize","RichText","cyan","link","ColsContext","breakpoint","Cols","reverse","Provider","HorizontalContainer","maxWidth","noPadding","$maxWidth","$noPadding","min","module","grey","cyanHover","darkBlueHover","orangeHover","breakpointHeader","breakpointSectionBullets","headerHeight","__assign","this","t","s","n","hasOwnProperty","apply","__createBinding","create","o","m","k","k2","undefined","enumerable","get","__setModuleDefault","v","__importStar","mod","__esModule","__importDefault","swiper_1","object_assign_1","hooks_1","ReactIdSwiper","forwardRef","props","externalRef","activeSlideKey","ContainerEl","containerClass","navigation","noSwiping","pagination","parallax","parallaxEl","WrapperEl","wrapperClass","rebuildOnUpdate","renderScrollbar","renderPagination","renderPrevButton","renderNextButton","renderParallax","rtl","scrollbar","shouldSwiperUpdate","slideClass","loop","swiperInstanceRef","useRef","swiperNodeRef","getActiveSlideIndexFromProps","useCallback","activeSlideId","id","key","destroySwiper","destroy","buildSwiper","default","useEffect","update","numSlides","slides","activeIndex","index","slideTo","slideToIndex","createElement","dir","map","e","slideClassNames","push","cloneElement","nextEl","prevEl","defaultProps","_a","Col","flex","StyledCol","stackedCss","joinedCss","Button","label","color","StyledButton","_extends","target","source","Virtual","force","swiper","_swiper$params","params","slidesPerView","slidesPerGroup","centeredSlides","_swiper$params$virtua","virtual","addSlidesBefore","addSlidesAfter","_swiper$virtual","previousFrom","from","previousTo","previousSlidesGrid","slidesGrid","renderSlide","previousOffset","updateActiveIndex","offsetProp","slidesAfter","slidesBefore","rtlTranslate","isHorizontal","floor","onRendered","updateSlides","updateProgress","updateSlidesClasses","lazy","enabled","load","css","renderExternal","slidesToRender","renderExternalUpdate","prependIndexes","appendIndexes","$wrapperEl","find","remove","_i","append","sort","a","b","prepend","slide","cache","$slideEl","attr","appendSlide","prependSlide","newActiveIndex","numberOfNewSlides","unshift","newCache","keys","cachedIndex","$cachedEl","cachedElIndex","removeSlide","slidesIndexes","splice","removeAllSlides","on","beforeInit","containerModifierClass","overwriteParams","watchSlidesProgress","originalParams","initialSlide","setTranslate","Keyboard","handle","event","window","document","originalEvent","kc","keyCode","charCode","pageUpDown","keyboard","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","allowSlideNext","isVertical","allowSlidePrev","shiftKey","altKey","ctrlKey","metaKey","activeElement","nodeName","toLowerCase","onlyInViewport","inView","$el","parents","slideActiveClass","swiperWidth","clientWidth","swiperHeight","clientHeight","windowWidth","innerWidth","windowHeight","innerHeight","swiperOffset","left","scrollLeft","swiperCoord","top","point","preventDefault","returnValue","slideNext","slidePrev","emit","enable","disable","off","init","Mousewheel","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","navigator","userAgent","indexOf","isSupported","setAttribute","implementation","hasFeature","isEventSupported","normalize","sX","sY","pX","pY","detail","wheelDelta","wheelDeltaY","wheelDeltaX","axis","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","mousewheel","cssMode","eventsTarget","contains","releaseOnEdges","delta","rtlFactor","data","forceToAxis","abs","invert","positions","getTranslate","sensitivity","minTranslate","maxTranslate","nested","stopPropagation","freeMode","_newEvent","direction","ignoreWheelEvents","loopFix","position","wasBeginning","isBeginning","wasEnd","isEnd","setTransition","freeModeSticky","clearTimeout","timeout","_recentWheelEvents","shift","_prevEvent","firstEvent","snapToThreshold","slideToClosest","speed","autoplay","autoplayDisableOnInteraction","stop","newEvent","raw","prevEvent","animateSlider","releaseScroll","thresholdDelta","thresholdTime","animating","wrapperEl","removeEventListener","addEventListener","Parallax","setTransform","progress","x","y","scale","opacity","currentOpacity","style","transform","currentScale","snapGrid","each","slideEl","slideIndex","slideProgress","ceil","duration","$parallaxEl","parallaxDuration","transition","Zoom","getDistanceBetweenTouches","targetTouches","x1","pageX","y1","pageY","x2","y2","sqrt","onGestureStart","support","zoom","gesture","fakeGestureTouched","fakeGestureMoved","gestures","scaleStart","closest","eq","$imageEl","$imageWrapEl","parent","maxRatio","isScaling","onGestureChange","scaleMove","minRatio","onGestureEnd","device","changedTouches","android","onTouchStart","image","isTouched","cancelable","touchesStart","onTouchMove","velocity","allowClick","isMoved","width","offsetWidth","height","offsetHeight","startX","startY","slideWidth","slideHeight","scaledWidth","scaledHeight","minX","maxX","minY","maxY","touchesCurrent","currentX","currentY","prevPositionX","prevPositionY","prevTime","now","onTouchEnd","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","momentumDuration","onTransitionEnd","previousIndex","toggle","out","in","touchX","touchY","diffX","diffY","translateX","translateY","imageWidth","translateMinX","translateMinY","translateMaxX","translateMaxY","addClass","zoomedSlideClass","scrollX","scrollY","removeClass","toggleGestures","method","selector","slideSelector","passive","passiveListener","enableGestures","gesturesEnabled","disableGestures","touchEvents","start","passiveListeners","capture","activeListenerWithCapture","end","move","cancel","set","imageEl","touchStart","touchEnd","doubleTap","transitionEnd","slideChange","Lazy","loadInSlide","loadInDuplicate","$images","elementClass","loadedClass","loadingClass","hasClass","background","srcset","sizes","$pictureEl","loadImage","destroyed","removeAttr","sourceEl","$source","preloaderClass","slideOriginalIndex","slideDuplicateClass","originalSlide","duplicatedSlide","autoHeight","updateAutoHeight","swiperParams","isVirtual","slideExist","initialImageLoaded","watchSlidesVisibility","slideVisibleClass","loadPrevNext","loadPrevNextAmount","amount","spv","maxIndex","minIndex","_i2","nextSlide","slideNextClass","prevSlide","slidePrevClass","checkInViewOnLoad","$scrollElement","scrollingElement","isWindow","scrollElementWidth","scrollElementHeight","scrollHandlerAttached","checkInView","loadOnTransitionStart","preloadImages","scroll","transitionStart","Controller","LinearSpline","guess","i1","i3","binarySearch","val","lastIndex","interpolate","getInterpolateFunction","c","controller","spline","_setTranslate","byController","multiplier","controlledTranslate","controlled","control","Swiper","constructor","setControlledTranslate","translate","by","inverse","setControlledTransition","resize","observerUpdate","History","history","pushState","hashNavigation","initialized","paths","getPathValues","url","scrollToSlide","runCallbacksOnInit","replaceState","setHistoryPopState","urlOverride","pathArray","URL","location","pathname","filter","part","total","setHistory","slugify","root","includes","currentState","state","text","runCallbacks","HashNavigation","onHashCange","newHash","hash","newIndex","setHash","watchState","Autoplay","run","$activeSlideEl","delay","autoplayResult","reverseDirection","stopOnLastSlide","running","pause","paused","waitForTransition","onVisibilityChange","visibilityState","onMouseEnter","disableOnInteraction","onMouseLeave","attachMouseEvents","pauseOnMouseEnter","detachMouseEvents","beforeTransitionStart","internal","sliderFirstMove","Fade","tx","swiperSlideOffset","virtualTranslate","ty","slideOpacity","fadeEffect","crossFade","eventTriggered","triggerEvents","trigger","effect","slidesPerColumn","spaceBetween","Cube","$cubeShadowEl","swiperSize","size","browser","cubeEffect","wrapperRotate","shadow","slideAngle","round","tz","slideShadows","shadowBefore","shadowAfter","shadowOffset","shadowScale","shadowAngle","sin","PI","cos","scale1","scale2","zFactor","isSafari","isWebView","resistanceRatio","Flip","flipEffect","limitRotation","rotateY","rotateX","zIndex","Coverflow","slidesSizesGrid","coverflowEffect","center","rotate","depth","slideSize","offsetMultiplier","modifier","translateZ","stretch","slideTransform","$shadowBeforeEl","$shadowAfterEl","Thumbs","thumbsParams","thumbs","SwiperClass","slideToClickedSlide","swiperCreated","thumbsContainerClass","onThumbClick","thumbsSwiper","clickedIndex","clickedSlide","slideThumbActiveClass","currentIndex","_clientLeft","clientLeft","prevIndex","prevAll","nextIndex","nextAll","initial","slidesPerViewDynamic","autoScrollOffset","useOffset","realIndex","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","visibleSlidesIndexes","thumbsToActivate","thumbActiveClass","multipleActiveThumbs","beforeDestroy","Modal","onDismiss","fadeInDuration","visible","setVisible","StyledMask","onClick","$fadeInDuration","StyledModal","ev","StyledClose","MODAL_CLOSE","ReactIdSwiper_1","BannerHeading","StyledBanner","$visible","Faq","question","answer","expanded","setExpanded","answerRef","answerHeight","setAnswerHeight","_answerRef$current","StyledQuestion","FAQ_CONTRACT","FAQ_EXPAND","StyledAnswer","Hero","fixedImage","customBackground","titleTag","TitleTag","subTitle","preTitle","preTitleColor","button","backgroundColor","darkContent","minHeight","denseContent","offsetBottom","leftLogoSrc","$backgroundColor","StyledLayer","fixed","$center","$darkContent","$denseContent","$minHeight","$hasLeftLogo","StyledLeftLogo","StyledPreTitle","$color","StyledSubTitle","HeroCoverBackground","StyledHeroBg","MediaResourceTile","media","fluidImage","sourceLogoImageFixed","w","h","external_url","StyledAreaTitle","StyledBelowItem","posted_at","format","source_name","SectionBullets","heading","prismicImage","prismicBullets","StyledSection","StyledImage","alt","StyledHeading","bullet","StyledBullet","TICK_BOX","h2","maxPerLine","Section","$background","QuoteSlide","logoImage","StyledLogo","QUOTE_LEFT","QUOTE_RIGHT","blockquote","SectionQuotes","_home$quotes","home","quotes","clickable","quote","quote_content","_quote$logo_white_ima","Error","display","alignItems","justifyContent","logo_white_image","quote_source"],"mappings":"6FAAA,4BAGeA,gBAAO,WAAUC,WAAA,CAAAC,YAAA,UAAAC,YAAA,eAAjBH,CAAiB,6DAETI,IAAMC,oB,sEC2BRC,KAAKC,IAAI,GAAI,GAxB3B,I,wBC4BQ,SAASC,EAASC,EAAUC,GACzC,IAAIC,EACJ,OAAAC,EAAA,GAAa,EAAGC,WAChB,IAAIC,EAAmB,OAAAC,EAAA,GAAmH,QAAxGJ,EAAwBD,aAAyC,EAASA,EAAQI,wBAAwD,IAA1BH,EAAmCA,EAAwB,GAC7M,GAAyB,IAArBG,GAA+C,IAArBA,GAA+C,IAArBA,EACtD,MAAM,IAAIE,WAAW,sCAEvB,GAA0B,iBAAbP,GAAsE,oBAA7CQ,OAAOC,UAAUC,SAASC,KAAKX,GACnE,OAAO,IAAIY,KAAKC,KAElB,IACIC,EADAC,EAAcC,EAAgBhB,GAElC,GAAIe,EAAYD,KAAM,CACpB,IAAIG,EAAkBC,EAAUH,EAAYD,KAAMT,GAClDS,EAAOK,EAAUF,EAAgBG,eAAgBH,EAAgBI,MAEnE,IAAKP,GAAQQ,MAAMR,EAAKS,WACtB,OAAO,IAAIX,KAAKC,KAElB,IAEIW,EAFAC,EAAYX,EAAKS,UACjBG,EAAO,EAEX,GAAIX,EAAYW,OACdA,EAAOC,EAAUZ,EAAYW,MACzBJ,MAAMI,IACR,OAAO,IAAId,KAAKC,KAGpB,IAAIE,EAAYa,SAKT,CACL,IAAIC,EAAY,IAAIjB,KAAKa,EAAYC,GAMjCI,EAAS,IAAIlB,KAAK,GAGtB,OAFAkB,EAAOC,YAAYF,EAAUG,iBAAkBH,EAAUI,cAAeJ,EAAUK,cAClFJ,EAAOK,SAASN,EAAUO,cAAeP,EAAUQ,gBAAiBR,EAAUS,gBAAiBT,EAAUU,sBAClGT,EAbP,OADAN,EAASgB,EAAczB,EAAYa,UAC/BN,MAAME,GACD,IAAIZ,KAAKC,KAcb,IAAID,KAAKa,EAAYC,EAAOF,GAErC,IAAIiB,EAAW,CACbC,kBAAmB,OACnBC,kBAAmB,QACnBf,SAAU,cAERgB,EAAY,gEACZC,EAAY,4EACZC,EAAgB,gCACpB,SAAS9B,EAAgB+B,GACvB,IAEIC,EAFAjC,EAAc,GACdkC,EAAQF,EAAWG,MAAMT,EAASC,mBAItC,GAAIO,EAAME,OAAS,EACjB,OAAOpC,EAYT,GAVI,IAAIqC,KAAKH,EAAM,IACjBD,EAAaC,EAAM,IAEnBlC,EAAYD,KAAOmC,EAAM,GACzBD,EAAaC,EAAM,GACfR,EAASE,kBAAkBS,KAAKrC,EAAYD,QAC9CC,EAAYD,KAAOiC,EAAWG,MAAMT,EAASE,mBAAmB,GAChEK,EAAaD,EAAWM,OAAOtC,EAAYD,KAAKqC,OAAQJ,EAAWI,UAGnEH,EAAY,CACd,IAAIM,EAAQb,EAASb,SAAS2B,KAAKP,GAC/BM,GACFvC,EAAYW,KAAOsB,EAAWQ,QAAQF,EAAM,GAAI,IAChDvC,EAAYa,SAAW0B,EAAM,IAE7BvC,EAAYW,KAAOsB,EAGvB,OAAOjC,EAET,SAASG,EAAU6B,EAAY1C,GAC7B,IAAIoD,EAAQ,IAAIC,OAAO,wBAA0B,EAAIrD,GAAoB,uBAAyB,EAAIA,GAAoB,QACtHsD,EAAWZ,EAAWa,MAAMH,GAEhC,IAAKE,EAAU,MAAO,CACpBtC,KAAMR,IACNO,eAAgB,IAElB,IAAIC,EAAOsC,EAAS,GAAKE,SAASF,EAAS,IAAM,KAC7CG,EAAUH,EAAS,GAAKE,SAASF,EAAS,IAAM,KAEpD,MAAO,CACLtC,KAAkB,OAAZyC,EAAmBzC,EAAiB,IAAVyC,EAChC1C,eAAgB2B,EAAWgB,OAAOJ,EAAS,IAAMA,EAAS,IAAIR,SAGlE,SAAShC,EAAU4B,EAAY1B,GAE7B,GAAa,OAATA,EAAe,OAAO,IAAIT,KAAKC,KACnC,IAAI8C,EAAWZ,EAAWa,MAAMhB,GAEhC,IAAKe,EAAU,OAAO,IAAI/C,KAAKC,KAC/B,IAAImD,IAAeL,EAAS,GACxBM,EAAYC,EAAcP,EAAS,IACnCQ,EAAQD,EAAcP,EAAS,IAAM,EACrCS,EAAMF,EAAcP,EAAS,IAC7BU,EAAOH,EAAcP,EAAS,IAC9BW,EAAYJ,EAAcP,EAAS,IAAM,EAC7C,GAAIK,EACF,OA+DJ,SAA0BO,EAAOF,EAAMD,GACrC,OAAOC,GAAQ,GAAKA,GAAQ,IAAMD,GAAO,GAAKA,GAAO,EAhE9CI,CAAiBnD,EAAMgD,EAAMC,GA2CtC,SAA0BG,EAAaJ,EAAMD,GAC3C,IAAItD,EAAO,IAAIF,KAAK,GACpBE,EAAK4D,eAAeD,EAAa,EAAG,GACpC,IAAIE,EAAqB7D,EAAK8D,aAAe,EACzCC,EAAoB,GAAZR,EAAO,GAASD,EAAM,EAAIO,EAEtC,OADA7D,EAAKgE,WAAWhE,EAAKoB,aAAe2C,GAC7B/D,EA9CEiE,CAAiB1D,EAAMgD,EAAMC,GAF3B,IAAI1D,KAAKC,KAIlB,IAAIC,EAAO,IAAIF,KAAK,GACpB,OAmDJ,SAAsBS,EAAM8C,EAAOrD,GACjC,OAAOqD,GAAS,GAAKA,GAAS,IAAMrD,GAAQ,GAAKA,IAASkE,EAAab,KAAWc,EAAgB5D,GAAQ,GAAK,KApDxG6D,CAAa7D,EAAM8C,EAAOC,IAsDnC,SAA+B/C,EAAM4C,GACnC,OAAOA,GAAa,GAAKA,IAAcgB,EAAgB5D,GAAQ,IAAM,KAvD3B8D,CAAsB9D,EAAM4C,IAGpEnD,EAAK4D,eAAerD,EAAM8C,EAAOtE,KAAKuF,IAAInB,EAAWG,IAC9CtD,GAHE,IAAIF,KAAKC,KAMtB,SAASqD,EAAcmB,GACrB,OAAOA,EAAQxB,SAASwB,GAAS,EAEnC,SAAS1D,EAAUqB,GACjB,IAAIW,EAAWX,EAAWY,MAAMf,GAChC,IAAKc,EAAU,OAAO9C,IAEtB,IAAIyE,EAAQC,EAAc5B,EAAS,IAC/B6B,EAAUD,EAAc5B,EAAS,IACjC8B,EAAUF,EAAc5B,EAAS,IACrC,OA2CF,SAAsB2B,EAAOE,EAASC,GACpC,GAAc,KAAVH,EACF,OAAmB,IAAZE,GAA6B,IAAZC,EAE1B,OAAOA,GAAW,GAAKA,EAAU,IAAMD,GAAW,GAAKA,EAAU,IAAMF,GAAS,GAAKA,EAAQ,GA/CxFI,CAAaJ,EAAOE,EAASC,GDzHJ,KC4HvBH,EDtIyB,ICsIIE,EAA2C,IAAVC,EAF5D5E,IAIX,SAAS0E,EAAcF,GACrB,OAAOA,GAASM,WAAWN,EAAM7B,QAAQ,IAAK,OAAS,EAEzD,SAAShB,EAAcoD,GACrB,GAAuB,MAAnBA,EAAwB,OAAO,EACnC,IAAIjC,EAAWiC,EAAehC,MAAMd,GACpC,IAAKa,EAAU,OAAO,EACtB,IAAIkC,EAAuB,MAAhBlC,EAAS,IAAc,EAAI,EAClC2B,EAAQzB,SAASF,EAAS,IAC1B6B,EAAU7B,EAAS,IAAME,SAASF,EAAS,KAAO,EACtD,OAkCF,SAA0BmC,EAAQN,GAChC,OAAOA,GAAW,GAAKA,GAAW,GAnC7BO,CAAiBT,EAAOE,GAGtBK,GD3IuB,KC2IfP,EDrJiB,ICqJYE,GAFnC3E,IAcX,IAAImE,EAAe,CAAC,GAAI,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAClE,SAASC,EAAgB5D,GACvB,OAAOA,EAAO,KAAQ,GAAKA,EAAO,GAAM,GAAKA,EAAO,KAAQ,I,oCC3M9Db,OAAOwF,eAAeC,EAAS,aAAc,CAC3CZ,OAAO,IAETY,EAAQC,gBAAa,EACrB,IAAIC,EAAU,EAAQ,QAClBC,EAAU,EAAQ,QACtBH,EAAQC,WAAa,SAAUG,EAAMC,GACnC,OAAOH,EAAQI,SAAQ,WACrB,OAAY,MAARF,GAAwB,MAARC,EACX,KAEF,SAAUE,GACfJ,EAAQK,OAAOJ,EAAMG,GACrBJ,EAAQK,OAAOH,EAAME,MAEtB,CAACH,EAAMC,M,oCCfZ9F,OAAOwF,eAAeC,EAAS,aAAc,CAC3CZ,OAAO,IAETY,EAAQQ,OAASR,EAAQS,kBAAoBT,EAAQU,eAAiBV,EAAQW,iBAAmBX,EAAQY,gBAAa,EACtH,IAAIV,EAAU,EAAQ,QACtBF,EAAQY,WAAa,SAAUC,GAC7B,MAAkB,iBAAPA,EACFA,EAAG5D,MAAM,KAAK6D,KAAK,KAAKC,OACtBF,aAAcG,YAChBH,EAAGI,UAEL,IAETjB,EAAQW,iBAAmB,SAAUO,GACnC,IAAIC,GAAU,EAUd,OATIC,MAAMC,QAAQH,GAChBhB,EAAQoB,SAASC,QAAQL,GAAU,SAAUM,GACtCtB,EAAQuB,eAAeD,KAC1BL,GAAU,MAIdA,EAAUjB,EAAQuB,eAAeP,GAE5BC,GAETnB,EAAQU,eAAiB,SAAUgB,GACjC,OAAOxB,EAAQuB,eAAeC,KAAqC,iBAAjBA,EAAQC,MAA6C,mBAAjBD,EAAQC,MAA+C,iBAAjBD,EAAQC,OAEtI3B,EAAQS,kBAAoB,SAAUmB,EAASC,GAE7C,IADA,IAAIC,GAAkB,EACbC,EAAI,EAAGA,EAAIH,EAAQ1E,OAAQ6E,IAClC,GAAIH,EAAQG,GAAGC,OAASH,EAAY,CAClCC,GAAkB,EAClB,MAGJ,OAAOA,GAET9B,EAAQQ,OAAS,SAAUyB,EAAK7C,GACX,mBAAR6C,EACTA,EAAI7C,GACK6C,IACTA,EAAIC,QAAU9C,K,kCC7ClB,2GA2Be,SAAS+C,EAAQC,GAatB,IAbuB,GAC/BC,EAAE,KACFC,EAAI,KACJC,EAAI,WACJC,EAAU,QACVC,EAAO,SACPC,EAAQ,UACRC,EAAS,MACTC,EAAK,YACLC,EAAW,SACXC,EAAQ,YACRC,EAAc,IAAG,YACjBC,EAAc,KACRZ,EACN,OACEa,gBAACC,EAAe,KACdD,gBAACE,EAAU,CAACd,GAAIA,EAAIC,KAAMA,EAAMc,MAAOb,EAAMc,QAASN,GACpDE,gBAACK,EAAe,CAACD,QAASL,GACvBR,GAAcS,gBAACM,EAAS,CAACC,MAAOhB,EAAYa,QAASL,IACrDP,GAAWQ,gBAACQ,EAAa,CAACC,IAAKjB,KAElCQ,gBAACU,EAAc,CAACP,MAAOb,GACpBG,GAAYC,EACXM,gBAACW,EAAa,KACZX,gBAAA,QAAMhC,UAAU,SAASyB,GACzBO,gBAAA,QAAMhC,UAAU,QAAQ0B,IAG1BM,gBAACY,EAAkB,MAErBZ,gBAACa,EAAW,KAAElB,GACdK,gBAACc,EAAa,KAAElB,IAElBI,gBAACe,EAAe,KACdf,gBAAA,YAAmB,MAAZH,GAAuBA,EAAQ,aACtCG,gBAAA,SAAG,gBAOb,MAAMC,EAAkB5J,IAAO2K,IAAG1K,WAAA,CAAAC,YAAA,4BAAAC,YAAA,eAAVH,CAAU,sGAa5B6J,EAAa7J,YAAO4K,IAAA,IAAC,GAAE7B,KAAO8B,GAAMD,EAAA,OACxC7B,EAAKY,gBAACmB,IAAI7J,OAAA8J,OAAA,CAAChC,GAAIA,GAAQ8B,IAAWlB,gBAAA,IAAOkB,KAC1C5K,WAAA,CAAAC,YAAA,uBAAAC,YAAA,eAFkBH,CAElB,mIACYgL,GAAMA,EAAEjB,QAGEiB,GAAOA,EAAElB,MAAQmB,IAAMC,KAAOD,IAAME,MAIlCH,GAAOA,EAAElB,MAAQmB,IAAMG,SAAWH,IAAMI,WAI3DrB,EAAkBhK,YAAO,OAAMC,WAAA,CAAAC,YAAA,4BAAAC,YAAA,eAAbH,CAAa,oHAKxBgL,GAAMA,EAAEjB,QACEiB,GAAOA,EAAElB,MAAQ,QAAU,WAG5CG,EAAYjK,YAAOsL,KAAIrL,WAAA,CAAAC,YAAA,sBAAAC,YAAA,eAAXH,CAAW,6BAChBgL,GAAMA,EAAEjB,SAIfI,EAAgBnK,IAAOuL,IAAGtL,WAAA,CAAAC,YAAA,0BAAAC,YAAA,eAAVH,CAAU,8CAM1BqK,EAAiBrK,IAAO2K,IAAG1K,WAAA,CAAAC,YAAA,2BAAAC,YAAA,eAAVH,CAAU,0JAQrBgL,GAAOA,EAAElB,MAAQmB,IAAME,MAAQF,IAAMG,UAc3Cd,EAAgBtK,IAAO2K,IAAG1K,WAAA,CAAAC,YAAA,0BAAAC,YAAA,eAAVH,CAAU,gKAIrBiL,IAAMI,WAUXd,EAAqBvK,IAAO2K,IAAG1K,WAAA,CAAAC,YAAA,+BAAAC,YAAA,eAAVH,CAAU,yBAI/BwK,EAAcxK,IAAOwL,OAAMvL,WAAA,CAAAC,YAAA,wBAAAC,YAAA,eAAbH,CAAa,sEAO3ByK,EAAgBzK,IAAO2K,IAAG1K,WAAA,CAAAC,YAAA,0BAAAC,YAAA,eAAVH,CAAU,4CAM1B0K,EAAkB1K,IAAO2K,IAAG1K,WAAA,CAAAC,YAAA,4BAAAC,YAAA,gBAAVH,CAAU,uHAMvBiL,IAAMQ,S,kCC/KjB,sFAsBe,SAASC,EAAiB5C,GAI/B,IAJgC,OACxC6C,EAAM,OACNC,EAAM,SACNC,EAAW,IACL/C,EACN,OACEa,gBAACmC,EAAa,CAACC,QAASH,EAAQI,UAAWH,GACzClC,gBAACsC,WAAQ,CAACN,OAAQA,KAKxB,MAAMG,EAAgB9L,YAAO,OAAMC,WAAA,CAAAC,YAAA,mCAAAC,YAAA,eAAbH,CAAa,2TAInBgL,GAAMA,EAAEgB,UAIVhB,GAAOA,EAAEe,QAAUd,IAAMiB,KAAOjB,IAAMkB,O,kCC1CpD,4GAUO,MAAMC,EAAczC,gBAAoB,CAC7C0C,WAAYjM,IAAMC,oBAOL,SAASiM,EAAIxD,GAIlB,IAJmB,WAC3BuD,EAAajM,IAAMC,kBAAiB,QACpCkM,GAAU,EAAK,SACf3E,GACMkB,EACN,OACEa,gBAACyC,EAAYI,SAAQ,CAAC1G,MAAO,CAAEuG,eAC7B1C,gBAACC,EAAe,CAACyC,WAAYA,EAAYE,QAASA,GAC/C3E,IAMT,MAAMgC,EAAkB5J,YAAO,OAAMC,WAAA,CAAAC,YAAA,wBAAAC,YAAA,eAAbH,CAAa,yGAGhBgL,GAAOA,EAAEuB,QAAU,cAAgB,MAEhCvB,GAAMA,EAAEqB,a,kCCrChC,8DAUe,SAASI,EAAmB3D,GAKjC,IALkC,SAC1C4D,EAAW,IAAG,UACdC,GAAY,EAAK,UACjBhF,EAAS,SACTC,GACMkB,EACN,OACEa,gBAACC,EAAe,CACdgD,UAAWF,EACXG,WAAYF,EACZhF,UAAWA,GAEVC,GAKP,MAAMgC,EAAkB5J,YAAO,OAAMC,WAAA,CAAAC,YAAA,uCAAAC,YAAA,eAAbH,CAAa,2EAKrBgL,GAAMA,EAAE4B,UAGA5B,GAAM1K,KAAKwM,IAAI9B,EAAE4B,UAAW,KAC7C5B,GAAMA,EAAE6B,YAAc,gB,mBCpC7BE,EAAOrG,QAAU,k0C,sGCWF,OACbwE,KAAM,cACNgB,KAAM,cACNd,SAAU,mBACV4B,KAAM,cACN3B,UAAW,oBACXI,OAAQ,gBACRN,MAAO,eACPgB,KAAM,UAENc,UAAW,oBACXC,cAAe,yBACfC,YAAa,uBCvBA,GACb9M,kBAAmB,IACnB+M,iBAAkB,IAClBC,yBAA0B,IAE1BC,aAAc,K,mBCLhBP,EAAOrG,QAAU,0Y,kCCEjB,IAAI6G,EAAWC,MAAQA,KAAKD,UAAY,WAQtC,OAPAA,EAAWtM,OAAO8J,QAAU,SAAU0C,GACpC,IAAK,IAAIC,EAAGjF,EAAI,EAAGkF,EAAI9M,UAAU+C,OAAQ6E,EAAIkF,EAAGlF,IAE9C,IAAK,IAAIuC,KADT0C,EAAI7M,UAAU4H,GACOxH,OAAOC,UAAU0M,eAAexM,KAAKsM,EAAG1C,KAAIyC,EAAEzC,GAAK0C,EAAE1C,IAE5E,OAAOyC,IAEOI,MAAML,KAAM3M,YAE1BiN,EAAkBN,MAAQA,KAAKM,kBAAoB7M,OAAO8M,OAAS,SAAUC,EAAGC,EAAGC,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3BjN,OAAOwF,eAAeuH,EAAGG,EAAI,CAC3BE,YAAY,EACZC,IAAK,WACH,OAAOL,EAAEC,OAGX,SAAUF,EAAGC,EAAGC,EAAGC,QACVC,IAAPD,IAAkBA,EAAKD,GAC3BF,EAAEG,GAAMF,EAAEC,KAERK,EAAqBf,MAAQA,KAAKe,qBAAuBtN,OAAO8M,OAAS,SAAUC,EAAGQ,GACxFvN,OAAOwF,eAAeuH,EAAG,UAAW,CAClCK,YAAY,EACZvI,MAAO0I,KAEP,SAAUR,EAAGQ,GACfR,EAAW,QAAIQ,IAEbC,EAAejB,MAAQA,KAAKiB,cAAgB,SAAUC,GACxD,GAAIA,GAAOA,EAAIC,WAAY,OAAOD,EAClC,IAAInM,EAAS,GACb,GAAW,MAAPmM,EAAa,IAAK,IAAIR,KAAKQ,EAAe,YAANR,GAAmBjN,OAAO2M,eAAexM,KAAKsN,EAAKR,IAAIJ,EAAgBvL,EAAQmM,EAAKR,GAE5H,OADAK,EAAmBhM,EAAQmM,GACpBnM,GAELqM,EAAkBpB,MAAQA,KAAKoB,iBAAmB,SAAUF,GAC9D,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CACnC,QAAWA,IAGfzN,OAAOwF,eAAeC,EAAS,aAAc,CAC3CZ,OAAO,IAET,IAAIc,EAAU6H,EAAa,EAAQ,SAC/BI,EAAWD,EAAgB,EAAQ,SACnCE,EAAkBF,EAAgB,EAAQ,SAC1C/H,EAAU,EAAQ,QAClBkI,EAAU,EAAQ,QAClBC,EAAgBpI,EAAQqI,YAAW,SAAUC,EAAOC,GACtD,IAAIC,EAAiBF,EAAME,eACzBC,EAAcH,EAAMG,YACpBzH,EAAWsH,EAAMtH,SACjB0H,EAAiBJ,EAAMI,eACvBC,EAAaL,EAAMK,WACnBC,EAAYN,EAAMM,UAClBC,EAAaP,EAAMO,WACnBC,EAAWR,EAAMQ,SACjBC,EAAaT,EAAMS,WACnBC,EAAYV,EAAMU,UAClBC,EAAeX,EAAMW,aACrBC,EAAkBZ,EAAMY,gBACxBC,EAAkBb,EAAMa,gBACxBC,EAAmBd,EAAMc,iBACzBC,EAAmBf,EAAMe,iBACzBC,EAAmBhB,EAAMgB,iBACzBC,EAAiBjB,EAAMiB,eACvBC,EAAMlB,EAAMkB,IACZC,EAAYnB,EAAMmB,UAClBC,EAAqBpB,EAAMoB,mBAC3BC,EAAarB,EAAMqB,WACnBC,EAAOtB,EAAMsB,KAEXC,EAAoB7J,EAAQ8J,OAAO,MAEnCC,EAAgB/J,EAAQ8J,OAAO,MAE/B/H,EAAMoG,EAAQpI,WAAWgK,EAAexB,GAExCyB,EAA+BhK,EAAQiK,aAAY,WACrD,IAAKzB,EACH,OAAO,KAET,IAAI0B,EAAgB,EAEhBC,EAAKP,EAAO,EAAI,EASpB,OARA5J,EAAQoB,SAASC,QAAQL,GAAU,SAAUM,GACvCtB,EAAQuB,eAAeD,KACrBA,EAAM8I,MAAQ5B,IAChB0B,EAAgBC,GAElBA,GAAM,MAGHD,IACN,CAAC1B,EAAgBxH,EAAU4I,IAE1BS,EAAgBrK,EAAQiK,aAAY,WACJ,OAA9BJ,EAAkB7H,UACpB6H,EAAkB7H,QAAQsI,SAAQ,GAAM,GACxCrK,EAAQK,OAAOuJ,EAAmB,SAEnC,IAECU,EAAcvK,EAAQiK,aAAY,WAChCF,EAAc/H,SAAyC,OAA9B6H,EAAkB7H,SAC7C/B,EAAQK,OAAOuJ,EAAmB,IAAI5B,EAASuC,QAAQT,EAAc/H,QAASkG,EAAgBsC,QAAQ,GAAIlC,OAE3G,CAACA,IAyCJ,OA1BAtI,EAAQyK,WAAU,WAChB,OAAO,WACL,OAAOJ,OAER,CAACA,IACJrK,EAAQyK,WAAU,WAEhB,GADAF,IACkC,OAA9BV,EAAkB7H,QAAkB,CAClCkH,GACFmB,IACAE,KACSb,GACTG,EAAkB7H,QAAQ0I,SAE5B,IAAIC,EAAYd,EAAkB7H,QAAQ4I,OAAO5N,OACjD,GAAI2N,GAAad,EAAkB7H,QAAQ6I,YAAa,CACtD,IAAIC,EAAQpR,KAAKuF,IAAI0L,EAAY,EAAG,GACpCd,EAAkB7H,QAAQ+I,QAAQD,GAEpC,IAAIE,EAAehB,IACE,OAAjBgB,GACFnB,EAAkB7H,QAAQ+I,QAAQC,MAGrC,CAACX,EAAeL,EAA8Bd,EAAiBQ,EAAoBa,IAEjFvJ,GAAayH,GAAgBO,GAI7B/I,EAAQQ,iBAAiBO,GAMvBhB,EAAQwK,QAAQS,cAAcxC,EAAa,CAChD1H,UAAW2H,EACXwC,IAAK1B,GAAO,MACZzH,IAAKA,GACJ+G,GAAYC,GAAcQ,GAAkBA,EAAejB,GAAQtI,EAAQwK,QAAQS,cAAcjC,EAAW,CAC7GjI,UAAWkI,GACVjJ,EAAQoB,SAAS+J,IAAInK,GAvDJ,SAAUoK,GAC5B,IAAKnL,EAAQO,eAAe4K,GAC1B,OAAO,KAET,IAAIC,EAAkB,CAAC1B,EAAYyB,EAAE9C,MAAMvH,WAI3C,OAHI6H,GACFyC,EAAgBC,KAAK,qBAEhBtL,EAAQuL,aAAaH,EAAGzE,EAASA,EAAS,GAAIyE,EAAE9C,OAAQ,CAC7DvH,UAAWsK,EAAgBzK,KAAK,KAAKC,cA8CUgI,GAAcA,EAAWlI,IAAMyI,GAAoBA,EAAiBd,GAAQmB,GAAaA,EAAU9I,IAAMwI,GAAmBA,EAAgBb,GAAQK,GAAcA,EAAW6C,QAAUlC,GAAoBA,EAAiBhB,GAAQK,GAAcA,EAAW8C,QAAUpC,GAAoBA,EAAiBf,IAftV,QAkBXF,EAAcsD,aAAe,CAC3BhD,eAAgB,mBAChBO,aAAc,iBACdU,WAAY,eACZlB,YAAa,MACbO,UAAW,MACXG,gBAAiB,SAAUwC,GACzB,IAAIlC,EAAYkC,EAAGlC,UACnB,OAAOA,EAAYzJ,EAAQwK,QAAQS,cAAc,MAAO,CACtDlK,UAAWd,EAAQS,WAAW+I,EAAU9I,MACrC,MAEPyI,iBAAkB,SAAUuC,GAC1B,IAAI9C,EAAa8C,EAAG9C,WACpB,OAAOA,EAAa7I,EAAQwK,QAAQS,cAAc,MAAO,CACvDlK,UAAWd,EAAQS,WAAWmI,EAAWlI,MACtC,MAEP0I,iBAAkB,SAAUsC,GAC1B,IAAIhD,EAAagD,EAAGhD,WACpB,OAAOA,EAAa3I,EAAQwK,QAAQS,cAAc,MAAO,CACvDlK,UAAWd,EAAQS,WAAWiI,EAAW8C,UACtC,MAEPnC,iBAAkB,SAAUqC,GAC1B,IAAIhD,EAAagD,EAAGhD,WACpB,OAAOA,EAAa3I,EAAQwK,QAAQS,cAAc,MAAO,CACvDlK,UAAWd,EAAQS,WAAWiI,EAAW6C,UACtC,MAEPjC,eAAgB,SAAUoC,GACxB,IAAI5C,EAAa4C,EAAG5C,WACpB,OAAOA,EAAa/I,EAAQwK,QAAQS,cAAc,MAAO,CACvDlK,UAAWd,EAAQS,WAAWqI,EAAWpI,IACzC,uBAAwBoI,EAAW7J,QAChC,OAGTkJ,EAAc9O,YAAc,gBAC5BwG,EAAQ0K,QAAUpC,G,kCClNlB,0EAWe,SAASwD,EAAG1J,GAAqC,IAApC,KAAE2J,EAAI,SAAE7K,KAAaiD,GAAa/B,EAC5D,MAAM,WAAEuD,GAAe1C,aAAiByC,KACxC,OACEzC,gBAAC+I,EAASzR,OAAA8J,OAAA,CAAC0H,KAAMA,GAAQ,EAAGpG,WAAYA,GAAgBxB,GACrDjD,GAYP,MAAM8K,EAAY1S,YAAO,OAAMC,WAAA,CAAAC,YAAA,iBAAAC,YAAA,eAAbH,CAAa,sBACpBgL,GAAMA,EAAEyH,KACdzH,GACDA,EAAEqB,YACFrB,EAAE2H,YAAU,sBACU3H,EAAEqB,WAAU,SAASrB,EAAE2H,WAAU,MACtD3H,GACDA,EAAEqB,YACFrB,EAAE4H,WAAS,uBACW5H,EAAEqB,WAAa,GAAC,SAASrB,EAAE4H,UAAS,Q,mBCpC9D7F,EAAOrG,QAAU,k8E,mBCAjBqG,EAAOrG,QAAU,01F,kCCAjB,sFAee,SAASmM,EAAM/J,GAA8C,IAA7C,MAAEgK,EAAK,MAAEC,EAAQ,YAAalI,GAAa/B,EACxE,OACEa,gBAACqJ,EAAY/R,OAAA8J,OAAA,CAACgI,MAAOA,GAAWlI,GAC7BiI,GASP,MAAME,EAAehT,YAAO4K,IAAA,IAAC,GAAE7B,KAAO8B,GAAMD,EAAA,OAC1C7B,EAAKY,gBAACmB,IAAI7J,OAAA8J,OAAA,CAAChC,GAAIA,GAAQ8B,IAAWlB,gBAAA,IAAOkB,KAC1C5K,WAAA,CAAAC,YAAA,uBAAAC,YAAA,gBAFoBH,CAEpB,yMAEsBgL,GAAmBC,IAAMD,EAAE+H,OAIhC/H,GACF,WAAZA,EAAE+H,OAAkC,SAAZ/H,EAAE+H,MAAmB,IAAM,IAC3C/H,GACI,WAAZA,EAAE+H,OAAkC,SAAZ/H,EAAE+H,MAAmB9H,IAAMG,SAAWH,IAAME,MAM/CH,GAClBC,IAAiBD,EAAE+H,MAAK,UAAY9H,IAAMC,O,o8BC7CjD,SAAS+H,IAYP,OAXAA,EAAWhS,OAAO8J,QAAU,SAAUmI,GACpC,IAAK,IAAIzK,EAAI,EAAGA,EAAI5H,UAAU+C,OAAQ6E,IAAK,CACzC,IAAI0K,EAAStS,UAAU4H,GACvB,IAAK,IAAIuI,KAAOmC,EACVlS,OAAOC,UAAU0M,eAAexM,KAAK+R,EAAQnC,KAC/CkC,EAAOlC,GAAOmC,EAAOnC,IAI3B,OAAOkC,IAEOrF,MAAML,KAAM3M,WAI9B,IAAIuS,EAAU,CACZ9B,OAAQ,SAAgB+B,GACtB,IAAIC,EAAS9F,KACT+F,EAAiBD,EAAOE,OAC1BC,EAAgBF,EAAeE,cAC/BC,EAAiBH,EAAeG,eAChCC,EAAiBJ,EAAeI,eAC9BC,EAAwBN,EAAOE,OAAOK,QACxCC,EAAkBF,EAAsBE,gBACxCC,EAAiBH,EAAsBG,eACrCC,EAAkBV,EAAOO,QAC3BI,EAAeD,EAAgBE,KAC/BC,EAAaH,EAAgBjL,GAC7ByI,EAASwC,EAAgBxC,OACzB4C,EAAqBJ,EAAgBK,WACrCC,EAAcN,EAAgBM,YAC9BC,EAAiBP,EAAgB/R,OACnCqR,EAAOkB,oBACP,IACIC,EAEAC,EACAC,EAJAlD,EAAc6B,EAAO7B,aAAe,EAEfgD,EAArBnB,EAAOsB,aAA2B,QAA0BtB,EAAOuB,eAAiB,OAAS,MAG7FlB,GACFe,EAAcpU,KAAKwU,MAAMrB,EAAgB,GAAKC,EAAiBK,EAC/DY,EAAerU,KAAKwU,MAAMrB,EAAgB,GAAKC,EAAiBI,IAEhEY,EAAcjB,GAAiBC,EAAiB,GAAKK,EACrDY,EAAejB,EAAiBI,GAElC,IAAII,EAAO5T,KAAKuF,KAAK4L,GAAe,GAAKkD,EAAc,GACnD5L,EAAKzI,KAAKwM,KAAK2E,GAAe,GAAKiD,EAAalD,EAAO5N,OAAS,GAChE3B,GAAUqR,EAAOe,WAAWH,IAAS,IAAMZ,EAAOe,WAAW,IAAM,GAOvE,SAASU,IACPzB,EAAO0B,eACP1B,EAAO2B,iBACP3B,EAAO4B,sBACH5B,EAAO6B,MAAQ7B,EAAOE,OAAO2B,KAAKC,SACpC9B,EAAO6B,KAAKE,OAGhB,GAdA,YAAO/B,EAAOO,QAAS,CACrBK,KAAMA,EACNnL,GAAIA,EACJ9G,OAAQA,EACRoS,WAAYf,EAAOe,aAUjBJ,IAAiBC,GAAQC,IAAepL,IAAOsK,EAKjD,OAJIC,EAAOe,aAAeD,GAAsBnS,IAAWsS,GACzDjB,EAAO9B,OAAO8D,IAAIb,EAAYxS,EAAS,WAEzCqR,EAAO2B,iBAGT,GAAI3B,EAAOE,OAAOK,QAAQ0B,eAgBxB,OAfAjC,EAAOE,OAAOK,QAAQ0B,eAAenU,KAAKkS,EAAQ,CAChDrR,OAAQA,EACRiS,KAAMA,EACNnL,GAAIA,EACJyI,OAAQ,WAEN,IADA,IAAIgE,EAAiB,GACZ/M,EAAIyL,EAAMzL,GAAKM,EAAIN,GAAK,EAC/B+M,EAAetD,KAAKV,EAAO/I,IAE7B,OAAO+M,EALD,UAQNlC,EAAOE,OAAOK,QAAQ4B,sBACxBV,KAIJ,IAAIW,EAAiB,GACjBC,EAAgB,GACpB,GAAItC,EACFC,EAAOsC,WAAWC,KAAK,IAAMvC,EAAOE,OAAOjD,YAAYuF,cAEvD,IAAK,IAAIrN,EAAIwL,EAAcxL,GAAK0L,EAAY1L,GAAK,GAC3CA,EAAIyL,GAAQzL,EAAIM,IAClBuK,EAAOsC,WAAWC,KAAK,IAAMvC,EAAOE,OAAOjD,WAAa,6BAAgC9H,EAAI,MAAOqN,SAIzG,IAAK,IAAIC,EAAK,EAAGA,EAAKvE,EAAO5N,OAAQmS,GAAM,EACrCA,GAAM7B,GAAQ6B,GAAMhN,SACI,IAAfoL,GAA8Bd,EACvCsC,EAAczD,KAAK6D,IAEfA,EAAK5B,GAAYwB,EAAczD,KAAK6D,GACpCA,EAAK9B,GAAcyB,EAAexD,KAAK6D,KAIjDJ,EAAc1N,SAAQ,SAAUyJ,GAC9B4B,EAAOsC,WAAWI,OAAO1B,EAAY9C,EAAOE,GAAQA,OAEtDgE,EAAeO,MAAK,SAAUC,EAAGC,GAC/B,OAAOA,EAAID,KACVjO,SAAQ,SAAUyJ,GACnB4B,EAAOsC,WAAWQ,QAAQ9B,EAAY9C,EAAOE,GAAQA,OAEvD4B,EAAOsC,WAAWhO,SAAS,iBAAiB0N,IAAIb,EAAYxS,EAAS,MACrE8S,KAEFT,YAAa,SAAqB+B,EAAO3E,GACvC,IACI8B,EADShG,KACOgG,OAAOK,QAC3B,GAAIL,EAAO8C,OAFE9I,KAEcqG,QAAQyC,MAAM5E,GACvC,OAHWlE,KAGGqG,QAAQyC,MAAM5E,GAE9B,IAAI6E,EAAW/C,EAAOc,YAAc,YAAEd,EAAOc,YAAYlT,KAL5CoM,KAKyD6I,EAAO3E,IAAU,YAAE,eAL5ElE,KAKqGgG,OAAOjD,WAAa,8BAAkCmB,EAAQ,KAAQ2E,EAAQ,UAGhM,OAFKE,EAASC,KAAK,4BAA4BD,EAASC,KAAK,0BAA2B9E,GACpF8B,EAAO8C,QAPE9I,KAOYqG,QAAQyC,MAAM5E,GAAS6E,GACzCA,GAETE,YAAa,SAAqBjF,GAEhC,GAAsB,iBAAXA,GAAuB,WAAYA,EAC5C,IAAK,IAAI/I,EAAI,EAAGA,EAAI+I,EAAO5N,OAAQ6E,GAAK,EAClC+I,EAAO/I,IAHF+E,KAGaqG,QAAQrC,OAAOU,KAAKV,EAAO/I,SAHxC+E,KAMJqG,QAAQrC,OAAOU,KAAKV,GANhBhE,KAQNqG,QAAQvC,QAAO,IAExBoF,aAAc,SAAsBlF,GAClC,IACIC,EADSjE,KACYiE,YACrBkF,EAAiBlF,EAAc,EAC/BmF,EAAoB,EACxB,GAAI9O,MAAMC,QAAQyJ,GAAS,CACzB,IAAK,IAAI/I,EAAI,EAAGA,EAAI+I,EAAO5N,OAAQ6E,GAAK,EAClC+I,EAAO/I,IANF+E,KAMaqG,QAAQrC,OAAOqF,QAAQrF,EAAO/I,IAEtDkO,EAAiBlF,EAAcD,EAAO5N,OACtCgT,EAAoBpF,EAAO5N,YAThB4J,KAWJqG,QAAQrC,OAAOqF,QAAQrF,GAEhC,GAbahE,KAaFgG,OAAOK,QAAQyC,MAAO,CAC/B,IAAIA,EAdO9I,KAcQqG,QAAQyC,MACvBQ,EAAW,GACf7V,OAAO8V,KAAKT,GAAOrO,SAAQ,SAAU+O,GACnC,IAAIC,EAAYX,EAAMU,GAClBE,EAAgBD,EAAUT,KAAK,2BAC/BU,GACFD,EAAUT,KAAK,0BAA2BlS,SAAS4S,EAAe,IAAM,GAE1EJ,EAASxS,SAAS0S,EAAa,IAAMJ,GAAqBK,KAtBjDzJ,KAwBJqG,QAAQyC,MAAQQ,EAxBZtJ,KA0BNqG,QAAQvC,QAAO,GA1BT9D,KA2BNmE,QAAQgF,EAAgB,IAEjCQ,YAAa,SAAqBC,GAEhC,GAAI,MAAOA,EAAX,CACA,IAAI3F,EAFSjE,KAEYiE,YACzB,GAAI3J,MAAMC,QAAQqP,GAChB,IAAK,IAAI3O,EAAI2O,EAAcxT,OAAS,EAAG6E,GAAK,EAAGA,GAAK,EAJzC+E,KAKFqG,QAAQrC,OAAO6F,OAAOD,EAAc3O,GAAI,GALtC+E,KAMEgG,OAAOK,QAAQyC,cANjB9I,KAOOqG,QAAQyC,MAAMc,EAAc3O,IAExC2O,EAAc3O,GAAKgJ,IAAaA,GAAe,GACnDA,EAAcnR,KAAKuF,IAAI4L,EAAa,QAV3BjE,KAaJqG,QAAQrC,OAAO6F,OAAOD,EAAe,GAbjC5J,KAcAgG,OAAOK,QAAQyC,cAdf9I,KAeKqG,QAAQyC,MAAMc,GAE1BA,EAAgB3F,IAAaA,GAAe,GAChDA,EAAcnR,KAAKuF,IAAI4L,EAAa,GAlBzBjE,KAoBNqG,QAAQvC,QAAO,GApBT9D,KAqBNmE,QAAQF,EAAa,KAE9B6F,gBAAiB,WACF9J,KACNqG,QAAQrC,OAAS,GADXhE,KAEFgG,OAAOK,QAAQyC,QAFb9I,KAGJqG,QAAQyC,MAAQ,IAHZ9I,KAKNqG,QAAQvC,QAAO,GALT9D,KAMNmE,QAAQ,EAAG,KAGP,GACbjJ,KAAM,UACN8K,OAAQ,CACNK,QAAS,CACPuB,SAAS,EACT5D,OAAQ,GACR8E,OAAO,EACPhC,YAAa,KACbiB,eAAgB,KAChBE,sBAAsB,EACtB3B,gBAAiB,EACjBC,eAAgB,IAGpBhG,OAAQ,WAEN,YADaP,KACa,CACxBqG,QAASZ,EAAS,GAAIG,EAAS,CAC7B5B,OAHShE,KAGMgG,OAAOK,QAAQrC,OAC9B8E,MAAO,QAIbiB,GAAI,CACFC,WAAY,SAAoBlE,GAC9B,GAAKA,EAAOE,OAAOK,QAAQuB,QAA3B,CACA9B,EAAOhM,WAAW4K,KAAKoB,EAAOE,OAAOiE,uBAAyB,WAC9D,IAAIC,EAAkB,CACpBC,qBAAqB,GAEvB,YAAOrE,EAAOE,OAAQkE,GACtB,YAAOpE,EAAOsE,eAAgBF,GACzBpE,EAAOE,OAAOqE,cACjBvE,EAAOO,QAAQvC,WAGnBwG,aAAc,SAAsBxE,GAC7BA,EAAOE,OAAOK,QAAQuB,SAC3B9B,EAAOO,QAAQvC,Y,YCpPrB,SAAS,IAYP,OAXA,EAAWrQ,OAAO8J,QAAU,SAAUmI,GACpC,IAAK,IAAIzK,EAAI,EAAGA,EAAI5H,UAAU+C,OAAQ6E,IAAK,CACzC,IAAI0K,EAAStS,UAAU4H,GACvB,IAAK,IAAIuI,KAAOmC,EACVlS,OAAOC,UAAU0M,eAAexM,KAAK+R,EAAQnC,KAC/CkC,EAAOlC,GAAOmC,EAAOnC,IAI3B,OAAOkC,IAEOrF,MAAML,KAAM3M,WAO9B,IAAIkX,EAAW,CACbC,OAAQ,SAAgBC,GAEtB,GADazK,KACD4H,QAAZ,CACA,IAAI8C,EAAS,cACTC,EAAW,cACX/H,EAJS5C,KAIIoH,aACb5C,EAAIiG,EACJjG,EAAEoG,gBAAepG,EAAIA,EAAEoG,eAE3B,IAAIC,EAAKrG,EAAEsG,SAAWtG,EAAEuG,SACpBC,EATShL,KASWgG,OAAOiF,SAASD,WACpCE,EAAWF,GAAqB,KAAPH,EACzBM,EAAaH,GAAqB,KAAPH,EAC3BO,EAAqB,KAAPP,EACdQ,EAAsB,KAAPR,EACfS,EAAmB,KAAPT,EACZU,EAAqB,KAAPV,EAElB,IAjBa7K,KAiBDwL,iBAjBCxL,KAiByBqH,gBAAkBgE,GAjB3CrL,KAiBkEyL,cAAgBF,GAAeJ,GAC5G,OAAO,EAET,IApBanL,KAoBD0L,iBApBC1L,KAoByBqH,gBAAkB+D,GApB3CpL,KAoBiEyL,cAAgBH,GAAaJ,GACzG,OAAO,EAET,KAAI1G,EAAEmH,UAAYnH,EAAEoH,QAAUpH,EAAEqH,SAAWrH,EAAEsH,SAGzCnB,EAASoB,eAAiBpB,EAASoB,cAAcC,WAA+D,UAAlDrB,EAASoB,cAAcC,SAASC,eAA+E,aAAlDtB,EAASoB,cAAcC,SAASC,gBAA/J,CAGA,GA7BajM,KA6BFgG,OAAOiF,SAASiB,iBAAmBhB,GAAYC,GAAcC,GAAeC,GAAgBC,GAAaC,GAAc,CAChI,IAAIY,GAAS,EAEb,GAhCWnM,KAgCAoM,IAAIC,QAAQ,IAhCZrM,KAgCyBgG,OAAOjD,YAAY3M,OAAS,GAAyE,IAhC9H4J,KAgCiEoM,IAAIC,QAAQ,IAhC7ErM,KAgC0FgG,OAAOsG,kBAAkBlW,OAC5H,OAEF,IAAIgW,EAnCOpM,KAmCMoM,IACbG,EAAcH,EAAI,GAAGI,YACrBC,EAAeL,EAAI,GAAGM,aACtBC,EAAcjC,EAAOkC,WACrBC,EAAenC,EAAOoC,YACtBC,EAxCO/M,KAwCeoM,IAAI3X,SAC1BmO,IAAKmK,EAAaC,MAzCXhN,KAyC0BoM,IAAI,GAAGa,YAE5C,IADA,IAAIC,EAAc,CAAC,CAACH,EAAaC,KAAMD,EAAaI,KAAM,CAACJ,EAAaC,KAAOT,EAAaQ,EAAaI,KAAM,CAACJ,EAAaC,KAAMD,EAAaI,IAAMV,GAAe,CAACM,EAAaC,KAAOT,EAAaQ,EAAaI,IAAMV,IACjNxR,EAAI,EAAGA,EAAIiS,EAAY9W,OAAQ6E,GAAK,EAAG,CAC9C,IAAImS,EAAQF,EAAYjS,GACxB,GAAImS,EAAM,IAAM,GAAKA,EAAM,IAAMT,GAAeS,EAAM,IAAM,GAAKA,EAAM,IAAMP,EAAc,CACzF,GAAiB,IAAbO,EAAM,IAAyB,IAAbA,EAAM,GAAU,SAEtCjB,GAAS,GAGb,IAAKA,EAAQ,OAnDFnM,KAqDFqH,iBACL6D,GAAYC,GAAcC,GAAeC,KACvC7G,EAAE6I,eAAgB7I,EAAE6I,iBAAsB7I,EAAE8I,aAAc,KAE3DnC,GAAcE,KAAkBzI,IAAQsI,GAAYE,IAAgBxI,IAzD9D5C,KAyD0EuN,cAChFrC,GAAYE,KAAiBxI,IAAQuI,GAAcE,IAAiBzI,IA1D9D5C,KA0D0EwN,eAEjFtC,GAAYC,GAAcG,GAAaC,KACrC/G,EAAE6I,eAAgB7I,EAAE6I,iBAAsB7I,EAAE8I,aAAc,IAE5DnC,GAAcI,IA/DPvL,KA+D2BuN,aAClCrC,GAAYI,IAhELtL,KAgEuBwN,aAhEvBxN,KAkENyN,KAAK,WAAY5C,MAG1B6C,OAAQ,WACN,IACI/C,EAAW,cADF3K,KAEFiL,SAASrD,UACpB,YAAE+C,GAAUZ,GAAG,UAHF/J,KAGoBiL,SAAST,QAH7BxK,KAINiL,SAASrD,SAAU,IAE5B+F,QAAS,WACP,IACIhD,EAAW,cADF3K,KAEDiL,SAASrD,UACrB,YAAE+C,GAAUiD,IAAI,UAHH5N,KAGqBiL,SAAST,QAH9BxK,KAINiL,SAASrD,SAAU,KAGf,GACb1M,KAAM,WACN8K,OAAQ,CACNiF,SAAU,CACRrD,SAAS,EACTsE,gBAAgB,EAChBlB,YAAY,IAGhBzK,OAAQ,WAEN,YADaP,KACa,CACxBiL,SAAU,EAAS,CACjBrD,SAAS,GACR2C,MAGPR,GAAI,CACF8D,KAAM,SAAc/H,GACdA,EAAOE,OAAOiF,SAASrD,SACzB9B,EAAOmF,SAASyC,UAGpBhK,QAAS,SAAiBoC,GACpBA,EAAOmF,SAASrD,SAClB9B,EAAOmF,SAAS0C,aC5GxB,IAAIG,EAAa,CACfC,eAAgB,cAChBC,yBAAqBpN,EACrBqN,kBAAmB,GACnBxD,MAAO,WAEL,OADa,cACFyD,UAAUC,UAAUC,QAAQ,YAAc,EAAU,iBAxBnE,WACE,IAAIzD,EAAW,cAEX0D,EADY,YACgB1D,EAChC,IAAK0D,EAAa,CAChB,IAAIzT,EAAU+P,EAAStG,cAAc,OACrCzJ,EAAQ0T,aAJM,UAIkB,WAChCD,EAA4C,mBAAvBzT,EAAiB,QASxC,OAPKyT,GAAe1D,EAAS4D,gBAAkB5D,EAAS4D,eAAeC,aAGxB,IAA/C7D,EAAS4D,eAAeC,WAAW,GAAI,MAErCH,EAAc1D,EAAS4D,eAAeC,WAAW,eAAgB,QAE5DH,EASEI,GAAqB,QAAU,cAExCC,UAAW,SAAmBlK,GAE5B,IAGImK,EAAK,EACLC,EAAK,EAELC,EAAK,EACLC,EAAK,EAmDT,MAhDI,WAAYtK,IACdoK,EAAKpK,EAAEuK,QAEL,eAAgBvK,IAClBoK,GAAMpK,EAAEwK,WAAa,KAEnB,gBAAiBxK,IACnBoK,GAAMpK,EAAEyK,YAAc,KAEpB,gBAAiBzK,IACnBmK,GAAMnK,EAAE0K,YAAc,KAGpB,SAAU1K,GAAKA,EAAE2K,OAAS3K,EAAE4K,kBAC9BT,EAAKC,EACLA,EAAK,GAEPC,EA3BiB,GA2BZF,EACLG,EA5BiB,GA4BZF,EACD,WAAYpK,IACdsK,EAAKtK,EAAE6K,QAEL,WAAY7K,IACdqK,EAAKrK,EAAE8K,QAEL9K,EAAEmH,WAAakD,IAEjBA,EAAKC,EACLA,EAAK,IAEFD,GAAMC,IAAOtK,EAAE+K,YACE,IAAhB/K,EAAE+K,WAEJV,GA1Cc,GA2CdC,GA3Cc,KA8CdD,GA7Cc,IA8CdC,GA9Cc,MAkDdD,IAAOF,IACTA,EAAKE,EAAK,GAAK,EAAI,GAEjBC,IAAOF,IACTA,EAAKE,EAAK,GAAK,EAAI,GAEd,CACLU,MAAOb,EACPc,MAAOb,EACPc,OAAQb,EACRc,OAAQb,IAGZc,iBAAkB,WACH5P,KACD4H,UADC5H,KAEN6P,cAAe,IAExBC,iBAAkB,WACH9P,KACD4H,UADC5H,KAEN6P,cAAe,IAExBrF,OAAQ,SAAgBC,GACtB,IAAIjG,EAAIiG,EAEJ3E,EAAS9F,KACb,GAAK8F,EAAO8B,QAAZ,CACA,IAAI5B,EAASF,EAAOE,OAAO+J,WACvBjK,EAAOE,OAAOgK,SAChBxL,EAAE6I,iBAEJ,IAAI3H,EAASI,EAAOsG,IAIpB,GAH8C,cAA1CtG,EAAOE,OAAO+J,WAAWE,eAC3BvK,EAAS,YAAEI,EAAOE,OAAO+J,WAAWE,gBAEjCnK,EAAO+J,eAAiBnK,EAAO,GAAGwK,SAAS1L,EAAEkB,UAAYM,EAAOmK,eAAgB,OAAO,EACxF3L,EAAEoG,gBAAepG,EAAIA,EAAEoG,eAE3B,IAAIwF,EAAQ,EACRC,EAAYvK,EAAOsB,cAAgB,EAAI,EACvCkJ,EAAOxC,EAAWY,UAAUlK,GAChC,GAAIwB,EAAOuK,YACT,GAAIzK,EAAOuB,eAAgB,CACzB,KAAIvU,KAAK0d,IAAIF,EAAKZ,QAAU5c,KAAK0d,IAAIF,EAAKX,SAA+C,OAAO,EAA7CS,GAASE,EAAKZ,OAASW,MACrE,MAAIvd,KAAK0d,IAAIF,EAAKX,QAAU7c,KAAK0d,IAAIF,EAAKZ,SAAmC,OAAO,EAAjCU,GAASE,EAAKX,YAExES,EAAQtd,KAAK0d,IAAIF,EAAKZ,QAAU5c,KAAK0d,IAAIF,EAAKX,SAAWW,EAAKZ,OAASW,GAAaC,EAAKX,OAE3F,GAAc,IAAVS,EAAa,OAAO,EACpBpK,EAAOyK,SAAQL,GAASA,GAE5B,IAAIM,EAAY5K,EAAO6K,eAAiBP,EAAQpK,EAAO4K,YAYvD,GAXIF,GAAa5K,EAAO+K,iBAAgBH,EAAY5K,EAAO+K,gBACvDH,GAAa5K,EAAOgL,iBAAgBJ,EAAY5K,EAAOgL,mBAQrChL,EAAOE,OAAOhD,QAAgB0N,IAAc5K,EAAO+K,gBAAkBH,IAAc5K,EAAOgL,kBACrFhL,EAAOE,OAAO+K,QAAQvM,EAAEwM,kBAC9ClL,EAAOE,OAAOiL,SAkCZ,CAML,IAAIC,EAAY,CACdvc,KAAM,cACNyb,MAAOtd,KAAK0d,IAAIJ,GAChBe,UAAWre,KAAKgG,KAAKsX,IAEnBpC,EAAsBlI,EAAOiK,WAAW/B,oBACxCoD,EAAoBpD,GAAuBkD,EAAUvc,KAAOqZ,EAAoBrZ,KAAO,KAAOuc,EAAUd,OAASpC,EAAoBoC,OAASc,EAAUC,YAAcnD,EAAoBmD,UAC9L,IAAKC,EAAmB,CACtBtL,EAAOiK,WAAW/B,yBAAsBpN,EACpCkF,EAAOE,OAAOhD,MAChB8C,EAAOuL,UAET,IAAIC,EAAWxL,EAAO6K,eAAiBP,EAAQpK,EAAO4K,YAClDW,EAAezL,EAAO0L,YACtBC,EAAS3L,EAAO4L,MAWpB,GAVIJ,GAAYxL,EAAO+K,iBAAgBS,EAAWxL,EAAO+K,gBACrDS,GAAYxL,EAAOgL,iBAAgBQ,EAAWxL,EAAOgL,gBACzDhL,EAAO6L,cAAc,GACrB7L,EAAOwE,aAAagH,GACpBxL,EAAO2B,iBACP3B,EAAOkB,oBACPlB,EAAO4B,wBACF6J,GAAgBzL,EAAO0L,cAAgBC,GAAU3L,EAAO4L,QAC3D5L,EAAO4B,sBAEL5B,EAAOE,OAAO4L,eAAgB,CAYhCC,aAAa/L,EAAOiK,WAAW+B,SAC/BhM,EAAOiK,WAAW+B,aAAUlR,EAC5B,IAAImR,EAAqBjM,EAAOiK,WAAW9B,kBACvC8D,EAAmB3b,QAAU,IAC/B2b,EAAmBC,QAGrB,IAAIC,EAAaF,EAAmB3b,OAAS2b,EAAmBA,EAAmB3b,OAAS,QAAKwK,EAC7FsR,EAAaH,EAAmB,GAEpC,GADAA,EAAmBrN,KAAKwM,GACpBe,IAAef,EAAUd,MAAQ6B,EAAW7B,OAASc,EAAUC,YAAcc,EAAWd,WAE1FY,EAAmBlI,OAAO,QACrB,GAAIkI,EAAmB3b,QAAU,IAAM8a,EAAUvc,KAAOud,EAAWvd,KAAO,KAAOud,EAAW9B,MAAQc,EAAUd,OAAS,GAAKc,EAAUd,OAAS,EAAG,CAOvJ,IAAI+B,EAAkB/B,EAAQ,EAAI,GAAM,GACxCtK,EAAOiK,WAAW/B,oBAAsBkD,EACxCa,EAAmBlI,OAAO,GAC1B/D,EAAOiK,WAAW+B,QAAU,aAAS,WACnChM,EAAOsM,eAAetM,EAAOE,OAAOqM,OAAO,OAAMzR,EAAWuR,KAC3D,GAGArM,EAAOiK,WAAW+B,UAIrBhM,EAAOiK,WAAW+B,QAAU,aAAS,WAEnChM,EAAOiK,WAAW/B,oBAAsBkD,EACxCa,EAAmBlI,OAAO,GAC1B/D,EAAOsM,eAAetM,EAAOE,OAAOqM,OAAO,OAAMzR,EAH3B,MAIrB,MAQP,GAJKwQ,GAAmBtL,EAAO2H,KAAK,SAAUjJ,GAE1CsB,EAAOE,OAAOsM,UAAYxM,EAAOE,OAAOuM,8BAA8BzM,EAAOwM,SAASE,OAEtFlB,IAAaxL,EAAO+K,gBAAkBS,IAAaxL,EAAOgL,eAAgB,OAAO,OA1H5D,CAE3B,IAAI2B,EAAW,CACb9d,KAAM,cACNyb,MAAOtd,KAAK0d,IAAIJ,GAChBe,UAAWre,KAAKgG,KAAKsX,GACrBsC,IAAKjI,GAGHwD,EAAoBnI,EAAOiK,WAAW9B,kBACtCA,EAAkB7X,QAAU,GAC9B6X,EAAkB+D,QAGpB,IAAIW,EAAY1E,EAAkB7X,OAAS6X,EAAkBA,EAAkB7X,OAAS,QAAKwK,EAiB7F,GAhBAqN,EAAkBvJ,KAAK+N,GAOnBE,GACEF,EAAStB,YAAcwB,EAAUxB,WAAasB,EAASrC,MAAQuC,EAAUvC,OAASqC,EAAS9d,KAAOge,EAAUhe,KAAO,MACrHmR,EAAOiK,WAAW6C,cAAcH,GAGlC3M,EAAOiK,WAAW6C,cAAcH,GAI9B3M,EAAOiK,WAAW8C,cAAcJ,GAClC,OAAO,EA8FX,OADIjO,EAAE6I,eAAgB7I,EAAE6I,iBAAsB7I,EAAE8I,aAAc,GACvD,IAETsF,cAAe,SAAuBH,GACpC,IACI/H,EAAS,cACb,QAAI1K,KAAKgG,OAAO+J,WAAW+C,gBAAkBL,EAASrC,MAAQpQ,KAAKgG,OAAO+J,WAAW+C,oBAIjF9S,KAAKgG,OAAO+J,WAAWgD,eAAiB,cAN/B/S,KAM8C+P,WAAWhC,eAAiB/N,KAAKgG,OAAO+J,WAAWgD,iBAO1GN,EAASrC,OAAS,GAAK,cAbdpQ,KAa6B+P,WAAWhC,eAAiB,KAgBlE0E,EAAStB,UAAY,EA7BZnR,KA8BE0R,QA9BF1R,KA8BkBgG,OAAOhD,MA9BzBhD,KA8B0CgT,YA9B1ChT,KA+BFuN,YA/BEvN,KAgCFyN,KAAK,SAAUgF,EAASC,MAhCtB1S,KAkCOwR,cAlCPxR,KAkC6BgG,OAAOhD,MAlCpChD,KAkCqDgT,YAlCrDhT,KAmCJwN,YAnCIxN,KAoCJyN,KAAK,SAAUgF,EAASC,MApCpB1S,KAuCN+P,WAAWhC,gBAAiB,IAAIrD,EAAO7W,MAAOW,WAE9C,MAETqe,cAAe,SAAuBJ,GACpC,IACIzM,EADShG,KACOgG,OAAO+J,WAC3B,GAAI0C,EAAStB,UAAY,GACvB,GAHWnR,KAGA0R,QAHA1R,KAGiBgG,OAAOhD,MAAQgD,EAAOmK,eAEhD,OAAO,OAEJ,GAPMnQ,KAOKwR,cAPLxR,KAO4BgG,OAAOhD,MAAQgD,EAAOmK,eAE7D,OAAO,EAET,OAAO,GAETzC,OAAQ,WACN,IACIjD,EAAQqD,EAAWrD,QACvB,GAFazK,KAEFgG,OAAOgK,QAEhB,OAJWhQ,KAGJiT,UAAUC,oBAAoBzI,EAH1BzK,KAGwC+P,WAAWvF,SACvD,EAET,IAAKC,EAAO,OAAO,EACnB,GAPazK,KAOF+P,WAAWnI,QAAS,OAAO,EACtC,IAAIlC,EARS1F,KAQOoM,IAQpB,MAP8C,cATjCpM,KASFgG,OAAO+J,WAAWE,eAC3BvK,EAAS,YAVE1F,KAUOgG,OAAO+J,WAAWE,eAEtCvK,EAAOqE,GAAG,aAZG/J,KAYkB+P,WAAWH,kBAC1ClK,EAAOqE,GAAG,aAbG/J,KAakB+P,WAAWD,kBAC1CpK,EAAOqE,GAAGU,EAdGzK,KAcW+P,WAAWvF,QAdtBxK,KAeN+P,WAAWnI,SAAU,GACrB,GAET+F,QAAS,WACP,IACIlD,EAAQqD,EAAWrD,QACvB,GAFazK,KAEFgG,OAAOgK,QAEhB,OAJWhQ,KAGJiT,UAAUE,iBAAiB1I,EAHvBzK,KAGqC+P,WAAWvF,SACpD,EAET,IAAKC,EAAO,OAAO,EACnB,IAPazK,KAOD+P,WAAWnI,QAAS,OAAO,EACvC,IAAIlC,EARS1F,KAQOoM,IAMpB,MAL8C,cATjCpM,KASFgG,OAAO+J,WAAWE,eAC3BvK,EAAS,YAVE1F,KAUOgG,OAAO+J,WAAWE,eAEtCvK,EAAOkI,IAAInD,EAZEzK,KAYY+P,WAAWvF,QAZvBxK,KAaN+P,WAAWnI,SAAU,GACrB,IAGI,GACb1M,KAAM,aACN8K,OAAQ,CACN+J,WAAY,CACVnI,SAAS,EACTuI,gBAAgB,EAChBM,QAAQ,EACRF,aAAa,EACbK,YAAa,EACbX,aAAc,YACd6C,eAAgB,KAChBC,cAAe,OAGnBxS,OAAQ,WAEN,YADaP,KACa,CACxB+P,WAAY,CACVnI,SAAS,EACTmG,eAAgB,cAChBC,yBAAqBpN,EACrBqN,kBAAmB,GACnBP,OAAQI,EAAWJ,OACnBC,QAASG,EAAWH,QACpBnD,OAAQsD,EAAWtD,OACnBoF,iBAAkB9B,EAAW8B,iBAC7BE,iBAAkBhC,EAAWgC,iBAC7B8C,cAAe9E,EAAW8E,cAC1BC,cAAe/E,EAAW+E,kBAIhC9I,GAAI,CACF8D,KAAM,SAAc/H,IACbA,EAAOE,OAAO+J,WAAWnI,SAAW9B,EAAOE,OAAOgK,SACrDlK,EAAOiK,WAAWpC,UAEhB7H,EAAOE,OAAO+J,WAAWnI,SAAS9B,EAAOiK,WAAWrC,UAE1DhK,QAAS,SAAiBoC,GACpBA,EAAOE,OAAOgK,SAChBlK,EAAOiK,WAAWrC,SAEhB5H,EAAOiK,WAAWnI,SAAS9B,EAAOiK,WAAWpC,a,oCC/ZvD,SAAS,IAYP,OAXA,EAAWla,OAAO8J,QAAU,SAAUmI,GACpC,IAAK,IAAIzK,EAAI,EAAGA,EAAI5H,UAAU+C,OAAQ6E,IAAK,CACzC,IAAI0K,EAAStS,UAAU4H,GACvB,IAAK,IAAIuI,KAAOmC,EACVlS,OAAOC,UAAU0M,eAAexM,KAAK+R,EAAQnC,KAC/CkC,EAAOlC,GAAOmC,EAAOnC,IAI3B,OAAOkC,IAEOrF,MAAML,KAAM3M,WAI9B,IAAI+f,EAAW,CACbC,aAAc,SAAsBtZ,EAAIuZ,GACtC,IACI1Q,EADS5C,KACI4C,IACbwJ,EAAM,YAAErS,GACRsW,EAAYzN,GAAO,EAAI,EACvBpF,EAAI4O,EAAIpD,KAAK,yBAA2B,IACxCuK,EAAInH,EAAIpD,KAAK,0BACbwK,EAAIpH,EAAIpD,KAAK,0BACbyK,EAAQrH,EAAIpD,KAAK,8BACjB0K,EAAUtH,EAAIpD,KAAK,gCAqBvB,GApBIuK,GAAKC,GACPD,EAAIA,GAAK,IACTC,EAAIA,GAAK,KAXExT,KAYKqH,gBAChBkM,EAAI/V,EACJgW,EAAI,MAEJA,EAAIhW,EACJ+V,EAAI,KAGJA,EADEA,EAAEnF,QAAQ,MAAQ,EAChBtX,SAASyc,EAAG,IAAMD,EAAWjD,EAAY,IAEzCkD,EAAID,EAAWjD,EAAY,KAG/BmD,EADEA,EAAEpF,QAAQ,MAAQ,EAChBtX,SAAS0c,EAAG,IAAMF,EAAW,IAE7BE,EAAIF,EAAW,KAEjB,MAAOI,EAA6C,CACtD,IAAIC,EAAiBD,GAAWA,EAAU,IAAM,EAAI5gB,KAAK0d,IAAI8C,IAC7DlH,EAAI,GAAGwH,MAAMF,QAAUC,EAEzB,GAAI,MAAOF,EACTrH,EAAIyH,UAAU,eAAiBN,EAAI,KAAOC,EAAI,cACzC,CACL,IAAIM,EAAeL,GAASA,EAAQ,IAAM,EAAI3gB,KAAK0d,IAAI8C,IACvDlH,EAAIyH,UAAU,eAAiBN,EAAI,KAAOC,EAAI,gBAAkBM,EAAe,OAGnFxJ,aAAc,WACZ,IAAIxE,EAAS9F,KACToM,EAAMtG,EAAOsG,IACfpI,EAAS8B,EAAO9B,OAChBsP,EAAWxN,EAAOwN,SAClBS,EAAWjO,EAAOiO,SACpB3H,EAAIhS,SAAS,4IAA4I4Z,MAAK,SAAUja,GACtK+L,EAAO5D,SAASmR,aAAatZ,EAAIuZ,MAEnCtP,EAAOgQ,MAAK,SAAUC,EAASC,GAC7B,IAAIC,EAAgBF,EAAQX,SACxBxN,EAAOE,OAAOE,eAAiB,GAAqC,SAAhCJ,EAAOE,OAAOC,gBACpDkO,GAAiBrhB,KAAKshB,KAAKF,EAAa,GAAKZ,GAAYS,EAAS3d,OAAS,IAE7E+d,EAAgBrhB,KAAKwM,IAAIxM,KAAKuF,IAAI8b,GAAgB,GAAI,GACtD,YAAEF,GAAS5L,KAAK,4IAA4I2L,MAAK,SAAUja,GACzK+L,EAAO5D,SAASmR,aAAatZ,EAAIoa,UAIvCxC,cAAe,SAAuB0C,QACnB,IAAbA,IACFA,EAAWrU,KAAKgG,OAAOqM,OAEZrS,KACIoM,IACb/D,KAAK,4IAA4I2L,MAAK,SAAU7R,GAClK,IAAImS,EAAc,YAAEnS,GAChBoS,EAAmBzd,SAASwd,EAAYtL,KAAK,iCAAkC,KAAOqL,EACzE,IAAbA,IAAgBE,EAAmB,GACvCD,EAAYE,WAAWD,QAId,GACbrZ,KAAM,WACN8K,OAAQ,CACN9D,SAAU,CACR0F,SAAS,IAGbrH,OAAQ,WAEN,YADaP,KACa,CACxBkC,SAAU,EAAS,GAAIkR,MAG3BrJ,GAAI,CACFC,WAAY,SAAoBlE,GACzBA,EAAOE,OAAO9D,SAAS0F,UAC5B9B,EAAOE,OAAOmE,qBAAsB,EACpCrE,EAAOsE,eAAeD,qBAAsB,IAE9C0D,KAAM,SAAc/H,GACbA,EAAOE,OAAO9D,SAAS0F,SAC5B9B,EAAO5D,SAASoI,gBAElBA,aAAc,SAAsBxE,GAC7BA,EAAOE,OAAO9D,SAAS0F,SAC5B9B,EAAO5D,SAASoI,gBAElBqH,cAAe,SAAuB7L,EAAQuO,GACvCvO,EAAOE,OAAO9D,SAAS0F,SAC5B9B,EAAO5D,SAASyP,cAAc0C,MCzHpC,SAAS,IAYP,OAXA,EAAW5gB,OAAO8J,QAAU,SAAUmI,GACpC,IAAK,IAAIzK,EAAI,EAAGA,EAAI5H,UAAU+C,OAAQ6E,IAAK,CACzC,IAAI0K,EAAStS,UAAU4H,GACvB,IAAK,IAAIuI,KAAOmC,EACVlS,OAAOC,UAAU0M,eAAexM,KAAK+R,EAAQnC,KAC/CkC,EAAOlC,GAAOmC,EAAOnC,IAI3B,OAAOkC,IAEOrF,MAAML,KAAM3M,WAK9B,IAAIohB,EAAO,CAETC,0BAA2B,SAAmClQ,GAC5D,GAAIA,EAAEmQ,cAAcve,OAAS,EAAG,OAAO,EACvC,IAAIwe,EAAKpQ,EAAEmQ,cAAc,GAAGE,MACxBC,EAAKtQ,EAAEmQ,cAAc,GAAGI,MACxBC,EAAKxQ,EAAEmQ,cAAc,GAAGE,MACxBI,EAAKzQ,EAAEmQ,cAAc,GAAGI,MAE5B,OADejiB,KAAKoiB,KAAKpiB,KAAKC,IAAIiiB,EAAKJ,EAAI,GAAK9hB,KAAKC,IAAIkiB,EAAKH,EAAI,KAIpEK,eAAgB,SAAwB3Q,GACtC,IACI4Q,EADSpV,KACQoV,QACjBpP,EAFShG,KAEOgG,OAAOqP,KACvBA,EAHSrV,KAGKqV,KACdC,EAAUD,EAAKC,QAGnB,GAFAD,EAAKE,oBAAqB,EAC1BF,EAAKG,kBAAmB,GACnBJ,EAAQK,SAAU,CACrB,GAAe,eAAXjR,EAAE3J,MAAoC,eAAX2J,EAAE3J,MAAyB2J,EAAEmQ,cAAcve,OAAS,EACjF,OAEFif,EAAKE,oBAAqB,EAC1BD,EAAQI,WAAajB,EAAKC,0BAA0BlQ,GAEjD8Q,EAAQvM,UAAauM,EAAQvM,SAAS3S,SACzCkf,EAAQvM,SAAW,YAAEvE,EAAEkB,QAAQiQ,QAAQ,IAf5B3V,KAeyCgG,OAAOjD,YAC3B,IAA5BuS,EAAQvM,SAAS3S,SAAckf,EAAQvM,SAhBhC/I,KAgBkDgE,OAAO4R,GAhBzD5V,KAgBmEiE,cAC9EqR,EAAQO,SAAWP,EAAQvM,SAASV,KAAK,kDACzCiN,EAAQQ,aAAeR,EAAQO,SAASE,OAAO,IAAM/P,EAAOlE,gBAC5DwT,EAAQU,SAAWV,EAAQQ,aAAa9M,KAAK,qBAAuBhD,EAAOgQ,SACvC,IAAhCV,EAAQQ,aAAa1f,SAKvBkf,EAAQO,UACVP,EAAQO,SAASrB,WAAW,GA1BjBxU,KA4BNqV,KAAKY,WAAY,GAPpBX,EAAQO,cAAWjV,GASzBsV,gBAAiB,SAAyB1R,GACxC,IACI4Q,EADSpV,KACQoV,QACjBpP,EAFShG,KAEOgG,OAAOqP,KACvBA,EAHSrV,KAGKqV,KACdC,EAAUD,EAAKC,QACnB,IAAKF,EAAQK,SAAU,CACrB,GAAe,cAAXjR,EAAE3J,MAAmC,cAAX2J,EAAE3J,MAAwB2J,EAAEmQ,cAAcve,OAAS,EAC/E,OAEFif,EAAKG,kBAAmB,EACxBF,EAAQa,UAAY1B,EAAKC,0BAA0BlQ,GAEhD8Q,EAAQO,UAAwC,IAA5BP,EAAQO,SAASzf,QAItCgf,EAAQK,SACVJ,EAAK5B,MAAQjP,EAAEiP,MAAQ4B,EAAKvB,aAE5BuB,EAAK5B,MAAQ6B,EAAQa,UAAYb,EAAQI,WAAaL,EAAKvB,aAEzDuB,EAAK5B,MAAQ6B,EAAQU,WACvBX,EAAK5B,MAAQ6B,EAAQU,SAAW,EAAIljB,KAAKC,IAAIsiB,EAAK5B,MAAQ6B,EAAQU,SAAW,EAAG,KAE9EX,EAAK5B,MAAQzN,EAAOoQ,WACtBf,EAAK5B,MAAQzN,EAAOoQ,SAAW,EAAItjB,KAAKC,IAAIiT,EAAOoQ,SAAWf,EAAK5B,MAAQ,EAAG,KAEhF6B,EAAQO,SAAShC,UAAU,4BAA8BwB,EAAK5B,MAAQ,MAdrD,kBAAXjP,EAAE3J,MAA0Bwa,EAAKF,eAAe3Q,IAgBxD6R,aAAc,SAAsB7R,GAClC,IACI8R,EADStW,KACOsW,OAChBlB,EAFSpV,KAEQoV,QACjBpP,EAHShG,KAGOgG,OAAOqP,KACvBA,EAJSrV,KAIKqV,KACdC,EAAUD,EAAKC,QACnB,IAAKF,EAAQK,SAAU,CACrB,IAAKJ,EAAKE,qBAAuBF,EAAKG,iBACpC,OAEF,GAAe,aAAXhR,EAAE3J,MAAkC,aAAX2J,EAAE3J,MAAuB2J,EAAE+R,eAAengB,OAAS,IAAMkgB,EAAOE,QAC3F,OAEFnB,EAAKE,oBAAqB,EAC1BF,EAAKG,kBAAmB,EAErBF,EAAQO,UAAwC,IAA5BP,EAAQO,SAASzf,SAC1Cif,EAAK5B,MAAQ3gB,KAAKuF,IAAIvF,KAAKwM,IAAI+V,EAAK5B,MAAO6B,EAAQU,UAAWhQ,EAAOoQ,UACrEd,EAAQO,SAASrB,WAlBJxU,KAkBsBgG,OAAOqM,OAAOwB,UAAU,4BAA8BwB,EAAK5B,MAAQ,KACtG4B,EAAKvB,aAAeuB,EAAK5B,MACzB4B,EAAKY,WAAY,EACE,IAAfZ,EAAK5B,QAAa6B,EAAQvM,cAAWnI,KAE3C6V,aAAc,SAAsBjS,GAClC,IACI8R,EADStW,KACOsW,OAChBjB,EAFSrV,KAEKqV,KACdC,EAAUD,EAAKC,QACjBoB,EAAQrB,EAAKqB,MACVpB,EAAQO,UAAwC,IAA5BP,EAAQO,SAASzf,SACtCsgB,EAAMC,YACNL,EAAOE,SAAWhS,EAAEoS,YAAYpS,EAAE6I,iBACtCqJ,EAAMC,WAAY,EAClBD,EAAMG,aAAatD,EAAe,eAAX/O,EAAE3J,KAAwB2J,EAAEmQ,cAAc,GAAGE,MAAQrQ,EAAEqQ,MAC9E6B,EAAMG,aAAarD,EAAe,eAAXhP,EAAE3J,KAAwB2J,EAAEmQ,cAAc,GAAGI,MAAQvQ,EAAEuQ,SAEhF+B,YAAa,SAAqBtS,GAChC,IACI6Q,EADSrV,KACKqV,KACdC,EAAUD,EAAKC,QACjBoB,EAAQrB,EAAKqB,MACbK,EAAW1B,EAAK0B,SAClB,GAAKzB,EAAQO,UAAwC,IAA5BP,EAAQO,SAASzf,SAL7B4J,KAMNgX,YAAa,EACfN,EAAMC,WAAcrB,EAAQvM,UAAjC,CACK2N,EAAMO,UACTP,EAAMQ,MAAQ5B,EAAQO,SAAS,GAAGsB,YAClCT,EAAMU,OAAS9B,EAAQO,SAAS,GAAGwB,aACnCX,EAAMY,OAAS,YAAahC,EAAQQ,aAAa,GAAI,MAAQ,EAC7DY,EAAMa,OAAS,YAAajC,EAAQQ,aAAa,GAAI,MAAQ,EAC7DR,EAAQkC,WAAalC,EAAQvM,SAAS,GAAGoO,YACzC7B,EAAQmC,YAAcnC,EAAQvM,SAAS,GAAGsO,aAC1C/B,EAAQQ,aAAatB,WAAW,GAfrBxU,KAgBA4C,MACT8T,EAAMY,QAAUZ,EAAMY,OACtBZ,EAAMa,QAAUb,EAAMa,SAI1B,IAAIG,EAAchB,EAAMQ,MAAQ7B,EAAK5B,MACjCkE,EAAejB,EAAMU,OAAS/B,EAAK5B,MACvC,KAAIiE,EAAcpC,EAAQkC,YAAcG,EAAerC,EAAQmC,aAA/D,CAOA,GANAf,EAAMkB,KAAO9kB,KAAKwM,IAAIgW,EAAQkC,WAAa,EAAIE,EAAc,EAAG,GAChEhB,EAAMmB,MAAQnB,EAAMkB,KACpBlB,EAAMoB,KAAOhlB,KAAKwM,IAAIgW,EAAQmC,YAAc,EAAIE,EAAe,EAAG,GAClEjB,EAAMqB,MAAQrB,EAAMoB,KACpBpB,EAAMsB,eAAezE,EAAe,cAAX/O,EAAE3J,KAAuB2J,EAAEmQ,cAAc,GAAGE,MAAQrQ,EAAEqQ,MAC/E6B,EAAMsB,eAAexE,EAAe,cAAXhP,EAAE3J,KAAuB2J,EAAEmQ,cAAc,GAAGI,MAAQvQ,EAAEuQ,OAC1E2B,EAAMO,UAAY5B,EAAKY,UAAW,CACrC,GAhCWjW,KAgCAqH,iBAAmBvU,KAAKwU,MAAMoP,EAAMkB,QAAU9kB,KAAKwU,MAAMoP,EAAMY,SAAWZ,EAAMsB,eAAezE,EAAImD,EAAMG,aAAatD,GAAKzgB,KAAKwU,MAAMoP,EAAMmB,QAAU/kB,KAAKwU,MAAMoP,EAAMY,SAAWZ,EAAMsB,eAAezE,EAAImD,EAAMG,aAAatD,GAEvO,YADAmD,EAAMC,WAAY,GAGpB,IApCW3W,KAoCCqH,iBAAmBvU,KAAKwU,MAAMoP,EAAMoB,QAAUhlB,KAAKwU,MAAMoP,EAAMa,SAAWb,EAAMsB,eAAexE,EAAIkD,EAAMG,aAAarD,GAAK1gB,KAAKwU,MAAMoP,EAAMqB,QAAUjlB,KAAKwU,MAAMoP,EAAMa,SAAWb,EAAMsB,eAAexE,EAAIkD,EAAMG,aAAarD,GAExO,YADAkD,EAAMC,WAAY,GAIlBnS,EAAEoS,YACJpS,EAAE6I,iBAEJ7I,EAAEwM,kBACF0F,EAAMO,SAAU,EAChBP,EAAMuB,SAAWvB,EAAMsB,eAAezE,EAAImD,EAAMG,aAAatD,EAAImD,EAAMY,OACvEZ,EAAMwB,SAAWxB,EAAMsB,eAAexE,EAAIkD,EAAMG,aAAarD,EAAIkD,EAAMa,OACnEb,EAAMuB,SAAWvB,EAAMkB,OACzBlB,EAAMuB,SAAWvB,EAAMkB,KAAO,EAAI9kB,KAAKC,IAAI2jB,EAAMkB,KAAOlB,EAAMuB,SAAW,EAAG,KAE1EvB,EAAMuB,SAAWvB,EAAMmB,OACzBnB,EAAMuB,SAAWvB,EAAMmB,KAAO,EAAI/kB,KAAKC,IAAI2jB,EAAMuB,SAAWvB,EAAMmB,KAAO,EAAG,KAE1EnB,EAAMwB,SAAWxB,EAAMoB,OACzBpB,EAAMwB,SAAWxB,EAAMoB,KAAO,EAAIhlB,KAAKC,IAAI2jB,EAAMoB,KAAOpB,EAAMwB,SAAW,EAAG,KAE1ExB,EAAMwB,SAAWxB,EAAMqB,OACzBrB,EAAMwB,SAAWxB,EAAMqB,KAAO,EAAIjlB,KAAKC,IAAI2jB,EAAMwB,SAAWxB,EAAMqB,KAAO,EAAG,KAGzEhB,EAASoB,gBAAepB,EAASoB,cAAgBzB,EAAMsB,eAAezE,GACtEwD,EAASqB,gBAAerB,EAASqB,cAAgB1B,EAAMsB,eAAexE,GACtEuD,EAASsB,WAAUtB,EAASsB,SAAWxkB,KAAKykB,OACjDvB,EAASxD,GAAKmD,EAAMsB,eAAezE,EAAIwD,EAASoB,gBAAkBtkB,KAAKykB,MAAQvB,EAASsB,UAAY,EACpGtB,EAASvD,GAAKkD,EAAMsB,eAAexE,EAAIuD,EAASqB,gBAAkBvkB,KAAKykB,MAAQvB,EAASsB,UAAY,EAChGvlB,KAAK0d,IAAIkG,EAAMsB,eAAezE,EAAIwD,EAASoB,eAAiB,IAAGpB,EAASxD,EAAI,GAC5EzgB,KAAK0d,IAAIkG,EAAMsB,eAAexE,EAAIuD,EAASqB,eAAiB,IAAGrB,EAASvD,EAAI,GAChFuD,EAASoB,cAAgBzB,EAAMsB,eAAezE,EAC9CwD,EAASqB,cAAgB1B,EAAMsB,eAAexE,EAC9CuD,EAASsB,SAAWxkB,KAAKykB,MACzBhD,EAAQQ,aAAajC,UAAU,eAAiB6C,EAAMuB,SAAW,OAASvB,EAAMwB,SAAW,YAE7FK,WAAY,WACV,IACIlD,EADSrV,KACKqV,KACdC,EAAUD,EAAKC,QACjBoB,EAAQrB,EAAKqB,MACbK,EAAW1B,EAAK0B,SAClB,GAAKzB,EAAQO,UAAwC,IAA5BP,EAAQO,SAASzf,OAA1C,CACA,IAAKsgB,EAAMC,YAAcD,EAAMO,QAG7B,OAFAP,EAAMC,WAAY,OAClBD,EAAMO,SAAU,GAGlBP,EAAMC,WAAY,EAClBD,EAAMO,SAAU,EAChB,IAAIuB,EAAoB,IACpBC,EAAoB,IACpBC,EAAoB3B,EAASxD,EAAIiF,EACjCG,EAAejC,EAAMuB,SAAWS,EAChCE,EAAoB7B,EAASvD,EAAIiF,EACjCI,EAAenC,EAAMwB,SAAWU,EAEjB,IAAf7B,EAASxD,IAASiF,EAAoB1lB,KAAK0d,KAAKmI,EAAejC,EAAMuB,UAAYlB,EAASxD,IAC3E,IAAfwD,EAASvD,IAASiF,EAAoB3lB,KAAK0d,KAAKqI,EAAenC,EAAMwB,UAAYnB,EAASvD,IAC9F,IAAIsF,EAAmBhmB,KAAKuF,IAAImgB,EAAmBC,GACnD/B,EAAMuB,SAAWU,EACjBjC,EAAMwB,SAAWW,EAEjB,IAAInB,EAAchB,EAAMQ,MAAQ7B,EAAK5B,MACjCkE,EAAejB,EAAMU,OAAS/B,EAAK5B,MACvCiD,EAAMkB,KAAO9kB,KAAKwM,IAAIgW,EAAQkC,WAAa,EAAIE,EAAc,EAAG,GAChEhB,EAAMmB,MAAQnB,EAAMkB,KACpBlB,EAAMoB,KAAOhlB,KAAKwM,IAAIgW,EAAQmC,YAAc,EAAIE,EAAe,EAAG,GAClEjB,EAAMqB,MAAQrB,EAAMoB,KACpBpB,EAAMuB,SAAWnlB,KAAKuF,IAAIvF,KAAKwM,IAAIoX,EAAMuB,SAAUvB,EAAMmB,MAAOnB,EAAMkB,MACtElB,EAAMwB,SAAWplB,KAAKuF,IAAIvF,KAAKwM,IAAIoX,EAAMwB,SAAUxB,EAAMqB,MAAOrB,EAAMoB,MACtExC,EAAQQ,aAAatB,WAAWsE,GAAkBjF,UAAU,eAAiB6C,EAAMuB,SAAW,OAASvB,EAAMwB,SAAW,WAE1Ha,gBAAiB,WACf,IACI1D,EADSrV,KACKqV,KACdC,EAAUD,EAAKC,QACfA,EAAQvM,UAHC/I,KAGkBgZ,gBAHlBhZ,KAG2CiE,cAClDqR,EAAQO,UACVP,EAAQO,SAAShC,UAAU,+BAEzByB,EAAQQ,cACVR,EAAQQ,aAAajC,UAAU,sBAEjCwB,EAAK5B,MAAQ,EACb4B,EAAKvB,aAAe,EACpBwB,EAAQvM,cAAWnI,EACnB0U,EAAQO,cAAWjV,EACnB0U,EAAQQ,kBAAelV,IAI3BqY,OAAQ,SAAgBzU,GACtB,IACI6Q,EADSrV,KACKqV,KACdA,EAAK5B,OAAwB,IAAf4B,EAAK5B,MAErB4B,EAAK6D,MAGL7D,EAAK8D,GAAG3U,IAGZ2U,GAAI,SAAa3U,GACf,IAiBI4U,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAxd,EACAwb,EACAC,EACAgC,EACAC,EACAC,EACAC,EACAtC,EACAC,EAjCA/M,EAAS,cACT2K,EAFSrV,KAEKqV,KACdrP,EAHShG,KAGOgG,OAAOqP,KACvBC,EAAUD,EAAKC,QACjBoB,EAAQrB,EAAKqB,OACVpB,EAAQvM,WANA/I,KAOAgG,OAAOK,SAPPrG,KAOyBgG,OAAOK,QAAQuB,SAPxC5H,KAO0DqG,QACnEiP,EAAQvM,SARC/I,KAQiBoI,WAAWhO,SAAS,IARrC4F,KAQkDgG,OAAOsG,kBAElEgJ,EAAQvM,SAVC/I,KAUiBgE,OAAO4R,GAVxB5V,KAUkCiE,aAE7CqR,EAAQO,SAAWP,EAAQvM,SAASV,KAAK,kDACzCiN,EAAQQ,aAAeR,EAAQO,SAASE,OAAO,IAAM/P,EAAOlE,iBAEzDwT,EAAQO,UAAwC,IAA5BP,EAAQO,SAASzf,QAAiBkf,EAAQQ,cAAgD,IAAhCR,EAAQQ,aAAa1f,UACxGkf,EAAQvM,SAASgR,SAAS,GAAK/T,EAAOgU,uBAmBF,IAAzBtD,EAAMG,aAAatD,GAAqB/O,GACjD4U,EAAoB,aAAX5U,EAAE3J,KAAsB2J,EAAE+R,eAAe,GAAG1B,MAAQrQ,EAAEqQ,MAC/DwE,EAAoB,aAAX7U,EAAE3J,KAAsB2J,EAAE+R,eAAe,GAAGxB,MAAQvQ,EAAEuQ,QAE/DqE,EAAS1C,EAAMG,aAAatD,EAC5B8F,EAAS3C,EAAMG,aAAarD,GAE9B6B,EAAK5B,MAAQ6B,EAAQQ,aAAa9M,KAAK,qBAAuBhD,EAAOgQ,SACrEX,EAAKvB,aAAewB,EAAQQ,aAAa9M,KAAK,qBAAuBhD,EAAOgQ,SACxExR,GACFgT,EAAalC,EAAQvM,SAAS,GAAGoO,YACjCM,EAAcnC,EAAQvM,SAAS,GAAGsO,aAGlCiC,EAFUhE,EAAQvM,SAAStU,SAASuY,KAAOtC,EAAOuP,QAEhCzC,EAAa,EAAI4B,EACnCG,EAFUjE,EAAQvM,SAAStU,SAAS0Y,IAAMzC,EAAOwP,QAE/BzC,EAAc,EAAI4B,EACpCK,EAAapE,EAAQO,SAAS,GAAGsB,YACjCjb,EAAcoZ,EAAQO,SAAS,GAAGwB,aAClCK,EAAcgC,EAAarE,EAAK5B,MAChCkE,EAAezb,EAAcmZ,EAAK5B,MAGlCoG,IAFAF,EAAgB7mB,KAAKwM,IAAIkY,EAAa,EAAIE,EAAc,EAAG,IAG3DoC,IAFAF,EAAgB9mB,KAAKwM,IAAImY,EAAc,EAAIE,EAAe,EAAG,KAG7D6B,EAAaF,EAAQjE,EAAK5B,OAETkG,IACfH,EAAaG,GAEXH,EAAaK,IACfL,EAAaK,IALfJ,EAAaF,EAAQlE,EAAK5B,OAOTmG,IACfH,EAAaG,GAEXH,EAAaK,IACfL,EAAaK,KAGfN,EAAa,EACbC,EAAa,GAEfnE,EAAQQ,aAAatB,WAAW,KAAKX,UAAU,eAAiB2F,EAAa,OAASC,EAAa,SACnGnE,EAAQO,SAASrB,WAAW,KAAKX,UAAU,4BAA8BwB,EAAK5B,MAAQ,OAExFyF,IAAK,WACH,IACI7D,EADSrV,KACKqV,KACdrP,EAFShG,KAEOgG,OAAOqP,KACvBC,EAAUD,EAAKC,QACdA,EAAQvM,WAJA/I,KAKAgG,OAAOK,SALPrG,KAKyBgG,OAAOK,QAAQuB,SALxC5H,KAK0DqG,QACnEiP,EAAQvM,SANC/I,KAMiBoI,WAAWhO,SAAS,IANrC4F,KAMkDgG,OAAOsG,kBAElEgJ,EAAQvM,SARC/I,KAQiBgE,OAAO4R,GARxB5V,KAQkCiE,aAE7CqR,EAAQO,SAAWP,EAAQvM,SAASV,KAAK,kDACzCiN,EAAQQ,aAAeR,EAAQO,SAASE,OAAO,IAAM/P,EAAOlE,iBAEzDwT,EAAQO,UAAwC,IAA5BP,EAAQO,SAASzf,QAAiBkf,EAAQQ,cAAgD,IAAhCR,EAAQQ,aAAa1f,SACxGif,EAAK5B,MAAQ,EACb4B,EAAKvB,aAAe,EACpBwB,EAAQQ,aAAatB,WAAW,KAAKX,UAAU,sBAC/CyB,EAAQO,SAASrB,WAAW,KAAKX,UAAU,+BAC3CyB,EAAQvM,SAASoR,YAAY,GAAKnU,EAAOgU,kBACzC1E,EAAQvM,cAAWnI,IAErBwZ,eAAgB,SAAwBC,GACtC,IACIhF,EADSrV,KACKqV,KACdiF,EAAWjF,EAAKkF,cAClBC,EAAUnF,EAAKoF,gBAHJza,KAINoI,WAAWiS,GAAQ,eAAgBC,EAAUjF,EAAKF,eAAgBqF,GAJ5Dxa,KAKNoI,WAAWiS,GAAQ,gBAAiBC,EAAUjF,EAAKa,gBAAiBsE,GAL9Dxa,KAMNoI,WAAWiS,GAAQ,aAAcC,EAAUjF,EAAKgB,aAAcmE,IAEvEE,eAAgB,WACV1a,KAAKqV,KAAKsF,kBACd3a,KAAKqV,KAAKsF,iBAAkB,EAC5B3a,KAAKqV,KAAK+E,eAAe,QAE3BQ,gBAAiB,WACV5a,KAAKqV,KAAKsF,kBACf3a,KAAKqV,KAAKsF,iBAAkB,EAC5B3a,KAAKqV,KAAK+E,eAAe,SAG3B1M,OAAQ,WACN,IACI0H,EADSpV,KACQoV,QACjBC,EAFSrV,KAEKqV,KAClB,IAAIA,EAAKzN,QAAT,CACAyN,EAAKzN,SAAU,EACf,IAAI6S,IAA+C,eALtCza,KAKgB6a,YAAYC,QAA0B1F,EAAQqF,kBAL9Dza,KAKwFgG,OAAO+U,mBAAmB,CAC7HP,SAAS,EACTQ,SAAS,GAEPC,GAA4B7F,EAAQqF,iBAAkB,CACxDD,SAAS,EACTQ,SAAS,GAEPT,EAAgB,IAbPva,KAaoBgG,OAAOjD,WAb3B/C,KAcNqV,KAAKoF,gBAAkBA,EAdjBza,KAeNqV,KAAKkF,cAAgBA,EAExBnF,EAAQK,UAjBCzV,KAkBJoI,WAAW2B,GAlBP/J,KAkBiB6a,YAAYC,MAlB7B9a,KAkB2CqV,KAAKqF,eAAgBD,GAlBhEza,KAmBJoI,WAAW2B,GAnBP/J,KAmBiB6a,YAAYK,IAnB7Blb,KAmByCqV,KAAKuF,gBAAiBH,IACpC,eApB3Bza,KAoBK6a,YAAYC,QApBjB9a,KAqBJoI,WAAW2B,GArBP/J,KAqBiB6a,YAAYC,MAAOP,EAAelF,EAAKF,eAAgBsF,GArBxEza,KAsBJoI,WAAW2B,GAtBP/J,KAsBiB6a,YAAYM,KAAMZ,EAAelF,EAAKa,gBAAiB+E,GAtBxEjb,KAuBJoI,WAAW2B,GAvBP/J,KAuBiB6a,YAAYK,IAAKX,EAAelF,EAAKgB,aAAcoE,GAvBpEza,KAwBA6a,YAAYO,QAxBZpb,KAyBFoI,WAAW2B,GAzBT/J,KAyBmB6a,YAAYO,OAAQb,EAAelF,EAAKgB,aAAcoE,IAzBzEza,KA6BNoI,WAAW2B,GA7BL/J,KA6Be6a,YAAYM,KAAM,IA7BjCnb,KA6B8CgG,OAAOqP,KAAKvT,eAAgBuT,EAAKyB,YAAamE,KAE3GtN,QAAS,WACP,IACI0H,EADSrV,KACKqV,KAClB,GAAKA,EAAKzN,QAAV,CACA,IAAIwN,EAHSpV,KAGQoV,QAHRpV,KAINqV,KAAKzN,SAAU,EACtB,IAAI6S,IAA+C,eALtCza,KAKgB6a,YAAYC,QAA0B1F,EAAQqF,kBAL9Dza,KAKwFgG,OAAO+U,mBAAmB,CAC7HP,SAAS,EACTQ,SAAS,GAEPC,GAA4B7F,EAAQqF,iBAAkB,CACxDD,SAAS,EACTQ,SAAS,GAEPT,EAAgB,IAbPva,KAaoBgG,OAAOjD,WAEpCqS,EAAQK,UAfCzV,KAgBJoI,WAAWwF,IAhBP5N,KAgBkB6a,YAAYC,MAhB9B9a,KAgB4CqV,KAAKqF,eAAgBD,GAhBjEza,KAiBJoI,WAAWwF,IAjBP5N,KAiBkB6a,YAAYK,IAjB9Blb,KAiB0CqV,KAAKuF,gBAAiBH,IACrC,eAlB3Bza,KAkBK6a,YAAYC,QAlBjB9a,KAmBJoI,WAAWwF,IAnBP5N,KAmBkB6a,YAAYC,MAAOP,EAAelF,EAAKF,eAAgBsF,GAnBzEza,KAoBJoI,WAAWwF,IApBP5N,KAoBkB6a,YAAYM,KAAMZ,EAAelF,EAAKa,gBAAiB+E,GApBzEjb,KAqBJoI,WAAWwF,IArBP5N,KAqBkB6a,YAAYK,IAAKX,EAAelF,EAAKgB,aAAcoE,GArBrEza,KAsBA6a,YAAYO,QAtBZpb,KAuBFoI,WAAWwF,IAvBT5N,KAuBoB6a,YAAYO,OAAQb,EAAelF,EAAKgB,aAAcoE,IAvB1Eza,KA2BNoI,WAAWwF,IA3BL5N,KA2BgB6a,YAAYM,KAAM,IA3BlCnb,KA2B+CgG,OAAOqP,KAAKvT,eAAgBuT,EAAKyB,YAAamE,MAG/F,GACb/f,KAAM,OACN8K,OAAQ,CACNqP,KAAM,CACJzN,SAAS,EACToO,SAAU,EACVI,SAAU,EACV6C,QAAQ,EACRnX,eAAgB,wBAChBkY,iBAAkB,wBAGtBzZ,OAAQ,WACN,IAAIuF,EAAS9F,KACb,YAAkB8F,EAAQ,CACxBuP,KAAM,EAAS,CACbzN,SAAS,EACT6L,MAAO,EACPK,aAAc,EACdmC,WAAW,EACXX,QAAS,CACPvM,cAAUnI,EACV4W,gBAAY5W,EACZ6W,iBAAa7W,EACbiV,cAAUjV,EACVkV,kBAAclV,EACdoV,SAAU,GAEZU,MAAO,CACLC,eAAW/V,EACXqW,aAASrW,EACTqX,cAAUrX,EACVsX,cAAUtX,EACVgX,UAAMhX,EACNkX,UAAMlX,EACNiX,UAAMjX,EACNmX,UAAMnX,EACNsW,WAAOtW,EACPwW,YAAQxW,EACR0W,YAAQ1W,EACR2W,YAAQ3W,EACRiW,aAAc,GACdmB,eAAgB,IAElBjB,SAAU,CACRxD,OAAG3S,EACH4S,OAAG5S,EACHuX,mBAAevX,EACfwX,mBAAexX,EACfyX,cAAUzX,IAEX6T,KAEL,IAAIhB,EAAQ,EACZhgB,OAAOwF,eAAe6M,EAAOuP,KAAM,QAAS,CAC1CvU,IAAK,WACH,OAAO2S,GAET4H,IAAK,SAAa/iB,GAChB,GAAImb,IAAUnb,EAAO,CACnB,IAAIgjB,EAAUxV,EAAOuP,KAAKC,QAAQO,SAAW/P,EAAOuP,KAAKC,QAAQO,SAAS,QAAKjV,EAC3EqT,EAAUnO,EAAOuP,KAAKC,QAAQvM,SAAWjD,EAAOuP,KAAKC,QAAQvM,SAAS,QAAKnI,EAC/EkF,EAAO2H,KAAK,aAAcnV,EAAOgjB,EAASrH,GAE5CR,EAAQnb,MAIdyR,GAAI,CACF8D,KAAM,SAAc/H,GACdA,EAAOE,OAAOqP,KAAKzN,SACrB9B,EAAOuP,KAAK3H,UAGhBhK,QAAS,SAAiBoC,GACxBA,EAAOuP,KAAK1H,WAEd4N,WAAY,SAAoBzV,EAAQtB,GACjCsB,EAAOuP,KAAKzN,SACjB9B,EAAOuP,KAAKoB,aAAajS,IAE3BgX,SAAU,SAAkB1V,EAAQtB,GAC7BsB,EAAOuP,KAAKzN,SACjB9B,EAAOuP,KAAKkD,WAAW/T,IAEzBiX,UAAW,SAAmB3V,EAAQtB,IAC/BsB,EAAOkN,WAAalN,EAAOE,OAAOqP,KAAKzN,SAAW9B,EAAOuP,KAAKzN,SAAW9B,EAAOE,OAAOqP,KAAK4D,QAC/FnT,EAAOuP,KAAK4D,OAAOzU,IAGvBkX,cAAe,SAAuB5V,GAChCA,EAAOuP,KAAKzN,SAAW9B,EAAOE,OAAOqP,KAAKzN,SAC5C9B,EAAOuP,KAAK0D,mBAGhB4C,YAAa,SAAqB7V,GAC5BA,EAAOuP,KAAKzN,SAAW9B,EAAOE,OAAOqP,KAAKzN,SAAW9B,EAAOE,OAAOgK,SACrElK,EAAOuP,KAAK0D,qBCviBpB,SAAS,IAYP,OAXA,EAAWtlB,OAAO8J,QAAU,SAAUmI,GACpC,IAAK,IAAIzK,EAAI,EAAGA,EAAI5H,UAAU+C,OAAQ6E,IAAK,CACzC,IAAI0K,EAAStS,UAAU4H,GACvB,IAAK,IAAIuI,KAAOmC,EACVlS,OAAOC,UAAU0M,eAAexM,KAAK+R,EAAQnC,KAC/CkC,EAAOlC,GAAOmC,EAAOnC,IAI3B,OAAOkC,IAEOrF,MAAML,KAAM3M,WAK9B,IAAIuoB,EAAO,CACTC,YAAa,SAAqB3X,EAAO4X,QACf,IAApBA,IACFA,GAAkB,GAEpB,IAAIhW,EAAS9F,KACTgG,EAASF,EAAOE,OAAO2B,KAC3B,QAAqB,IAAVzD,GACkB,IAAzB4B,EAAO9B,OAAO5N,OAAlB,CACA,IACI2S,EADYjD,EAAOO,SAAWP,EAAOE,OAAOK,QAAQuB,QAC7B9B,EAAOsC,WAAWhO,SAAS,IAAM0L,EAAOE,OAAOjD,WAAa,6BAAgCmB,EAAQ,MAAS4B,EAAO9B,OAAO4R,GAAG1R,GACrJ6X,EAAUhT,EAASV,KAAK,IAAMrC,EAAOgW,aAAe,SAAWhW,EAAOiW,YAAc,UAAYjW,EAAOkW,aAAe,MACtHnT,EAASoT,SAASnW,EAAOgW,eAAkBjT,EAASoT,SAASnW,EAAOiW,cAAiBlT,EAASoT,SAASnW,EAAOkW,eAChHH,EAAQrX,KAAKqE,EAAS,IAED,IAAnBgT,EAAQ3lB,QACZ2lB,EAAQ/H,MAAK,SAAUsH,GACrB,IAAIzF,EAAW,YAAEyF,GACjBzF,EAASkE,SAAS/T,EAAOkW,cACzB,IAAIE,EAAavG,EAAS7M,KAAK,mBAC3BpM,EAAMiZ,EAAS7M,KAAK,YACpBqT,EAASxG,EAAS7M,KAAK,eACvBsT,EAAQzG,EAAS7M,KAAK,cACtBuT,EAAa1G,EAASE,OAAO,WACjCjQ,EAAO0W,UAAU3G,EAAS,GAAIjZ,GAAOwf,EAAYC,EAAQC,GAAO,GAAO,WACrE,GAAI,MAAOxW,GAA8CA,KAAUA,GAAWA,EAAOE,UAAUF,EAAO2W,UAAtG,CA6BA,GA5BIL,GACFvG,EAAS/N,IAAI,mBAAoB,QAAWsU,EAAa,MACzDvG,EAAS6G,WAAW,qBAEhBL,IACFxG,EAAS7M,KAAK,SAAUqT,GACxBxG,EAAS6G,WAAW,gBAElBJ,IACFzG,EAAS7M,KAAK,QAASsT,GACvBzG,EAAS6G,WAAW,eAElBH,EAAWnmB,QACbmmB,EAAWniB,SAAS,UAAU4Z,MAAK,SAAU2I,GAC3C,IAAIC,EAAU,YAAED,GACZC,EAAQ5T,KAAK,iBACf4T,EAAQ5T,KAAK,SAAU4T,EAAQ5T,KAAK,gBACpC4T,EAAQF,WAAW,mBAIrB9f,IACFiZ,EAAS7M,KAAK,MAAOpM,GACrBiZ,EAAS6G,WAAW,cAGxB7G,EAASkE,SAAS/T,EAAOiW,aAAa9B,YAAYnU,EAAOkW,cACzDnT,EAASV,KAAK,IAAMrC,EAAO6W,gBAAgBvU,SACvCxC,EAAOE,OAAOhD,MAAQ8Y,EAAiB,CACzC,IAAIgB,EAAqB/T,EAASC,KAAK,2BACvC,GAAID,EAASoT,SAASrW,EAAOE,OAAO+W,qBAAsB,CACxD,IAAIC,EAAgBlX,EAAOsC,WAAWhO,SAAS,6BAAgC0iB,EAAqB,WAAchX,EAAOE,OAAO+W,oBAAsB,KACtJjX,EAAO6B,KAAKkU,YAAYmB,EAAc9Y,SAAS,OAC1C,CACL,IAAI+Y,EAAkBnX,EAAOsC,WAAWhO,SAAS,IAAM0L,EAAOE,OAAO+W,oBAAsB,6BAAgCD,EAAqB,MAChJhX,EAAO6B,KAAKkU,YAAYoB,EAAgB/Y,SAAS,IAGrD4B,EAAO2H,KAAK,iBAAkB1E,EAAS,GAAI8M,EAAS,IAChD/P,EAAOE,OAAOkX,YAChBpX,EAAOqX,uBAGXrX,EAAO2H,KAAK,gBAAiB1E,EAAS,GAAI8M,EAAS,SAGvDhO,KAAM,WACJ,IAAI/B,EAAS9F,KACToI,EAAatC,EAAOsC,WACtBgV,EAAetX,EAAOE,OACtBhC,EAAS8B,EAAO9B,OAChBC,EAAc6B,EAAO7B,YACnBoZ,EAAYvX,EAAOO,SAAW+W,EAAa/W,QAAQuB,QACnD5B,EAASoX,EAAazV,KACtB1B,EAAgBmX,EAAanX,cAIjC,SAASqX,EAAWpZ,GAClB,GAAImZ,GACF,GAAIjV,EAAWhO,SAAS,IAAMgjB,EAAara,WAAa,6BAAgCmB,EAAQ,MAAO9N,OACrG,OAAO,OAEJ,GAAI4N,EAAOE,GAAQ,OAAO,EACjC,OAAO,EAET,SAASgQ,EAAWD,GAClB,OAAIoJ,EACK,YAAEpJ,GAASjL,KAAK,2BAElB,YAAEiL,GAAS/P,QAGpB,GAlBsB,SAAlB+B,IACFA,EAAgB,GAgBbH,EAAO6B,KAAK4V,qBAAoBzX,EAAO6B,KAAK4V,oBAAqB,GAClEzX,EAAOE,OAAOwX,sBAChBpV,EAAWhO,SAAS,IAAMgjB,EAAaK,mBAAmBzJ,MAAK,SAAUC,GACvE,IAAI/P,EAAQmZ,EAAY,YAAEpJ,GAASjL,KAAK,2BAA6B,YAAEiL,GAAS/P,QAChF4B,EAAO6B,KAAKkU,YAAY3X,WAErB,GAAI+B,EAAgB,EACzB,IAAK,IAAIhL,EAAIgJ,EAAahJ,EAAIgJ,EAAcgC,EAAehL,GAAK,EAC1DqiB,EAAWriB,IAAI6K,EAAO6B,KAAKkU,YAAY5gB,QAG7C6K,EAAO6B,KAAKkU,YAAY5X,GAE1B,GAAI+B,EAAO0X,aACT,GAAIzX,EAAgB,GAAKD,EAAO2X,oBAAsB3X,EAAO2X,mBAAqB,EAAG,CAMnF,IALA,IAAIC,EAAS5X,EAAO2X,mBAChBE,EAAM5X,EACN6X,EAAWhrB,KAAKwM,IAAI2E,EAAc4Z,EAAM/qB,KAAKuF,IAAIulB,EAAQC,GAAM7Z,EAAO5N,QACtE2nB,EAAWjrB,KAAKuF,IAAI4L,EAAcnR,KAAKuF,IAAIwlB,EAAKD,GAAS,GAEpDrV,EAAKtE,EAAcgC,EAAesC,EAAKuV,EAAUvV,GAAM,EAC1D+U,EAAW/U,IAAKzC,EAAO6B,KAAKkU,YAAYtT,GAG9C,IAAK,IAAIyV,EAAMD,EAAUC,EAAM/Z,EAAa+Z,GAAO,EAC7CV,EAAWU,IAAMlY,EAAO6B,KAAKkU,YAAYmC,OAE1C,CACL,IAAIC,EAAY7V,EAAWhO,SAAS,IAAMgjB,EAAac,gBACnDD,EAAU7nB,OAAS,GAAG0P,EAAO6B,KAAKkU,YAAY3H,EAAW+J,IAC7D,IAAIE,EAAY/V,EAAWhO,SAAS,IAAMgjB,EAAagB,gBACnDD,EAAU/nB,OAAS,GAAG0P,EAAO6B,KAAKkU,YAAY3H,EAAWiK,MAInEE,kBAAmB,WACjB,IAAI3T,EAAS,cAEb,GADa1K,YACSyc,UAAtB,CACA,IAAI6B,EAFSte,KAEegG,OAAO2B,KAAK4W,iBAAmB,YAF9Cve,KAEuDgG,OAAO2B,KAAK4W,kBAAoB,YAAE7T,GAClG8T,EAAWF,EAAe,KAAO5T,EACjC+T,EAAqBD,EAAW9T,EAAOkC,WAAa0R,EAAe,GAAGnH,YACtEuH,EAAsBF,EAAW9T,EAAOoC,YAAcwR,EAAe,GAAGjH,aACxEtK,EANS/M,KAMaoM,IAAI3X,SAE1B0X,GAAS,EARAnM,KAOIoH,eAER2F,EAAaC,MATThN,KASwBoM,IAAI,GAAGa,YAE5C,IADA,IAAIC,EAAc,CAAC,CAACH,EAAaC,KAAMD,EAAaI,KAAM,CAACJ,EAAaC,KAV3DhN,KAUyEkX,MAAOnK,EAAaI,KAAM,CAACJ,EAAaC,KAAMD,EAAaI,IAVpInN,KAUiJoX,QAAS,CAACrK,EAAaC,KAVxKhN,KAUsLkX,MAAOnK,EAAaI,IAV1MnN,KAUuNoX,SAC3Nnc,EAAI,EAAGA,EAAIiS,EAAY9W,OAAQ6E,GAAK,EAAG,CAC9C,IAAImS,EAAQF,EAAYjS,GACxB,GAAImS,EAAM,IAAM,GAAKA,EAAM,IAAMqR,GAAsBrR,EAAM,IAAM,GAAKA,EAAM,IAAMsR,EAAqB,CACvG,GAAiB,IAAbtR,EAAM,IAAyB,IAAbA,EAAM,GAAU,SAEtCjB,GAAS,GAGb,IAAIsO,IAA+C,eAnBtCza,KAmBgB6a,YAAYC,QAnB5B9a,KAmB6DoV,QAAQqF,kBAnBrEza,KAmB+FgG,OAAO+U,mBAAmB,CACpIP,SAAS,EACTQ,SAAS,GAEP7O,GAvBSnM,KAwBJ2H,KAAKE,OACZyW,EAAe1Q,IAAI,SAzBR5N,KAyByB2H,KAAK0W,kBAAmB5D,IAzBjDza,KA0BM2H,KAAKgX,wBA1BX3e,KA2BJ2H,KAAKgX,uBAAwB,EACpCL,EAAevU,GAAG,SA5BP/J,KA4BwB2H,KAAK0W,kBAAmB5D,OAIlD,GACbvf,KAAM,OACN8K,OAAQ,CACN2B,KAAM,CACJiX,aAAa,EACbhX,SAAS,EACT8V,cAAc,EACdC,mBAAoB,EACpBkB,uBAAuB,EACvBN,iBAAkB,GAClBvC,aAAc,cACdE,aAAc,sBACdD,YAAa,qBACbY,eAAgB,0BAGpBtc,OAAQ,WAEN,YADaP,KACa,CACxB2H,KAAM,EAAS,CACb4V,oBAAoB,GACnB3B,MAGP7R,GAAI,CACFC,WAAY,SAAoBlE,GAC1BA,EAAOE,OAAO2B,KAAKC,SAAW9B,EAAOE,OAAO8Y,gBAC9ChZ,EAAOE,OAAO8Y,eAAgB,IAGlCjR,KAAM,SAAc/H,GACdA,EAAOE,OAAO2B,KAAKC,UAAY9B,EAAOE,OAAOhD,MAAuC,IAA/B8C,EAAOE,OAAOqE,eACjEvE,EAAOE,OAAO2B,KAAKiX,YACrB9Y,EAAO6B,KAAK0W,oBAEZvY,EAAO6B,KAAKE,SAIlBkX,OAAQ,SAAgBjZ,GAClBA,EAAOE,OAAOiL,WAAanL,EAAOE,OAAO4L,gBAC3C9L,EAAO6B,KAAKE,QAGhB,sDAAuD,SAAkB/B,GACnEA,EAAOE,OAAO2B,KAAKC,SACrB9B,EAAO6B,KAAKE,QAGhBmX,gBAAiB,SAAyBlZ,GACpCA,EAAOE,OAAO2B,KAAKC,UACjB9B,EAAOE,OAAO2B,KAAKkX,wBAA0B/Y,EAAOE,OAAO2B,KAAKkX,wBAA0B/Y,EAAO6B,KAAK4V,qBACxGzX,EAAO6B,KAAKE,QAIlB6T,cAAe,SAAuB5V,GAChCA,EAAOE,OAAO2B,KAAKC,UAAY9B,EAAOE,OAAO2B,KAAKkX,uBACpD/Y,EAAO6B,KAAKE,QAGhB8T,YAAa,SAAqB7V,GAC5BA,EAAOE,OAAO2B,KAAKC,SAAW9B,EAAOE,OAAOgK,SAC9ClK,EAAO6B,KAAKE,UCvPpB,SAAS,IAYP,OAXA,EAAWpU,OAAO8J,QAAU,SAAUmI,GACpC,IAAK,IAAIzK,EAAI,EAAGA,EAAI5H,UAAU+C,OAAQ6E,IAAK,CACzC,IAAI0K,EAAStS,UAAU4H,GACvB,IAAK,IAAIuI,KAAOmC,EACVlS,OAAOC,UAAU0M,eAAexM,KAAK+R,EAAQnC,KAC/CkC,EAAOlC,GAAOmC,EAAOnC,IAI3B,OAAOkC,IAEOrF,MAAML,KAAM3M,WAK9B,IAAI4rB,EAAa,CACfC,aAAc,SAAsB3L,EAAGC,GACrC,IACMsK,EACAC,EACAoB,EAqBFC,EACAC,EAzBAC,EAIK,SAAUppB,EAAOqpB,GAGtB,IAFAxB,GAAY,EACZD,EAAW5nB,EAAME,OACV0nB,EAAWC,EAAW,GAEvB7nB,EADJipB,EAAQrB,EAAWC,GAAY,IACXwB,EAClBxB,EAAWoB,EAEXrB,EAAWqB,EAGf,OAAOrB,GAoBX,OAjBA9d,KAAKuT,EAAIA,EACTvT,KAAKwT,EAAIA,EACTxT,KAAKwf,UAAYjM,EAAEnd,OAAS,EAM5B4J,KAAKyf,YAAc,SAAqBzK,GACtC,OAAKA,GAELqK,EAAKC,EAAatf,KAAKuT,EAAGyB,GAC1BoK,EAAKC,EAAK,GAGFrK,EAAKhV,KAAKuT,EAAE6L,KAAQpf,KAAKwT,EAAE6L,GAAMrf,KAAKwT,EAAE4L,KAAQpf,KAAKuT,EAAE8L,GAAMrf,KAAKuT,EAAE6L,IAAOpf,KAAKwT,EAAE4L,IAN1E,GAQXpf,MAGT0f,uBAAwB,SAAgCC,GACzC3f,KACD4f,WAAWC,SADV7f,KAEJ4f,WAAWC,OAFP7f,KAEuBgG,OAAOhD,KAAO,IAAIic,EAAWC,aAFpDlf,KAEwE6G,WAAY8Y,EAAE9Y,YAAc,IAAIoY,EAAWC,aAFnHlf,KAEuI+T,SAAU4L,EAAE5L,YAGlKzJ,aAAc,SAAsBwV,EAAeC,GACjD,IAEIC,EACAC,EAHAna,EAAS9F,KACTkgB,EAAapa,EAAO8Z,WAAWO,QAG/BC,EAASta,EAAOua,YACpB,SAASC,EAAuBX,GAK9B,IAAIY,EAAYza,EAAOsB,cAAgBtB,EAAOya,UAAYza,EAAOya,UAC7B,UAAhCza,EAAOE,OAAO4Z,WAAWY,KAC3B1a,EAAO8Z,WAAWF,uBAAuBC,GAGzCM,GAAuBna,EAAO8Z,WAAWC,OAAOJ,aAAac,IAE1DN,GAAuD,cAAhCna,EAAOE,OAAO4Z,WAAWY,KACnDR,GAAcL,EAAE7O,eAAiB6O,EAAE9O,iBAAmB/K,EAAOgL,eAAiBhL,EAAO+K,gBACrFoP,GAAuBM,EAAYza,EAAO+K,gBAAkBmP,EAAaL,EAAE9O,gBAEzE/K,EAAOE,OAAO4Z,WAAWa,UAC3BR,EAAsBN,EAAE7O,eAAiBmP,GAE3CN,EAAElY,eAAewY,GACjBN,EAAErV,aAAa2V,EAAqBna,GACpC6Z,EAAE3Y,oBACF2Y,EAAEjY,sBAEJ,GAAIpN,MAAMC,QAAQ2lB,GAChB,IAAK,IAAIjlB,EAAI,EAAGA,EAAIilB,EAAW9pB,OAAQ6E,GAAK,EACtCilB,EAAWjlB,KAAO8kB,GAAgBG,EAAWjlB,aAAcmlB,GAC7DE,EAAuBJ,EAAWjlB,SAG7BilB,aAAsBE,GAAUL,IAAiBG,GAC1DI,EAAuBJ,IAG3BvO,cAAe,SAAuB0C,EAAU0L,GAC9C,IAGI9kB,EAHA6K,EAAS9F,KACTogB,EAASta,EAAOua,YAChBH,EAAapa,EAAO8Z,WAAWO,QAEnC,SAASO,EAAwBf,GAC/BA,EAAEhO,cAAc0C,EAAUvO,GACT,IAAbuO,IACFsL,EAAEX,kBACEW,EAAE3Z,OAAOkX,YACX,aAAS,WACPyC,EAAExC,sBAGNwC,EAAEvX,WAAWsT,eAAc,WACpBwE,IACDP,EAAE3Z,OAAOhD,MAAwC,UAAhC8C,EAAOE,OAAO4Z,WAAWY,IAC5Cb,EAAEtO,UAEJsO,EAAEjE,qBAIR,GAAIphB,MAAMC,QAAQ2lB,GAChB,IAAKjlB,EAAI,EAAGA,EAAIilB,EAAW9pB,OAAQ6E,GAAK,EAClCilB,EAAWjlB,KAAO8kB,GAAgBG,EAAWjlB,aAAcmlB,GAC7DM,EAAwBR,EAAWjlB,SAG9BilB,aAAsBE,GAAUL,IAAiBG,GAC1DQ,EAAwBR,KAIf,GACbhlB,KAAM,aACN8K,OAAQ,CACN4Z,WAAY,CACVO,aAASvf,EACT6f,SAAS,EACTD,GAAI,UAIRjgB,OAAQ,WAEN,YADaP,KACa,CACxB4f,WAAY,EAAS,CACnBO,QAHSngB,KAGOgG,OAAO4Z,WAAWO,SACjClB,MAGPlV,GAAI,CACFjG,OAAQ,SAAgBgC,GACjBA,EAAO8Z,WAAWO,SACnBra,EAAO8Z,WAAWC,SACpB/Z,EAAO8Z,WAAWC,YAASjf,SACpBkF,EAAO8Z,WAAWC,SAG7Bc,OAAQ,SAAgB7a,GACjBA,EAAO8Z,WAAWO,SACnBra,EAAO8Z,WAAWC,SACpB/Z,EAAO8Z,WAAWC,YAASjf,SACpBkF,EAAO8Z,WAAWC,SAG7Be,eAAgB,SAAwB9a,GACjCA,EAAO8Z,WAAWO,SACnBra,EAAO8Z,WAAWC,SACpB/Z,EAAO8Z,WAAWC,YAASjf,SACpBkF,EAAO8Z,WAAWC,SAG7BvV,aAAc,SAAsBxE,EAAQya,EAAWR,GAChDja,EAAO8Z,WAAWO,SACvBra,EAAO8Z,WAAWtV,aAAaiW,EAAWR,IAE5CpO,cAAe,SAAuB7L,EAAQuO,EAAU0L,GACjDja,EAAO8Z,WAAWO,SACvBra,EAAO8Z,WAAWjO,cAAc0C,EAAU0L,M,YCvLhD,SAAS,IAYP,OAXA,EAAWtsB,OAAO8J,QAAU,SAAUmI,GACpC,IAAK,IAAIzK,EAAI,EAAGA,EAAI5H,UAAU+C,OAAQ6E,IAAK,CACzC,IAAI0K,EAAStS,UAAU4H,GACvB,IAAK,IAAIuI,KAAOmC,EACVlS,OAAOC,UAAU0M,eAAexM,KAAK+R,EAAQnC,KAC/CkC,EAAOlC,GAAOmC,EAAOnC,IAI3B,OAAOkC,IAEOrF,MAAML,KAAM3M,WAI9B,IAAIwtB,EAAU,CACZhT,KAAM,WACJ,IACInD,EAAS,cACb,GAFa1K,KAEDgG,OAAO8a,QAAnB,CACA,IAAKpW,EAAOoW,UAAYpW,EAAOoW,QAAQC,UAGrC,OANW/gB,KAIJgG,OAAO8a,QAAQlZ,SAAU,OAJrB5H,KAKJgG,OAAOgb,eAAepZ,SAAU,GAGzC,IAAIkZ,EARS9gB,KAQQ8gB,QACrBA,EAAQG,aAAc,EACtBH,EAAQI,MAAQL,EAAQM,cAVXnhB,KAUgCgG,OAAOob,MAC/CN,EAAQI,MAAM1d,KAAQsd,EAAQI,MAAM5oB,SACzCwoB,EAAQO,cAAc,EAAGP,EAAQI,MAAM5oB,MAZ1B0H,KAYwCgG,OAAOsb,oBAZ/CthB,KAaDgG,OAAO8a,QAAQS,cACzB7W,EAAOyI,iBAAiB,WAdbnT,KAcgC8gB,QAAQU,uBAGvD9d,QAAS,WACP,IACIgH,EAAS,cADA1K,KAEDgG,OAAO8a,QAAQS,cACzB7W,EAAOwI,oBAAoB,WAHhBlT,KAGmC8gB,QAAQU,qBAG1DA,mBAAoB,WACLxhB,KACN8gB,QAAQI,MAAQL,EAAQM,cADlBnhB,KACuCgG,OAAOob,KAD9CphB,KAEN8gB,QAAQO,cAFFrhB,KAEuBgG,OAAOqM,MAF9BrS,KAE4C8gB,QAAQI,MAAM5oB,OAAO,IAEhF6oB,cAAe,SAAuBM,GACpC,IAAI/W,EAAS,cAOTgX,GALAD,EACS,IAAIE,IAAIF,GAER/W,EAAOkX,UAEKC,SAAS7qB,MAAM,GAAGb,MAAM,KAAK2rB,QAAO,SAAUC,GACrE,MAAgB,KAATA,KAELC,EAAQN,EAAUtrB,OAGtB,MAAO,CACLoN,IAHQke,EAAUM,EAAQ,GAI1B1pB,MAHUopB,EAAUM,EAAQ,KAMhCC,WAAY,SAAoBze,EAAKU,GACnC,IACIwG,EAAS,cACb,GAFa1K,KAED8gB,QAAQG,aAFPjhB,KAE8BgG,OAAO8a,QAAQlZ,QAA1D,CACA,IAAIga,EAEFA,EALW5hB,KAIFgG,OAAOob,IACL,IAAIO,IALJ3hB,KAKegG,OAAOob,KAEtB1W,EAAOkX,SAEpB,IAAI/Y,EATS7I,KASMgE,OAAO4R,GAAG1R,GACzB5L,EAAQuoB,EAAQqB,QAAQrZ,EAAMG,KAAK,iBACvC,GAXahJ,KAWFgG,OAAO8a,QAAQqB,KAAK/rB,OAAS,EAAG,CACzC,IAAI+rB,EAZOniB,KAYOgG,OAAO8a,QAAQqB,KACH,MAA1BA,EAAKA,EAAK/rB,OAAS,KAAY+rB,EAAOA,EAAKnrB,MAAM,EAAGmrB,EAAK/rB,OAAS,IACtEkC,EAAQ6pB,EAAO,IAAM3e,EAAM,IAAMlL,OACvBspB,EAASC,SAASO,SAAS5e,KACrClL,EAAQkL,EAAM,IAAMlL,GAEtB,IAAI+pB,EAAe3X,EAAOoW,QAAQwB,MAC9BD,GAAgBA,EAAa/pB,QAAUA,IAnB9B0H,KAsBFgG,OAAO8a,QAAQS,aACxB7W,EAAOoW,QAAQS,aAAa,CAC1BjpB,MAAOA,GACN,KAAMA,GAEToS,EAAOoW,QAAQC,UAAU,CACvBzoB,MAAOA,GACN,KAAMA,MAGb4pB,QAAS,SAAiBK,GACxB,OAAOA,EAAK5uB,WAAW8C,QAAQ,OAAQ,KAAKA,QAAQ,WAAY,IAAIA,QAAQ,OAAQ,KAAKA,QAAQ,MAAO,IAAIA,QAAQ,MAAO,KAE7H4qB,cAAe,SAAuBhP,EAAO/Z,EAAOkqB,GAElD,GAAIlqB,EACF,IAAK,IAAI2C,EAAI,EAAG7E,EAFL4J,KAEqBgE,OAAO5N,OAAQ6E,EAAI7E,EAAQ6E,GAAK,EAAG,CACjE,IAAI4N,EAHK7I,KAGUgE,OAAO4R,GAAG3a,GAE7B,GADmB4lB,EAAQqB,QAAQrZ,EAAMG,KAAK,mBACzB1Q,IAAUuQ,EAAMsT,SAL5Bnc,KAK4CgG,OAAO+W,qBAAsB,CAChF,IAAI7Y,EAAQ2E,EAAM3E,QANXlE,KAOAmE,QAAQD,EAAOmO,EAAOmQ,SAPtBxiB,KAWJmE,QAAQ,EAAGkO,EAAOmQ,KAIhB,GACbtnB,KAAM,UACN8K,OAAQ,CACN8a,QAAS,CACPlZ,SAAS,EACTua,KAAM,GACNZ,cAAc,EACd/d,IAAK,WAGTjD,OAAQ,WAEN,YADaP,KACa,CACxB8gB,QAAS,EAAS,GAAID,MAG1B9W,GAAI,CACF8D,KAAM,SAAc/H,GACdA,EAAOE,OAAO8a,QAAQlZ,SACxB9B,EAAOgb,QAAQjT,QAGnBnK,QAAS,SAAiBoC,GACpBA,EAAOE,OAAO8a,QAAQlZ,SACxB9B,EAAOgb,QAAQpd,WAGnB,2CAA4C,SAAiDoC,GACvFA,EAAOgb,QAAQG,aACjBnb,EAAOgb,QAAQmB,WAAWnc,EAAOE,OAAO8a,QAAQtd,IAAKsC,EAAO7B,cAGhE0X,YAAa,SAAqB7V,GAC5BA,EAAOgb,QAAQG,aAAenb,EAAOE,OAAOgK,SAC9ClK,EAAOgb,QAAQmB,WAAWnc,EAAOE,OAAO8a,QAAQtd,IAAKsC,EAAO7B,gBCxJpE,SAAS,IAYP,OAXA,EAAWxQ,OAAO8J,QAAU,SAAUmI,GACpC,IAAK,IAAIzK,EAAI,EAAGA,EAAI5H,UAAU+C,OAAQ6E,IAAK,CACzC,IAAI0K,EAAStS,UAAU4H,GACvB,IAAK,IAAIuI,KAAOmC,EACVlS,OAAOC,UAAU0M,eAAexM,KAAK+R,EAAQnC,KAC/CkC,EAAOlC,GAAOmC,EAAOnC,IAI3B,OAAOkC,IAEOrF,MAAML,KAAM3M,WAK9B,IAAIovB,EAAiB,CACnBC,YAAa,WACX,IACI/X,EAAW,cADF3K,KAENyN,KAAK,cACZ,IAAIkV,EAAUhY,EAASiX,SAASgB,KAAKnsB,QAAQ,IAAK,IAElD,GAAIksB,IALS3iB,KAIgBgE,OAAO4R,GAJvB5V,KAIiCiE,aAAa+E,KAAK,aAC/B,CAC/B,IAAI6Z,EANO7iB,KAMWoI,WAAWhO,SAAS,IAN/B4F,KAM4CgG,OAAOjD,WAAa,eAAkB4f,EAAU,MAAOze,QAC9G,QAAwB,IAAb2e,EAA0B,OAP1B7iB,KAQJmE,QAAQ0e,KAGnBC,QAAS,WACP,IACIpY,EAAS,cACTC,EAAW,cACf,GAHa3K,KAGDghB,eAAeC,aAHdjhB,KAGqCgG,OAAOgb,eAAepZ,QACxE,GAJa5H,KAIFgG,OAAOgb,eAAeO,cAAgB7W,EAAOoW,SAAWpW,EAAOoW,QAAQS,aAChF7W,EAAOoW,QAAQS,aAAa,KAAM,KAAM,IAL7BvhB,KAK0CgE,OAAO4R,GALjD5V,KAK2DiE,aAAa+E,KAAK,eAAgB,GAL7FhJ,KAMJyN,KAAK,eACP,CACL,IAAI5E,EARO7I,KAQQgE,OAAO4R,GARf5V,KAQyBiE,aAChC2e,EAAO/Z,EAAMG,KAAK,cAAgBH,EAAMG,KAAK,gBACjD2B,EAASiX,SAASgB,KAAOA,GAAQ,GAVtB5iB,KAWJyN,KAAK,aAGhBI,KAAM,WACJ,IACIlD,EAAW,cACXD,EAAS,cACb,MAHa1K,KAGDgG,OAAOgb,eAAepZ,SAHrB5H,KAGuCgG,OAAO8a,SAH9C9gB,KAGgEgG,OAAO8a,QAAQlZ,SAA5F,CAHa5H,KAINghB,eAAeC,aAAc,EACpC,IAAI2B,EAAOjY,EAASiX,SAASgB,KAAKnsB,QAAQ,IAAK,IAC/C,GAAImsB,EAEF,IADA,IACS3nB,EAAI,EAAG7E,EARL4J,KAQqBgE,OAAO5N,OAAQ6E,EAAI7E,EAAQ6E,GAAK,EAAG,CACjE,IAAI4N,EATK7I,KASUgE,OAAO4R,GAAG3a,GAE7B,IADgB4N,EAAMG,KAAK,cAAgBH,EAAMG,KAAK,mBACpC4Z,IAAS/Z,EAAMsT,SAXxBnc,KAWwCgG,OAAO+W,qBAAsB,CAC5E,IAAI7Y,EAAQ2E,EAAM3E,QAZXlE,KAaAmE,QAAQD,EANP,EAPDlE,KAa6BgG,OAAOsb,oBAAoB,IAbxDthB,KAiBFgG,OAAOgb,eAAe+B,YAC/B,YAAErY,GAAQX,GAAG,aAlBF/J,KAkBuBghB,eAAe0B,eAGrDhf,QAAS,WACP,IACIgH,EAAS,cADA1K,KAEFgG,OAAOgb,eAAe+B,YAC/B,YAAErY,GAAQkD,IAAI,aAHH5N,KAGwBghB,eAAe0B,eAIzC,GACbxnB,KAAM,kBACN8K,OAAQ,CACNgb,eAAgB,CACdpZ,SAAS,EACT2Z,cAAc,EACdwB,YAAY,IAGhBxiB,OAAQ,WAEN,YADaP,KACa,CACxBghB,eAAgB,EAAS,CACvBC,aAAa,GACZwB,MAGP1Y,GAAI,CACF8D,KAAM,SAAc/H,GACdA,EAAOE,OAAOgb,eAAepZ,SAC/B9B,EAAOkb,eAAenT,QAG1BnK,QAAS,SAAiBoC,GACpBA,EAAOE,OAAOgb,eAAepZ,SAC/B9B,EAAOkb,eAAetd,WAG1B,2CAA4C,SAAiDoC,GACvFA,EAAOkb,eAAeC,aACxBnb,EAAOkb,eAAe8B,WAG1BnH,YAAa,SAAqB7V,GAC5BA,EAAOkb,eAAeC,aAAenb,EAAOE,OAAOgK,SACrDlK,EAAOkb,eAAe8B,aC9G9B,SAAS,IAYP,OAXA,EAAWrvB,OAAO8J,QAAU,SAAUmI,GACpC,IAAK,IAAIzK,EAAI,EAAGA,EAAI5H,UAAU+C,OAAQ6E,IAAK,CACzC,IAAI0K,EAAStS,UAAU4H,GACvB,IAAK,IAAIuI,KAAOmC,EACVlS,OAAOC,UAAU0M,eAAexM,KAAK+R,EAAQnC,KAC/CkC,EAAOlC,GAAOmC,EAAOnC,IAI3B,OAAOkC,IAEOrF,MAAML,KAAM3M,WAM9B,IAAI2vB,EAAW,CACbC,IAAK,WACH,IAAInd,EAAS9F,KACTkjB,EAAiBpd,EAAO9B,OAAO4R,GAAG9P,EAAO7B,aACzCkf,EAAQrd,EAAOE,OAAOsM,SAAS6Q,MAC/BD,EAAela,KAAK,0BACtBma,EAAQD,EAAela,KAAK,yBAA2BlD,EAAOE,OAAOsM,SAAS6Q,OAEhFtR,aAAa/L,EAAOwM,SAASR,SAC7BhM,EAAOwM,SAASR,QAAU,aAAS,WACjC,IAAIsR,EACAtd,EAAOE,OAAOsM,SAAS+Q,iBACrBvd,EAAOE,OAAOhD,MAChB8C,EAAOuL,UACP+R,EAAiBtd,EAAO0H,UAAU1H,EAAOE,OAAOqM,OAAO,GAAM,GAC7DvM,EAAO2H,KAAK,aACF3H,EAAO0L,YAGP1L,EAAOE,OAAOsM,SAASgR,gBAIjCxd,EAAOwM,SAASE,QAHhB4Q,EAAiBtd,EAAO3B,QAAQ2B,EAAO9B,OAAO5N,OAAS,EAAG0P,EAAOE,OAAOqM,OAAO,GAAM,GACrFvM,EAAO2H,KAAK,cAJZ2V,EAAiBtd,EAAO0H,UAAU1H,EAAOE,OAAOqM,OAAO,GAAM,GAC7DvM,EAAO2H,KAAK,aAOL3H,EAAOE,OAAOhD,MACvB8C,EAAOuL,UACP+R,EAAiBtd,EAAOyH,UAAUzH,EAAOE,OAAOqM,OAAO,GAAM,GAC7DvM,EAAO2H,KAAK,aACF3H,EAAO4L,MAGP5L,EAAOE,OAAOsM,SAASgR,gBAIjCxd,EAAOwM,SAASE,QAHhB4Q,EAAiBtd,EAAO3B,QAAQ,EAAG2B,EAAOE,OAAOqM,OAAO,GAAM,GAC9DvM,EAAO2H,KAAK,cAJZ2V,EAAiBtd,EAAOyH,UAAUzH,EAAOE,OAAOqM,OAAO,GAAM,GAC7DvM,EAAO2H,KAAK,cAOV3H,EAAOE,OAAOgK,SAAWlK,EAAOwM,SAASiR,UAA2D,IAAnBH,IAA/Btd,EAAOwM,SAAS2Q,QAGrEE,IAELrI,MAAO,WAEL,YAAuC,IAD1B9a,KACKsS,SAASR,WADd9R,KAEFsS,SAASiR,UAFPvjB,KAGNsS,SAASiR,SAAU,EAHbvjB,KAINyN,KAAK,iBAJCzN,KAKNsS,SAAS2Q,OACT,KAETzQ,KAAM,WAEJ,QADaxS,KACDsS,SAASiR,eACkB,IAF1BvjB,KAEKsS,SAASR,UAFd9R,KAGFsS,SAASR,UAClBD,aAJW7R,KAISsS,SAASR,SAJlB9R,KAKJsS,SAASR,aAAUlR,GALfZ,KAONsS,SAASiR,SAAU,EAPbvjB,KAQNyN,KAAK,iBACL,KAET+V,MAAO,SAAenR,GACpB,IAAIvM,EAAS9F,KACR8F,EAAOwM,SAASiR,UACjBzd,EAAOwM,SAASmR,SAChB3d,EAAOwM,SAASR,SAASD,aAAa/L,EAAOwM,SAASR,SAC1DhM,EAAOwM,SAASmR,QAAS,EACX,IAAVpR,GAAgBvM,EAAOE,OAAOsM,SAASoR,kBAIzC,CAAC,gBAAiB,uBAAuBjpB,SAAQ,SAAUgQ,GACzD3E,EAAOsC,WAAW,GAAG+K,iBAAiB1I,EAAO3E,EAAOwM,SAASyG,qBAJ/DjT,EAAOwM,SAASmR,QAAS,EACzB3d,EAAOwM,SAAS2Q,UAOpBU,mBAAoB,WAClB,IACIhZ,EAAW,cACkB,WAA7BA,EAASiZ,iBAFA5jB,KAEuCsS,SAASiR,SAFhDvjB,KAGJsS,SAASkR,QAEe,YAA7B7Y,EAASiZ,iBALA5jB,KAKwCsS,SAASmR,SALjDzjB,KAMJsS,SAAS2Q,MANLjjB,KAOJsS,SAASmR,QAAS,IAG7B1K,gBAAiB,SAAyBvU,GACxC,IAAIsB,EAAS9F,KACR8F,IAAUA,EAAO2W,WAAc3W,EAAOsC,YACvC5D,EAAEkB,SAAWI,EAAOsC,WAAW,KACnC,CAAC,gBAAiB,uBAAuB3N,SAAQ,SAAUgQ,GACzD3E,EAAOsC,WAAW,GAAG8K,oBAAoBzI,EAAO3E,EAAOwM,SAASyG,oBAElEjT,EAAOwM,SAASmR,QAAS,EACpB3d,EAAOwM,SAASiR,QAGnBzd,EAAOwM,SAAS2Q,MAFhBnd,EAAOwM,SAASE,SAKpBqR,aAAc,WACZ,IAAI/d,EAAS9F,KACT8F,EAAOE,OAAOsM,SAASwR,qBACzBhe,EAAOwM,SAASE,OAEhB1M,EAAOwM,SAASkR,QAElB,CAAC,gBAAiB,uBAAuB/oB,SAAQ,SAAUgQ,GACzD3E,EAAOsC,WAAW,GAAG8K,oBAAoBzI,EAAO3E,EAAOwM,SAASyG,qBAGpEgL,aAAc,WACC/jB,KACFgG,OAAOsM,SAASwR,uBADd9jB,KAINsS,SAASmR,QAAS,EAJZzjB,KAKNsS,SAAS2Q,QAElBe,kBAAmB,WACJhkB,KACFgG,OAAOsM,SAAS2R,oBADdjkB,KAEJoM,IAAIrC,GAAG,aAFH/J,KAEwBsS,SAASuR,cAFjC7jB,KAGJoM,IAAIrC,GAAG,aAHH/J,KAGwBsS,SAASyR,gBAGhDG,kBAAmB,WACJlkB,KACNoM,IAAIwB,IAAI,aADF5N,KACuBsS,SAASuR,cADhC7jB,KAENoM,IAAIwB,IAAI,aAFF5N,KAEuBsS,SAASyR,gBAGlC,GACb7oB,KAAM,WACN8K,OAAQ,CACNsM,SAAU,CACR1K,SAAS,EACTub,MAAO,IACPO,mBAAmB,EACnBI,sBAAsB,EACtBR,iBAAiB,EACjBD,kBAAkB,EAClBY,mBAAmB,IAGvB1jB,OAAQ,WAEN,YADaP,KACa,CACxBsS,SAAU,EAAS,GAAI0Q,EAAU,CAC/BO,SAAS,EACTE,QAAQ,OAId1Z,GAAI,CACF8D,KAAM,SAAc/H,GACdA,EAAOE,OAAOsM,SAAS1K,UACzB9B,EAAOwM,SAASwI,QACD,cACN3H,iBAAiB,mBAAoBrN,EAAOwM,SAASqR,oBAC9D7d,EAAOwM,SAAS0R,sBAGpBG,sBAAuB,SAA+Bre,EAAQuM,EAAO+R,GAC/Dte,EAAOwM,SAASiR,UACda,IAAate,EAAOE,OAAOsM,SAASwR,qBACtChe,EAAOwM,SAASkR,MAAMnR,GAEtBvM,EAAOwM,SAASE,SAItB6R,gBAAiB,SAAyBve,GACpCA,EAAOwM,SAASiR,UACdzd,EAAOE,OAAOsM,SAASwR,qBACzBhe,EAAOwM,SAASE,OAEhB1M,EAAOwM,SAASkR,UAItBhI,SAAU,SAAkB1V,GACtBA,EAAOE,OAAOgK,SAAWlK,EAAOwM,SAASmR,SAAW3d,EAAOE,OAAOsM,SAASwR,sBAC7Ehe,EAAOwM,SAAS2Q,OAGpBvf,QAAS,SAAiBoC,GACxBA,EAAOwM,SAAS4R,oBACZpe,EAAOwM,SAASiR,SAClBzd,EAAOwM,SAASE,OAEH,cACNU,oBAAoB,mBAAoBpN,EAAOwM,SAASqR,uBCtNvE,SAAS,IAYP,OAXA,EAAWlwB,OAAO8J,QAAU,SAAUmI,GACpC,IAAK,IAAIzK,EAAI,EAAGA,EAAI5H,UAAU+C,OAAQ6E,IAAK,CACzC,IAAI0K,EAAStS,UAAU4H,GACvB,IAAK,IAAIuI,KAAOmC,EACVlS,OAAOC,UAAU0M,eAAexM,KAAK+R,EAAQnC,KAC/CkC,EAAOlC,GAAOmC,EAAOnC,IAI3B,OAAOkC,IAEOrF,MAAML,KAAM3M,WAG9B,IAAIixB,EAAO,CACTha,aAAc,WAGZ,IAFA,IACItG,EADShE,KACOgE,OACX/I,EAAI,EAAGA,EAAI+I,EAAO5N,OAAQ6E,GAAK,EAAG,CACzC,IAAI8N,EAHO/I,KAGWgE,OAAO4R,GAAG3a,GAE5BspB,GADSxb,EAAS,GAAGyb,kBAJdxkB,KAMCgG,OAAOye,mBAAkBF,GAN1BvkB,KAMuCugB,WAClD,IAAImE,EAAK,EAPE1kB,KAQCqH,iBACVqd,EAAKH,EACLA,EAAK,GAEP,IAAII,EAZO3kB,KAYegG,OAAO4e,WAAWC,UAAY/xB,KAAKuF,IAAI,EAAIvF,KAAK0d,IAAIzH,EAAS,GAAGuK,UAAW,GAAK,EAAIxgB,KAAKwM,IAAIxM,KAAKuF,IAAI0Q,EAAS,GAAGuK,UAAW,GAAI,GAC3JvK,EAASjB,IAAI,CACX4L,QAASiR,IACR9Q,UAAU,eAAiB0Q,EAAK,OAASG,EAAK,cAGrD/S,cAAe,SAAuB0C,GACpC,IAAIvO,EAAS9F,KACTgE,EAAS8B,EAAO9B,OAClBoE,EAAatC,EAAOsC,WAEtB,GADApE,EAAOwQ,WAAWH,GACdvO,EAAOE,OAAOye,kBAAiC,IAAbpQ,EAAgB,CACpD,IAAIyQ,GAAiB,EACrB9gB,EAAO0X,eAAc,WACnB,IAAIoJ,GACChf,IAAUA,EAAO2W,UAAtB,CACAqI,GAAiB,EACjBhf,EAAOkN,WAAY,EAEnB,IADA,IAAI+R,EAAgB,CAAC,sBAAuB,iBACnC9pB,EAAI,EAAGA,EAAI8pB,EAAc3uB,OAAQ6E,GAAK,EAC7CmN,EAAW4c,QAAQD,EAAc9pB,WAM5B,GACbC,KAAM,cACN8K,OAAQ,CACN4e,WAAY,CACVC,WAAW,IAGftkB,OAAQ,WAEN,YADaP,KACa,CACxB4kB,WAAY,EAAS,GAAIN,MAG7Bva,GAAI,CACFC,WAAY,SAAoBlE,GAC9B,GAA6B,SAAzBA,EAAOE,OAAOif,OAAlB,CACAnf,EAAOhM,WAAW4K,KAAKoB,EAAOE,OAAOiE,uBAAyB,QAC9D,IAAIC,EAAkB,CACpBjE,cAAe,EACfif,gBAAiB,EACjBhf,eAAgB,EAChBiE,qBAAqB,EACrBgb,aAAc,EACdV,kBAAkB,GAEpB,YAAO3e,EAAOE,OAAQkE,GACtB,YAAOpE,EAAOsE,eAAgBF,KAEhCI,aAAc,SAAsBxE,GACL,SAAzBA,EAAOE,OAAOif,QAClBnf,EAAO8e,WAAWta,gBAEpBqH,cAAe,SAAuB7L,EAAQuO,GACf,SAAzBvO,EAAOE,OAAOif,QAClBnf,EAAO8e,WAAWjT,cAAc0C,MCzFtC,SAAS,IAYP,OAXA,EAAW5gB,OAAO8J,QAAU,SAAUmI,GACpC,IAAK,IAAIzK,EAAI,EAAGA,EAAI5H,UAAU+C,OAAQ6E,IAAK,CACzC,IAAI0K,EAAStS,UAAU4H,GACvB,IAAK,IAAIuI,KAAOmC,EACVlS,OAAOC,UAAU0M,eAAexM,KAAK+R,EAAQnC,KAC/CkC,EAAOlC,GAAOmC,EAAOnC,IAI3B,OAAOkC,IAEOrF,MAAML,KAAM3M,WAI9B,IAAI+xB,EAAO,CACT9a,aAAc,WACZ,IAaI+a,EAZAjZ,EADSpM,KACIoM,IACfhE,EAFWpI,KAESoI,WACpBpE,EAHWhE,KAGKgE,OAChBuI,EAJWvM,KAIUkX,MACrBzK,EALWzM,KAKWoX,OACtBxU,EANW5C,KAMEoH,aACbke,EAPWtlB,KAOSulB,KACpBC,EARWxlB,KAQMwlB,QACfxf,EATShG,KASOgG,OAAOyf,WACvBpe,EAVSrH,KAUaqH,eACtBgW,EAXSrd,KAWUqG,SAXVrG,KAW4BgG,OAAOK,QAAQuB,QACpD8d,EAAgB,EAEhB1f,EAAO2f,SACLte,GAE2B,KAD7Bge,EAAgBjd,EAAWC,KAAK,wBACdjS,SAChBivB,EAAgB,YAAE,0CAClBjd,EAAWI,OAAO6c,IAEpBA,EAAcvd,IAAI,CAChBsP,OAAQ7K,EAAc,QAIK,KAD7B8Y,EAAgBjZ,EAAI/D,KAAK,wBACPjS,SAChBivB,EAAgB,YAAE,0CAClBjZ,EAAI5D,OAAO6c,KAIjB,IAAK,IAAIpqB,EAAI,EAAGA,EAAI+I,EAAO5N,OAAQ6E,GAAK,EAAG,CACzC,IAAI8N,EAAW/E,EAAO4R,GAAG3a,GACrBiZ,EAAajZ,EACboiB,IACFnJ,EAAapd,SAASiS,EAASC,KAAK,2BAA4B,KAElE,IAAI4c,EAA0B,GAAb1R,EACb2R,EAAQ/yB,KAAKwU,MAAMse,EAAa,KAChChjB,IACFgjB,GAAcA,EACdC,EAAQ/yB,KAAKwU,OAAOse,EAAa,MAEnC,IAAItS,EAAWxgB,KAAKuF,IAAIvF,KAAKwM,IAAIyJ,EAAS,GAAGuK,SAAU,IAAK,GACxDiR,EAAK,EACLG,EAAK,EACLoB,EAAK,EACL5R,EAAa,GAAM,GACrBqQ,EAAc,GAARsB,EAAYP,EAClBQ,EAAK,IACK5R,EAAa,GAAK,GAAM,GAClCqQ,EAAK,EACLuB,EAAc,GAARD,EAAYP,IACRpR,EAAa,GAAK,GAAM,GAClCqQ,EAAKe,EAAqB,EAARO,EAAYP,EAC9BQ,EAAKR,IACKpR,EAAa,GAAK,GAAM,IAClCqQ,GAAMe,EACNQ,EAAK,EAAIR,EAA0B,EAAbA,EAAiBO,GAErCjjB,IACF2hB,GAAMA,GAEHld,IACHqd,EAAKH,EACLA,EAAK,GAEP,IAAI1Q,EAAY,YAAcxM,EAAe,GAAKue,GAAc,iBAAmBve,EAAeue,EAAa,GAAK,oBAAsBrB,EAAK,OAASG,EAAK,OAASoB,EAAK,MAM3K,GALIxS,GAAY,GAAKA,GAAY,IAC/BoS,EAA6B,GAAbxR,EAA6B,GAAXZ,EAC9B1Q,IAAK8iB,EAA8B,IAAbxR,EAA6B,GAAXZ,IAE9CvK,EAAS8K,UAAUA,GACf7N,EAAO+f,aAAc,CAEvB,IAAIC,EAAe3e,EAAe0B,EAASV,KAAK,6BAA+BU,EAASV,KAAK,4BACzF4d,EAAc5e,EAAe0B,EAASV,KAAK,8BAAgCU,EAASV,KAAK,+BACjE,IAAxB2d,EAAa5vB,SACf4vB,EAAe,YAAE,oCAAuC3e,EAAe,OAAS,OAAS,YACzF0B,EAASP,OAAOwd,IAES,IAAvBC,EAAY7vB,SACd6vB,EAAc,YAAE,oCAAuC5e,EAAe,QAAU,UAAY,YAC5F0B,EAASP,OAAOyd,IAEdD,EAAa5vB,SAAQ4vB,EAAa,GAAGpS,MAAMF,QAAU5gB,KAAKuF,KAAKib,EAAU,IACzE2S,EAAY7vB,SAAQ6vB,EAAY,GAAGrS,MAAMF,QAAU5gB,KAAKuF,IAAIib,EAAU,KAS9E,GANAlL,EAAWN,IAAI,CACb,2BAA4B,YAAcwd,EAAa,EAAI,KAC3D,wBAAyB,YAAcA,EAAa,EAAI,KACxD,uBAAwB,YAAcA,EAAa,EAAI,KACvD,mBAAoB,YAAcA,EAAa,EAAI,OAEjDtf,EAAO2f,OACT,GAAIte,EACFge,EAAcxR,UAAU,qBAAuBtH,EAAc,EAAIvG,EAAOkgB,cAAgB,QAAU3Z,EAAc,EAAI,0CAA4CvG,EAAOmgB,YAAc,SAChL,CACL,IAAIC,EAActzB,KAAK0d,IAAIkV,GAA4D,GAA3C5yB,KAAKwU,MAAMxU,KAAK0d,IAAIkV,GAAiB,IAC7E1F,EAAa,KAAOltB,KAAKuzB,IAAkB,EAAdD,EAAkBtzB,KAAKwzB,GAAK,KAAO,EAAIxzB,KAAKyzB,IAAkB,EAAdH,EAAkBtzB,KAAKwzB,GAAK,KAAO,GAChHE,EAASxgB,EAAOmgB,YAChBM,EAASzgB,EAAOmgB,YAAcnG,EAC9BvrB,EAASuR,EAAOkgB,aACpBb,EAAcxR,UAAU,WAAa2S,EAAS,QAAUC,EAAS,uBAAyBha,EAAe,EAAIhY,GAAU,QAAUgY,EAAe,EAAIga,EAAS,uBAGjK,IAAIC,EAAUlB,EAAQmB,UAAYnB,EAAQoB,WAAatB,EAAa,EAAI,EACxEld,EAAWyL,UAAU,qBAAuB6S,EAAU,gBA7GzC1mB,KA6GkEqH,eAAiB,EAAIqe,GAAiB,iBA7GxG1lB,KA6GkIqH,gBAAkBqe,EAAgB,GAAK,SAExL/T,cAAe,SAAuB0C,GACpC,IACIjI,EADSpM,KACIoM,IADJpM,KAEKgE,OACXwQ,WAAWH,GAAUhM,KAAK,gHAAgHmM,WAAWH,GAH/IrU,KAIFgG,OAAOyf,WAAWE,SAJhB3lB,KAIkCqH,gBAC7C+E,EAAI/D,KAAK,uBAAuBmM,WAAWH,KAIlC,GACbnZ,KAAM,cACN8K,OAAQ,CACNyf,WAAY,CACVM,cAAc,EACdJ,QAAQ,EACRO,aAAc,GACdC,YAAa,MAGjB5lB,OAAQ,WAEN,YADaP,KACa,CACxBylB,WAAY,EAAS,GAAIL,MAG7Brb,GAAI,CACFC,WAAY,SAAoBlE,GAC9B,GAA6B,SAAzBA,EAAOE,OAAOif,OAAlB,CACAnf,EAAOhM,WAAW4K,KAAKoB,EAAOE,OAAOiE,uBAAyB,QAC9DnE,EAAOhM,WAAW4K,KAAKoB,EAAOE,OAAOiE,uBAAyB,MAC9D,IAAIC,EAAkB,CACpBjE,cAAe,EACfif,gBAAiB,EACjBhf,eAAgB,EAChBiE,qBAAqB,EACrB0c,gBAAiB,EACjB1B,aAAc,EACdhf,gBAAgB,EAChBse,kBAAkB,GAEpB,YAAO3e,EAAOE,OAAQkE,GACtB,YAAOpE,EAAOsE,eAAgBF,KAEhCI,aAAc,SAAsBxE,GACL,SAAzBA,EAAOE,OAAOif,QAClBnf,EAAO2f,WAAWnb,gBAEpBqH,cAAe,SAAuB7L,EAAQuO,GACf,SAAzBvO,EAAOE,OAAOif,QAClBnf,EAAO2f,WAAW9T,cAAc0C,MCnLtC,SAAS,IAYP,OAXA,EAAW5gB,OAAO8J,QAAU,SAAUmI,GACpC,IAAK,IAAIzK,EAAI,EAAGA,EAAI5H,UAAU+C,OAAQ6E,IAAK,CACzC,IAAI0K,EAAStS,UAAU4H,GACvB,IAAK,IAAIuI,KAAOmC,EACVlS,OAAOC,UAAU0M,eAAexM,KAAK+R,EAAQnC,KAC/CkC,EAAOlC,GAAOmC,EAAOnC,IAI3B,OAAOkC,IAEOrF,MAAML,KAAM3M,WAI9B,IAAIyzB,EAAO,CACTxc,aAAc,WAIZ,IAHA,IACItG,EADShE,KACOgE,OAClBpB,EAFW5C,KAEEoH,aACNnM,EAAI,EAAGA,EAAI+I,EAAO5N,OAAQ6E,GAAK,EAAG,CACzC,IAAI8N,EAAW/E,EAAO4R,GAAG3a,GACrBqY,EAAWvK,EAAS,GAAGuK,SALhBtT,KAMAgG,OAAO+gB,WAAWC,gBAC3B1T,EAAWxgB,KAAKuF,IAAIvF,KAAKwM,IAAIyJ,EAAS,GAAGuK,SAAU,IAAK,IAE1D,IAEI2T,GADU,IAAM3T,EAEhB4T,EAAU,EACV3C,GAJSxb,EAAS,GAAGyb,kBAKrBE,EAAK,EAUT,GAxBW1kB,KAeCqH,eAKDzE,IACTqkB,GAAWA,IALXvC,EAAKH,EACLA,EAAK,EACL2C,GAAWD,EACXA,EAAU,GAIZle,EAAS,GAAG6K,MAAMuT,QAAUr0B,KAAK0d,IAAI1d,KAAK+yB,MAAMvS,IAAatP,EAAO5N,OAvBzD4J,KAwBAgG,OAAO+gB,WAAWhB,aAAc,CAEzC,IAAIC,EA1BKhmB,KA0BiBqH,eAAiB0B,EAASV,KAAK,6BAA+BU,EAASV,KAAK,4BAClG4d,EA3BKjmB,KA2BgBqH,eAAiB0B,EAASV,KAAK,8BAAgCU,EAASV,KAAK,+BAC1E,IAAxB2d,EAAa5vB,SACf4vB,EAAe,YAAE,oCA7BVhmB,KA6BwDqH,eAAiB,OAAS,OAAS,YAClG0B,EAASP,OAAOwd,IAES,IAAvBC,EAAY7vB,SACd6vB,EAAc,YAAE,oCAjCTjmB,KAiCuDqH,eAAiB,QAAU,UAAY,YACrG0B,EAASP,OAAOyd,IAEdD,EAAa5vB,SAAQ4vB,EAAa,GAAGpS,MAAMF,QAAU5gB,KAAKuF,KAAKib,EAAU,IACzE2S,EAAY7vB,SAAQ6vB,EAAY,GAAGrS,MAAMF,QAAU5gB,KAAKuF,IAAIib,EAAU,IAE5EvK,EAAS8K,UAAU,eAAiB0Q,EAAK,OAASG,EAAK,oBAAsBwC,EAAU,gBAAkBD,EAAU,UAGvHtV,cAAe,SAAuB0C,GACpC,IAAIvO,EAAS9F,KACTgE,EAAS8B,EAAO9B,OAClBC,EAAc6B,EAAO7B,YACrBmE,EAAatC,EAAOsC,WAEtB,GADApE,EAAOwQ,WAAWH,GAAUhM,KAAK,gHAAgHmM,WAAWH,GACxJvO,EAAOE,OAAOye,kBAAiC,IAAbpQ,EAAgB,CACpD,IAAIyQ,GAAiB,EAErB9gB,EAAO4R,GAAG3R,GAAayX,eAAc,WACnC,IAAIoJ,GACChf,IAAUA,EAAO2W,UAAtB,CAEAqI,GAAiB,EACjBhf,EAAOkN,WAAY,EAEnB,IADA,IAAI+R,EAAgB,CAAC,sBAAuB,iBACnC9pB,EAAI,EAAGA,EAAI8pB,EAAc3uB,OAAQ6E,GAAK,EAC7CmN,EAAW4c,QAAQD,EAAc9pB,WAM5B,GACbC,KAAM,cACN8K,OAAQ,CACN+gB,WAAY,CACVhB,cAAc,EACdiB,eAAe,IAGnBzmB,OAAQ,WAEN,YADaP,KACa,CACxB+mB,WAAY,EAAS,GAAID,MAG7B/c,GAAI,CACFC,WAAY,SAAoBlE,GAC9B,GAA6B,SAAzBA,EAAOE,OAAOif,OAAlB,CACAnf,EAAOhM,WAAW4K,KAAKoB,EAAOE,OAAOiE,uBAAyB,QAC9DnE,EAAOhM,WAAW4K,KAAKoB,EAAOE,OAAOiE,uBAAyB,MAC9D,IAAIC,EAAkB,CACpBjE,cAAe,EACfif,gBAAiB,EACjBhf,eAAgB,EAChBiE,qBAAqB,EACrBgb,aAAc,EACdV,kBAAkB,GAEpB,YAAO3e,EAAOE,OAAQkE,GACtB,YAAOpE,EAAOsE,eAAgBF,KAEhCI,aAAc,SAAsBxE,GACL,SAAzBA,EAAOE,OAAOif,QAClBnf,EAAOihB,WAAWzc,gBAEpBqH,cAAe,SAAuB7L,EAAQuO,GACf,SAAzBvO,EAAOE,OAAOif,QAClBnf,EAAOihB,WAAWpV,cAAc0C,MCvHtC,SAAS,IAYP,OAXA,EAAW5gB,OAAO8J,QAAU,SAAUmI,GACpC,IAAK,IAAIzK,EAAI,EAAGA,EAAI5H,UAAU+C,OAAQ6E,IAAK,CACzC,IAAI0K,EAAStS,UAAU4H,GACvB,IAAK,IAAIuI,KAAOmC,EACVlS,OAAOC,UAAU0M,eAAexM,KAAK+R,EAAQnC,KAC/CkC,EAAOlC,GAAOmC,EAAOnC,IAI3B,OAAOkC,IAEOrF,MAAML,KAAM3M,WAI9B,IAAI+zB,EAAY,CACd9c,aAAc,WAaZ,IAZA,IACIiC,EADSvM,KACYkX,MACvBzK,EAFWzM,KAEWoX,OACtBpT,EAHWhE,KAGKgE,OAChBqjB,EAJWrnB,KAIcqnB,gBACvBrhB,EALShG,KAKOgG,OAAOshB,gBACvBjgB,EANSrH,KAMaqH,eACtBwM,EAPS7T,KAOUugB,UACnBgH,EAASlgB,EAA4BkF,EAAc,EAA1BsH,EAA2CpH,EAAe,EAA3BoH,EACxD2T,EAASngB,EAAerB,EAAOwhB,QAAUxhB,EAAOwhB,OAChDjH,EAAYva,EAAOyhB,MAEdxsB,EAAI,EAAG7E,EAAS4N,EAAO5N,OAAQ6E,EAAI7E,EAAQ6E,GAAK,EAAG,CAC1D,IAAI8N,EAAW/E,EAAO4R,GAAG3a,GACrBysB,EAAYL,EAAgBpsB,GAE5B0sB,GAAoBJ,EADNxe,EAAS,GAAGyb,kBACiBkD,EAAY,GAAKA,EAAY1hB,EAAO4hB,SAC/EX,EAAU5f,EAAemgB,EAASG,EAAmB,EACrDT,EAAU7f,EAAe,EAAImgB,EAASG,EAEtCE,GAActH,EAAYztB,KAAK0d,IAAImX,GACnCG,EAAU9hB,EAAO8hB,QAEE,iBAAZA,IAAkD,IAA1BA,EAAQ1Z,QAAQ,OACjD0Z,EAAUlvB,WAAWoN,EAAO8hB,SAAW,IAAMJ,GAE/C,IAAIjO,EAAapS,EAAe,EAAIygB,EAAUH,EAC1CnO,EAAanS,EAAeygB,EAAUH,EAAmB,EACzDlU,EAAQ,GAAK,EAAIzN,EAAOyN,OAAS3gB,KAAK0d,IAAImX,GAE1C70B,KAAK0d,IAAIgJ,GAAc,OAAOA,EAAa,GAC3C1mB,KAAK0d,IAAIiJ,GAAc,OAAOA,EAAa,GAC3C3mB,KAAK0d,IAAIqX,GAAc,OAAOA,EAAa,GAC3C/0B,KAAK0d,IAAIyW,GAAW,OAAOA,EAAU,GACrCn0B,KAAK0d,IAAI0W,GAAW,OAAOA,EAAU,GACrCp0B,KAAK0d,IAAIiD,GAAS,OAAOA,EAAQ,GACrC,IAAIsU,EAAiB,eAAiBvO,EAAa,MAAQC,EAAa,MAAQoO,EAAa,gBAAkBX,EAAU,gBAAkBD,EAAU,cAAgBxT,EAAQ,IAG7K,GAFA1K,EAAS8K,UAAUkU,GACnBhf,EAAS,GAAG6K,MAAMuT,OAAmD,EAAzCr0B,KAAK0d,IAAI1d,KAAK+yB,MAAM8B,IAC5C3hB,EAAO+f,aAAc,CAEvB,IAAIiC,EAAkB3gB,EAAe0B,EAASV,KAAK,6BAA+BU,EAASV,KAAK,4BAC5F4f,EAAiB5gB,EAAe0B,EAASV,KAAK,8BAAgCU,EAASV,KAAK,+BACjE,IAA3B2f,EAAgB5xB,SAClB4xB,EAAkB,YAAE,oCAAuC3gB,EAAe,OAAS,OAAS,YAC5F0B,EAASP,OAAOwf,IAEY,IAA1BC,EAAe7xB,SACjB6xB,EAAiB,YAAE,oCAAuC5gB,EAAe,QAAU,UAAY,YAC/F0B,EAASP,OAAOyf,IAEdD,EAAgB5xB,SAAQ4xB,EAAgB,GAAGpU,MAAMF,QAAUiU,EAAmB,EAAIA,EAAmB,GACrGM,EAAe7xB,SAAQ6xB,EAAe,GAAGrU,MAAMF,SAAWiU,EAAmB,GAAKA,EAAmB,MAI/GhW,cAAe,SAAuB0C,GACvBrU,KACNgE,OAAOwQ,WAAWH,GAAUhM,KAAK,gHAAgHmM,WAAWH,KAGxJ,GACbnZ,KAAM,mBACN8K,OAAQ,CACNshB,gBAAiB,CACfE,OAAQ,GACRM,QAAS,EACTL,MAAO,IACPhU,MAAO,EACPmU,SAAU,EACV7B,cAAc,IAGlBxlB,OAAQ,WAEN,YADaP,KACa,CACxBsnB,gBAAiB,EAAS,GAAIF,MAGlCrd,GAAI,CACFC,WAAY,SAAoBlE,GACD,cAAzBA,EAAOE,OAAOif,SAClBnf,EAAOhM,WAAW4K,KAAKoB,EAAOE,OAAOiE,uBAAyB,aAC9DnE,EAAOhM,WAAW4K,KAAKoB,EAAOE,OAAOiE,uBAAyB,MAC9DnE,EAAOE,OAAOmE,qBAAsB,EACpCrE,EAAOsE,eAAeD,qBAAsB,IAE9CG,aAAc,SAAsBxE,GACL,cAAzBA,EAAOE,OAAOif,QAClBnf,EAAOwhB,gBAAgBhd,gBAEzBqH,cAAe,SAAuB7L,EAAQuO,GACf,cAAzBvO,EAAOE,OAAOif,QAClBnf,EAAOwhB,gBAAgB3V,cAAc0C,MC/G3C,SAAS,IAYP,OAXA,EAAW5gB,OAAO8J,QAAU,SAAUmI,GACpC,IAAK,IAAIzK,EAAI,EAAGA,EAAI5H,UAAU+C,OAAQ6E,IAAK,CACzC,IAAI0K,EAAStS,UAAU4H,GACvB,IAAK,IAAIuI,KAAOmC,EACVlS,OAAOC,UAAU0M,eAAexM,KAAK+R,EAAQnC,KAC/CkC,EAAOlC,GAAOmC,EAAOnC,IAI3B,OAAOkC,IAEOrF,MAAML,KAAM3M,WAI9B,IAAI60B,EAAS,CACXra,KAAM,WACJ,IACIsa,EADSnoB,KACagG,OAAOoiB,OACjC,GAFapoB,KAEFooB,OAAOnH,YAAa,OAAO,EAFzBjhB,KAGNooB,OAAOnH,aAAc,EAC5B,IAAIoH,EAJSroB,KAIYqgB,YAqBzB,OApBI8H,EAAariB,kBAAkBuiB,GALtBroB,KAMJooB,OAAOtiB,OAASqiB,EAAariB,OACpC,YAPW9F,KAOGooB,OAAOtiB,OAAOsE,eAAgB,CAC1CD,qBAAqB,EACrBme,qBAAqB,IAEvB,YAXWtoB,KAWGooB,OAAOtiB,OAAOE,OAAQ,CAClCmE,qBAAqB,EACrBme,qBAAqB,KAEd,YAASH,EAAariB,UAfpB9F,KAgBJooB,OAAOtiB,OAAS,IAAIuiB,EAAY,YAAO,GAAIF,EAAariB,OAAQ,CACrE0X,uBAAuB,EACvBrT,qBAAqB,EACrBme,qBAAqB,KAnBZtoB,KAqBJooB,OAAOG,eAAgB,GArBnBvoB,KAuBNooB,OAAOtiB,OAAOsG,IAAI2N,SAvBZ/Z,KAuB4BgG,OAAOoiB,OAAOI,sBAvB1CxoB,KAwBNooB,OAAOtiB,OAAOiE,GAAG,MAxBX/J,KAwByBooB,OAAOK,eACtC,GAETA,aAAc,WACZ,IACIC,EADS1oB,KACaooB,OAAOtiB,OACjC,GAAK4iB,EAAL,CACA,IAAIC,EAAeD,EAAaC,aAC5BC,EAAeF,EAAaE,aAChC,KAAIA,GAAgB,YAAEA,GAAczM,SALvBnc,KAKuCgG,OAAOoiB,OAAOS,wBAC9D,MAAOF,GAAX,CACA,IAAIvkB,EAMJ,GAJEA,EADEskB,EAAa1iB,OAAOhD,KACPlM,SAAS,YAAE4xB,EAAaE,cAAc5f,KAAK,2BAA4B,IAEvE2f,EAXJ3oB,KAaFgG,OAAOhD,KAAM,CACtB,IAAI8lB,EAdO9oB,KAceiE,YAdfjE,KAeAgE,OAAO4R,GAAGkT,GAAc3M,SAfxBnc,KAewCgG,OAAO+W,uBAf/C/c,KAgBFqR,UAhBErR,KAkBF+oB,YAlBE/oB,KAkBmBoI,WAAW,GAAG4gB,WAC1CF,EAnBS9oB,KAmBaiE,aAExB,IAAIglB,EArBOjpB,KAqBYgE,OAAO4R,GAAGkT,GAAcI,QAAQ,6BAAgC9kB,EAAe,MAAOwR,GAAG,GAAG1R,QAC/GilB,EAtBOnpB,KAsBYgE,OAAO4R,GAAGkT,GAAcM,QAAQ,6BAAgChlB,EAAe,MAAOwR,GAAG,GAAG1R,QAC7EE,OAAb,IAAd6kB,EAA0CE,OAAwC,IAAdA,EAA0CF,EAAmBE,EAAYL,EAAeA,EAAeG,EAA0BE,EAA8BF,EAvBnOjpB,KAyBNmE,QAAQC,MAEjBN,OAAQ,SAAgBulB,GACtB,IACIX,EADS1oB,KACaooB,OAAOtiB,OACjC,GAAK4iB,EAAL,CACA,IAAIziB,EAAsD,SAAtCyiB,EAAa1iB,OAAOC,cAA2ByiB,EAAaY,uBAAyBZ,EAAa1iB,OAAOC,cACzHsjB,EAJSvpB,KAIiBgG,OAAOoiB,OAAOmB,iBACxCC,EAAYD,IAAqBb,EAAa1iB,OAAOhD,KACzD,GANahD,KAMFypB,YAAcf,EAAae,WAAaD,EAAW,CAC5D,IACIE,EACAvY,EAFAwY,EAAqBjB,EAAazkB,YAGtC,GAAIykB,EAAa1iB,OAAOhD,KAAM,CACxB0lB,EAAa1kB,OAAO4R,GAAG+T,GAAoBxN,SAASuM,EAAa1iB,OAAO+W,uBAC1E2L,EAAarX,UAEbqX,EAAaK,YAAcL,EAAatgB,WAAW,GAAG4gB,WACtDW,EAAqBjB,EAAazkB,aAGpC,IAAI2lB,EAAkBlB,EAAa1kB,OAAO4R,GAAG+T,GAAoBT,QAAQ,6BAlBhElpB,KAkBuGypB,UAAY,MAAO7T,GAAG,GAAG1R,QACrI2lB,EAAkBnB,EAAa1kB,OAAO4R,GAAG+T,GAAoBP,QAAQ,6BAnBhEppB,KAmBuGypB,UAAY,MAAO7T,GAAG,GAAG1R,QAEvIwlB,OAD6B,IAApBE,EACQC,OACmB,IAApBA,EACCD,EACRC,EAAkBF,GAAuBA,EAAqBC,EACtDlB,EAAa1iB,OAAOE,eAAiB,EAAI2jB,EAAkBF,EACnEE,EAAkBF,EAAqBA,EAAqBC,EACpDC,EAEAD,EAEnBzY,EA/BSnR,KA+BUiE,YA/BVjE,KA+B+BgZ,cAAgB,OAAS,YAGjE7H,GADAuY,EAjCS1pB,KAiCeypB,WAjCfzpB,KAkC2BgZ,cAAgB,OAAS,OAE3DwQ,IACFE,GAAgC,SAAdvY,EAAuBoY,GAAoB,EAAIA,GAE/Db,EAAaoB,sBAAwBpB,EAAaoB,qBAAqB1b,QAAQsb,GAAkB,IAC/FhB,EAAa1iB,OAAOG,eAEpBujB,EADEA,EAAiBC,EACFD,EAAiB52B,KAAKwU,MAAMrB,EAAgB,GAAK,EAEjDyjB,EAAiB52B,KAAKwU,MAAMrB,EAAgB,GAAK,EAE3DyjB,EAAiBC,GAAsBjB,EAAa1iB,OAAOE,eAEtEwiB,EAAavkB,QAAQulB,EAAgBL,EAAU,OAAIzoB,IAIvD,IAAImpB,EAAmB,EACnBC,EArDShqB,KAqDiBgG,OAAOoiB,OAAOS,sBAS5C,GA9Da7oB,KAsDFgG,OAAOC,cAAgB,IAtDrBjG,KAsDkCgG,OAAOG,iBACpD4jB,EAvDW/pB,KAuDegG,OAAOC,eAvDtBjG,KAyDDgG,OAAOoiB,OAAO6B,uBACxBF,EAAmB,GAErBA,EAAmBj3B,KAAKwU,MAAMyiB,GAC9BrB,EAAa1kB,OAAOmW,YAAY6P,GAC5BtB,EAAa1iB,OAAOhD,MAAQ0lB,EAAa1iB,OAAOK,SAAWqiB,EAAa1iB,OAAOK,QAAQuB,QACzF,IAAK,IAAI3M,EAAI,EAAGA,EAAI8uB,EAAkB9uB,GAAK,EACzCytB,EAAatgB,WAAWhO,SAAS,8BAhExB4F,KAgEgEypB,UAAYxuB,GAAK,MAAO8e,SAASiQ,QAG5G,IAAK,IAAIzhB,EAAK,EAAGA,EAAKwhB,EAAkBxhB,GAAM,EAC5CmgB,EAAa1kB,OAAO4R,GApEX5V,KAoEqBypB,UAAYlhB,GAAIwR,SAASiQ,MAKhD,IACb9uB,KAAM,SACN8K,OAAQ,CACNoiB,OAAQ,CACNtiB,OAAQ,KACRmkB,sBAAsB,EACtBV,iBAAkB,EAClBV,sBAAuB,4BACvBL,qBAAsB,4BAG1BjoB,OAAQ,WAEN,YADaP,KACa,CACxBooB,OAAQ,EAAS,CACftiB,OAAQ,KACRmb,aAAa,GACZiH,MAGPne,GAAI,CACFC,WAAY,SAAoBlE,GAC9B,IAAIsiB,EAAStiB,EAAOE,OAAOoiB,OACtBA,GAAWA,EAAOtiB,SACvBA,EAAOsiB,OAAOva,OACd/H,EAAOsiB,OAAOtkB,QAAO,KAEvB6X,YAAa,SAAqB7V,GAC3BA,EAAOsiB,OAAOtiB,QACnBA,EAAOsiB,OAAOtkB,UAEhBA,OAAQ,SAAgBgC,GACjBA,EAAOsiB,OAAOtiB,QACnBA,EAAOsiB,OAAOtkB,UAEhB6c,OAAQ,SAAgB7a,GACjBA,EAAOsiB,OAAOtiB,QACnBA,EAAOsiB,OAAOtkB,UAEhB8c,eAAgB,SAAwB9a,GACjCA,EAAOsiB,OAAOtiB,QACnBA,EAAOsiB,OAAOtkB,UAEhB6N,cAAe,SAAuB7L,EAAQuO,GAC5C,IAAIqU,EAAe5iB,EAAOsiB,OAAOtiB,OAC5B4iB,GACLA,EAAa/W,cAAc0C,IAE7B6V,cAAe,SAAuBpkB,GACpC,IAAI4iB,EAAe5iB,EAAOsiB,OAAOtiB,OAC5B4iB,GACD5iB,EAAOsiB,OAAOG,eAAiBG,GACjCA,EAAahlB,c,kCCvMrB,mFAYe,SAASymB,EAAK7uB,GAInB,IAJoB,SAC5BlB,EAAQ,UACRgwB,EAAS,eACTC,EAAiB,KACX/uB,EAEN,MAAOgvB,EAASC,GAAcpuB,YAAwB,GAKtD,OAJAA,YAAgB,KACdouB,GAAW,IACV,IAGDpuB,gBAACquB,EAAU,CACTF,QAASA,EACTG,QAASL,EACTM,gBAAiBL,GAEjBluB,gBAACwuB,EAAW,CAACF,QAAUG,GAAOA,EAAG5Z,mBAC/B7U,gBAAC0uB,EAAW,CAACJ,QAASL,GACpBjuB,gBAAA,OAAKS,IAAKkuB,OAGZ3uB,gBAACmC,EAAa,KAAElE,KAMxB,MAAMowB,EAAah4B,IAAO2K,IAAG1K,WAAA,CAAAC,YAAA,oBAAAC,YAAA,gBAAVH,CAAU,0LAafgL,GAAOA,EAAE8sB,QAAU,EAAI,EACZ9sB,GAAMA,EAAEktB,iBAG3BC,EAAcn4B,IAAO2K,IAAG1K,WAAA,CAAAC,YAAA,qBAAAC,YAAA,gBAAVH,CAAU,6JAaxBq4B,EAAcr4B,IAAOkW,EAACjW,WAAA,CAAAC,YAAA,qBAAAC,YAAA,gBAARH,CAAQ,uOAkBtB8L,EAAgB9L,IAAO2K,IAAG1K,WAAA,CAAAC,YAAA,uBAAAC,YAAA,gBAAVH,CAAU,oB,kCCtFhC,IAAI4O,EAAkBpB,MAAQA,KAAKoB,iBAAmB,SAAUF,GAC9D,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CACnC,QAAWA,IAGfzN,OAAOwF,eAAeC,EAAS,aAAc,CAC3CZ,OAAO,IAET,IAAIyyB,EAAkB3pB,EAAgB,EAAQ,SAE9ClI,EAAQ0K,QAAUmnB,EAAgBnnB,S,mBCZlCrE,EAAOrG,QAAU,ka,mBCAjBqG,EAAOrG,QAAU,8Z,mBCAjBqG,EAAOrG,QAAU,k8E,mqBCQF,SAAS8xB,EAAa1vB,GAAmB,IAAlB,MAAEQ,GAAcR,EACpD,OACEa,gBAAC8uB,EAAY,KACX9uB,gBAAA,UAAKL,IAKX,MAAMmvB,EAAez4B,IAAO2K,IAAG1K,WAAA,CAAAC,YAAA,8BAAAC,YAAA,gBAAVH,CAAU,gLAIfiL,IAAMQ,OASTR,IAAMG,U,kDCkCKpL,YAAO,OAAMC,WAAA,CAAAC,YAAA,+BAAAC,YAAA,gBAAbH,CAAa,kTAQVgL,GAAOA,EAAE0tB,SAAW,EAAI,QAItCztB,IAAME,MAMNF,IAAMiB,MAWClM,IAAOkW,EAACjW,WAAA,CAAAC,YAAA,2BAAAC,YAAA,gBAARH,CAAQ,2ZAMZiL,IAAMiB,KAQJjB,IAAMiB,KAiBJjB,IAAME,MAEJF,IAAME,O,0DChHb,SAASwtB,EAAG7vB,GAA8B,IAA7B,SAAE8vB,EAAQ,OAAEC,GAAe/vB,EACrD,MAAOgwB,EAAUC,GAAepvB,YAAwB,GAClDqvB,EAAYrvB,SAAoC,OAC/CsvB,EAAcC,GAAmBvvB,WAA8B,MAEtEA,YAAgB,KAAM,IAAAwvB,EACpB,MAAMvU,EAA0B,QAApBuU,EAAGH,EAAUpwB,eAAO,IAAAuwB,OAAA,EAAjBA,EAAmBjf,aAC9B0K,GAAQsU,EAAgBtU,IAC3B,CAACoU,EAAUpwB,UAEd,IAAIgc,EAA0B,OAK9B,OAJIqU,IACFrU,EAASkU,EAAWG,EAAe,GAInCtvB,gBAAA,WACEA,gBAACyvB,EAAc,CAACnB,QAASA,IAAMc,GAAaD,IAC1CnvB,gBAAA,YAAOivB,GACPjvB,gBAAA,OAAKS,IAAK0uB,EAAWO,IAAeC,OAEtC3vB,gBAAC4vB,EAAY,CAAC5wB,IAAKqwB,EAAW5X,MAAO,CAAEwD,WACrCjb,gBAAA,WACEA,gBAAC+B,IAAiB,CAACC,OAAQktB,EAAQjtB,QAAM,OAOnD,MAAMwtB,EAAiBp5B,IAAOkW,EAACjW,WAAA,CAAAC,YAAA,sBAAAC,YAAA,gBAARH,CAAQ,+HACTiL,IAAMC,MAYtBquB,EAAev5B,IAAO2K,IAAG1K,WAAA,CAAAC,YAAA,oBAAAC,YAAA,gBAAVH,CAAU,yG,iDCtBhB,SAASw5B,EAAI1wB,GAgBlB,IAhBmB,WAC3B2wB,EAAU,iBACVC,EAAgB,MAChBpwB,EACAqwB,SAAUC,EAAW,KAAI,SACzBC,EAAQ,SACRC,EAAQ,cACRC,EAAgB,QAAO,OACvBC,EAAM,OACNjF,GAAS,EAAK,gBACdkF,EAAkB,OAAM,YACxBC,GAAc,EAAK,UACnBC,EAAY,IAAG,aACfC,GAAe,EAAK,aACpBC,EAAY,YACZC,GACMxxB,EACN,OACEa,gBAACC,EAAe,CAAC2wB,iBAAkBN,GACjCtwB,gBAAC6wB,EAAW,KACTf,GAAc9vB,gBAACM,EAAS,CAACwwB,MAAOhB,IAChCC,GAEH/vB,gBAACU,EAAc,CACbqwB,QAAS3F,EACT4F,aAAcT,EACdU,cAAeR,EACfS,WAAYV,EACZW,eAAgBR,GAEfA,GACC3wB,gBAACoxB,EAAc,KACbpxB,gBAAA,WACEA,gBAAA,OAAKS,IAAKkwB,MAIfR,GACCnwB,gBAACqxB,EAAc,CAACC,OAAQlB,GAAgBD,GAE1CnwB,gBAACiwB,EAAQ,KAAEtwB,GACVuwB,GACClwB,gBAACuxB,EAAc,KACbvxB,gBAAC+B,IAAiB,CAChBC,OAAQkuB,EACRjuB,QAASsuB,EACTruB,SAAU,MAIfmuB,EACAK,GAAgB1wB,gBAAA,OAAKyX,MAAO,CAAEwD,OAAQyV,OAM/C,MAAMzwB,EAAkB5J,YAAO,WAAUC,WAAA,CAAAC,YAAA,wBAAAC,YAAA,eAAjBH,CAAiB,4CAIlBgL,GAAMC,IAAMD,EAAEuvB,mBAG/BC,EAAcx6B,IAAO2K,IAAG1K,WAAA,CAAAC,YAAA,oBAAAC,YAAA,eAAVH,CAAU,oGAaxBiK,EAAYjK,YAAOsL,KAAIrL,WAAA,CAAAC,YAAA,kBAAAC,YAAA,eAAXH,CAAW,+DAavBqK,EAAiBrK,YAAOyM,KAAoBxM,WAAA,CAAAC,YAAA,uBAAAC,YAAA,eAA3BH,CAA2B,qTAE7CgL,GAAMA,EAAE8vB,cAAgB,cAEZ9vB,GAAMA,EAAE6vB,WAKP7vB,GAAOA,EAAE0vB,QAAU,SAAW,aAC/B1vB,GAAOA,EAAE0vB,QAAU,SAAW,OAEnC1vB,GAAOA,EAAE2vB,aAAe1vB,IAAMG,SAAWH,IAAME,MAQzCH,GAAOA,EAAE4vB,cAAgB,OAAS,OAElC5vB,GACZA,EAAE0vB,QAAU,QAAU1vB,EAAE4vB,cAAgB,QAAU,SAMlDI,EAAiBh7B,IAAO2K,IAAG1K,WAAA,CAAAC,YAAA,uBAAAC,YAAA,eAAVH,CAAU,iEACrBgL,GAAMC,IAAMD,EAAEiwB,SAMpBC,EAAiBl7B,IAAO2K,IAAG1K,WAAA,CAAAC,YAAA,uBAAAC,YAAA,eAAVH,CAAU,yCAK3B+6B,EAAiB/6B,IAAO2K,IAAG1K,WAAA,CAAAC,YAAA,uBAAAC,YAAA,eAAVH,CAAU,sRAMTiL,IAAMC,MCpKf,SAASiwB,EAAmBryB,GAAiB,IAAhB,IAAEsB,GAAYtB,EACxD,OAAOa,gBAACyxB,EAAY,CAAChxB,IAAKA,IAG5B,MAAMgxB,EAAep7B,IAAOuL,IAAGtL,WAAA,CAAAC,YAAA,oCAAAC,YAAA,gBAAVH,CAAU,6E,+BCThBA,IAAO2K,IAAG1K,WAAA,CAAAC,YAAA,gBAAAC,YAAA,gBAAVH,CAAU,iD,mCCmCV,SAASq7B,EAAiBvyB,GAAmB,IAAlB,MAAEwyB,GAAcxyB,EACxD,MAAMI,EAAaqyB,YAAWD,EAAMpX,MAAO,KACrCsX,EACJF,EAAMpX,OAASuV,YAAW6B,EAAMpX,MAAO,CAAEuX,EAAG,IAAKC,EAAG,MAEtD,OACE/xB,gBAACC,EAAe,KACdD,gBAACE,EAAU,CAACb,KAAMsyB,EAAMK,aAAczoB,OAAO,UAC3CvJ,gBAACK,EAAe,KACbd,GAAcS,gBAACM,EAAS,CAACC,MAAOhB,IAChCsyB,GACC7xB,gBAAA,OAAKS,IAAKoxB,EAAqBpxB,IAAKzC,UAAU,UAGlDgC,gBAACiyB,EAAe,KAAEN,EAAMhyB,OACxBK,gBAACe,EAAe,KACdf,gBAAA,YAAM,eAGVA,gBAACkyB,EAAe,KACbP,EAAMQ,WAAaC,YAAOv7B,YAAS86B,EAAMQ,WAAY,aAExDnyB,gBAACkyB,EAAe,KAAEP,EAAMU,cAK9B,MAAMpyB,EAAkB5J,IAAO2K,IAAG1K,WAAA,CAAAC,YAAA,qCAAAC,YAAA,gBAAVH,CAAU,sGAa5B6J,EAAa7J,IAAOkW,EAACjW,WAAA,CAAAC,YAAA,gCAAAC,YAAA,gBAARH,CAAQ,oKAILiL,IAAMC,KAMJD,IAAMG,UAIxBpB,EAAkBhK,IAAO2K,IAAG1K,WAAA,CAAAC,YAAA,qCAAAC,YAAA,gBAAVH,CAAU,oRA0B5BiK,EAAYjK,YAAOsL,KAAIrL,WAAA,CAAAC,YAAA,+BAAAC,YAAA,gBAAXH,CAAW,mBAIvB47B,EAAkB57B,IAAO2K,IAAG1K,WAAA,CAAAC,YAAA,qCAAAC,YAAA,gBAAVH,CAAU,uKAQvBiL,IAAME,OAKXT,EAAkB1K,IAAO2K,IAAG1K,WAAA,CAAAC,YAAA,qCAAAC,YAAA,gBAAVH,CAAU,kHAMvBiL,IAAMQ,QAIXowB,EAAkB77B,IAAO2K,IAAG1K,WAAA,CAAAC,YAAA,qCAAAC,YAAA,gBAAVH,CAAU,0J,iDCnHnB,SAASi8B,EAAcnzB,GAM5B,IAN6B,QACrCozB,EAAO,aACPC,EAAY,eACZC,EAAc,QACd7vB,GAAU,EAAK,KACftD,GAAO,GACDH,EACN,OACEa,gBAAC0yB,EAAa,CAACpzB,KAAMA,GACnBU,gBAAC8C,IAAmB,KAClB9C,gBAAC2C,IAAI,CAACD,WAAYjM,IAAMiN,yBAA0Bd,QAASA,IACxD4vB,aAAY,EAAZA,EAAcvN,MACbjlB,2BAAA,KACEA,gBAAC6I,IAAG,CAACC,KAAM,IACT9I,gBAAC2yB,EAAW,CAAClyB,IAAK+xB,EAAavN,IAAK2N,IAAKJ,EAAaI,OAExD5yB,gBAAC6I,IAAG,CAACC,KAAM,KAGf9I,gBAAC6I,IAAG,CAACC,KAAM,IACRypB,GAAWvyB,gBAAC6yB,EAAa,KAAEN,GAC3BE,aAAc,EAAdA,EAAgBrqB,IAAK0qB,GACnBA,EACC9yB,gBAAC+yB,GAAY,CAAC1rB,IAAKyrB,EAAO1M,MACxBpmB,gBAAA,OAAKS,IAAKuyB,MACVhzB,gBAAA,WACEA,gBAAC+B,IAAiB,CAACC,OAAQ,CAAC8wB,GAAS7wB,QAAM,MAJvC,UAgBxB,MAAMywB,EAAgBr8B,YAAO,WAAUC,WAAA,CAAAC,YAAA,gCAAAC,YAAA,eAAjBH,CAAiB,6FAChBgL,GAAOA,EAAE/B,KAAOgC,IAAMG,SAAWH,IAAMC,KAEnDD,IAAME,MAEM/K,IAAMiN,0BAKvBivB,EAAct8B,IAAOuL,IAAGtL,WAAA,CAAAC,YAAA,8BAAAC,YAAA,eAAVH,CAAU,mGAGPI,IAAMiN,0BAOvBmvB,EAAgBx8B,IAAO48B,GAAE38B,WAAA,CAAAC,YAAA,gCAAAC,YAAA,eAATH,CAAS,iIAKRI,IAAMiN,0BAOvBqvB,GAAe18B,IAAO2K,IAAG1K,WAAA,CAAAC,YAAA,+BAAAC,YAAA,eAAVH,CAAU,gICpEPA,IAAO2K,IAAG1K,WAAA,CAAAC,YAAA,iCAAAC,YAAA,eAAVH,CAAU,4EAOfA,YAAO,OAAMC,WAAA,CAAAC,YAAA,4BAAAC,YAAA,eAAbH,CAAa,qMAEpBgL,GAAwB,IAAjBA,EAAE6xB,WAAmB,MAAQ,OCyBrB78B,IAAO48B,GAAE38B,WAAA,CAAAC,YAAA,uCAAAC,YAAA,eAATH,CAAS,uDAMTA,YAAO88B,KAAQ78B,WAAA,CAAAC,YAAA,uCAAAC,YAAA,eAAfH,CAAe,0BACnBgL,GAAMC,IAAMD,EAAE+xB,cAGZ/8B,IAAO2K,IAAG1K,WAAA,CAAAC,YAAA,qCAAAC,YAAA,eAAVH,CAAU,0D,4EC9DpB,SAASg9B,GAAUl0B,GAAqC,IAApC,UAAEm0B,EAAS,KAAElN,EAAI,OAAE5c,GAAerK,EACnE,OACEa,gBAACC,GAAe,KACbqzB,GAAatzB,gBAACuzB,GAAU,CAAC9yB,IAAK6yB,IAC/BtzB,gBAAA,SAAIomB,GACH5c,GAAUxJ,gBAAA,YAAOwJ,GAClBxJ,gBAAA,OAAKS,IAAK+yB,KAAYx1B,UAAU,eAChCgC,gBAAA,OAAKS,IAAKgzB,KAAaz1B,UAAU,iBAKvC,MAAMiC,GAAkB5J,IAAOq9B,WAAUp9B,WAAA,CAAAC,YAAA,8BAAAC,YAAA,eAAjBH,CAAiB,sUAM9BiL,IAAMI,WA8BX6xB,GAAal9B,IAAOuL,IAAGtL,WAAA,CAAAC,YAAA,yBAAAC,YAAA,eAAVH,CAAU,qCChCd,SAASs9B,GAAax0B,GAAkB,IAAAy0B,EAAA,IAAjB,KAAEC,GAAa10B,EACnD,IAAK00B,EAAKC,OAAQ,OAAO,KAEzB,MAAMjqB,EAA6B,CACjCC,cAAe,EACfkf,aAAc,GACdhf,gBAAgB,KACZ6pB,EAAKC,OAAO75B,OAAS,EACrB,CACE6L,WAAY,CACVlI,GAAI,qBACJm2B,WAAW,IAGf,IAGN,OACE/zB,gBAAC0yB,GAAa,KACZ1yB,gBAACikB,KAAWpa,EACE,QADI+pB,EACfC,EAAKC,cAAM,IAAAF,OAAA,EAAXA,EACGjO,OAAQqO,GAAUA,aAAK,EAALA,EAAOC,eAC1B7rB,IAAI,CAAC4rB,EAAOl1B,KAAM,IAAAo1B,EACjB,IAAKF,EAAO,MAAM,IAAIG,MAAM,6BAC5B,OACEn0B,gBAAA,OACEqH,IAAKvI,EACL2Y,MAAO,CACL2c,QAAS,OACTC,WAAY,SACZC,eAAgB,SAChBrZ,OAAQ,MAGVjb,gBAACqzB,GAAU,CACTC,UAAiC,QAAxBY,EAAEF,EAAMO,wBAAgB,IAAAL,OAAA,EAAtBA,EAAwBjP,IACnCmB,KAAM4N,EAAMC,cACZzqB,OAAQwqB,EAAMQ,oBAUhC,MAAM9B,GAAgBr8B,YAAO88B,KAAQ78B,WAAA,CAAAC,YAAA,+BAAAC,YAAA,eAAfH,CAAe,yFACfiL,IAAMG,SACjBH,IAAME,O,wCC3CKnL,IAAO2K,IAAG1K,WAAA,CAAAC,YAAA,gCAAAC,YAAA,gBAAVH,CAAU,0BACViL,IAAMC,MAGTlL,IAAO2K,IAAG1K,WAAA,CAAAC,YAAA,6BAAAC,YAAA,gBAAVH,CAAU,6JAeTA,IAAO2K,IAAG1K,WAAA,CAAAC,YAAA,8BAAAC,YAAA,gBAAVH,CAAU,wG,mBCtD9B+M,EAAOrG,QAAU,stD,mBCAjBqG,EAAOrG,QAAU","file":"7df3ff98b972ed8dc506174774e16f594815b3d9-a0a3475adb1ccbef1198.js","sourcesContent":["import styled from \"styled-components\";\nimport { Dimen } from \"../../constants/legacy\";\n\nexport default styled(\"section\")`\n padding: 6rem 0;\n @media (max-width: ${Dimen.breakpointDefault}px) {\n padding: 3rem 0;\n }\n`;\n","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n/**\n * Days in 1 year\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n *\n * @name daysInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var daysInYear = 365.2425;\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInMinute = 60000;\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInHour = 3600000;\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInSecond = 1000;\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minTime = -maxTime;\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minutesInHour = 60;\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInQuarter = 3;\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInYear = 12;\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var quartersInYear = 4;\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInHour = 3600;\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMinute = 60;\n/**\n * Seconds in 1 day\n *\n * @name secondsInDay\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInDay = secondsInHour * 24;\n/**\n * Seconds in 1 week\n *\n * @name secondsInWeek\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInWeek = secondsInDay * 7;\n/**\n * Seconds in 1 year\n *\n * @name secondsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInYear = secondsInDay * daysInYear;\n/**\n * Seconds in 1 month\n *\n * @name secondsInMonth\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMonth = secondsInYear / 12;\n/**\n * Seconds in 1 quarter\n *\n * @name secondsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInQuarter = secondsInMonth * 3;","import { millisecondsInHour, millisecondsInMinute } from \"../constants/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\n\nexport default function parseISO(argument, options) {\n var _options$additionalDi;\n requiredArgs(1, arguments);\n var additionalDigits = toInteger((_options$additionalDi = options === null || options === void 0 ? void 0 : options.additionalDigits) !== null && _options$additionalDi !== void 0 ? _options$additionalDi : 2);\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n var dateStrings = splitDateString(argument);\n var date;\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n if (!date || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n if (isNaN(time)) {\n return new Date(NaN);\n }\n }\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time); // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n\n var result = new Date(0);\n result.setFullYear(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate());\n result.setHours(dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n return result;\n }\n return new Date(timestamp + time + offset);\n}\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString; // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n\n if (array.length > 2) {\n return dateStrings;\n }\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n return dateStrings;\n}\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex); // Invalid ISO-formatted year\n\n if (!captures) return {\n year: NaN,\n restDateString: ''\n };\n var year = captures[1] ? parseInt(captures[1]) : null;\n var century = captures[2] ? parseInt(captures[2]) : null; // either year or century is null, not both\n\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n var captures = dateString.match(dateRegex); // Invalid ISO-formatted string\n\n if (!captures) return new Date(NaN);\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n return hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000;\n}\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n} // Validation functions\n// February is null to handle the leap year (using ||)\n\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.useForkRef = void 0;\nvar react_1 = require(\"react\");\nvar utils_1 = require(\"./utils\");\nexports.useForkRef = function (refA, refB) {\n return react_1.useMemo(function () {\n if (refA == null && refB == null) {\n return null;\n }\n return function (refValue) {\n utils_1.setRef(refA, refValue);\n utils_1.setRef(refB, refValue);\n };\n }, [refA, refB]);\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.setRef = exports.isModuleAvailable = exports.isReactElement = exports.validateChildren = exports.classNames = void 0;\nvar react_1 = require(\"react\");\nexports.classNames = function (el) {\n if (typeof el === 'string') {\n return el.split('.').join(' ').trim();\n } else if (el instanceof HTMLElement) {\n return el.className;\n }\n return '';\n};\nexports.validateChildren = function (children) {\n var isValid = true;\n if (Array.isArray(children)) {\n react_1.Children.forEach(children, function (child) {\n if (!react_1.isValidElement(child)) {\n isValid = false;\n }\n });\n } else {\n isValid = react_1.isValidElement(children);\n }\n return isValid;\n};\nexports.isReactElement = function (element) {\n return react_1.isValidElement(element) && (typeof element.type === 'string' || typeof element.type === 'function' || typeof element.type === 'object');\n};\nexports.isModuleAvailable = function (modules, moduleName) {\n var moduleAvailable = false;\n for (var i = 0; i < modules.length; i++) {\n if (modules[i].name === moduleName) {\n moduleAvailable = true;\n break;\n }\n }\n return moduleAvailable;\n};\nexports.setRef = function (ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n};","import { Link } from \"gatsby\";\nimport Img from \"gatsby-image\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport { Color } from \"../../constants/legacy\";\n\ntype Props = {\n to?: string;\n href?: string;\n dark?: boolean;\n // It can either show an image jpg (cover) or a logo svg (contain)\n imageFluid?: any;\n logoSrc?: string;\n infoLeft?: string;\n infoRight?: string;\n title: string | undefined;\n description: string | undefined;\n readTime?: number;\n\n // Sizing\n totalHeight?: number;\n imageHeight?: number;\n};\n\n/**\n * The same type of link tile used to link to Blog Posts and Case Studies\n */\nexport default function LinkTile({\n to,\n href,\n dark,\n imageFluid,\n logoSrc,\n infoLeft,\n infoRight,\n title,\n description,\n readTime,\n totalHeight = 440,\n imageHeight = 120,\n}: Props) {\n return (\n \n \n \n {imageFluid && }\n {logoSrc && }\n \n \n {infoLeft || infoRight ? (\n \n {infoLeft}\n {infoRight}\n \n ) : (\n \n )}\n {title}\n {description}\n \n \n {readTime != null && `${readTime} min read`}\n Read more\n \n \n \n );\n}\n\nconst StyledContainer = styled.div`\n width: 33%;\n padding: 10px;\n\n @media (max-width: 800px) {\n width: 50%;\n }\n\n @media (max-width: 500px) {\n width: 100%;\n }\n`;\n\nconst StyledTile = styled(({ to, ...rest }) =>\n to ? : \n)<{ $dark?: boolean; $height: number }>`\n height: ${(p) => p.$height}px;\n display: flex;\n flex-direction: column;\n background-color: ${(p) => (p.$dark ? Color.blue : Color.white)};\n box-shadow: 0 2px 6px #0006;\n\n &:hover {\n background-color: ${(p) => (p.$dark ? Color.darkBlue : Color.lightGrey)};\n }\n`;\n\nconst StyledAreaImage = styled(\"div\")<{ $dark?: boolean; $height: number }>`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: ${(p) => p.$height}px;\n background-color: ${(p) => (p.$dark ? \"#fff4\" : \"#f4f4f4\")};\n`;\n\nconst StyledImg = styled(Img)<{ $height: number }>`\n height: ${(p) => p.$height}px;\n width: 100%;\n` as any;\n\nconst StyledLogoImg = styled.img`\n width: 85%;\n height: 85%;\n object-fit: contain;\n`;\n\nconst StyledAreaMain = styled.div<{ $dark?: boolean }>`\n box-sizing: border-box;\n height: 244px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n align-items: flex;\n padding: 20px 25px;\n color: ${(p) => (p.$dark ? Color.white : Color.darkBlue)};\n position: relative;\n\n /* &::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: 24px;\n background: linear-gradient(transparent, ${Color.blue} 70%);\n } */\n`;\n\nconst StyledInfoBar = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n color: ${Color.lightGrey};\n font-size: 11px;\n font-weight: 300;\n margin-bottom: 20px;\n\n .topic {\n text-transform: uppercase;\n }\n`;\n\nconst StyledNoInfoSpacer = styled.div`\n margin-bottom: 10px;\n`;\n\nconst StyledTitle = styled.strong`\n display: block;\n font-size: 17px;\n font-weight: 500;\n margin-bottom: 20px;\n`;\n\nconst StyledSnippet = styled.div`\n flex: 1;\n font-size: 15px;\n font-weight: 300;\n`;\n\nconst StyledAreaBelow = styled.div`\n height: 76px;\n padding: 0 25px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n color: ${Color.orange};\n font-size: 11px;\n`;\n","import * as React from \"react\";\nimport { RichText } from \"prismic-reactjs\";\nimport styled from \"styled-components\";\nimport { Color } from \"../../constants/legacy\";\n\ntype Props = {\n /**\n * Unfortunately this comes through on `gatsby-types` as `any`, so no point\n * trying to add false sense of security with types.\n */\n render: any;\n /**\n * Is this content on a dark background? (Determines what colour links should be)\n */\n onDark?: boolean;\n fontSize?: number;\n};\n\n/**\n * CSS formatting wrapper for Prismic rich text, which also renders the Prismic\n * component.\n */\nexport default function FormattedRichText({\n render,\n onDark,\n fontSize = 15,\n}: Props) {\n return (\n \n \n \n );\n}\n\nconst StyledContent = styled(\"div\")<{\n $fontSize: number;\n $onDark?: boolean;\n}>`\n font-size: ${(p) => p.$fontSize}px;\n line-height: 1.55;\n\n a {\n color: ${(p) => (p.$onDark ? Color.cyan : Color.link)};\n &:hover {\n text-decoration: underline;\n }\n }\n\n h2 {\n font-size: 32px;\n font-weight: normal;\n margin: 50px 0 25px;\n\n &:first-child {\n margin-top: 0;\n }\n }\n\n h3 {\n font-size: 24px;\n font-weight: normal;\n margin: 35px 0 25px;\n }\n\n h4 {\n font-size: 20px;\n font-weight: normal;\n margin: 35px 0 25px;\n }\n\n /* No trailing margin - important for bullet points */\n p:last-child {\n margin-bottom: 0;\n }\n`;\n","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { Dimen } from \"../../constants/legacy\";\n\ntype Props = {\n breakpoint?: number;\n reverse?: boolean;\n children: React.ReactNode;\n};\n\nexport const ColsContext = React.createContext({\n breakpoint: Dimen.breakpointDefault,\n});\n\n/**\n * A container for columns which stack horizontally on desktop and vertically\n * on mobile.\n */\nexport default function Cols({\n breakpoint = Dimen.breakpointDefault,\n reverse = false,\n children,\n}: Props) {\n return (\n \n \n {children}\n \n \n );\n}\n\nconst StyledContainer = styled(\"div\")<{ breakpoint: number; reverse: boolean }>`\n display: flex;\n align-items: stretch;\n flex-direction: ${(p) => (p.reverse ? \"row-reverse\" : \"row\")};\n\n @media (max-width: ${(p) => p.breakpoint}px) {\n flex-direction: column;\n }\n`;\n","import * as React from \"react\";\nimport styled from \"styled-components\";\n\ntype Props = {\n maxWidth?: number;\n noPadding?: boolean;\n className?: string;\n children: React.ReactNode;\n};\n\nexport default function HorizontalContainer({\n maxWidth = 960,\n noPadding = false,\n className,\n children,\n}: Props) {\n return (\n \n {children}\n \n );\n}\n\nconst StyledContainer = styled(\"div\")<{\n $maxWidth: number;\n $noPadding: boolean;\n}>`\n margin: 0 auto;\n max-width: ${(p) => p.$maxWidth}px;\n width: 90%;\n\n @media (max-width: ${(p) => Math.min(p.$maxWidth, 800)}px) {\n ${(p) => p.$noPadding && `width: 100%`};\n }\n`;\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDQiIGhlaWdodD0iNDQiIHZpZXdCb3g9IjAgMCA0NCA0NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgaWQ9IllvdVR1YmUiPgo8ZyBpZD0iWW91VHViZV8yIj4KPHJlY3QgaWQ9IlJlY3RhbmdsZSIgeD0iMC43NzczNDQiIHk9IjAuNzAzMTI1IiB3aWR0aD0iNDIuOTc3IiBoZWlnaHQ9IjQyLjk3NyIgcng9IjIxLjQ4ODUiIGZpbGw9IiMwN0U4QzciLz4KPHBhdGggaWQ9IkV4Y2x1ZGUiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMzIuNzc1OCAxMy4zNjM0QzMzLjkyNjQgMTMuNjczMSAzNC44MzM1IDE0LjU4MDMgMzUuMTQzMyAxNS43MzA4QzM1LjcxODYgMTcuODMyNyAzNS42OTY0IDIyLjIxMzYgMzUuNjk2NCAyMi4yMTM2QzM1LjY5NjQgMjIuMjEzNiAzNS42OTY0IDI2LjU3MjMgMzUuMTQzMyAyOC42NzQzQzM0LjgzMzUgMjkuODI0OCAzMy45MjY0IDMwLjczMiAzMi43NzU4IDMxLjA0MTdDMzAuNjczOSAzMS41OTQ5IDIyLjI2NjIgMzEuNTk0OSAyMi4yNjYyIDMxLjU5NDlDMjIuMjY2MiAzMS41OTQ5IDEzLjg4MDYgMzEuNTk0OSAxMS43NTY1IDMxLjAxOTZDMTAuNjA2IDMwLjcwOTggOS42OTg4NCAyOS44MDI3IDkuMzg5MDggMjguNjUyMUM4LjgzNTk0IDI2LjU3MjMgOC44MzU5NCAyMi4xOTE1IDguODM1OTQgMjIuMTkxNUM4LjgzNTk0IDIyLjE5MTUgOC44MzU5NCAxNy44MzI3IDkuMzg5MDggMTUuNzMwOEM5LjY5ODg0IDE0LjU4MDMgMTAuNjI4MSAxMy42NTEgMTEuNzU2NSAxMy4zNDEyQzEzLjg1ODUgMTIuNzg4MSAyMi4yNjYyIDEyLjc4ODEgMjIuMjY2MiAxMi43ODgxQzIyLjI2NjIgMTIuNzg4MSAzMC42NzM5IDEyLjc4ODEgMzIuNzc1OCAxMy4zNjM0Wk0yNi41ODA2IDIyLjE5MTVMMTkuNTg4OSAyNi4yMTgzVjE4LjE2NDZMMjYuNTgwNiAyMi4xOTE1WiIgZmlsbD0iIzFBMkQzQSIvPgo8L2c+CjwvZz4KPC9zdmc+Cg==\"","/**\n * Palette of Shipamax colors to be used throughout the Styled Components.\n *\n * For now these just wrap the values defined in custom-properties.css, as\n * there are still some legacy components which rely directly on those values\n * (and don't want to duplicate them), but eventual goal would be for\n * everything to rely on this, with hex values directly declared here.\n *\n * This is an improvement over CSS vars, as now TypeScirpt can warn about\n * typos etc, whereas a missing CSS var fails silently.\n */\nexport default {\n blue: `var(--blue)`,\n cyan: `var(--cyan)`,\n darkBlue: `var(--dark-blue)`,\n grey: `var(--grey)`,\n lightGrey: `var(--light-grey)`,\n orange: `var(--orange)`,\n white: `var(--white)`,\n link: \"#2459f9\", // link on a white BG (dark BG can use cyan)\n\n cyanHover: `var(--cyan-hover)`,\n darkBlueHover: `var(--dark-blue-hover)`,\n orangeHover: `var(--orange-hover)`,\n};\n","export default {\n breakpointDefault: 960,\n breakpointHeader: 850,\n breakpointSectionBullets: 660,\n\n headerHeight: 67,\n};\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjUiIHZpZXdCb3g9IjAgMCAyOCAyNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEwLjMgLTEuOTA3MzVlLTA2TDguMiAxMS44SDExLjdWMjQuMkgwLjlWMTEuN0w0LjIgLTEuOTA3MzVlLTA2SDEwLjNaTTI2LjUgLTEuOTA3MzVlLTA2TDI0LjQgMTEuOEgyNy45VjI0LjJIMTcuMVYxMS43TDIwLjQgLTEuOTA3MzVlLTA2SDI2LjVaIiBmaWxsPSIjRkU2NjNBIi8+Cjwvc3ZnPgo=\"","\"use strict\";\n\nvar __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function () {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar react_1 = __importStar(require(\"react\"));\nvar swiper_1 = __importDefault(require(\"swiper\"));\nvar object_assign_1 = __importDefault(require(\"object-assign\"));\nvar utils_1 = require(\"./utils\");\nvar hooks_1 = require(\"./hooks\");\nvar ReactIdSwiper = react_1.forwardRef(function (props, externalRef) {\n var activeSlideKey = props.activeSlideKey,\n ContainerEl = props.ContainerEl,\n children = props.children,\n containerClass = props.containerClass,\n navigation = props.navigation,\n noSwiping = props.noSwiping,\n pagination = props.pagination,\n parallax = props.parallax,\n parallaxEl = props.parallaxEl,\n WrapperEl = props.WrapperEl,\n wrapperClass = props.wrapperClass,\n rebuildOnUpdate = props.rebuildOnUpdate,\n renderScrollbar = props.renderScrollbar,\n renderPagination = props.renderPagination,\n renderPrevButton = props.renderPrevButton,\n renderNextButton = props.renderNextButton,\n renderParallax = props.renderParallax,\n rtl = props.rtl,\n scrollbar = props.scrollbar,\n shouldSwiperUpdate = props.shouldSwiperUpdate,\n slideClass = props.slideClass,\n loop = props.loop;\n // Define swiper instance ref\n var swiperInstanceRef = react_1.useRef(null);\n // Internal ref\n var swiperNodeRef = react_1.useRef(null);\n // Forked ref\n var ref = hooks_1.useForkRef(swiperNodeRef, externalRef);\n // Get current active slide key\n var getActiveSlideIndexFromProps = react_1.useCallback(function () {\n if (!activeSlideKey) {\n return null;\n }\n var activeSlideId = 0;\n // In loop mode first slide index should be 1\n var id = loop ? 1 : 0;\n react_1.Children.forEach(children, function (child) {\n if (react_1.isValidElement(child)) {\n if (child.key === activeSlideKey) {\n activeSlideId = id;\n }\n id += 1;\n }\n });\n return activeSlideId;\n }, [activeSlideKey, children, loop]);\n // Destroy swiper\n var destroySwiper = react_1.useCallback(function () {\n if (swiperInstanceRef.current !== null) {\n swiperInstanceRef.current.destroy(true, true);\n utils_1.setRef(swiperInstanceRef, null);\n }\n }, []);\n // Initialize swiper\n var buildSwiper = react_1.useCallback(function () {\n if (swiperNodeRef.current && swiperInstanceRef.current === null) {\n utils_1.setRef(swiperInstanceRef, new swiper_1.default(swiperNodeRef.current, object_assign_1.default({}, props)));\n }\n }, [props]);\n // Render slides\n var renderContent = function (e) {\n if (!utils_1.isReactElement(e)) {\n return null;\n }\n var slideClassNames = [slideClass, e.props.className];\n if (noSwiping) {\n slideClassNames.push('swiper-no-swiping');\n }\n return react_1.cloneElement(e, __assign(__assign({}, e.props), {\n className: slideClassNames.join(' ').trim()\n }));\n };\n // Destroy Swiper instance when component is unmounted\n react_1.useEffect(function () {\n return function () {\n return destroySwiper();\n };\n }, [destroySwiper]);\n react_1.useEffect(function () {\n buildSwiper();\n if (swiperInstanceRef.current !== null) {\n if (rebuildOnUpdate) {\n destroySwiper();\n buildSwiper();\n } else if (shouldSwiperUpdate) {\n swiperInstanceRef.current.update();\n }\n var numSlides = swiperInstanceRef.current.slides.length;\n if (numSlides <= swiperInstanceRef.current.activeIndex) {\n var index = Math.max(numSlides - 1, 0);\n swiperInstanceRef.current.slideTo(index);\n }\n var slideToIndex = getActiveSlideIndexFromProps();\n if (slideToIndex !== null) {\n swiperInstanceRef.current.slideTo(slideToIndex);\n }\n }\n }, [destroySwiper, getActiveSlideIndexFromProps, rebuildOnUpdate, shouldSwiperUpdate, buildSwiper]);\n // No render if wrapper elements are not provided\n if (!children || !ContainerEl || !WrapperEl) {\n return null;\n }\n // Validate children props\n if (!utils_1.validateChildren(children)) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Children should be react element or an array of react element!!');\n }\n return null;\n }\n return react_1.default.createElement(ContainerEl, {\n className: containerClass,\n dir: rtl && 'rtl',\n ref: ref\n }, parallax && parallaxEl && renderParallax && renderParallax(props), react_1.default.createElement(WrapperEl, {\n className: wrapperClass\n }, react_1.Children.map(children, renderContent)), pagination && pagination.el && renderPagination && renderPagination(props), scrollbar && scrollbar.el && renderScrollbar && renderScrollbar(props), navigation && navigation.nextEl && renderNextButton && renderNextButton(props), navigation && navigation.prevEl && renderPrevButton && renderPrevButton(props));\n});\n// Default props\nReactIdSwiper.defaultProps = {\n containerClass: 'swiper-container',\n wrapperClass: 'swiper-wrapper',\n slideClass: 'swiper-slide',\n ContainerEl: 'div',\n WrapperEl: 'div',\n renderScrollbar: function (_a) {\n var scrollbar = _a.scrollbar;\n return scrollbar ? react_1.default.createElement(\"div\", {\n className: utils_1.classNames(scrollbar.el)\n }) : null;\n },\n renderPagination: function (_a) {\n var pagination = _a.pagination;\n return pagination ? react_1.default.createElement(\"div\", {\n className: utils_1.classNames(pagination.el)\n }) : null;\n },\n renderPrevButton: function (_a) {\n var navigation = _a.navigation;\n return navigation ? react_1.default.createElement(\"div\", {\n className: utils_1.classNames(navigation.prevEl)\n }) : null;\n },\n renderNextButton: function (_a) {\n var navigation = _a.navigation;\n return navigation ? react_1.default.createElement(\"div\", {\n className: utils_1.classNames(navigation.nextEl)\n }) : null;\n },\n renderParallax: function (_a) {\n var parallaxEl = _a.parallaxEl;\n return parallaxEl ? react_1.default.createElement(\"div\", {\n className: utils_1.classNames(parallaxEl.el),\n \"data-swiper-parallax\": parallaxEl.value\n }) : null;\n }\n};\nReactIdSwiper.displayName = 'ReactIdSwiper';\nexports.default = ReactIdSwiper;","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { ColsContext } from \"./Cols\";\n\ntype Props = {\n flex?: number;\n joinedCss?: string;\n stackedCss?: string;\n children?: React.ReactNode;\n};\n\nexport default function Col({ flex, children, ...rest }: Props) {\n const { breakpoint } = React.useContext(ColsContext);\n return (\n \n {children}\n \n );\n}\n\ntype StyledProps = {\n flex: number;\n breakpoint: number;\n joinedCss?: string;\n stackedCss?: string;\n};\n\nconst StyledCol = styled(\"div\")`\n flex: ${(p) => p.flex};\n ${(p) =>\n p.breakpoint &&\n p.stackedCss &&\n `@media (max-width: ${p.breakpoint}px) { ${p.stackedCss}; }`};\n ${(p) =>\n p.breakpoint &&\n p.joinedCss &&\n `@media (min-width: ${p.breakpoint + 1}px) { ${p.joinedCss}; }`};\n`;\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjQ2ODg4IDIwLjc4MDRDNS41Mzg1NCAyMC44NTAyIDUuNjIxMzEgMjAuOTA1NiA1LjcxMjQzIDIwLjk0MzVDNS44MDM1NCAyMC45ODEzIDUuOTAxMjIgMjEuMDAwNyA1Ljk5OTg4IDIxLjAwMDdDNi4wOTg1MyAyMS4wMDA3IDYuMTk2MjEgMjAuOTgxMyA2LjI4NzMzIDIwLjk0MzVDNi4zNzg0NCAyMC45MDU2IDYuNDYxMjEgMjAuODUwMiA2LjUzMDg4IDIwLjc4MDRMMTEuOTk5OSAxNS4zMDk5TDE3LjQ2ODkgMjAuNzgwNEMxNy42MDk3IDIwLjkyMTIgMTcuODAwNyAyMS4wMDAzIDE3Ljk5OTkgMjEuMDAwM0MxOC4xOTkgMjEuMDAwMyAxOC4zOSAyMC45MjEyIDE4LjUzMDkgMjAuNzgwNEMxOC42NzE3IDIwLjYzOTYgMTguNzUwOCAyMC40NDg1IDE4Ljc1MDggMjAuMjQ5NEMxOC43NTA4IDIwLjA1MDIgMTguNjcxNyAxOS44NTkyIDE4LjUzMDkgMTkuNzE4NEwxMi41MzA5IDEzLjcxODRDMTIuNDYxMiAxMy42NDg1IDEyLjM3ODQgMTMuNTkzMSAxMi4yODczIDEzLjU1NTNDMTIuMTk2MiAxMy41MTc1IDEyLjA5ODUgMTMuNDk4IDExLjk5OTkgMTMuNDk4QzExLjkwMTIgMTMuNDk4IDExLjgwMzUgMTMuNTE3NSAxMS43MTI0IDEzLjU1NTNDMTEuNjIxMyAxMy41OTMxIDExLjUzODUgMTMuNjQ4NSAxMS40Njg5IDEzLjcxODRMNS40Njg4OCAxOS43MTg0QzUuMzk5MDMgMTkuNzg4MSA1LjM0MzYyIDE5Ljg3MDggNS4zMDU4MSAxOS45NjE5QzUuMjY4IDIwLjA1MzEgNS4yNDg1NCAyMC4xNTA3IDUuMjQ4NTQgMjAuMjQ5NEM1LjI0ODU0IDIwLjM0OCA1LjI2OCAyMC40NDU3IDUuMzA1ODEgMjAuNTM2OEM1LjM0MzYyIDIwLjYyOCA1LjM5OTAzIDIwLjcxMDcgNS40Njg4OCAyMC43ODA0Wk01LjQ2ODg4IDMuMjE4MzlDNS41Mzg1NCAzLjE0ODU0IDUuNjIxMzEgMy4wOTMxMyA1LjcxMjQzIDMuMDU1MzJDNS44MDM1NCAzLjAxNzUxIDUuOTAxMjIgMi45OTgwNSA1Ljk5OTg4IDIuOTk4MDVDNi4wOTg1MyAyLjk5ODA1IDYuMTk2MjEgMy4wMTc1MSA2LjI4NzMzIDMuMDU1MzJDNi4zNzg0NCAzLjA5MzEzIDYuNDYxMjEgMy4xNDg1NCA2LjUzMDg4IDMuMjE4MzlMMTEuOTk5OSA4LjY4ODg5TDE3LjQ2ODkgMy4yMTgzOUMxNy42MDk3IDMuMDc3NTYgMTcuODAwNyAyLjk5ODQ0IDE3Ljk5OTkgMi45OTg0NEMxOC4xOTkgMi45OTg0NCAxOC4zOSAzLjA3NzU2IDE4LjUzMDkgMy4yMTgzOUMxOC42NzE3IDMuMzU5MjIgMTguNzUwOCAzLjU1MDIyIDE4Ljc1MDggMy43NDkzOUMxOC43NTA4IDMuOTQ4NTUgMTguNjcxNyA0LjEzOTU2IDE4LjUzMDkgNC4yODAzOUwxMi41MzA5IDEwLjI4MDRDMTIuNDYxMiAxMC4zNTAyIDEyLjM3ODQgMTAuNDA1NiAxMi4yODczIDEwLjQ0MzVDMTIuMTk2MiAxMC40ODEzIDEyLjA5ODUgMTAuNTAwNyAxMS45OTk5IDEwLjUwMDdDMTEuOTAxMiAxMC41MDA3IDExLjgwMzUgMTAuNDgxMyAxMS43MTI0IDEwLjQ0MzVDMTEuNjIxMyAxMC40MDU2IDExLjUzODUgMTAuMzUwMiAxMS40Njg5IDEwLjI4MDRMNS40Njg4OCA0LjI4MDM5QzUuMzk5MDMgNC4yMTA3MiA1LjM0MzYyIDQuMTI3OTYgNS4zMDU4MSA0LjAzNjg0QzUuMjY4IDMuOTQ1NzIgNS4yNDg1NCAzLjg0ODA0IDUuMjQ4NTQgMy43NDkzOUM1LjI0ODU0IDMuNjUwNzQgNS4yNjggMy41NTMwNSA1LjMwNTgxIDMuNDYxOTRDNS4zNDM2MiAzLjM3MDgyIDUuMzk5MDMgMy4yODgwNiA1LjQ2ODg4IDMuMjE4MzlaIiBmaWxsPSIjMDdFOEM3Ii8+Cjwvc3ZnPgo=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDQiIGhlaWdodD0iNDQiIHZpZXdCb3g9IjAgMCA0NCA0NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgaWQ9IkxpbmtlZEluIj4KPGcgaWQ9IkxpbmtlZEluXzIiPgo8cmVjdCBpZD0iUmVjdGFuZ2xlIiB4PSIwLjI1NzgxMiIgeT0iMC41OTgxNDUiIHdpZHRoPSI0Mi45NzciIGhlaWdodD0iNDIuOTc3IiByeD0iMjEuNDg4NSIgZmlsbD0iIzA3RThDNyIvPgo8ZyBpZD0iR3JvdXAiPgo8cGF0aCBpZD0iUGF0aCIgZD0iTTMzLjY3OTYgMzIuMjI2NEMzMi4yNjk0IDMyLjE5MjkgMzAuODkyOCAzMi4xOTI5IDI5LjQ4MjYgMzIuMjI2NEMyOS4xODA0IDMyLjIyNjQgMjkuMTEzMyAzMi4xNTkzIDI5LjExMzMgMzEuODU3MUMyOS4xMTMzIDI5LjM3MjUgMjkuMTEzMyAyNi44NTQzIDI5LjExMzMgMjQuMzY5N0MyOS4xMTMzIDIzLjc5ODkgMjkuMDc5NyAyMy4yMjgxIDI4LjkxMTggMjIuNjkwOUMyOC40MDgyIDIwLjk0NSAyNi4zOTM2IDIwLjMwNyAyNC45NDk5IDIxLjQ4MjJDMjQuMTc3NiAyMi4wODY2IDIzLjg3NTUgMjIuOTI2IDIzLjg3NTUgMjMuOTMzMkMyMy44NzU1IDI2LjI4MzUgMjMuODc1NSAyOC42MzM4IDIzLjg3NTUgMzAuOTg0MUMyMy44NzU1IDMxLjI4NjMgMjMuODQxOSAzMS41ODg1IDIzLjg3NTUgMzEuOTI0M0MyMy45MDkgMzIuMTkyOSAyMy43NzQ3IDMyLjI2IDIzLjUzOTcgMzIuMjI2NEMyMi4wOTU5IDMyLjIyNjQgMjAuNjg1OCAzMi4yMjY0IDE5LjI0MiAzMi4yMjY0QzE4Ljk3MzQgMzIuMjI2NCAxOC45MDYyIDMyLjE1OTMgMTguOTA2MiAzMS44OTA3QzE4LjkzOTggMjkuNzc1NCAxOC45Mzk4IDI3LjY2MDEgMTguOTM5OCAyNS41MTEzQzE4LjkzOTggMjIuODkyNCAxOC45Mzk4IDIwLjI3MzUgMTguOTA2MiAxNy42ODgxQzE4LjkwNjIgMTcuMzg2IDE4Ljk3MzQgMTcuMzE4OCAxOS4yNDIgMTcuMzE4OEMyMC42ODU4IDE3LjMxODggMjIuMDk1OSAxNy4zMTg4IDIzLjUzOTcgMTcuMzE4OEMyMy44MDgzIDE3LjMxODggMjMuODc1NSAxNy4zODYgMjMuODc1NSAxNy42NTQ2QzIzLjg3NTUgMTguMTkxOCAyMy44NzU1IDE4LjcyOSAyMy44NzU1IDE5LjM2NjlDMjMuOTc2MiAxOS4yNjYyIDI0LjAwOTggMTkuMjMyNiAyNC4wNDMzIDE5LjE5OUMyNS4zNTI4IDE3LjI4NTIgMjcuMTk5NSAxNi43NDggMjkuMzgxOSAxNy4wODM4QzMxLjkwMDEgMTcuNDg2NyAzMy41MTE3IDE5LjIzMjYgMzMuOTE0NiAyMS45MTg3QzM0LjAxNTMgMjIuNTU2NiAzNC4wNDg5IDIzLjE5NDYgMzQuMDQ4OSAyMy44MzI1QzM0LjA0ODkgMjYuNTE4NiAzNC4wNDg5IDI5LjE3MSAzNC4wNDg5IDMxLjg1NzFDMzQuMDQ4OSAzMi4xMjU3IDMzLjk4MTggMzIuMjI2NCAzMy42Nzk2IDMyLjIyNjRaIiBmaWxsPSIjMUEyRDNBIi8+CjxwYXRoIGlkPSJQYXRoXzIiIGQ9Ik0xNi4yMTY5IDI0Ljc3MjdDMTYuMjE2OSAyNy4xMjMgMTYuMjE2OSAyOS40NzMzIDE2LjIxNjkgMzEuODIzNkMxNi4yMTY5IDMyLjEyNTggMTYuMTQ5NyAzMi4yMjY1IDE1Ljg0NzYgMzIuMjI2NUMxNC40Mzc0IDMyLjE5MjkgMTMuMDI3MiAzMi4yMjY1IDExLjYxNyAzMi4yMjY1QzExLjM0ODQgMzIuMjI2NSAxMS4yODEyIDMyLjE1OTMgMTEuMjgxMiAzMS44OTA3QzExLjI4MTIgMjcuMTU2NSAxMS4yODEyIDIyLjM4ODggMTEuMjgxMiAxNy42NTQ2QzExLjI4MTIgMTcuNDE5NiAxMS4zNDg0IDE3LjMxODggMTEuNjE3IDE3LjMxODhDMTMuMDYwOCAxNy4zMTg4IDE0LjUwNDUgMTcuMzE4OCAxNS45NDgzIDE3LjMxODhDMTYuMjUwNSAxNy4zMTg4IDE2LjI4NCAxNy40MTk2IDE2LjI4NCAxNy42ODgyQzE2LjIxNjkgMjAuMDM4NSAxNi4yMTY5IDIyLjM4ODggMTYuMjE2OSAyNC43NzI3WiIgZmlsbD0iIzFBMkQzQSIvPgo8cGF0aCBpZD0iUGF0aF8zIiBkPSJNMTYuNDUzNyAxMy40MjQyQzE2LjExOCAxNC43NjcyIDE0Ljc0MTQgMTUuNTM5NSAxMy4xNjMzIDE1LjI3MDlDMTEuNDg0NSAxNS4wMDIyIDEwLjU0NDQgMTMuMzU3IDExLjE0ODggMTEuNzQ1NEMxMS41NTE3IDEwLjczODEgMTIuNTI1NCAxMC4xMzM4IDEzLjc2NzcgMTAuMTY3M0MxNS42NDc5IDEwLjEzMzggMTYuODkwMiAxMS42NDQ3IDE2LjQ1MzcgMTMuNDI0MloiIGZpbGw9IiMxQTJEM0EiLz4KPC9nPgo8L2c+CjwvZz4KPC9zdmc+Cg==\"","import { Link } from \"gatsby\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport { Color } from \"../../constants/legacy\";\n\ntype ButtonColor = \"orange\" | \"darkBlue\" | \"cyan\";\n\ntype Props = {\n label: string;\n to?: string;\n onClick?: () => void;\n color?: ButtonColor;\n href?: string;\n};\n\nexport default function Button({ label, color = \"orange\", ...rest }: Props) {\n return (\n \n {label}\n \n );\n}\n\ntype StyledProps = Omit & {\n color: ButtonColor;\n};\n\nconst StyledButton = styled(({ to, ...rest }) =>\n to ? : \n)`\n cursor: pointer;\n background-color: ${(p: StyledProps) => Color[p.color]};\n min-height: 44px;\n padding: 10px 40px;\n font-size: 18px;\n font-weight: ${(p) =>\n p.color === \"orange\" || p.color === \"cyan\" ? 600 : 400};\n color: ${(p) =>\n p.color === \"orange\" || p.color === \"cyan\" ? Color.darkBlue : Color.white};\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:hover {\n background-color: ${(p: StyledProps) =>\n (Color as any)[`${p.color}Hover`] || Color.blue};\n }\n`;\n","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Virtual = {\n update: function update(force) {\n var swiper = this;\n var _swiper$params = swiper.params,\n slidesPerView = _swiper$params.slidesPerView,\n slidesPerGroup = _swiper$params.slidesPerGroup,\n centeredSlides = _swiper$params.centeredSlides;\n var _swiper$params$virtua = swiper.params.virtual,\n addSlidesBefore = _swiper$params$virtua.addSlidesBefore,\n addSlidesAfter = _swiper$params$virtua.addSlidesAfter;\n var _swiper$virtual = swiper.virtual,\n previousFrom = _swiper$virtual.from,\n previousTo = _swiper$virtual.to,\n slides = _swiper$virtual.slides,\n previousSlidesGrid = _swiper$virtual.slidesGrid,\n renderSlide = _swiper$virtual.renderSlide,\n previousOffset = _swiper$virtual.offset;\n swiper.updateActiveIndex();\n var activeIndex = swiper.activeIndex || 0;\n var offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n var slidesAfter;\n var slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = slidesPerGroup + addSlidesBefore;\n }\n var from = Math.max((activeIndex || 0) - slidesBefore, 0);\n var to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n var offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n extend(swiper.virtual, {\n from: from,\n to: to,\n offset: offset,\n slidesGrid: swiper.slidesGrid\n });\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n }\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.css(offsetProp, offset + \"px\");\n }\n swiper.updateProgress();\n return;\n }\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset: offset,\n from: from,\n to: to,\n slides: function getSlides() {\n var slidesToRender = [];\n for (var i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n return slidesToRender;\n }()\n });\n if (swiper.params.virtual.renderExternalUpdate) {\n onRendered();\n }\n return;\n }\n var prependIndexes = [];\n var appendIndexes = [];\n if (force) {\n swiper.$wrapperEl.find(\".\" + swiper.params.slideClass).remove();\n } else {\n for (var i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl.find(\".\" + swiper.params.slideClass + \"[data-swiper-slide-index=\\\"\" + i + \"\\\"]\").remove();\n }\n }\n }\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (_i >= from && _i <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(_i);\n } else {\n if (_i > previousTo) appendIndexes.push(_i);\n if (_i < previousFrom) prependIndexes.push(_i);\n }\n }\n }\n appendIndexes.forEach(function (index) {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes.sort(function (a, b) {\n return b - a;\n }).forEach(function (index) {\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, offset + \"px\");\n onRendered();\n },\n renderSlide: function renderSlide(slide, index) {\n var swiper = this;\n var params = swiper.params.virtual;\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n var $slideEl = params.renderSlide ? $(params.renderSlide.call(swiper, slide, index)) : $(\"
\" + slide + \"
\");\n if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\n if (params.cache) swiper.virtual.cache[index] = $slideEl;\n return $slideEl;\n },\n appendSlide: function appendSlide(slides) {\n var swiper = this;\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n swiper.virtual.update(true);\n },\n prependSlide: function prependSlide(slides) {\n var swiper = this;\n var activeIndex = swiper.activeIndex;\n var newActiveIndex = activeIndex + 1;\n var numberOfNewSlides = 1;\n if (Array.isArray(slides)) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n if (swiper.params.virtual.cache) {\n var cache = swiper.virtual.cache;\n var newCache = {};\n Object.keys(cache).forEach(function (cachedIndex) {\n var $cachedEl = cache[cachedIndex];\n var cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\n if (cachedElIndex) {\n $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + 1);\n }\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n swiper.virtual.update(true);\n swiper.slideTo(newActiveIndex, 0);\n },\n removeSlide: function removeSlide(slidesIndexes) {\n var swiper = this;\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n var activeIndex = swiper.activeIndex;\n if (Array.isArray(slidesIndexes)) {\n for (var i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n swiper.virtual.update(true);\n swiper.slideTo(activeIndex, 0);\n },\n removeAllSlides: function removeAllSlides() {\n var swiper = this;\n swiper.virtual.slides = [];\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n swiper.virtual.update(true);\n swiper.slideTo(0, 0);\n }\n};\nexport default {\n name: 'virtual',\n params: {\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n renderExternalUpdate: true,\n addSlidesBefore: 0,\n addSlidesAfter: 0\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n virtual: _extends({}, Virtual, {\n slides: swiper.params.virtual.slides,\n cache: {}\n })\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (!swiper.params.virtual.enabled) return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"virtual\");\n var overwriteParams = {\n watchSlidesProgress: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n if (!swiper.params.initialSlide) {\n swiper.virtual.update();\n }\n },\n setTranslate: function setTranslate(swiper) {\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.update();\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n/* eslint-disable consistent-return */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Keyboard = {\n handle: function handle(event) {\n var swiper = this;\n if (!swiper.enabled) return;\n var window = getWindow();\n var document = getDocument();\n var rtl = swiper.rtlTranslate;\n var e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n var kc = e.keyCode || e.charCode;\n var pageUpDown = swiper.params.keyboard.pageUpDown;\n var isPageUp = pageUpDown && kc === 33;\n var isPageDown = pageUpDown && kc === 34;\n var isArrowLeft = kc === 37;\n var isArrowRight = kc === 39;\n var isArrowUp = kc === 38;\n var isArrowDown = kc === 40; // Directions locks\n\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n var inView = false; // Check that swiper should be inside of visible area of window\n\n if (swiper.$el.parents(\".\" + swiper.params.slideClass).length > 0 && swiper.$el.parents(\".\" + swiper.params.slideActiveClass).length === 0) {\n return undefined;\n }\n var $el = swiper.$el;\n var swiperWidth = $el[0].clientWidth;\n var swiperHeight = $el[0].clientHeight;\n var windowWidth = window.innerWidth;\n var windowHeight = window.innerHeight;\n var swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n var swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n for (var i = 0; i < swiperCoord.length; i += 1) {\n var point = swiperCoord[i];\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n if (!inView) return undefined;\n }\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n swiper.emit('keyPress', kc);\n return undefined;\n },\n enable: function enable() {\n var swiper = this;\n var document = getDocument();\n if (swiper.keyboard.enabled) return;\n $(document).on('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = true;\n },\n disable: function disable() {\n var swiper = this;\n var document = getDocument();\n if (!swiper.keyboard.enabled) return;\n $(document).off('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = false;\n }\n};\nexport default {\n name: 'keyboard',\n params: {\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n keyboard: _extends({\n enabled: false\n }, Keyboard)\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.keyboard.enabled) {\n swiper.keyboard.enable();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.keyboard.enabled) {\n swiper.keyboard.disable();\n }\n }\n }\n};","/* eslint-disable consistent-return */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { now, nextTick, bindModuleMethods } from '../../utils/utils';\nfunction isEventSupported() {\n var document = getDocument();\n var eventName = 'onwheel';\n var isSupported = (eventName in document);\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n if (!isSupported && document.implementation && document.implementation.hasFeature &&\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n return isSupported;\n}\nvar Mousewheel = {\n lastScrollTime: now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n event: function event() {\n var window = getWindow();\n if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\n return isEventSupported() ? 'wheel' : 'mousewheel';\n },\n normalize: function normalize(e) {\n // Reasonable defaults\n var PIXEL_STEP = 10;\n var LINE_HEIGHT = 40;\n var PAGE_HEIGHT = 800;\n var sX = 0;\n var sY = 0; // spinX, spinY\n\n var pX = 0;\n var pY = 0; // pixelX, pixelY\n // Legacy\n\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n } // side scrolling on FF with DOMMouseScroll\n\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n } // Fall-back if spin cannot be determined\n\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n },\n handleMouseEnter: function handleMouseEnter() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n },\n handleMouseLeave: function handleMouseLeave() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n },\n handle: function handle(event) {\n var e = event;\n var disableParentSwiper = true;\n var swiper = this;\n if (!swiper.enabled) return;\n var params = swiper.params.mousewheel;\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n var target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n var delta = 0;\n var rtlFactor = swiper.rtlTranslate ? -1 : 1;\n var data = Mousewheel.normalize(e);\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n if (delta === 0) return true;\n if (params.invert) delta = -delta; // Get the scroll positions\n\n var positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n if (!swiper.params.freeMode) {\n // Register the new event in a variable which stores the relevant data\n var newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n }; // Keep the most recent events\n\n var recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n var prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent); // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n swiper.mousewheel.animateSlider(newEvent);\n }\n } else {\n swiper.mousewheel.animateSlider(newEvent);\n } // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n\n if (swiper.mousewheel.releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n var _newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n var lastEventBeforeSnap = swiper.mousewheel.lastEventBeforeSnap;\n var ignoreWheelEvents = lastEventBeforeSnap && _newEvent.time < lastEventBeforeSnap.time + 500 && _newEvent.delta <= lastEventBeforeSnap.delta && _newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n swiper.mousewheel.lastEventBeforeSnap = undefined;\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n var position = swiper.getTranslate() + delta * params.sensitivity;\n var wasBeginning = swiper.isBeginning;\n var wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n if (swiper.params.freeModeSticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = undefined;\n var _recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n if (_recentWheelEvents.length >= 15) {\n _recentWheelEvents.shift(); // only store the last N events\n }\n\n var _prevEvent = _recentWheelEvents.length ? _recentWheelEvents[_recentWheelEvents.length - 1] : undefined;\n var firstEvent = _recentWheelEvents[0];\n _recentWheelEvents.push(_newEvent);\n if (_prevEvent && (_newEvent.delta > _prevEvent.delta || _newEvent.direction !== _prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n _recentWheelEvents.splice(0);\n } else if (_recentWheelEvents.length >= 15 && _newEvent.time - firstEvent.time < 500 && firstEvent.delta - _newEvent.delta >= 1 && _newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n var snapToThreshold = delta > 0 ? 0.8 : 0.2;\n swiper.mousewheel.lastEventBeforeSnap = _newEvent;\n _recentWheelEvents.splice(0);\n swiper.mousewheel.timeout = nextTick(function () {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!swiper.mousewheel.timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n swiper.mousewheel.timeout = nextTick(function () {\n var snapToThreshold = 0.5;\n swiper.mousewheel.lastEventBeforeSnap = _newEvent;\n _recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n } // Emit event\n\n if (!ignoreWheelEvents) swiper.emit('scroll', e); // Stop autoplay\n\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); // Return page scroll on edge positions\n\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n },\n animateSlider: function animateSlider(newEvent) {\n var swiper = this;\n var window = getWindow();\n if (this.params.mousewheel.thresholdDelta && newEvent.delta < this.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n if (this.params.mousewheel.thresholdTime && now() - swiper.mousewheel.lastScrollTime < this.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n } // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n\n if (newEvent.delta >= 6 && now() - swiper.mousewheel.lastScrollTime < 60) {\n // Return false as a default\n return true;\n } // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', newEvent.raw);\n } // If you got here is because an animation has been triggered so store the current time\n\n swiper.mousewheel.lastScrollTime = new window.Date().getTime(); // Return false as a default\n\n return false;\n },\n releaseScroll: function releaseScroll(newEvent) {\n var swiper = this;\n var params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n },\n enable: function enable() {\n var swiper = this;\n var event = Mousewheel.event();\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n if (!event) return false;\n if (swiper.mousewheel.enabled) return false;\n var target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n target.on(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable: function disable() {\n var swiper = this;\n var event = Mousewheel.event();\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n if (!event) return false;\n if (!swiper.mousewheel.enabled) return false;\n var target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n target.off(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n }\n};\nexport default {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n mousewheel: {\n enabled: false,\n lastScrollTime: now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n enable: Mousewheel.enable,\n disable: Mousewheel.disable,\n handle: Mousewheel.handle,\n handleMouseEnter: Mousewheel.handleMouseEnter,\n handleMouseLeave: Mousewheel.handleMouseLeave,\n animateSlider: Mousewheel.animateSlider,\n releaseScroll: Mousewheel.releaseScroll\n }\n });\n },\n on: {\n init: function init(swiper) {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n swiper.mousewheel.disable();\n }\n if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\n },\n destroy: function destroy(swiper) {\n if (swiper.params.cssMode) {\n swiper.mousewheel.enable();\n }\n if (swiper.mousewheel.enabled) swiper.mousewheel.disable();\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Parallax = {\n setTransform: function setTransform(el, progress) {\n var swiper = this;\n var rtl = swiper.rtl;\n var $el = $(el);\n var rtlFactor = rtl ? -1 : 1;\n var p = $el.attr('data-swiper-parallax') || '0';\n var x = $el.attr('data-swiper-parallax-x');\n var y = $el.attr('data-swiper-parallax-y');\n var scale = $el.attr('data-swiper-parallax-scale');\n var opacity = $el.attr('data-swiper-parallax-opacity');\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n if (x.indexOf('%') >= 0) {\n x = parseInt(x, 10) * progress * rtlFactor + \"%\";\n } else {\n x = x * progress * rtlFactor + \"px\";\n }\n if (y.indexOf('%') >= 0) {\n y = parseInt(y, 10) * progress + \"%\";\n } else {\n y = y * progress + \"px\";\n }\n if (typeof opacity !== 'undefined' && opacity !== null) {\n var currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n $el[0].style.opacity = currentOpacity;\n }\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform(\"translate3d(\" + x + \", \" + y + \", 0px)\");\n } else {\n var currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n $el.transform(\"translate3d(\" + x + \", \" + y + \", 0px) scale(\" + currentScale + \")\");\n }\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n var $el = swiper.$el,\n slides = swiper.slides,\n progress = swiper.progress,\n snapGrid = swiper.snapGrid;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (el) {\n swiper.parallax.setTransform(el, progress);\n });\n slides.each(function (slideEl, slideIndex) {\n var slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (el) {\n swiper.parallax.setTransform(el, slideProgress);\n });\n });\n },\n setTransition: function setTransition(duration) {\n if (duration === void 0) {\n duration = this.params.speed;\n }\n var swiper = this;\n var $el = swiper.$el;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (parallaxEl) {\n var $parallaxEl = $(parallaxEl);\n var parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n $parallaxEl.transition(parallaxDuration);\n });\n }\n};\nexport default {\n name: 'parallax',\n params: {\n parallax: {\n enabled: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n parallax: _extends({}, Parallax)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n init: function init(swiper) {\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTranslate: function setTranslate(swiper) {\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTransition(duration);\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nimport { getWindow } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods, getTranslate } from '../../utils/utils';\nvar Zoom = {\n // Calc Scale From Multi-touches\n getDistanceBetweenTouches: function getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) return 1;\n var x1 = e.targetTouches[0].pageX;\n var y1 = e.targetTouches[0].pageY;\n var x2 = e.targetTouches[1].pageX;\n var y2 = e.targetTouches[1].pageY;\n var distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));\n return distance;\n },\n // Events\n onGestureStart: function onGestureStart(e) {\n var swiper = this;\n var support = swiper.support;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n if (!support.gestures) {\n if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) {\n return;\n }\n zoom.fakeGestureTouched = true;\n gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest(\".\" + swiper.params.slideClass);\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\" + params.containerClass);\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n if (gesture.$imageEl) {\n gesture.$imageEl.transition(0);\n }\n swiper.zoom.isScaling = true;\n },\n onGestureChange: function onGestureChange(e) {\n var swiper = this;\n var support = swiper.support;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n if (!support.gestures) {\n if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) {\n return;\n }\n zoom.fakeGestureMoved = true;\n gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\n if (e.type === 'gesturechange') zoom.onGestureStart(e);\n return;\n }\n if (support.gestures) {\n zoom.scale = e.scale * zoom.currentScale;\n } else {\n zoom.scale = gesture.scaleMove / gesture.scaleStart * zoom.currentScale;\n }\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + Math.pow(zoom.scale - gesture.maxRatio + 1, 0.5);\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - Math.pow(params.minRatio - zoom.scale + 1, 0.5);\n }\n gesture.$imageEl.transform(\"translate3d(0,0,0) scale(\" + zoom.scale + \")\");\n },\n onGestureEnd: function onGestureEnd(e) {\n var swiper = this;\n var device = swiper.device;\n var support = swiper.support;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n if (!support.gestures) {\n if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\n return;\n }\n if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2 && !device.android) {\n return;\n }\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform(\"translate3d(0,0,0) scale(\" + zoom.scale + \")\");\n zoom.currentScale = zoom.scale;\n zoom.isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = undefined;\n },\n onTouchStart: function onTouchStart(e) {\n var swiper = this;\n var device = swiper.device;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture,\n image = zoom.image;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n },\n onTouchMove: function onTouchMove(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture,\n image = zoom.image,\n velocity = zoom.velocity;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) return;\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n if (swiper.rtl) {\n image.startX = -image.startX;\n image.startY = -image.startY;\n }\n } // Define if we need image drag\n\n var scaledWidth = image.width * zoom.scale;\n var scaledHeight = image.height * zoom.scale;\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n if (!image.isMoved && !zoom.isScaling) {\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n image.isTouched = false;\n return;\n }\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n image.isTouched = false;\n return;\n }\n }\n if (e.cancelable) {\n e.preventDefault();\n }\n e.stopPropagation();\n image.isMoved = true;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - Math.pow(image.minX - image.currentX + 1, 0.8);\n }\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + Math.pow(image.currentX - image.maxX + 1, 0.8);\n }\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - Math.pow(image.minY - image.currentY + 1, 0.8);\n }\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + Math.pow(image.currentY - image.maxY + 1, 0.8);\n } // Velocity\n\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.$imageWrapEl.transform(\"translate3d(\" + image.currentX + \"px, \" + image.currentY + \"px,0)\");\n },\n onTouchEnd: function onTouchEnd() {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture,\n image = zoom.image,\n velocity = zoom.velocity;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n var momentumDurationX = 300;\n var momentumDurationY = 300;\n var momentumDistanceX = velocity.x * momentumDurationX;\n var newPositionX = image.currentX + momentumDistanceX;\n var momentumDistanceY = velocity.y * momentumDurationY;\n var newPositionY = image.currentY + momentumDistanceY; // Fix duration\n\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n var momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY; // Define if we need image drag\n\n var scaledWidth = image.width * zoom.scale;\n var scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.$imageWrapEl.transition(momentumDuration).transform(\"translate3d(\" + image.currentX + \"px, \" + image.currentY + \"px,0)\");\n },\n onTransitionEnd: function onTransitionEnd() {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n if (gesture.$imageEl) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n }\n if (gesture.$imageWrapEl) {\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n }\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n },\n // Toggle Zoom\n toggle: function toggle(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoom.out();\n } else {\n // Zoom In\n zoom.in(e);\n }\n },\n in: function _in(e) {\n var swiper = this;\n var window = getWindow();\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n var gesture = zoom.gesture,\n image = zoom.image;\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(\".\" + swiper.params.slideActiveClass);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\" + params.containerClass);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n gesture.$slideEl.addClass(\"\" + params.zoomedSlideClass);\n var touchX;\n var touchY;\n var offsetX;\n var offsetY;\n var diffX;\n var diffY;\n var translateX;\n var translateY;\n var imageWidth;\n var imageHeight;\n var scaledWidth;\n var scaledHeight;\n var translateMinX;\n var translateMinY;\n var translateMaxX;\n var translateMaxY;\n var slideWidth;\n var slideHeight;\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left + window.scrollX;\n offsetY = gesture.$slideEl.offset().top + window.scrollY;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n gesture.$imageWrapEl.transition(300).transform(\"translate3d(\" + translateX + \"px, \" + translateY + \"px,0)\");\n gesture.$imageEl.transition(300).transform(\"translate3d(0,0,0) scale(\" + zoom.scale + \")\");\n },\n out: function out() {\n var swiper = this;\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n var gesture = zoom.gesture;\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(\".\" + swiper.params.slideActiveClass);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\" + params.containerClass);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass(\"\" + params.zoomedSlideClass);\n gesture.$slideEl = undefined;\n },\n toggleGestures: function toggleGestures(method) {\n var swiper = this;\n var zoom = swiper.zoom;\n var selector = zoom.slideSelector,\n passive = zoom.passiveListener;\n swiper.$wrapperEl[method]('gesturestart', selector, zoom.onGestureStart, passive);\n swiper.$wrapperEl[method]('gesturechange', selector, zoom.onGestureChange, passive);\n swiper.$wrapperEl[method]('gestureend', selector, zoom.onGestureEnd, passive);\n },\n enableGestures: function enableGestures() {\n if (this.zoom.gesturesEnabled) return;\n this.zoom.gesturesEnabled = true;\n this.zoom.toggleGestures('on');\n },\n disableGestures: function disableGestures() {\n if (!this.zoom.gesturesEnabled) return;\n this.zoom.gesturesEnabled = false;\n this.zoom.toggleGestures('off');\n },\n // Attach/Detach Events\n enable: function enable() {\n var swiper = this;\n var support = swiper.support;\n var zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n var passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n var activeListenerWithCapture = support.passiveListener ? {\n passive: false,\n capture: true\n } : true;\n var slideSelector = \".\" + swiper.params.slideClass;\n swiper.zoom.passiveListener = passiveListener;\n swiper.zoom.slideSelector = slideSelector; // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.on(swiper.touchEvents.start, swiper.zoom.enableGestures, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.end, swiper.zoom.disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n } // Move image\n\n swiper.$wrapperEl.on(swiper.touchEvents.move, \".\" + swiper.params.zoom.containerClass, zoom.onTouchMove, activeListenerWithCapture);\n },\n disable: function disable() {\n var swiper = this;\n var zoom = swiper.zoom;\n if (!zoom.enabled) return;\n var support = swiper.support;\n swiper.zoom.enabled = false;\n var passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n var activeListenerWithCapture = support.passiveListener ? {\n passive: false,\n capture: true\n } : true;\n var slideSelector = \".\" + swiper.params.slideClass; // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.off(swiper.touchEvents.start, swiper.zoom.enableGestures, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.end, swiper.zoom.disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n } // Move image\n\n swiper.$wrapperEl.off(swiper.touchEvents.move, \".\" + swiper.params.zoom.containerClass, zoom.onTouchMove, activeListenerWithCapture);\n }\n};\nexport default {\n name: 'zoom',\n params: {\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n zoom: _extends({\n enabled: false,\n scale: 1,\n currentScale: 1,\n isScaling: false,\n gesture: {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3\n },\n image: {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {}\n },\n velocity: {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n }\n }, Zoom)\n });\n var scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get: function get() {\n return scale;\n },\n set: function set(value) {\n if (scale !== value) {\n var imageEl = swiper.zoom.gesture.$imageEl ? swiper.zoom.gesture.$imageEl[0] : undefined;\n var slideEl = swiper.zoom.gesture.$slideEl ? swiper.zoom.gesture.$slideEl[0] : undefined;\n swiper.emit('zoomChange', value, imageEl, slideEl);\n }\n scale = value;\n }\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.zoom.enabled) {\n swiper.zoom.enable();\n }\n },\n destroy: function destroy(swiper) {\n swiper.zoom.disable();\n },\n touchStart: function touchStart(swiper, e) {\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchStart(e);\n },\n touchEnd: function touchEnd(swiper, e) {\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchEnd(e);\n },\n doubleTap: function doubleTap(swiper, e) {\n if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n swiper.zoom.toggle(e);\n }\n },\n transitionEnd: function transitionEnd(swiper) {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n swiper.zoom.onTransitionEnd();\n }\n },\n slideChange: function slideChange(swiper) {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n swiper.zoom.onTransitionEnd();\n }\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nimport { getWindow } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Lazy = {\n loadInSlide: function loadInSlide(index, loadInDuplicate) {\n if (loadInDuplicate === void 0) {\n loadInDuplicate = true;\n }\n var swiper = this;\n var params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var $slideEl = isVirtual ? swiper.$wrapperEl.children(\".\" + swiper.params.slideClass + \"[data-swiper-slide-index=\\\"\" + index + \"\\\"]\") : swiper.slides.eq(index);\n var $images = $slideEl.find(\".\" + params.elementClass + \":not(.\" + params.loadedClass + \"):not(.\" + params.loadingClass + \")\");\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images.push($slideEl[0]);\n }\n if ($images.length === 0) return;\n $images.each(function (imageEl) {\n var $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n var background = $imageEl.attr('data-background');\n var src = $imageEl.attr('data-src');\n var srcset = $imageEl.attr('data-srcset');\n var sizes = $imageEl.attr('data-sizes');\n var $pictureEl = $imageEl.parent('picture');\n swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, function () {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return;\n if (background) {\n $imageEl.css('background-image', \"url(\\\"\" + background + \"\\\")\");\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n if ($pictureEl.length) {\n $pictureEl.children('source').each(function (sourceEl) {\n var $source = $(sourceEl);\n if ($source.attr('data-srcset')) {\n $source.attr('srcset', $source.attr('data-srcset'));\n $source.removeAttr('data-srcset');\n }\n });\n }\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(\".\" + params.preloaderClass).remove();\n if (swiper.params.loop && loadInDuplicate) {\n var slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n var originalSlide = swiper.$wrapperEl.children(\"[data-swiper-slide-index=\\\"\" + slideOriginalIndex + \"\\\"]:not(.\" + swiper.params.slideDuplicateClass + \")\");\n swiper.lazy.loadInSlide(originalSlide.index(), false);\n } else {\n var duplicatedSlide = swiper.$wrapperEl.children(\".\" + swiper.params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + slideOriginalIndex + \"\\\"]\");\n swiper.lazy.loadInSlide(duplicatedSlide.index(), false);\n }\n }\n swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n },\n load: function load() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n swiperParams = swiper.params,\n slides = swiper.slides,\n activeIndex = swiper.activeIndex;\n var isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n var params = swiperParams.lazy;\n var slidesPerView = swiperParams.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children(\".\" + swiperParams.slideClass + \"[data-swiper-slide-index=\\\"\" + index + \"\\\"]\").length) {\n return true;\n }\n } else if (slides[index]) return true;\n return false;\n }\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n return $(slideEl).index();\n }\n if (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true;\n if (swiper.params.watchSlidesVisibility) {\n $wrapperEl.children(\".\" + swiperParams.slideVisibleClass).each(function (slideEl) {\n var index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n swiper.lazy.loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (var i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n swiper.lazy.loadInSlide(activeIndex);\n }\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) {\n var amount = params.loadPrevNextAmount;\n var spv = slidesPerView;\n var maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n var minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); // Next Slides\n\n for (var _i = activeIndex + slidesPerView; _i < maxIndex; _i += 1) {\n if (slideExist(_i)) swiper.lazy.loadInSlide(_i);\n } // Prev Slides\n\n for (var _i2 = minIndex; _i2 < activeIndex; _i2 += 1) {\n if (slideExist(_i2)) swiper.lazy.loadInSlide(_i2);\n }\n } else {\n var nextSlide = $wrapperEl.children(\".\" + swiperParams.slideNextClass);\n if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide));\n var prevSlide = $wrapperEl.children(\".\" + swiperParams.slidePrevClass);\n if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide));\n }\n }\n },\n checkInViewOnLoad: function checkInViewOnLoad() {\n var window = getWindow();\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var $scrollElement = swiper.params.lazy.scrollingElement ? $(swiper.params.lazy.scrollingElement) : $(window);\n var isWindow = $scrollElement[0] === window;\n var scrollElementWidth = isWindow ? window.innerWidth : $scrollElement[0].offsetWidth;\n var scrollElementHeight = isWindow ? window.innerHeight : $scrollElement[0].offsetHeight;\n var swiperOffset = swiper.$el.offset();\n var rtl = swiper.rtlTranslate;\n var inView = false;\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n var swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]];\n for (var i = 0; i < swiperCoord.length; i += 1) {\n var point = swiperCoord[i];\n if (point[0] >= 0 && point[0] <= scrollElementWidth && point[1] >= 0 && point[1] <= scrollElementHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n var passiveListener = swiper.touchEvents.start === 'touchstart' && swiper.support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (inView) {\n swiper.lazy.load();\n $scrollElement.off('scroll', swiper.lazy.checkInViewOnLoad, passiveListener);\n } else if (!swiper.lazy.scrollHandlerAttached) {\n swiper.lazy.scrollHandlerAttached = true;\n $scrollElement.on('scroll', swiper.lazy.checkInViewOnLoad, passiveListener);\n }\n }\n};\nexport default {\n name: 'lazy',\n params: {\n lazy: {\n checkInView: false,\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n scrollingElement: '',\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n lazy: _extends({\n initialImageLoaded: false\n }, Lazy)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n },\n init: function init(swiper) {\n if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\n if (swiper.params.lazy.checkInView) {\n swiper.lazy.checkInViewOnLoad();\n } else {\n swiper.lazy.load();\n }\n }\n },\n scroll: function scroll(swiper) {\n if (swiper.params.freeMode && !swiper.params.freeModeSticky) {\n swiper.lazy.load();\n }\n },\n 'scrollbarDragMove resize _freeModeNoMomentumRelease': function lazyLoad(swiper) {\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n transitionStart: function transitionStart(swiper) {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded) {\n swiper.lazy.load();\n }\n }\n },\n transitionEnd: function transitionEnd(swiper) {\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n swiper.lazy.load();\n }\n },\n slideChange: function slideChange(swiper) {\n if (swiper.params.lazy.enabled && swiper.params.cssMode) {\n swiper.lazy.load();\n }\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\nvar Controller = {\n LinearSpline: function LinearSpline(x, y) {\n var binarySearch = function search() {\n var maxIndex;\n var minIndex;\n var guess;\n return function (array, val) {\n minIndex = -1;\n maxIndex = array.length;\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n return maxIndex;\n };\n }();\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1; // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n\n var i1;\n var i3;\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0; // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1; // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n return this;\n },\n // xxx: for now i will just save one spline function to to\n getInterpolateFunction: function getInterpolateFunction(c) {\n var swiper = this;\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid) : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n },\n setTranslate: function setTranslate(_setTranslate, byController) {\n var swiper = this;\n var controlled = swiper.controller.control;\n var multiplier;\n var controlledTranslate;\n var Swiper = swiper.constructor;\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n var translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n if (swiper.params.controller.by === 'slide') {\n swiper.controller.getInterpolateFunction(c); // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n if (Array.isArray(controlled)) {\n for (var i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n },\n setTransition: function setTransition(duration, byController) {\n var swiper = this;\n var Swiper = swiper.constructor;\n var controlled = swiper.controller.control;\n var i;\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n if (c.params.autoHeight) {\n nextTick(function () {\n c.updateAutoHeight();\n });\n }\n c.$wrapperEl.transitionEnd(function () {\n if (!controlled) return;\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n c.transitionEnd();\n });\n }\n }\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n};\nexport default {\n name: 'controller',\n params: {\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n }\n },\n\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n controller: _extends({\n control: swiper.params.controller.control\n }, Controller)\n });\n },\n on: {\n update: function update(swiper) {\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n resize: function resize(swiper) {\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n observerUpdate: function observerUpdate(swiper) {\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n setTranslate: function setTranslate(swiper, translate, byController) {\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n },\n setTransition: function setTransition(swiper, duration, byController) {\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar History = {\n init: function init() {\n var swiper = this;\n var window = getWindow();\n if (!swiper.params.history) return;\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n var history = swiper.history;\n history.initialized = true;\n history.paths = History.getPathValues(swiper.params.url);\n if (!history.paths.key && !history.paths.value) return;\n history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var window = getWindow();\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n setHistoryPopState: function setHistoryPopState() {\n var swiper = this;\n swiper.history.paths = History.getPathValues(swiper.params.url);\n swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false);\n },\n getPathValues: function getPathValues(urlOverride) {\n var window = getWindow();\n var location;\n if (urlOverride) {\n location = new URL(urlOverride);\n } else {\n location = window.location;\n }\n var pathArray = location.pathname.slice(1).split('/').filter(function (part) {\n return part !== '';\n });\n var total = pathArray.length;\n var key = pathArray[total - 2];\n var value = pathArray[total - 1];\n return {\n key: key,\n value: value\n };\n },\n setHistory: function setHistory(key, index) {\n var swiper = this;\n var window = getWindow();\n if (!swiper.history.initialized || !swiper.params.history.enabled) return;\n var location;\n if (swiper.params.url) {\n location = new URL(swiper.params.url);\n } else {\n location = window.location;\n }\n var slide = swiper.slides.eq(index);\n var value = History.slugify(slide.attr('data-history'));\n if (swiper.params.history.root.length > 0) {\n var root = swiper.params.history.root;\n if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\n value = root + \"/\" + key + \"/\" + value;\n } else if (!location.pathname.includes(key)) {\n value = key + \"/\" + value;\n }\n var currentState = window.history.state;\n if (currentState && currentState.value === value) {\n return;\n }\n if (swiper.params.history.replaceState) {\n window.history.replaceState({\n value: value\n }, null, value);\n } else {\n window.history.pushState({\n value: value\n }, null, value);\n }\n },\n slugify: function slugify(text) {\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n },\n scrollToSlide: function scrollToSlide(speed, value, runCallbacks) {\n var swiper = this;\n if (value) {\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n var slide = swiper.slides.eq(i);\n var slideHistory = History.slugify(slide.attr('data-history'));\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n var index = slide.index();\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n }\n};\nexport default {\n name: 'history',\n params: {\n history: {\n enabled: false,\n root: '',\n replaceState: false,\n key: 'slides'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n history: _extends({}, History)\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.history.enabled) {\n swiper.history.init();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.params.history.enabled) {\n swiper.history.destroy();\n }\n },\n 'transitionEnd _freeModeNoMomentumRelease': function transitionEnd_freeModeNoMomentumRelease(swiper) {\n if (swiper.history.initialized) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n slideChange: function slideChange(swiper) {\n if (swiper.history.initialized && swiper.params.cssMode) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar HashNavigation = {\n onHashCange: function onHashCange() {\n var swiper = this;\n var document = getDocument();\n swiper.emit('hashChange');\n var newHash = document.location.hash.replace('#', '');\n var activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n if (newHash !== activeSlideHash) {\n var newIndex = swiper.$wrapperEl.children(\".\" + swiper.params.slideClass + \"[data-hash=\\\"\" + newHash + \"\\\"]\").index();\n if (typeof newIndex === 'undefined') return;\n swiper.slideTo(newIndex);\n }\n },\n setHash: function setHash() {\n var swiper = this;\n var window = getWindow();\n var document = getDocument();\n if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) return;\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, \"#\" + swiper.slides.eq(swiper.activeIndex).attr('data-hash') || '');\n swiper.emit('hashSet');\n } else {\n var slide = swiper.slides.eq(swiper.activeIndex);\n var hash = slide.attr('data-hash') || slide.attr('data-history');\n document.location.hash = hash || '';\n swiper.emit('hashSet');\n }\n },\n init: function init() {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n swiper.hashNavigation.initialized = true;\n var hash = document.location.hash.replace('#', '');\n if (hash) {\n var speed = 0;\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n var slide = swiper.slides.eq(i);\n var slideHash = slide.attr('data-hash') || slide.attr('data-history');\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n var index = slide.index();\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n if (swiper.params.hashNavigation.watchState) {\n $(window).on('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var window = getWindow();\n if (swiper.params.hashNavigation.watchState) {\n $(window).off('hashchange', swiper.hashNavigation.onHashCange);\n }\n }\n};\nexport default {\n name: 'hash-navigation',\n params: {\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n hashNavigation: _extends({\n initialized: false\n }, HashNavigation)\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.init();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.destroy();\n }\n },\n 'transitionEnd _freeModeNoMomentumRelease': function transitionEnd_freeModeNoMomentumRelease(swiper) {\n if (swiper.hashNavigation.initialized) {\n swiper.hashNavigation.setHash();\n }\n },\n slideChange: function slideChange(swiper) {\n if (swiper.hashNavigation.initialized && swiper.params.cssMode) {\n swiper.hashNavigation.setHash();\n }\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n/* eslint no-underscore-dangle: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\nvar Autoplay = {\n run: function run() {\n var swiper = this;\n var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n var delay = swiper.params.autoplay.delay;\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = nextTick(function () {\n var autoplayResult;\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();else if (autoplayResult === false) {\n swiper.autoplay.run();\n }\n }, delay);\n },\n start: function start() {\n var swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop: function stop() {\n var swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause: function pause(speed) {\n var swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].addEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n }\n },\n onVisibilityChange: function onVisibilityChange() {\n var swiper = this;\n var document = getDocument();\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n swiper.autoplay.pause();\n }\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n swiper.autoplay.run();\n swiper.autoplay.paused = false;\n }\n },\n onTransitionEnd: function onTransitionEnd(e) {\n var swiper = this;\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n },\n onMouseEnter: function onMouseEnter() {\n var swiper = this;\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n },\n onMouseLeave: function onMouseLeave() {\n var swiper = this;\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n },\n attachMouseEvents: function attachMouseEvents() {\n var swiper = this;\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', swiper.autoplay.onMouseEnter);\n swiper.$el.on('mouseleave', swiper.autoplay.onMouseLeave);\n }\n },\n detachMouseEvents: function detachMouseEvents() {\n var swiper = this;\n swiper.$el.off('mouseenter', swiper.autoplay.onMouseEnter);\n swiper.$el.off('mouseleave', swiper.autoplay.onMouseLeave);\n }\n};\nexport default {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n autoplay: _extends({}, Autoplay, {\n running: false,\n paused: false\n })\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n var document = getDocument();\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n swiper.autoplay.attachMouseEvents();\n }\n },\n beforeTransitionStart: function beforeTransitionStart(swiper, speed, internal) {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove: function sliderFirstMove(swiper) {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n touchEnd: function touchEnd(swiper) {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.run();\n }\n },\n destroy: function destroy(swiper) {\n swiper.autoplay.detachMouseEvents();\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n var document = getDocument();\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Fade = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var slides = swiper.slides;\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = swiper.slides.eq(i);\n var offset = $slideEl[0].swiperSlideOffset;\n var tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n var ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n var slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n $slideEl.css({\n opacity: slideOpacity\n }).transform(\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px)\");\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var slides = swiper.slides,\n $wrapperEl = swiper.$wrapperEl;\n slides.transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false;\n slides.transitionEnd(function () {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (var i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n }\n};\nexport default {\n name: 'effect-fade',\n params: {\n fadeEffect: {\n crossFade: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n fadeEffect: _extends({}, Fade)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'fade') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"fade\");\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTransition(duration);\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Cube = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides,\n swiperWidth = swiper.width,\n swiperHeight = swiper.height,\n rtl = swiper.rtlTranslate,\n swiperSize = swiper.size,\n browser = swiper.browser;\n var params = swiper.params.cubeEffect;\n var isHorizontal = swiper.isHorizontal();\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var wrapperRotate = 0;\n var $cubeShadowEl;\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $wrapperEl.append($cubeShadowEl);\n }\n $cubeShadowEl.css({\n height: swiperWidth + \"px\"\n });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $el.append($cubeShadowEl);\n }\n }\n }\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideIndex = i;\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n var slideAngle = slideIndex * 90;\n var round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n var progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n var tx = 0;\n var ty = 0;\n var tz = 0;\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n if (rtl) {\n tx = -tx;\n }\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n var transform = \"rotateX(\" + (isHorizontal ? 0 : -slideAngle) + \"deg) rotateY(\" + (isHorizontal ? slideAngle : 0) + \"deg) translate3d(\" + tx + \"px, \" + ty + \"px, \" + tz + \"px)\";\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n }\n $slideEl.transform(transform);\n if (params.slideShadows) {\n // Set shadows\n var shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $(\"
\");\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $(\"
\");\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n }\n $wrapperEl.css({\n '-webkit-transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\",\n '-moz-transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\",\n '-ms-transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\",\n 'transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\"\n });\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform(\"translate3d(0px, \" + (swiperWidth / 2 + params.shadowOffset) + \"px, \" + -swiperWidth / 2 + \"px) rotateX(90deg) rotateZ(0deg) scale(\" + params.shadowScale + \")\");\n } else {\n var shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n var multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n var scale1 = params.shadowScale;\n var scale2 = params.shadowScale / multiplier;\n var offset = params.shadowOffset;\n $cubeShadowEl.transform(\"scale3d(\" + scale1 + \", 1, \" + scale2 + \") translate3d(0px, \" + (swiperHeight / 2 + offset) + \"px, \" + -swiperHeight / 2 / scale2 + \"px) rotateX(-90deg)\");\n }\n }\n var zFactor = browser.isSafari || browser.isWebView ? -swiperSize / 2 : 0;\n $wrapperEl.transform(\"translate3d(0px,0,\" + zFactor + \"px) rotateX(\" + (swiper.isHorizontal() ? 0 : wrapperRotate) + \"deg) rotateY(\" + (swiper.isHorizontal() ? -wrapperRotate : 0) + \"deg)\");\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var $el = swiper.$el,\n slides = swiper.slides;\n slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n }\n};\nexport default {\n name: 'effect-cube',\n params: {\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n cubeEffect: _extends({}, Cube)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'cube') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"cube\");\n swiper.classNames.push(swiper.params.containerModifierClass + \"3d\");\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTransition(duration);\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Flip = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = slides.eq(i);\n var progress = $slideEl[0].progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n var offset = $slideEl[0].swiperSlideOffset;\n var rotate = -180 * progress;\n var rotateY = rotate;\n var rotateX = 0;\n var tx = -offset;\n var ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n if (swiper.params.flipEffect.slideShadows) {\n // Set shadows\n var shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $(\"
\");\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $(\"
\");\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n $slideEl.transform(\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px) rotateX(\" + rotateX + \"deg) rotateY(\" + rotateY + \"deg)\");\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var slides = swiper.slides,\n activeIndex = swiper.activeIndex,\n $wrapperEl = swiper.$wrapperEl;\n slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false; // eslint-disable-next-line\n\n slides.eq(activeIndex).transitionEnd(function onTransitionEnd() {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return; // if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\n\n eventTriggered = true;\n swiper.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (var i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n }\n};\nexport default {\n name: 'effect-flip',\n params: {\n flipEffect: {\n slideShadows: true,\n limitRotation: true\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n flipEffect: _extends({}, Flip)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'flip') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"flip\");\n swiper.classNames.push(swiper.params.containerModifierClass + \"3d\");\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTransition(duration);\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Coverflow = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var swiperWidth = swiper.width,\n swiperHeight = swiper.height,\n slides = swiper.slides,\n slidesSizesGrid = swiper.slidesSizesGrid;\n var params = swiper.params.coverflowEffect;\n var isHorizontal = swiper.isHorizontal();\n var transform = swiper.translate;\n var center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n var rotate = isHorizontal ? params.rotate : -params.rotate;\n var translate = params.depth; // Each slide offset from center\n\n for (var i = 0, length = slides.length; i < length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideSize = slidesSizesGrid[i];\n var slideOffset = $slideEl[0].swiperSlideOffset;\n var offsetMultiplier = (center - slideOffset - slideSize / 2) / slideSize * params.modifier;\n var rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n var rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; // var rotateZ = 0\n\n var translateZ = -translate * Math.abs(offsetMultiplier);\n var stretch = params.stretch; // Allow percentage to make a relative stretch for responsive sliders\n\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = parseFloat(params.stretch) / 100 * slideSize;\n }\n var translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n var translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n var scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); // Fix for ultra small values\n\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n var slideTransform = \"translate3d(\" + translateX + \"px,\" + translateY + \"px,\" + translateZ + \"px) rotateX(\" + rotateX + \"deg) rotateY(\" + rotateY + \"deg) scale(\" + scale + \")\";\n $slideEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (params.slideShadows) {\n // Set shadows\n var $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = $(\"
\");\n $slideEl.append($shadowBeforeEl);\n }\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = $(\"
\");\n $slideEl.append($shadowAfterEl);\n }\n if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n swiper.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n }\n};\nexport default {\n name: 'effect-coverflow',\n params: {\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n coverflowEffect: _extends({}, Coverflow)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'coverflow') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"coverflow\");\n swiper.classNames.push(swiper.params.containerModifierClass + \"3d\");\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTransition(duration);\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nimport { extend, isObject, bindModuleMethods } from '../../utils/utils';\nimport $ from '../../utils/dom';\nvar Thumbs = {\n init: function init() {\n var swiper = this;\n var thumbsParams = swiper.params.thumbs;\n if (swiper.thumbs.initialized) return false;\n swiper.thumbs.initialized = true;\n var SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n extend(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n extend(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n } else if (isObject(thumbsParams.swiper)) {\n swiper.thumbs.swiper = new SwiperClass(extend({}, thumbsParams.swiper, {\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n slideToClickedSlide: false\n }));\n swiper.thumbs.swiperCreated = true;\n }\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick);\n return true;\n },\n onThumbClick: function onThumbClick() {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n var clickedIndex = thumbsSwiper.clickedIndex;\n var clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n var slideToIndex;\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n var currentIndex = swiper.activeIndex;\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n var prevIndex = swiper.slides.eq(currentIndex).prevAll(\"[data-swiper-slide-index=\\\"\" + slideToIndex + \"\\\"]\").eq(0).index();\n var nextIndex = swiper.slides.eq(currentIndex).nextAll(\"[data-swiper-slide-index=\\\"\" + slideToIndex + \"\\\"]\").eq(0).index();\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex;\n }\n swiper.slideTo(slideToIndex);\n },\n update: function update(initial) {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n var slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n var autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n var useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n var currentThumbsIndex = thumbsSwiper.activeIndex;\n var newThumbsIndex;\n var direction;\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix(); // eslint-disable-next-line\n\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n } // Find actual thumbs index to slide to\n\n var prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(\"[data-swiper-slide-index=\\\"\" + swiper.realIndex + \"\\\"]\").eq(0).index();\n var nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(\"[data-swiper-slide-index=\\\"\" + swiper.realIndex + \"\\\"]\").eq(0).index();\n if (typeof prevThumbsIndex === 'undefined') {\n newThumbsIndex = nextThumbsIndex;\n } else if (typeof nextThumbsIndex === 'undefined') {\n newThumbsIndex = prevThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex : currentThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = nextThumbsIndex;\n } else {\n newThumbsIndex = prevThumbsIndex;\n }\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) {// newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n } // Activate thumbs\n\n var thumbsToActivate = 1;\n var thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (var i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children(\"[data-swiper-slide-index=\\\"\" + (swiper.realIndex + i) + \"\\\"]\").addClass(thumbActiveClass);\n }\n } else {\n for (var _i = 0; _i < thumbsToActivate; _i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + _i).addClass(thumbActiveClass);\n }\n }\n }\n};\nexport default {\n name: 'thumbs',\n params: {\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-container-thumbs'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n thumbs: _extends({\n swiper: null,\n initialized: false\n }, Thumbs)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n var thumbs = swiper.params.thumbs;\n if (!thumbs || !thumbs.swiper) return;\n swiper.thumbs.init();\n swiper.thumbs.update(true);\n },\n slideChange: function slideChange(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n update: function update(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n resize: function resize(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n observerUpdate: function observerUpdate(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n setTransition: function setTransition(swiper, duration) {\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n thumbsSwiper.setTransition(duration);\n },\n beforeDestroy: function beforeDestroy(swiper) {\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n if (swiper.thumbs.swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n }\n }\n};","import * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport MODAL_CLOSE from \"../../../img/ui/modal-close.svg\";\nimport { Color } from \"../../constants/legacy\";\n\ntype Props = {\n children: React.ReactNode;\n onDismiss: () => void;\n fadeInDuration?: number;\n};\n\nexport default function Modal({\n children,\n onDismiss,\n fadeInDuration = 200,\n}: Props) {\n // Fade-in when this first gets added to the DOM\n const [visible, setVisible] = React.useState(false);\n React.useEffect(() => {\n setVisible(true);\n }, []);\n\n return (\n \n ev.stopPropagation()}>\n \n \n \n\n {children}\n \n \n );\n}\n\nconst StyledMask = styled.div<{ visible: boolean; $fadeInDuration: number }>`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10;\n\n background-color: rgba(0, 0, 0, 0.5);\n\n opacity: ${(p) => (p.visible ? 1 : 0)};\n transition: opacity ${(p) => p.$fadeInDuration}ms;\n`;\n\nconst StyledModal = styled.div`\n background-color: #fff;\n border-radius: 8px;\n width: 560px;\n position: relative;\n max-height: 70vh;\n overflow-y: auto;\n\n @media (max-width: 460px) {\n padding: 40px 20px 20px;\n }\n`;\n\nconst StyledClose = styled.a`\n position: absolute;\n top: 15px;\n right: 15px;\n cursor: pointer;\n width: 42px;\n height: 42px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n transition: background-color 250ms;\n\n &:hover {\n background-color: rgba(0, 0, 0, 0.1);\n }\n`;\n\nconst StyledContent = styled.div`\n padding: 40px;\n`;\n","\"use strict\";\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar ReactIdSwiper_1 = __importDefault(require(\"./ReactIdSwiper\"));\n// React-id-swiper\nexports.default = ReactIdSwiper_1.default;","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyNCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGNpcmNsZSBjeD0iMTAiIGN5PSIxMCIgcj0iMTAiIGZpbGw9IiNGRTY2M0EiLz4KPHBhdGggZD0iTTEzLjQ5MjMgNC43OTVMOC4wMzkyOSAxMy4wNzlMNi4wMjUyOSAxMC4yNDhMNC44NDcyOSAxMS4zMTJMNy44MzAyOSAxNS40OTJIOC4zMjQyOUwxNC44OTgzIDUuNTc0TDEzLjQ5MjMgNC43OTVaIiBmaWxsPSIjMUEyRDNBIi8+Cjwvc3ZnPgo=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjUiIHZpZXdCb3g9IjAgMCAyOCAyNSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTIuMTExNzIgMjQuOUw0LjIxMTcyIDEzLjFIMC43MTE3MTlWMC42OTk5OTZIMTEuNTExN1YxMy4yTDguMjExNzIgMjQuOUgyLjExMTcyWk0xOC4zMTE3IDI0LjlMMjAuNDExNyAxMy4xSDE2LjkxMTdWMC42OTk5OTZIMjcuNzExN1YxMy4yTDI0LjQxMTcgMjQuOUgxOC4zMTE3WiIgZmlsbD0iI0ZFNjYzQSIvPgo8L3N2Zz4K\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjQ2ODg4IDEzLjcxODRDNS41Mzg1NCAxMy42NDg1IDUuNjIxMzEgMTMuNTkzMSA1LjcxMjQzIDEzLjU1NTNDNS44MDM1NCAxMy41MTc1IDUuOTAxMjIgMTMuNDk4IDUuOTk5ODggMTMuNDk4QzYuMDk4NTMgMTMuNDk4IDYuMTk2MjEgMTMuNTE3NSA2LjI4NzMzIDEzLjU1NTNDNi4zNzg0NCAxMy41OTMxIDYuNDYxMjEgMTMuNjQ4NSA2LjUzMDg4IDEzLjcxODRMMTEuOTk5OSAxOS4xODg5TDE3LjQ2ODkgMTMuNzE4NEMxNy42MDk3IDEzLjU3NzYgMTcuODAwNyAxMy40OTg0IDE3Ljk5OTkgMTMuNDk4NEMxOC4xOTkgMTMuNDk4NCAxOC4zOSAxMy41Nzc2IDE4LjUzMDkgMTMuNzE4NEMxOC42NzE3IDEzLjg1OTIgMTguNzUwOCAxNC4wNTAyIDE4Ljc1MDggMTQuMjQ5NEMxOC43NTA4IDE0LjQ0ODUgMTguNjcxNyAxNC42Mzk2IDE4LjUzMDkgMTQuNzgwNEwxMi41MzA5IDIwLjc4MDRDMTIuNDYxMiAyMC44NTAyIDEyLjM3ODQgMjAuOTA1NiAxMi4yODczIDIwLjk0MzVDMTIuMTk2MiAyMC45ODEzIDEyLjA5ODUgMjEuMDAwNyAxMS45OTk5IDIxLjAwMDdDMTEuOTAxMiAyMS4wMDA3IDExLjgwMzUgMjAuOTgxMyAxMS43MTI0IDIwLjk0MzVDMTEuNjIxMyAyMC45MDU2IDExLjUzODUgMjAuODUwMiAxMS40Njg5IDIwLjc4MDRMNS40Njg4OCAxNC43ODA0QzUuMzk5MDMgMTQuNzEwNyA1LjM0MzYyIDE0LjYyOCA1LjMwNTgxIDE0LjUzNjhDNS4yNjggMTQuNDQ1NyA1LjI0ODU0IDE0LjM0OCA1LjI0ODU0IDE0LjI0OTRDNS4yNDg1NCAxNC4xNTA3IDUuMjY4IDE0LjA1MzEgNS4zMDU4MSAxMy45NjE5QzUuMzQzNjIgMTMuODcwOCA1LjM5OTAzIDEzLjc4ODEgNS40Njg4OCAxMy43MTg0Wk01LjQ2ODg4IDEwLjI4MDRDNS41Mzg1NCAxMC4zNTAyIDUuNjIxMzEgMTAuNDA1NiA1LjcxMjQzIDEwLjQ0MzVDNS44MDM1NCAxMC40ODEzIDUuOTAxMjIgMTAuNTAwNyA1Ljk5OTg4IDEwLjUwMDdDNi4wOTg1MyAxMC41MDA3IDYuMTk2MjEgMTAuNDgxMyA2LjI4NzMzIDEwLjQ0MzVDNi4zNzg0NCAxMC40MDU2IDYuNDYxMjEgMTAuMzUwMiA2LjUzMDg4IDEwLjI4MDRMMTEuOTk5OSA0LjgwOTg5TDE3LjQ2ODkgMTAuMjgwNEMxNy42MDk3IDEwLjQyMTIgMTcuODAwNyAxMC41MDAzIDE3Ljk5OTkgMTAuNTAwM0MxOC4xOTkgMTAuNTAwMyAxOC4zOSAxMC40MjEyIDE4LjUzMDkgMTAuMjgwNEMxOC42NzE3IDEwLjEzOTYgMTguNzUwOCA5Ljk0ODU1IDE4Ljc1MDggOS43NDkzOUMxOC43NTA4IDkuNTUwMjIgMTguNjcxNyA5LjM1OTIyIDE4LjUzMDkgOS4yMTgzOUwxMi41MzA5IDMuMjE4MzlDMTIuNDYxMiAzLjE0ODU0IDEyLjM3ODQgMy4wOTMxMyAxMi4yODczIDMuMDU1MzJDMTIuMTk2MiAzLjAxNzUxIDEyLjA5ODUgMi45OTgwNSAxMS45OTk5IDIuOTk4MDVDMTEuOTAxMiAyLjk5ODA1IDExLjgwMzUgMy4wMTc1MSAxMS43MTI0IDMuMDU1MzJDMTEuNjIxMyAzLjA5MzEzIDExLjUzODUgMy4xNDg1NCAxMS40Njg5IDMuMjE4MzlMNS40Njg4OCA5LjIxODM5QzUuMzk5MDMgOS4yODgwNSA1LjM0MzYyIDkuMzcwODIgNS4zMDU4MSA5LjQ2MTk0QzUuMjY4IDkuNTUzMDUgNS4yNDg1NCA5LjY1MDc0IDUuMjQ4NTQgOS43NDkzOUM1LjI0ODU0IDkuODQ4MDQgNS4yNjggOS45NDU3MiA1LjMwNTgxIDEwLjAzNjhDNS4zNDM2MiAxMC4xMjggNS4zOTkwMyAxMC4yMTA3IDUuNDY4ODggMTAuMjgwNFoiIGZpbGw9IiMwN0U4QzciLz4KPC9zdmc+Cg==\"","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { Color } from \"../../constants/legacy\";\n\ntype Props = {\n title: string;\n};\n\nexport default function BannerHeading({ title }: Props) {\n return (\n \n

{title}

\n
\n );\n}\n\nconst StyledBanner = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n background: ${Color.orange};\n height: 13.125rem;\n\n @media (min-width: 75rem) {\n height: 11.25rem;\n }\n\n h1 {\n font-size: 2.125rem;\n color: ${Color.darkBlue};\n margin: 0;\n }\n`;\n","import * as React from \"react\";\nimport { Color } from \"../../constants/legacy\";\nimport styled from \"styled-components\";\nimport { Button } from \".\";\nimport { useEbookPromptContext } from \"../../contexts\";\n\n/**\n * Insert this onto the page to have a prompt display in the bottom corner of\n * the screen (desktop) or modal filling whole screen (mobile) after a period\n * of inactivity, prompting the user to download the ebook.\n */\nexport default function EbookPrompt() {\n const { shown, setShown } = useEbookPromptContext();\n const [visible, setVisible] = React.useState(false);\n\n const idleTimeoutRef = React.useRef(null);\n const onInteraction = React.useCallback(() => {\n if (shown) return;\n\n if (idleTimeoutRef.current) {\n clearTimeout(idleTimeoutRef.current);\n }\n\n idleTimeoutRef.current = setTimeout(() => {\n setVisible(true);\n setShown(true);\n }, 7000);\n }, []);\n\n React.useEffect(() => {\n if (!window || shown) return;\n\n window.document.addEventListener(\"mousemove\", onInteraction);\n window.document.addEventListener(\"touchstart\", onInteraction);\n window.document.addEventListener(\"touchmove\", onInteraction);\n return () => {\n window.document.removeEventListener(\"mousemove\", onInteraction);\n window.document.removeEventListener(\"touchstart\", onInteraction);\n window.document.removeEventListener(\"touchmove\", onInteraction);\n };\n }, []);\n\n return (\n \n setVisible(false)}>\n
\n
\n \n\n

Free eBook: The Future of Document Processing in Logistics

\n

\n Learn how automation is reshaping document data capture for freight\n forwarders\n

\n \n \n );\n}\n\nconst StyledContainer = styled(\"div\")<{ $visible: boolean }>`\n position: fixed;\n bottom: 20px;\n right: 20px;\n width: 350px;\n padding: 60px 30px 30px;\n background-color: #000;\n transition: transform 500ms;\n transform: translateY(${(p) => (p.$visible ? 0 : \"600px\")});\n max-height: 460px;\n\n h2 {\n color: ${Color.white};\n font-size: 24px;\n margin: 0 0 10px;\n }\n\n p {\n color: ${Color.cyan};\n font-size: 18px;\n margin: 0 0 25px;\n }\n\n @media (max-width: 500px) {\n left: 20px;\n width: auto;\n }\n`;\n\nconst StyledClose = styled.a`\n width: 24px;\n height: 24px;\n position: absolute;\n top: 16px;\n right: 16px;\n border: 2px ${Color.cyan} solid;\n border-radius: 50%;\n cursor: pointer;\n transition: border-color 0.25s;\n\n div {\n height: 12px;\n width: 0px;\n border: 1px ${Color.cyan} solid;\n border-radius: 1px;\n position: absolute;\n top: 4px;\n left: 9px;\n transition: border-color 0.25s;\n\n &:first-of-type {\n transform: rotate(45deg);\n }\n\n &:last-of-type {\n transform: rotate(-45deg);\n }\n }\n\n &:hover {\n border-color: ${Color.white};\n div {\n border-color: ${Color.white};\n }\n }\n`;\n","import * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { Color } from \"../../constants/legacy\";\nimport FAQ_CONTRACT from \"../../../img/ui/faq_contract.svg\";\nimport FAQ_EXPAND from \"../../../img/ui/faq_expand.svg\";\nimport FormattedRichText from \"./FormattedRichText\";\n\ntype Props = {\n question: string;\n answer: any;\n};\n\nexport default function Faq({ question, answer }: Props) {\n const [expanded, setExpanded] = React.useState(false);\n const answerRef = React.useRef(null);\n const [answerHeight, setAnswerHeight] = React.useState(null);\n\n React.useEffect(() => {\n const height = answerRef.current?.clientHeight;\n if (height) setAnswerHeight(height);\n }, [answerRef.current]);\n\n let height: string | number = \"auto\";\n if (answerHeight) {\n height = expanded ? answerHeight : 0;\n }\n\n return (\n
\n setExpanded(!expanded)}>\n {question}\n \n \n \n
\n \n
\n
\n
\n );\n}\n\nconst StyledQuestion = styled.a`\n background-color: ${Color.blue};\n padding: 15px 15px 15px 30px;\n font-size: 22px;\n display: flex;\n margin-top: 1px;\n cursor: pointer;\n\n > span {\n flex: 1;\n }\n`;\n\nconst StyledAnswer = styled.div`\n > div {\n padding: 20px 30px 40px;\n }\n\n overflow: hidden;\n transition: height 0.4s;\n\n p:last-child {\n margin-bottom: 0;\n }\n`;\n","import { FixedObject } from \"gatsby-image\";\n\nimport Img from \"gatsby-image\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport HorizontalContainer from \"./HorizontalContainer\";\nimport { Color } from \"../../constants/legacy\";\nimport FormattedRichText from \"./FormattedRichText\";\n\ntype Props = {\n fixedImage?: FixedObject | undefined;\n customBackground?: React.ReactNode;\n title: string;\n titleTag?: \"h1\" | \"h2\";\n subTitle?: string;\n preTitle?: string;\n preTitleColor?: \"white\" | \"orange\";\n button?: React.ReactNode;\n center?: boolean;\n backgroundColor?: \"blue\" | \"darkBlue\";\n darkContent?: boolean;\n minHeight?: number;\n /**\n * Special mode used in case studies, where the content is wider than usual,\n * and uses a smaller font.\n */\n denseContent?: boolean;\n offsetBottom?: number;\n leftLogoSrc?: string;\n};\n\n/**\n * Hero section, used at the top of many pages\n */\nexport default function Hero({\n fixedImage,\n customBackground,\n title,\n titleTag: TitleTag = \"h1\",\n subTitle,\n preTitle,\n preTitleColor = \"white\",\n button,\n center = false,\n backgroundColor = \"blue\",\n darkContent = false,\n minHeight = 600,\n denseContent = false,\n offsetBottom,\n leftLogoSrc,\n}: Props) {\n return (\n \n \n {fixedImage && }\n {customBackground}\n \n \n {leftLogoSrc && (\n \n
\n \n
\n
\n )}\n {preTitle && (\n {preTitle}\n )}\n {title}\n {subTitle && (\n \n \n \n )}\n {button}\n {offsetBottom &&
}\n \n \n );\n}\n\nconst StyledContainer = styled(\"section\")<{\n $backgroundColor: \"blue\" | \"darkBlue\";\n}>`\n position: relative;\n background-color: ${(p) => Color[p.$backgroundColor]};\n`;\n\nconst StyledLayer = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 0;\n pointer-events: none;\n overflow: hidden;\n`;\n\n// Despite fetching the image at a fixed resolution, we want its width to be\n// freely adjusted to fill up the available space.\nconst StyledImg = styled(Img)`\n width: 100% !important;\n height: 100% !important;\n opacity: 0.5;\n` as any;\n\ntype StyledAreaMainProps = {\n $center: boolean;\n $darkContent: boolean;\n $denseContent: boolean;\n $minHeight: number;\n $hasLeftLogo: boolean;\n};\nconst StyledAreaMain = styled(HorizontalContainer)`\n position: relative;\n ${(p) => p.$hasLeftLogo && `left: 130px`};\n z-index: 1;\n min-height: ${(p) => p.$minHeight}px;\n padding: 20px 0;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n align-items: ${(p) => (p.$center ? \"center\" : \"flex-start\")};\n text-align: ${(p) => (p.$center ? \"center\" : \"left\")};\n justify-content: center;\n color: ${(p) => (p.$darkContent ? Color.darkBlue : Color.white)};\n\n @media (max-width: 800px) {\n left: 0;\n }\n\n h1,\n h2 {\n font-size: ${(p) => (p.$denseContent ? \"30px\" : \"42px\")};\n font-weight: 700;\n max-width: ${(p) =>\n p.$center ? \"740px\" : p.$denseContent ? \"620px\" : \"530px\"};\n line-height: 1.3;\n margin-bottom: 30px;\n }\n`;\n\nconst StyledPreTitle = styled.div<{ $color: \"white\" | \"orange\" }>`\n color: ${(p) => Color[p.$color]};\n font-size: 18px;\n font-weight: 600;\n margin-bottom: 20px;\n`;\n\nconst StyledSubTitle = styled.div`\n margin-bottom: 40px;\n max-width: 620px;\n`;\n\nconst StyledLeftLogo = styled.div`\n position: relative;\n\n > div {\n width: 100px;\n height: 100px;\n background-color: ${Color.blue};\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: 54px;\n left: -130px;\n\n @media (max-width: 800px) {\n position: static;\n margin-bottom: 20px;\n }\n\n img {\n width: 80px;\n height: 80px;\n object-fit: contain;\n }\n }\n`;\n","import * as React from \"react\";\nimport styled from \"styled-components\";\n\ntype Props = {\n src: string;\n};\n\nexport default function HeroCoverBackground({ src }: Props) {\n return ;\n}\n\nconst StyledHeroBg = styled.img`\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n object-fit: cover;\n`;\n","import styled from \"styled-components\";\n\nexport default styled.div`\n display: flex;\n flex-wrap: wrap;\n margin: 0 -10px;\n`;\n","import { graphql } from \"gatsby\";\nimport Img from \"gatsby-image\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\nimport { format, parseISO } from \"date-fns\";\nimport { Color } from \"../../constants/legacy\";\nimport { fixedImage, fluidImage } from \"../../prismic-tools\";\n\ntype Props = {\n media: GatsbyTypes.MediaResourceTileFragment;\n};\n\nexport const query = graphql`\n fragment MediaResourceTile on PrismicMediaResourceDataType {\n title\n image {\n alt\n dimensions {\n width\n height\n }\n url\n }\n external_url\n posted_at\n source_name\n source_logo_image {\n alt\n dimensions {\n width\n height\n }\n url\n }\n }\n`;\n\nexport default function MediaResourceTile({ media }: Props) {\n const imageFluid = fluidImage(media.image, 400);\n const sourceLogoImageFixed =\n media.image && fixedImage(media.image, { w: 200, h: 100 });\n\n return (\n \n \n \n {imageFluid && }\n {sourceLogoImageFixed && (\n \n )}\n \n {media.title}\n \n Read more\n \n \n \n {media.posted_at && format(parseISO(media.posted_at), \"d MMMM y\")}\n \n {media.source_name}\n \n );\n}\n\nconst StyledContainer = styled.div`\n width: 33%;\n padding: 10px;\n\n @media (max-width: 800px) {\n width: 50%;\n }\n\n @media (max-width: 500px) {\n width: 100%;\n }\n`;\n\nconst StyledTile = styled.a`\n height: 310px;\n display: flex;\n flex-direction: column;\n background-color: ${Color.blue};\n box-shadow: 0 1px 6px #0007;\n cursor: pointer;\n margin-bottom: 4px;\n\n &:hover {\n background-color: ${Color.darkBlue};\n }\n`;\n\nconst StyledAreaImage = styled.div`\n display: flex;\n flex-direction: column;\n height: 140px;\n background-color: #fff4;\n position: relative;\n\n .logo {\n position: absolute;\n top: 0;\n right: 0;\n width: 110px;\n height: 60px;\n padding: 5px;\n background-color: #fff;\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n width: 100px;\n height: 50px;\n }\n }\n`;\n\nconst StyledImg = styled(Img)`\n height: 140px;\n` as any;\n\nconst StyledAreaTitle = styled.div`\n box-sizing: border-box;\n height: 100px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n align-items: flex;\n padding: 20px 25px;\n color: ${Color.white};\n font-size: 17px;\n font-weight: 500;\n`;\n\nconst StyledAreaBelow = styled.div`\n height: 70px;\n padding: 0 25px;\n display: flex;\n justify-content: flex-end;\n align-items: center;\n color: ${Color.orange};\n font-size: 11px;\n`;\n\nconst StyledBelowItem = styled.div`\n text-align: center;\n font-weight: 300;\n font-size: 11px;\n text-transform: uppercase;\n line-height: 1.3;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n`;\n","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport TICK_BOX from \"../../../img/legacy/tick-box.svg\";\nimport Cols from \"./Cols\";\nimport Col from \"./Col\";\nimport HorizontalContainer from \"./HorizontalContainer\";\nimport { Dimen, Color } from \"../../constants/legacy\";\nimport FormattedRichText from \"./FormattedRichText\";\n\ntype Props = {\n prismicImage:\n | { url: string | undefined; alt: string | undefined }\n | undefined;\n heading?: string;\n /**\n * Pass Prismic Rich Text directly in\n */\n prismicBullets: undefined | ReadonlyArray<{ text: string }>;\n /**\n * By default image is on the left (naturally collapses above on mobile);\n * reverse=true can change this.\n */\n reverse?: boolean;\n dark?: boolean;\n};\n\n/**\n * Section with an image on one side, and heading + bullet points on the other.\n */\nexport default function SectionBullets({\n heading,\n prismicImage,\n prismicBullets,\n reverse = false,\n dark = false,\n}: Props) {\n return (\n \n \n \n {prismicImage?.url && (\n <>\n \n \n \n \n \n )}\n \n {heading && {heading}}\n {prismicBullets?.map((bullet) =>\n !bullet ? null : (\n \n \n
\n \n
\n
\n )\n )}\n \n
\n
\n
\n );\n}\n\nconst StyledSection = styled(\"section\")<{ dark: boolean }>`\n background-color: ${(p) => (p.dark ? Color.darkBlue : Color.blue)};\n padding: 120px 0;\n color: ${Color.white};\n\n @media (max-width: ${Dimen.breakpointSectionBullets}px) {\n padding: 50px 0;\n }\n`;\n\nconst StyledImage = styled.img`\n margin-bottom: 40px;\n\n @media (max-width: ${Dimen.breakpointSectionBullets}px) {\n display: block;\n margin-left: auto;\n margin-right: auto;\n }\n`;\n\nconst StyledHeading = styled.h2`\n font-size: 28px;\n font-weight: 700;\n margin: 10px 0 30px;\n\n @media (max-width: ${Dimen.breakpointSectionBullets}px) {\n text-align: center;\n font-size: 22px;\n padding: 0 10px;\n }\n`;\n\nconst StyledBullet = styled.div`\n display: flex;\n align-items: flex-start;\n margin: 0 0 20px;\n font-size: 15px;\n\n > img {\n padding-top: 2px;\n }\n\n > div {\n flex: 1;\n margin: 0 0 0 12px;\n }\n`;\n","import * as React from \"react\";\nimport styled from \"styled-components\";\n\ntype Logo = {\n src: string;\n alt: string | undefined;\n};\n\ntype Props = {\n logos: Logo[];\n};\n\n/**\n * A set of logos, which may show all on one line, or wrap over to multiple if\n * there are too many.\n */\nexport default function WrappingLogos({ logos }: Props) {\n let maxPerLine = 4;\n if (logos.length === 3 || logos.length === 5) maxPerLine = 3;\n\n return (\n \n {logos.map((logo, i) => (\n \n \n \n ))}\n \n );\n}\n\nconst StyledContainer = styled.div`\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n`;\n\nconst StyledLogo = styled(\"div\")<{ maxPerLine: number }>`\n /* Could feasibly go down to 20% here */\n width: ${(p) => (p.maxPerLine === 4 ? \"25%\" : \"33%\")};\n height: 100px;\n padding: 25px;\n\n img {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n\n @media (max-width: 780px) {\n width: 33%;\n }\n\n @media (max-width: 600px) {\n width: 50%;\n }\n\n @media (max-width: 300px) {\n width: 100%;\n }\n`;\n","import { graphql } from \"gatsby\";\nimport * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport { Color } from \"../../constants/legacy\";\nimport HorizontalContainer from \"./HorizontalContainer\";\nimport Section from \"./Section\";\nimport WrappingLogos from \"./WrappingLogos\";\nimport Button from \"./Button\";\n\ntype Props = {\n heading: string | undefined;\n home: GatsbyTypes.SectionHomeLogosFragment;\n background?: \"cyan\" | \"white\";\n showCaseStudiesLink?: boolean;\n};\n\nexport const query = graphql`\n fragment SectionHomeLogos on PrismicHomePageData {\n logos {\n logo_image {\n alt\n dimensions {\n width\n height\n }\n url\n }\n }\n }\n`;\n\nexport default function SectionHomeLogos({\n heading,\n home,\n background,\n showCaseStudiesLink,\n}: Props) {\n if (!home.logos) return null;\n\n const logos = home.logos?.map((logo) => ({\n src: logo?.logo_image?.url || \"\",\n alt: logo?.logo_image?.alt,\n }));\n\n return (\n \n \n {heading}\n \n\n {showCaseStudiesLink && (\n \n \n \n )}\n \n \n );\n}\n\nconst StyledLogosHeading = styled.h2`\n font-size: 20px;\n font-weight: 600;\n text-align: center;\n`;\n\nconst StyledSectionLogos = styled(Section)<{ $background: \"cyan\" | \"white\" }>`\n background-color: ${(p) => Color[p.$background]};\n`;\n\nconst StyledButtonWrap = styled.div`\n display: flex;\n justify-content: center;\n margin-top: 30px;\n`;\n","import * as React from \"react\";\nimport styled from \"styled-components\";\n\nimport QUOTE_LEFT from \"../../../../img/pages/home/quote_left.svg\";\nimport QUOTE_RIGHT from \"../../../../img/pages/home/quote_right.svg\";\nimport { Color } from \"../../../constants/legacy\";\n\ntype Props = {\n logoImage: string | undefined;\n text: string;\n source: string | undefined;\n};\n\nexport default function QuoteSlide({ logoImage, text, source }: Props) {\n return (\n \n {logoImage && }\n

{text}

\n {source && {source}}\n \n \n
\n );\n}\n\nconst StyledContainer = styled.blockquote`\n width: 560px;\n min-width: 560px;\n height: 250px;\n margin: 0;\n display: block;\n color: ${Color.lightGrey};\n text-align: center;\n position: relative;\n\n p {\n font-size: 18px;\n margin: 0 40px;\n }\n\n cite {\n display: block;\n font-weight: 300;\n font-size: 15;\n margin-top: 22px;\n font-style: normal;\n }\n\n .quote-left {\n position: absolute;\n top: 70px;\n left: 0;\n }\n\n .quote-right {\n position: absolute;\n top: 70px;\n right: 0;\n }\n`;\n\nconst StyledLogo = styled.img`\n height: 50px;\n margin-bottom: 10px;\n`;\n","import { graphql } from \"gatsby\";\nimport * as React from \"react\";\nimport Swiper, { ReactIdSwiperProps } from \"react-id-swiper\";\nimport styled from \"styled-components\";\n\nimport Section from \"./Section\";\nimport { QuoteSlide } from \"./home\";\nimport { Color } from \"../../constants/legacy\";\n\ntype Props = {\n home: GatsbyTypes.SectionQuotesLegacyFragment;\n};\n\nexport const query = graphql`\n fragment SectionQuotesLegacy on PrismicHomePageData {\n quotes {\n quote_content\n quote_source\n logo_white_image {\n dimensions {\n width\n height\n }\n url\n }\n }\n }\n`;\n\nexport default function SectionQuotes({ home }: Props) {\n if (!home.quotes) return null;\n\n const params: ReactIdSwiperProps = {\n slidesPerView: 1,\n spaceBetween: 80,\n centeredSlides: true,\n ...(home.quotes.length > 1\n ? {\n pagination: {\n el: \".swiper-pagination\",\n clickable: true,\n },\n }\n : {}),\n };\n\n return (\n \n \n {home.quotes\n ?.filter((quote) => quote?.quote_content)\n .map((quote, i) => {\n if (!quote) throw new Error(\"SectionQuotes logic error\");\n return (\n \n \n
\n );\n })}\n \n \n );\n}\n\nconst StyledSection = styled(Section)`\n background-color: ${Color.darkBlue};\n color: ${Color.white};\n display: none;\n\n @media (min-width: 48rem) {\n display: block;\n }\n`;\n","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport ICON_FACEBOOK from \"../../../img/legacy/facebook.svg\";\nimport ICON_LINKEDIN from \"../../../img/legacy/linkedin.svg\";\nimport ICON_TWITTER from \"../../../img/legacy/twitter.svg\";\nimport ICON_YOUTUBE from \"../../../img/legacy/youtube.svg\";\nimport HorizontalContainer from \"./HorizontalContainer\";\nimport { Color } from \"../../constants/legacy\";\n\nexport default function SectionSocials() {\n return (\n \n \n \n

Follow Shipamax

\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nconst StyledSection = styled.div`\n background-color: ${Color.blue};\n`;\n\nconst StyledWrap = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 60px 0;\n\n > h2 {\n margin: 0 0 30px;\n font-size: 17px;\n font-weight: 500;\n text-align: center;\n color: #fff;\n }\n`;\n\nconst StyledIcons = styled.div`\n display: flex;\n align-items: center;\n transition: opacity 0.5s;\n\n > a {\n margin: 0 12px;\n &:hover {\n opacity: 0.75;\n }\n }\n`;\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDMiIGhlaWdodD0iNDQiIHZpZXdCb3g9IjAgMCA0MyA0NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgaWQ9IlR3aXR0ZXIiPgo8ZyBpZD0iVHdpdHRlcl8yIj4KPHJlY3QgaWQ9IlJlY3RhbmdsZSIgeT0iMC43MDMxMjUiIHdpZHRoPSI0Mi45NzciIGhlaWdodD0iNDIuOTc3IiByeD0iMjEuNDg4NSIgZmlsbD0iIzA3RThDNyIvPgo8cGF0aCBpZD0iUGF0aCIgZD0iTTMyLjAxOTcgMTcuNTQ3QzMyLjAxOTcgMTcuNzgyIDMyLjAxOTcgMTguMDE3MSAzMi4wMTk3IDE4LjIxODVDMzIuMDE5NyAyNS4xNjg3IDI2LjcxNDcgMzMuMTkzMyAxNy4wNDQ5IDMzLjE5MzNDMTQuMDU2NiAzMy4xOTMzIDExLjMwMzQgMzIuMzIwNCA4Ljk1MzEyIDMwLjg0M0M5LjM1NjAzIDMwLjg3NjYgOS43OTI1MiAzMC45MTAyIDEwLjE5NTQgMzAuOTEwMkMxMi42NDY1IDMwLjkxMDIgMTQuOTI5NiAzMC4wNzA4IDE2Ljc0MjcgMjguNjYwNkMxNC40MjYgMjguNjI3IDEyLjQ3ODYgMjcuMDgyNSAxMS44NDA2IDI1LjAwMDhDMTIuMTc2NCAyNS4wNjggMTIuNDc4NiAyNS4xMDE2IDEyLjg0NzkgMjUuMTAxNkMxMy4zMTggMjUuMTAxNiAxMy43ODggMjUuMDM0NCAxNC4yMjQ1IDI0LjkwMDFDMTEuODA3MSAyNC40MyA5Ljk5Mzk3IDIyLjMxNDggOS45OTM5NyAxOS43NjNDOS45OTM5NyAxOS43Mjk0IDkuOTkzOTcgMTkuNzI5NCA5Ljk5Mzk3IDE5LjY5NTlDMTAuNjk5MSAyMC4wOTg4IDExLjUwNDkgMjAuMzMzOCAxMi4zNzc5IDIwLjM2NzRDMTAuOTY3NyAxOS40MjczIDEwLjAyNzUgMTcuODE1NiAxMC4wMjc1IDE1Ljk2OUMxMC4wMjc1IDE0Ljk5NTMgMTAuMjk2MiAxNC4wODg3IDEwLjczMjYgMTMuMzE2NUMxMy4zMTggMTYuNTA2MiAxNy4yMTI4IDE4LjU4NzkgMjEuNTc3NiAxOC44MjI5QzIxLjQ3NjkgMTguNDUzNiAyMS40NDMzIDE4LjAxNzEgMjEuNDQzMyAxNy42MTQyQzIxLjQ0MzMgMTQuNjkzMSAyMy43OTM2IDEyLjM0MjggMjYuNzE0NyAxMi4zNDI4QzI4LjIyNTYgMTIuMzQyOCAyOS42MDIyIDEyLjk4MDcgMzAuNTQyMyAxMy45ODhDMzEuNzUxMSAxMy43NTMgMzIuODU5MSAxMy4zMTY1IDMzLjg5OTkgMTIuNzEyMUMzMy40OTcgMTMuOTU0NCAzMi42NTc2IDE0Ljk2MTcgMzEuNTgzMiAxNS42MzMyQzMyLjY1NzYgMTUuNDk4OSAzMy42NjQ5IDE1LjIzMDMgMzQuNjA1IDE0Ljc5MzhDMzMuOTMzNSAxNS44NjgyIDMzLjA2MDUgMTYuODA4MyAzMi4wMTk3IDE3LjU0N1oiIGZpbGw9IiMxQTJEM0EiLz4KPC9nPgo8L2c+Cjwvc3ZnPgo=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDQiIGhlaWdodD0iNDQiIHZpZXdCb3g9IjAgMCA0NCA0NCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgaWQ9IkZhY2Vib29rIj4KPGcgaWQ9IkZhY2Vib29rXzIiPgo8cmVjdCBpZD0iUmVjdGFuZ2xlIiB4PSIwLjUxNTYyNSIgeT0iMC43MDMxMjUiIHdpZHRoPSI0Mi45NzciIGhlaWdodD0iNDIuOTc3IiByeD0iMjEuNDg4NSIgZmlsbD0iIzA3RThDNyIvPgo8cGF0aCBpZD0iVmVjdG9yIiBkPSJNMjMuNDM5IDM2LjUxNjlWMjMuNDQ3NkgyNy44MjU4TDI4LjQ4MjYgMTguMzU0M0gyMy40MzlWMTUuMTAyNEMyMy40MzkgMTMuNjI3OCAyMy44NDg1IDEyLjYyMjggMjUuOTYzMyAxMi42MjI4TDI4LjY2MDQgMTIuNjIxNlY4LjA2NjJDMjguMTkzNyA4LjAwNDM2IDI2LjU5MjggNy44NjU3MiAyNC43MzAzIDcuODY1NzJDMjAuODQxNyA3Ljg2NTcyIDE4LjE3OTQgMTAuMjM5MiAxOC4xNzk0IDE0LjU5ODNWMTguMzU0NUgxMy43ODEyVjIzLjQ0NzhIMTguMTc5M1YzNi41MTdMMjMuNDM5IDM2LjUxNjlaIiBmaWxsPSIjMUEyRDNBIi8+CjwvZz4KPC9nPgo8L3N2Zz4K\""],"sourceRoot":""}