{"version":3,"file":"BasicSlideshow.BPtoydlP.mjs","names":["useRef","useState","useMemo","_Fragment"],"sources":["https:/framerusercontent.com/modules/X2vdOY2UmBHjClJT6i6r/xe7YyVfEi6kS6tqY1j2P/BasicSlideshow.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect,useMemo,useRef,useState,startTransition}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";const ZOOM_DURATION=6;// How fast an in-flight transition wraps up once another navigation request\n// is already queued behind it, so rapid clicking/key-pressing chains right\n// away instead of always waiting out the full configured Speed.\nconst FAST_FORWARD_DURATION=.06;// The blurred cover-fit backdrop shown behind \"contain\" images.\nconst BACKDROP_BLUR=28;// How far past the frame's own edges the backdrop's box extends (a fixed\n// pixel margin, not a scale) so object-fit: cover always has real image\n// data to bleed the blur into on every side, regardless of the frame's\n// aspect ratio - a percentage scale gives uneven margins depending on the\n// crop, which is exactly what let the blur's edge run out of room and\n// visibly darken.\nconst BACKDROP_MARGIN=70;// How much of an over-drag past a boundary actually shows as visual\n// stretch, and the cap on that stretch, for the desktop-drag rubber band.\nconst DRAG_RESISTANCE=.35;const DRAG_MAX_OVERSHOOT=60;/**\n * Basic Slideshow\n *\n * A simple swipeable image slideshow with a glass-style dot pagination.\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerIntrinsicWidth 300\n * @framerIntrinsicHeight 400\n */export default function BasicSlideshow(props){const{source=\"manual\",slides=defaultSlides,image1,image2,image3,image4,image5,image6,image7,image8,image9,image10,url1,url2,url3,url4,url5,url6,url7,url8,url9,url10,fit=\"cover\",effect=\"slide\",transitionDuration=.4,desktopDrag=false,pagination,arrows,counter,autoplay,zoom,fill=\"#000000\",border,cornerRadius=\"0px\",style}=props;const{enabled:autoplayEnabled=true,duration:autoplayDuration=6,loop:autoplayLoop=true,stopOnInteraction:autoplayStopOnInteraction=true}=autoplay||{};const{enabled:zoomEnabled=true,scale:zoomScale=1.07}=zoom||{};// A deactivated slide's zoom should only ever reset once it's safely\n// out of view, so give it a margin comfortably past the transition.\nconst zoomResetDelay=transitionDuration*1e3+300;const{enabled:showPagination=true,activeColor:activeDotColor=\"#FFFFFF\",inactiveColor:inactiveDotColor=\"rgba(255, 255, 255, 0.45)\",background:pillBackground=\"rgba(0, 0, 0, 0.4)\",border:pillBorder={borderWidth:1,borderStyle:\"solid\",borderColor:\"rgba(255, 255, 255, 0.05)\"},padding:pillPadding=\"8px 13px 8px 13px\",offset:pillOffset=20,dotSize=6,dotGap=8}=pagination||{};const{enabled:showArrows=true,size:arrowSize=18,activeColor:arrowActiveColor=\"#FFFFFF\",color:arrowColor=\"rgba(255, 255, 255, 0.45)\",background:arrowBackground=\"rgba(0, 0, 0, 0.4)\",border:arrowBorder={borderWidth:1,borderStyle:\"solid\",borderColor:\"rgba(255, 255, 255, 0.05)\"},padding:arrowPadding=\"6px 6px 6px 6px\",offset:arrowOffset=15}=arrows||{};const{enabled:showCounter=false,fontSize:counterFontSize=10,color:counterColor=\"#FFFFFF\",background:counterBackground=\"rgba(0, 0, 0, 0.4)\",border:counterBorder={borderWidth:1,borderStyle:\"solid\",borderColor:\"rgba(255, 255, 255, 0.05)\"},padding:counterPadding=\"4px 6px 4px 6px\",offset:counterOffset=15}=counter||{};const isStatic=useIsStaticRenderer();const containerRef=useRef(null);const trackRef=useRef(null);const[currentIndex,setCurrentIndex]=useState(0);const[inViewport,setInViewport]=useState(true);const[directTransition,setDirectTransition]=useState(null);const[isDragging,setIsDragging]=useState(false);// Keeps native scroll-snap disabled a bit longer after a drag release,\n// through the JS-driven settle scroll: `isDragging` alone flips false\n// the instant the mouse lifts, right as that scroll starts, so snap\n// would otherwise immediately re-engage and fight it back toward\n// whichever slide is nearest the *current* position - which, now that\n// the release threshold is well under 50%, is still the old slide, not\n// the one being dragged toward.\nconst[isSettling,setIsSettling]=useState(false);// How far (px) the track is visually pulled past a boundary while\n// dragging - scrollLeft itself can't go negative or past the max, so\n// this rubber-band stretch is a separate transform layered on top, that\n// springs back to 0 once the drag releases.\nconst[overshoot,setOvershoot]=useState(0);const scrollRaf=useRef(null);const dragStart=useRef({x:0,scrollLeft:0});// When the current slide actually became active, so a transition that\n// starts mid-zoom can compute exactly how far along it is.\nconst activatedAt=useRef(Date.now());// Whether the visitor has manually changed slide (drag, pagination, or\n// keyboard) - checked by the autoplay effect when \"Stop on Interaction\"\n// is on, to permanently stop scheduling further auto-advances.\nconst userInteracted=useRef(false);// Marks a scrollLeft write as our own (from finishing a transition), so\n// the scroll listener doesn't mistake it for a genuine user drag.\nconst programmaticScroll=useRef(false);// A click/key-press that arrives while a transition is still playing\n// doesn't get dropped: it's remembered here and picked up the instant\n// the current one ends, so rapid clicking chains smoothly instead of\n// only ever reacting to the first click.\nconst pendingTargetRef=useRef(null);// Mirrors \"is something queued\" as real state (the ref alone can't\n// trigger a re-render), so the in-flight transition can be told to wrap\n// up quickly instead of playing out its full duration.\nconst[hasPendingTarget,setHasPendingTarget]=useState(false);const uid=useMemo(()=>\"ms-\"+Math.random().toString(36).slice(2,9),[]);const items=useMemo(()=>{if(source===\"cms\"){const cmsSlides=[image1,image2,image3,image4,image5,image6,image7,image8,image9,image10].filter(image=>!!image?.src).map(image=>({image}));return cmsSlides.length>0?cmsSlides:defaultSlides;}if(source===\"url\"){const urlSlides=[url1,url2,url3,url4,url5,url6,url7,url8,url9,url10].filter(url=>!!url&&url.trim().length>0).map(src=>({image:{src}}));return urlSlides.length>0?urlSlides:defaultSlides;}return slides&&slides.length>0?slides:defaultSlides;},[source,slides,image1,image2,image3,image4,image5,image6,image7,image8,image9,image10,url1,url2,url3,url4,url5,url6,url7,url8,url9,url10]);useEffect(()=>{activatedAt.current=Date.now();},[currentIndex]);// Optional desktop click-and-drag, mirroring native touch dragging. For\n// \"slide\" it mirrors native dragging 1:1 (scroll-snap switched off for\n// the duration, same reason as the push animation: rapid writes\n// otherwise fight the browser's own snap-correction; settles on the\n// nearest slide on release). Other effects aren't spatial, so a drag is\n// just a swipe gesture there: nothing moves until release, then a\n// regular effect-aware transition fires if the drag passed a threshold.\nfunction handleMouseDown(e){// A Slide push still owns the real track's scrollLeft directly, so\n// starting a new drag while one is mid-flight would fight the snap\n// it's heading to - Fade doesn't touch scrollLeft during the drag\n// itself (just reads the gesture at release), so there's nothing to\n// fight and a new drag can start right away, keeping the cursor and\n// responsiveness continuous instead of dropping out mid-transition.\nif(!desktopDrag||directTransition&&effect===\"slide\")return;const track=trackRef.current;if(!track)return;if(autoplayStopOnInteraction)userInteracted.current=true;dragStart.current={x:e.clientX,scrollLeft:track.scrollLeft};setIsDragging(true);}useEffect(()=>{if(!isDragging)return;function handleMove(e){if(effect!==\"slide\")return;const track=trackRef.current;if(!track)return;const maxScroll=track.scrollWidth-track.clientWidth;const raw=dragStart.current.scrollLeft-(e.clientX-dragStart.current.x);if(raw<0){track.scrollLeft=0;setOvershoot(Math.min(-raw*DRAG_RESISTANCE,DRAG_MAX_OVERSHOOT));}else if(raw>maxScroll){track.scrollLeft=maxScroll;setOvershoot(Math.max(-(raw-maxScroll)*DRAG_RESISTANCE,-DRAG_MAX_OVERSHOOT));}else{track.scrollLeft=raw;setOvershoot(0);}}function handleUp(e){setIsDragging(false);setOvershoot(0);const track=trackRef.current;if(!track)return;if(effect===\"slide\"){const width=track.clientWidth||1;// Rounding scrollLeft/width outright means needing to drag past\n// the halfway point (50% of the slide's width) before it\n// commits to the next one - a real swipe threshold judges the\n// drag distance from where it *started* instead, so a much\n// shorter, more natural drag is enough to change slide.\nconst startIndex=Math.round(dragStart.current.scrollLeft/width);const delta=track.scrollLeft-dragStart.current.scrollLeft;const threshold=Math.min(width*.1,120);const target=Math.abs(delta)>=threshold?startIndex+(delta>0?1:-1):startIndex;const nearest=Math.max(0,Math.min(items.length-1,target));setIsSettling(true);track.scrollTo({left:width*nearest,behavior:\"smooth\"});window.setTimeout(()=>setIsSettling(false),600);return;}const dx=e.clientX-dragStart.current.x;if(Math.abs(dx)<50)return;requestStep(dx<0?1:-1);}window.addEventListener(\"mousemove\",handleMove);window.addEventListener(\"mouseup\",handleUp);return()=>{window.removeEventListener(\"mousemove\",handleMove);window.removeEventListener(\"mouseup\",handleUp);};},[isDragging,items.length,effect,currentIndex]);// Track which slide is active while the user swipes/scrolls.\nuseEffect(()=>{if(isStatic)return;const track=trackRef.current;if(!track)return;function handleScroll(){// A real drag/swipe, not our own end-of-transition snap.\nif(!programmaticScroll.current)userInteracted.current=true;if(scrollRaf.current)cancelAnimationFrame(scrollRaf.current);scrollRaf.current=requestAnimationFrame(()=>{if(!track)return;const width=track.clientWidth||1;const index=Math.round(track.scrollLeft/width);startTransition(()=>{setCurrentIndex(prev=>prev===index?prev:Math.min(index,items.length-1));});});}track.addEventListener(\"scroll\",handleScroll,{passive:true});return()=>{track.removeEventListener(\"scroll\",handleScroll);if(scrollRaf.current)cancelAnimationFrame(scrollRaf.current);};},[isStatic,items.length]);// Pause everything once the component itself leaves the page viewport.\nuseEffect(()=>{if(isStatic)return;const container=containerRef.current;if(!container||typeof IntersectionObserver===\"undefined\")return;const observer=new IntersectionObserver(([entry])=>{startTransition(()=>setInViewport(entry.isIntersecting));},{threshold:.1});observer.observe(container);return()=>observer.disconnect();},[isStatic]);// Advance to the next slide after `autoplayDuration`. Restarts on any\n// manual navigation since currentIndex is a dependency. With loop off,\n// simply stops scheduling once the last slide is reached. With \"stop on\n// interaction\" on, stops for good the moment the visitor has dragged,\n// clicked a dot, or used the keyboard - `userInteracted` isn't a\n// dependency since it's a ref, but currentIndex already changes on every\n// one of those, which re-runs this effect and picks up the latest value.\nuseEffect(()=>{if(isStatic||!autoplayEnabled||items.length<=1||!inViewport||directTransition||!autoplayLoop&&currentIndex===items.length-1||autoplayStopOnInteraction&&userInteracted.current)return;const timer=window.setTimeout(()=>{triggerTransition((currentIndex+1)%items.length);},Math.max(autoplayDuration,.5)*1e3);return()=>window.clearTimeout(timer);},[isStatic,autoplayEnabled,autoplayDuration,autoplayLoop,autoplayStopOnInteraction,inViewport,currentIndex,items.length,directTransition]);// Snaps the native track straight to the target (no animation), the\n// moment the transition's visuals actually need the real content to be\n// the new slide - once it's fully covered, so it happens invisibly.\nfunction swapDirectTransition(target){const track=trackRef.current;if(track){programmaticScroll.current=true;track.scrollLeft=track.clientWidth*target;window.setTimeout(()=>{programmaticScroll.current=false;},50);}setCurrentIndex(target);}// Unmounts the transition overlay once its own animation has fully\n// finished, handing control back to the (already swapped) real track.\nfunction endDirectTransition(){setDirectTransition(null);}// Shared by autoplay and pagination clicks. Always goes through the\n// overlay, never native scroll, so the speed stays consistent and\n// nothing in between the two slides is ever visible or scrolled through.\nfunction triggerTransition(target){if(directTransition||target===currentIndex)return;let zoom;if(zoomEnabled){const elapsedS=(Date.now()-activatedAt.current)/1e3;const progress=Math.min(elapsedS/ZOOM_DURATION,1);zoom={startScale:1+(zoomScale-1)*progress,targetScale:zoomScale,remainingDuration:Math.max(ZOOM_DURATION-elapsedS,0)};}setDirectTransition({from:currentIndex,to:target,mode:effect,direction:target>currentIndex?1:-1,zoom});}function goToSlide(index){if(autoplayStopOnInteraction)userInteracted.current=true;if(directTransition){pendingTargetRef.current=index;setHasPendingTarget(true);return;}triggerTransition(index);}// Shared by the arrow buttons and arrow-key navigation: steps one slide\n// from wherever navigation is conceptually headed (the queued target if\n// one's already waiting, otherwise the in-flight transition's\n// destination, otherwise just the current slide). Returns whether it\n// actually did anything, so callers can decide whether to swallow the\n// key event.\nfunction requestStep(delta){const base=pendingTargetRef.current??(directTransition?directTransition.to:currentIndex);const target=base+delta;if(target<0||target>items.length-1)return false;if(autoplayStopOnInteraction)userInteracted.current=true;if(directTransition){pendingTargetRef.current=target;setHasPendingTarget(true);}else{triggerTransition(target);}return true;}// Picks up a click/key-press that arrived mid-transition the instant\n// the current one finishes, so rapid navigation chains right away\n// instead of waiting for each transition to play out before the next\n// one even starts.\nuseEffect(()=>{if(directTransition)return;const pending=pendingTargetRef.current;if(pending===null)return;pendingTargetRef.current=null;setHasPendingTarget(false);if(pending!==currentIndex)triggerTransition(pending);// eslint-disable-next-line react-hooks/exhaustive-deps\n},[directTransition]);// Arrow-key navigation for keyboard/screen-reader users, since there are\n// no dedicated keyboard shortcuts beyond the arrows already visible.\nfunction handleKeyDown(e){if(e.key===\"ArrowRight\"){if(requestStep(1))e.preventDefault();}else if(e.key===\"ArrowLeft\"){if(requestStep(-1))e.preventDefault();}}// Framer omits `style.width`/`style.height` when the component is set to\n// \"Fit\" sizing rather than Fixed/Fill, expecting the component's own\n// content to establish a natural size - otherwise it collapses to 0x0,\n// since nothing else here is in normal flow (every slide is absolutely\n// positioned). The invisible reference image below, sized like a plain\n// <img> from the first slide, is what gives it something to size to.\nconst autoWidth=style?.width===undefined;const autoHeight=style?.height===undefined;const firstImageSrc=(items[0]?.image||defaultImage).src;const rootStyle={...style,position:\"relative\",width:autoWidth?undefined:\"100%\",height:autoHeight?undefined:\"100%\",overflow:\"hidden\",borderRadius:cornerRadius,backgroundColor:fill,boxSizing:\"border-box\",userSelect:\"none\",WebkitUserSelect:\"none\",...border};if(isStatic){const first=items[0];return /*#__PURE__*/_jsxs(\"div\",{style:rootStyle,children:[/*#__PURE__*/_jsx(SizingReference,{src:firstImageSrc}),/*#__PURE__*/_jsx(SlideMedia,{item:first,fit:fit}),showPagination&&/*#__PURE__*/_jsx(Pagination,{count:items.length,current:0,onSelect:undefined,activeDotColor:activeDotColor,inactiveDotColor:inactiveDotColor,pillBackground:pillBackground,pillBorder:pillBorder,pillPadding:pillPadding,pillOffset:pillOffset,dotSize:dotSize,dotGap:dotGap,transitions:false}),showArrows&&items.length>1&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(ArrowButton,{direction:\"prev\",ariaLabel:\"Previous slide\",onClick:()=>{},disabled:true,side:\"left\",size:arrowSize,idleColor:arrowColor,activeColor:arrowActiveColor,background:arrowBackground,border:arrowBorder,padding:arrowPadding,offset:arrowOffset}),/*#__PURE__*/_jsx(ArrowButton,{direction:\"next\",ariaLabel:\"Next slide\",onClick:()=>{},disabled:false,side:\"right\",size:arrowSize,idleColor:arrowColor,activeColor:arrowActiveColor,background:arrowBackground,border:arrowBorder,padding:arrowPadding,offset:arrowOffset})]}),showCounter&&/*#__PURE__*/_jsx(Counter,{current:0,count:items.length,fontSize:counterFontSize,textColor:counterColor,pillBackground:counterBackground,pillBorder:counterBorder,pillPadding:counterPadding,pillOffset:counterOffset})]});}// Pagination/Counter/Arrows should all reflect where a direct transition\n// is actually headed, not the slide it's still animating away from.\nconst effectiveIndex=directTransition?directTransition.to:currentIndex;// How many slides on either side of the current one to load eagerly,\n// rather than `loading=\"lazy\"`: with pagination on, that's whatever is\n// reachable with a single dot click - every dot when they're all shown\n// at once, or the visible reach of the windowed pill once there are\n// enough slides for it to truncate. Without pagination, only the\n// immediate neighbor ever gets reached in one step (swipe, drag, arrow\n// key, or autoplay), so there's nothing to gain loading further out.\nconst preloadReach=!showPagination?1:items.length<=PAGINATION_WINDOW_THRESHOLD?items.length:PAGINATION_REACH;return /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,style:rootStyle,tabIndex:0,role:\"region\",\"aria-roledescription\":\"carousel\",\"aria-label\":\"Image slideshow\",onKeyDown:handleKeyDown,children:[/*#__PURE__*/_jsx(SizingReference,{src:firstImageSrc}),/*#__PURE__*/_jsx(\"span\",{\"aria-live\":\"polite\",style:{position:\"absolute\",width:1,height:1,padding:0,margin:-1,overflow:\"hidden\",clip:\"rect(0, 0, 0, 0)\",whiteSpace:\"nowrap\",border:0},children:`Slide ${currentIndex+1} of ${items.length}`}),/*#__PURE__*/_jsx(\"style\",{children:`.${uid}::-webkit-scrollbar{display:none}`}),/*#__PURE__*/_jsx(\"div\",{ref:trackRef,className:uid,onMouseDown:desktopDrag?handleMouseDown:undefined,style:{position:\"absolute\",inset:0,display:\"flex\",width:\"100%\",height:\"100%\",overflowX:\"auto\",overflowY:\"hidden\",scrollSnapType:isDragging||isSettling?\"none\":\"x mandatory\",scrollbarWidth:\"none\",msOverflowStyle:\"none\",WebkitOverflowScrolling:\"touch\",pointerEvents:directTransition&&effect===\"slide\"?\"none\":\"auto\",cursor:desktopDrag?isDragging?\"grabbing\":\"grab\":undefined,transform:overshoot?`translateX(${overshoot}px)`:undefined,transition:isDragging?\"none\":\"transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1)\"},children:items.map((item,index)=>{const isActive=index===currentIndex;return /*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",flex:\"0 0 100%\",width:\"100%\",height:\"100%\",overflow:\"hidden\",scrollSnapAlign:\"center\",scrollSnapStop:\"always\"},children:/*#__PURE__*/_jsx(SlideMedia,{item:item,fit:fit,eager:Math.abs(index-currentIndex)<=preloadReach,zoom:zoomEnabled?{active:isActive,scale:zoomScale,duration:ZOOM_DURATION,resetDelay:zoomResetDelay}:undefined})},index);})}),directTransition&&/*#__PURE__*/_jsx(Transition,{mode:directTransition.mode,fromItem:items[directTransition.from],toItem:items[directTransition.to],direction:directTransition.direction,fit:fit,duration:transitionDuration,fastForward:hasPendingTarget,fromZoom:directTransition.zoom,onSwap:()=>swapDirectTransition(directTransition.to),onDone:endDirectTransition}),showPagination&&items.length>1&&/*#__PURE__*/_jsx(Pagination,{count:items.length,current:effectiveIndex,onSelect:goToSlide,activeDotColor:activeDotColor,inactiveDotColor:inactiveDotColor,pillBackground:pillBackground,pillBorder:pillBorder,pillPadding:pillPadding,pillOffset:pillOffset,dotSize:dotSize,dotGap:dotGap,transitions:true}),showArrows&&items.length>1&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(ArrowButton,{direction:\"prev\",ariaLabel:\"Previous slide\",onClick:()=>requestStep(-1),disabled:effectiveIndex===0,side:\"left\",size:arrowSize,idleColor:arrowColor,activeColor:arrowActiveColor,background:arrowBackground,border:arrowBorder,padding:arrowPadding,offset:arrowOffset}),/*#__PURE__*/_jsx(ArrowButton,{direction:\"next\",ariaLabel:\"Next slide\",onClick:()=>requestStep(1),disabled:effectiveIndex===items.length-1,side:\"right\",size:arrowSize,idleColor:arrowColor,activeColor:arrowActiveColor,background:arrowBackground,border:arrowBorder,padding:arrowPadding,offset:arrowOffset})]}),showCounter&&items.length>1&&/*#__PURE__*/_jsx(Counter,{current:effectiveIndex,count:items.length,fontSize:counterFontSize,textColor:counterColor,pillBackground:counterBackground,pillBorder:counterBorder,pillPadding:counterPadding,pillOffset:counterOffset})]});}// Dispatches to the right transition overlay.\nfunction Transition({mode,fromItem,toItem,direction,fit,duration,fastForward,fromZoom,onSwap,onDone}){if(mode===\"slide\"){return /*#__PURE__*/_jsx(SlideTransition,{fromItem:fromItem,toItem:toItem,direction:direction,fit:fit,duration:duration,fastForward:fastForward,fromZoom:fromZoom,onSwap:onSwap,onDone:onDone});}return /*#__PURE__*/_jsx(FadeTransition,{toItem:toItem,fit:fit,duration:duration,fastForward:fastForward,onSwap:onSwap,onDone:onDone});}// Two simple, absolutely positioned full-size layers: the outgoing slide\n// slides out one way while the incoming slide slides in from the other, both\n// driven by the same `animate` flag so they move in lockstep with zero\n// possibility of a gap - they're always exactly one container-width apart,\n// for every value of the shared progress.\nfunction SlideTransition({fromItem,toItem,direction,fit,duration,fastForward,fromZoom,onSwap,onDone}){const[animate,setAnimate]=useState(false);const[activeDuration,setActiveDuration]=useState(duration);const raf2Ref=useRef(0);const timerRef=useRef(null);useEffect(()=>{const raf1=requestAnimationFrame(()=>{raf2Ref.current=requestAnimationFrame(()=>setAnimate(true));});timerRef.current=window.setTimeout(()=>{onSwap();onDone();},duration*1e3);return()=>{cancelAnimationFrame(raf1);cancelAnimationFrame(raf2Ref.current);if(timerRef.current)window.clearTimeout(timerRef.current);};// eslint-disable-next-line react-hooks/exhaustive-deps\n},[]);// Another navigation request is already queued behind this one - wrap\n// up quickly instead of making it wait out the full configured Speed,\n// so rapid clicking/key-pressing chains right away.\nuseEffect(()=>{if(!fastForward)return;if(timerRef.current)window.clearTimeout(timerRef.current);setActiveDuration(FAST_FORWARD_DURATION);timerRef.current=window.setTimeout(()=>{onSwap();onDone();},FAST_FORWARD_DURATION*1e3);// eslint-disable-next-line react-hooks/exhaustive-deps\n},[fastForward]);const layerStyle={position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",// Without its own clip, the \"contain\" backdrop's blur() can bleed\n// past this layer's edge while it's mid-transform (a compositing\n// quirk of animating a blurred, absolutely positioned layer) -\n// containing it here keeps that smear from ever showing.\noverflow:\"hidden\",transition:`transform ${activeDuration}s cubic-bezier(0.22, 1, 0.36, 1)`};return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",inset:0,overflow:\"hidden\",pointerEvents:\"none\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{...layerStyle,transform:`translateX(${animate?-direction*100:0}%)`},children:/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,overflow:\"hidden\",transform:fromZoom?`scale(${animate?fromZoom.targetScale:fromZoom.startScale})`:undefined,transformOrigin:\"center center\",transition:fromZoom&&fromZoom.remainingDuration>0?`transform ${fromZoom.remainingDuration}s linear`:\"none\"},children:/*#__PURE__*/_jsx(SlideMedia,{item:fromItem,fit:fit})})}),/*#__PURE__*/_jsx(\"div\",{style:{...layerStyle,transform:`translateX(${animate?0:direction*100}%)`},children:/*#__PURE__*/_jsx(SlideMedia,{item:toItem,fit:fit})})]});}function FadeTransition({toItem,fit,duration,fastForward,onSwap,onDone}){const[animate,setAnimate]=useState(false);const[activeDuration,setActiveDuration]=useState(duration);const raf2Ref=useRef(0);const timerRef=useRef(null);useEffect(()=>{const raf1=requestAnimationFrame(()=>{raf2Ref.current=requestAnimationFrame(()=>setAnimate(true));});timerRef.current=window.setTimeout(()=>{onSwap();onDone();},duration*1e3);return()=>{cancelAnimationFrame(raf1);cancelAnimationFrame(raf2Ref.current);if(timerRef.current)window.clearTimeout(timerRef.current);};// eslint-disable-next-line react-hooks/exhaustive-deps\n},[]);// Another navigation request is already queued behind this one - wrap\n// up quickly instead of making it wait out the full configured Speed,\n// so rapid clicking/key-pressing chains right away.\nuseEffect(()=>{if(!fastForward)return;if(timerRef.current)window.clearTimeout(timerRef.current);setActiveDuration(FAST_FORWARD_DURATION);timerRef.current=window.setTimeout(()=>{onSwap();onDone();},FAST_FORWARD_DURATION*1e3);// eslint-disable-next-line react-hooks/exhaustive-deps\n},[fastForward]);return /*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,overflow:\"hidden\",opacity:animate?1:0,transition:`opacity ${activeDuration}s ease`,pointerEvents:\"none\"},children:/*#__PURE__*/_jsx(SlideMedia,{item:toItem,fit:fit})});}// Invisible, normal-flow image that gives the root something to size itself\n// to when Framer's own \"Fit\" layout option is chosen - every other visual\n// element here is absolutely positioned so on its own the root has nothing\n// to compute an intrinsic size from. Ignored entirely when the component has\n// an explicit width/height (Fixed/Fill), which is the common case.\nfunction SizingReference({src}){return /*#__PURE__*/_jsx(\"img\",{src:src,alt:\"\",\"aria-hidden\":\"true\",style:{display:\"block\",width:\"auto\",height:\"auto\",opacity:0,pointerEvents:\"none\"}});}function SlideMedia({item,fit,zoom,eager=true}){const zoomIsActive=!!zoom?.active;const[zoomPrimed,setZoomPrimed]=useState(false);const raf2Ref=useRef(0);// Always commit one frame at scale(1) with no transition before turning\n// the zoom on, even the very first time a slide is active - otherwise\n// that first activation has nothing to transition *from* and the scale\n// just appears instantly instead of animating in. When it deactivates,\n// don't snap back to scale(1) right away either: this slide may still be\n// visible for the duration of whatever transition is taking it off\n// screen, so keep holding its current zoom until that's had time to\n// finish, then reset invisibly once it's actually out of view.\nuseEffect(()=>{if(zoomIsActive){const raf1=requestAnimationFrame(()=>{raf2Ref.current=requestAnimationFrame(()=>setZoomPrimed(true));});return()=>{cancelAnimationFrame(raf1);cancelAnimationFrame(raf2Ref.current);};}const resetTimer=window.setTimeout(()=>setZoomPrimed(false),zoom?.resetDelay??1400);return()=>window.clearTimeout(resetTimer);},[zoomIsActive]);if(!item)return null;const zoomEngaged=zoomPrimed;const mediaStyle={position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",objectFit:fit,transform:zoomEngaged?`scale(${zoom.scale})`:\"scale(1)\",transformOrigin:\"center center\",transition:zoomEngaged?`transform ${zoom.duration}s linear`:\"none\"};const image=item.image||defaultImage;return /*#__PURE__*/_jsxs(_Fragment,{children:[fit===\"contain\"&&/*#__PURE__*/_jsx(\"img\",{src:image.src,alt:\"\",\"aria-hidden\":\"true\",style:{position:\"absolute\",inset:-BACKDROP_MARGIN,objectFit:\"cover\",filter:`blur(${BACKDROP_BLUR}px)`,transform:\"translateZ(0)\"},loading:eager?\"eager\":\"lazy\"}),/*#__PURE__*/_jsx(\"img\",{src:image.src,srcSet:image.srcSet,alt:image.alt||\"\",style:mediaStyle,loading:eager?\"eager\":\"lazy\",draggable:false})]});}// Not exposed as a prop on purpose - past 5 slides, showing every dot gets\n// unwieldy. Instead, up to REACH dots show on each side of the current one\n// (so the pill never exceeds 2*REACH+1 = 7 dots), shrinking near either end\n// as there's naturally less to show there. Every dot is always in the DOM,\n// laid out in one continuous strip clipped by a fixed-width viewport; moving\n// between slides just slides that strip sideways (animated), so dots visibly\n// travel into and out of view instead of the visible set silently swapping.\nconst PAGINATION_WINDOW_THRESHOLD=5;const PAGINATION_REACH=3;const PAGINATION_EDGE_SCALE=.5;const PAGINATION_SLIDE_DURATION=.3;function Pagination({count,current,onSelect,activeDotColor,inactiveDotColor,pillBackground,pillBorder,pillPadding,pillOffset,dotSize,dotGap,transitions}){// The hit target is centered on the dot and absolutely positioned, so it\n// never affects layout or spacing: the dots stay exactly where they'd be\n// with just their own size and gap, but clicking around them still works.\nconst hitSize=Math.max(dotSize*3,22);const windowed=count>PAGINATION_WINDOW_THRESHOLD;const leadCount=windowed?Math.min(current,PAGINATION_REACH):current;const trailCount=windowed?Math.min(count-1-current,PAGINATION_REACH):count-1-current;// How many dots are actually visible right now - this is what makes the\n// pill itself grow from 4 up to 7 and back down near either end, exactly\n// as before; the viewport width transitions right along with it.\nconst visibleCount=leadCount+1+trailCount;const stripStart=current-leadCount;const step=dotSize+dotGap;const viewportWidth=visibleCount*dotSize+(visibleCount-1)*dotGap;const stripOffset=-stripStart*step;return /*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",bottom:pillOffset,left:\"50%\",transform:\"translateX(-50%)\",display:\"flex\",alignItems:\"center\",padding:pillPadding,borderRadius:999,background:pillBackground,backdropFilter:\"blur(14px)\",WebkitBackdropFilter:\"blur(14px)\",boxSizing:\"border-box\",...pillBorder},role:\"tablist\",\"aria-label\":\"Slide pagination\",children:/*#__PURE__*/_jsx(\"div\",{style:{width:viewportWidth,height:dotSize*1.3,overflow:\"hidden\",transition:transitions?`width ${PAGINATION_SLIDE_DURATION}s ease`:\"none\"},children:/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:dotGap,height:\"100%\",transform:`translateX(${stripOffset}px)`,transition:transitions?`transform ${PAGINATION_SLIDE_DURATION}s ease`:\"none\"},children:Array.from({length:count}).map((_,index)=>{const isActive=index===current;const distance=Math.abs(index-current);const isSmall=windowed&&distance===PAGINATION_REACH;const scale=isActive?1.15:isSmall?PAGINATION_EDGE_SCALE:1;return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:dotSize,height:dotSize,flexShrink:0},children:[/*#__PURE__*/_jsx(\"div\",{style:{width:dotSize,height:dotSize,borderRadius:\"50%\",backgroundColor:isActive?activeDotColor:inactiveDotColor,transform:`scale(${scale})`,transition:transitions?\"background-color 0.2s ease, transform 0.2s ease\":\"none\"}}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",role:\"tab\",\"aria-selected\":isActive,\"aria-label\":`Go to slide ${index+1}`,disabled:!onSelect,onClick:onSelect?()=>onSelect(index):undefined,style:{position:\"absolute\",top:\"50%\",left:\"50%\",width:hitSize,height:hitSize,transform:\"translate(-50%, -50%)\",margin:0,padding:0,border:\"none\",background:\"none\",font:\"inherit\",appearance:\"none\",WebkitAppearance:\"none\",cursor:onSelect?\"pointer\":\"default\"}})]},index);})})})});}function Counter({current,count,fontSize,textColor,pillBackground,pillBorder,pillPadding,pillOffset}){return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",top:pillOffset,right:pillOffset,padding:pillPadding,borderRadius:999,background:pillBackground,backdropFilter:\"blur(14px)\",WebkitBackdropFilter:\"blur(14px)\",boxSizing:\"border-box\",fontFamily:\"Inter, sans-serif\",fontSize,fontWeight:500,lineHeight:1,color:textColor,whiteSpace:\"nowrap\",...pillBorder},\"aria-hidden\":\"true\",children:[current+1,\"/\",count]});}const ARROW_PATH={prev:\"M15 6l-6 6 6 6\",next:\"M9 6l6 6-6 6\"};function ArrowButton({direction,ariaLabel,onClick,disabled,side,size,idleColor,activeColor,background,border,padding,offset}){// A chevron's ink is bounding-box centered, but its point reads as the\n// visual anchor, so a perfectly centered chevron looks like it's leaning\n// away from its point - nudging it a touch toward the point corrects\n// for that optical illusion.\nconst opticalNudge=size*.08;return /*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":ariaLabel,disabled:disabled,onClick:onClick,style:{position:\"absolute\",top:\"50%\",left:side===\"left\"?offset:undefined,right:side===\"right\"?offset:undefined,transform:\"translateY(-50%)\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",padding,margin:0,border:\"none\",borderRadius:999,background,backdropFilter:\"blur(14px)\",WebkitBackdropFilter:\"blur(14px)\",boxSizing:\"border-box\",cursor:disabled?\"default\":\"pointer\",font:\"inherit\",appearance:\"none\",WebkitAppearance:\"none\",...border},children:/*#__PURE__*/_jsx(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",style:{transform:`translateX(${direction===\"prev\"?-opticalNudge:opticalNudge}px)`},children:/*#__PURE__*/_jsx(\"path\",{d:ARROW_PATH[direction],stroke:disabled?idleColor:activeColor,strokeWidth:2,strokeLinecap:\"round\",strokeLinejoin:\"round\"})})});}const defaultImage={src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Gradient 1\"};const defaultSlides=[{image:{src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Gradient 1\"}},{image:{src:\"https://framerusercontent.com/images/aNsAT3jCvt4zglbWCUoFe33Q.jpg\",alt:\"Gradient 2\"}},{image:{src:\"https://framerusercontent.com/images/BYnxEV1zjYb9bhWh1IwBZ1ZoS60.jpg\",alt:\"Gradient 3\"}}];BasicSlideshow.displayName=\"Basic Slideshow\";addPropertyControls(BasicSlideshow,{source:{type:ControlType.Enum,title:\"Mode\",options:[\"manual\",\"cms\",\"url\"],optionTitles:[\"Manual\",\"CMS\",\"URL\"],defaultValue:\"manual\",displaySegmentedControl:true},slides:{type:ControlType.Array,title:\"Slides\",control:{type:ControlType.Object,controls:{image:{type:ControlType.ResponsiveImage,title:\"Image\"}}},defaultValue:defaultSlides,maxCount:12,hidden:props=>props.source!==\"manual\"},image1:{type:ControlType.ResponsiveImage,title:\"Image 1\",hidden:props=>props.source!==\"cms\"},image2:{type:ControlType.ResponsiveImage,title:\"Image 2\",hidden:props=>props.source!==\"cms\"},image3:{type:ControlType.ResponsiveImage,title:\"Image 3\",hidden:props=>props.source!==\"cms\"},image4:{type:ControlType.ResponsiveImage,title:\"Image 4\",hidden:props=>props.source!==\"cms\"},image5:{type:ControlType.ResponsiveImage,title:\"Image 5\",hidden:props=>props.source!==\"cms\"},image6:{type:ControlType.ResponsiveImage,title:\"Image 6\",hidden:props=>props.source!==\"cms\"},image7:{type:ControlType.ResponsiveImage,title:\"Image 7\",hidden:props=>props.source!==\"cms\"},image8:{type:ControlType.ResponsiveImage,title:\"Image 8\",hidden:props=>props.source!==\"cms\"},image9:{type:ControlType.ResponsiveImage,title:\"Image 9\",hidden:props=>props.source!==\"cms\"},image10:{type:ControlType.ResponsiveImage,title:\"Image 10\",hidden:props=>props.source!==\"cms\"},url1:{type:ControlType.String,title:\"URL 1\",placeholder:\"https://...\",hidden:props=>props.source!==\"url\"},url2:{type:ControlType.String,title:\"URL 2\",placeholder:\"https://...\",hidden:props=>props.source!==\"url\"},url3:{type:ControlType.String,title:\"URL 3\",placeholder:\"https://...\",hidden:props=>props.source!==\"url\"},url4:{type:ControlType.String,title:\"URL 4\",placeholder:\"https://...\",hidden:props=>props.source!==\"url\"},url5:{type:ControlType.String,title:\"URL 5\",placeholder:\"https://...\",hidden:props=>props.source!==\"url\"},url6:{type:ControlType.String,title:\"URL 6\",placeholder:\"https://...\",hidden:props=>props.source!==\"url\"},url7:{type:ControlType.String,title:\"URL 7\",placeholder:\"https://...\",hidden:props=>props.source!==\"url\"},url8:{type:ControlType.String,title:\"URL 8\",placeholder:\"https://...\",hidden:props=>props.source!==\"url\"},url9:{type:ControlType.String,title:\"URL 9\",placeholder:\"https://...\",hidden:props=>props.source!==\"url\"},url10:{type:ControlType.String,title:\"URL 10\",placeholder:\"https://...\",hidden:props=>props.source!==\"url\"},fit:{type:ControlType.Enum,title:\"Fit\",options:[\"cover\",\"contain\"],optionTitles:[\"Cover\",\"Contain\"],defaultValue:\"cover\",displaySegmentedControl:true},effect:{type:ControlType.Enum,title:\"Transition\",options:[\"slide\",\"fade\"],optionTitles:[\"Slide\",\"Fade\"],defaultValue:\"slide\",displaySegmentedControl:true},transitionDuration:{type:ControlType.Number,title:\"Speed\",defaultValue:.4,min:.15,max:1.5,step:.05,unit:\"s\"},desktopDrag:{type:ControlType.Boolean,title:\"Desktop Drag\",defaultValue:false},pagination:{type:ControlType.Object,title:\"Pagination\",controls:{enabled:{type:ControlType.Boolean,title:\"Pagination\",defaultValue:true},dotSize:{type:ControlType.Number,title:\"Dot Size\",defaultValue:6,min:4,max:12,step:1,unit:\"px\",hidden:props=>!props.enabled},dotGap:{type:ControlType.Number,title:\"Dot Gap\",defaultValue:8,min:2,max:16,step:1,unit:\"px\",hidden:props=>!props.enabled},activeColor:{type:ControlType.Color,title:\"Active Dot\",defaultValue:\"#FFFFFF\",hidden:props=>!props.enabled},inactiveColor:{type:ControlType.Color,title:\"Dot\",defaultValue:\"rgba(255, 255, 255, 0.45)\",hidden:props=>!props.enabled},background:{type:ControlType.Color,title:\"Pill Glass\",defaultValue:\"rgba(0, 0, 0, 0.4)\",hidden:props=>!props.enabled},border:{type:ControlType.Border,title:\"Pill Border\",defaultValue:{borderWidth:1,borderStyle:\"solid\",borderColor:\"rgba(255, 255, 255, 0.05)\"},hidden:props=>!props.enabled},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"8px 13px 8px 13px\",hidden:props=>!props.enabled},offset:{type:ControlType.Number,title:\"Offset\",defaultValue:20,min:0,max:60,step:1,unit:\"px\",hidden:props=>!props.enabled}},defaultValue:{enabled:true,activeColor:\"#FFFFFF\",inactiveColor:\"rgba(255, 255, 255, 0.45)\",background:\"rgba(0, 0, 0, 0.4)\",border:{borderWidth:1,borderStyle:\"solid\",borderColor:\"rgba(255, 255, 255, 0.05)\"},padding:\"8px 13px 8px 13px\",offset:20,dotSize:6,dotGap:8}},arrows:{type:ControlType.Object,title:\"Arrows\",controls:{enabled:{type:ControlType.Boolean,title:\"Arrows\",defaultValue:true},size:{type:ControlType.Number,title:\"Arrow Size\",defaultValue:18,min:10,max:40,step:1,unit:\"px\",hidden:props=>!props.enabled},activeColor:{type:ControlType.Color,title:\"Active Arrow\",defaultValue:\"#FFFFFF\",hidden:props=>!props.enabled},color:{type:ControlType.Color,title:\"Arrow\",defaultValue:\"rgba(255, 255, 255, 0.45)\",hidden:props=>!props.enabled},background:{type:ControlType.Color,title:\"Pill Glass\",defaultValue:\"rgba(0, 0, 0, 0.4)\",hidden:props=>!props.enabled},border:{type:ControlType.Border,title:\"Pill Border\",defaultValue:{borderWidth:1,borderStyle:\"solid\",borderColor:\"rgba(255, 255, 255, 0.05)\"},hidden:props=>!props.enabled},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"6px 6px 6px 6px\",hidden:props=>!props.enabled},offset:{type:ControlType.Number,title:\"Offset\",defaultValue:15,min:0,max:60,step:1,unit:\"px\",hidden:props=>!props.enabled}},defaultValue:{enabled:true,size:18,activeColor:\"#FFFFFF\",color:\"rgba(255, 255, 255, 0.45)\",background:\"rgba(0, 0, 0, 0.4)\",border:{borderWidth:1,borderStyle:\"solid\",borderColor:\"rgba(255, 255, 255, 0.05)\"},padding:\"6px 6px 6px 6px\",offset:15}},counter:{type:ControlType.Object,title:\"Counter\",controls:{enabled:{type:ControlType.Boolean,title:\"Counter\",defaultValue:false},fontSize:{type:ControlType.Number,title:\"Font Size\",defaultValue:10,min:7,max:20,step:1,unit:\"px\",hidden:props=>!props.enabled},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#FFFFFF\",hidden:props=>!props.enabled},background:{type:ControlType.Color,title:\"Pill Glass\",defaultValue:\"rgba(0, 0, 0, 0.4)\",hidden:props=>!props.enabled},border:{type:ControlType.Border,title:\"Pill Border\",defaultValue:{borderWidth:1,borderStyle:\"solid\",borderColor:\"rgba(255, 255, 255, 0.05)\"},hidden:props=>!props.enabled},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"4px 6px 4px 6px\",hidden:props=>!props.enabled},offset:{type:ControlType.Number,title:\"Offset\",defaultValue:15,min:0,max:60,step:1,unit:\"px\",hidden:props=>!props.enabled}},defaultValue:{enabled:false,fontSize:10,color:\"#FFFFFF\",background:\"rgba(0, 0, 0, 0.4)\",border:{borderWidth:1,borderStyle:\"solid\",borderColor:\"rgba(255, 255, 255, 0.05)\"},padding:\"4px 6px 4px 6px\",offset:15}},autoplay:{type:ControlType.Object,title:\"Autoplay\",controls:{enabled:{type:ControlType.Boolean,title:\"Autoplay\",defaultValue:true},duration:{type:ControlType.Number,title:\"Duration\",defaultValue:6,min:1,max:15,step:.5,unit:\"s\",hidden:props=>!props.enabled},loop:{type:ControlType.Boolean,title:\"Loop\",defaultValue:true,hidden:props=>!props.enabled},stopOnInteraction:{type:ControlType.Boolean,title:\"Stop on Interaction\",defaultValue:true,hidden:props=>!props.enabled}},defaultValue:{enabled:true,duration:6,loop:true,stopOnInteraction:true}},zoom:{type:ControlType.Object,title:\"Zoom\",controls:{enabled:{type:ControlType.Boolean,title:\"Zoom\",defaultValue:true},scale:{type:ControlType.Number,title:\"Scale\",defaultValue:1.07,min:1,max:1.5,step:.01,hidden:props=>!props.enabled}},defaultValue:{enabled:true,scale:1.07}},fill:{type:ControlType.Color,title:\"Fill\",defaultValue:\"#000000\"},border:{type:ControlType.Border,title:\"Border\",optional:true},cornerRadius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"0px\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"BasicSlideshow\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"400\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"300\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./BasicSlideshow.map"],"mappings":"0OAqBG,SAAwB,EAAe,EAAM,CAAC,GAAK,CAAC,SAAO,SAAS,SAAO,EAAc,SAAO,SAAO,SAAO,SAAO,SAAO,SAAO,SAAO,SAAO,SAAO,UAAQ,OAAK,OAAK,QAAK,QAAK,QAAK,QAAK,QAAK,QAAK,QAAK,SAAM,OAAI,QAAQ,SAAO,QAAQ,sBAAmB,GAAG,eAAY,GAAM,cAAW,UAAO,WAAQ,YAAS,QAAK,QAAK,UAAU,UAAO,gBAAa,MAAM,UAAO,EAAW,CAAC,QAAQ,GAAgB,GAAK,SAAS,GAAiB,EAAE,KAAK,GAAa,GAAK,kBAAkB,EAA0B,IAAM,IAAU,CAAC,EAAO,CAAC,QAAQ,GAAY,GAAK,MAAM,GAAU,MAAM,IAAM,CAAC,EAElkB,GAAe,GAAmB,IAAI,IAAS,CAAC,QAAQ,GAAe,GAAK,YAAY,GAAe,UAAU,cAAc,GAAiB,4BAA4B,WAAW,GAAe,qBAAqB,OAAO,GAAW,CAAC,YAAY,EAAE,YAAY,QAAQ,YAAY,2BAA2B,EAAE,QAAQ,GAAY,oBAAoB,OAAO,GAAW,GAAG,WAAQ,EAAE,UAAO,GAAG,IAAY,CAAC,EAAO,CAAC,QAAQ,GAAW,GAAK,KAAK,EAAU,GAAG,YAAY,EAAiB,UAAU,MAAM,EAAW,4BAA4B,WAAW,EAAgB,qBAAqB,OAAO,EAAY,CAAC,YAAY,EAAE,YAAY,QAAQ,YAAY,2BAA2B,EAAE,QAAQ,EAAa,kBAAkB,OAAO,EAAY,IAAI,IAAQ,CAAC,EAAO,CAAC,QAAQ,GAAY,GAAM,SAAS,GAAgB,GAAG,MAAM,GAAa,UAAU,WAAW,GAAkB,qBAAqB,OAAO,GAAc,CAAC,YAAY,EAAE,YAAY,QAAQ,YAAY,2BAA2B,EAAE,QAAQ,GAAe,kBAAkB,OAAO,GAAc,IAAI,IAAS,CAAC,EAAQ,EAAS,EAAoB,EAAQ,GAAaA,EAAO,IAAI,EAAQ,EAASA,EAAO,IAAI,EAAO,CAAC,EAAa,IAAiBC,EAAS,CAAC,EAAO,CAAC,GAAW,IAAeA,EAAS,EAAI,EAAO,CAAC,EAAiB,IAAqBA,EAAS,IAAI,EAAO,CAAC,EAAW,IAAeA,EAAS,EAAK,EAOz1C,CAAC,GAAW,IAAeA,EAAS,EAAK,EAIzC,CAAC,GAAU,GAAcA,EAAS,CAAC,EAAQ,EAAUD,EAAO,IAAI,EAAQ,EAAUA,EAAO,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,EAE1G,GAAYA,EAAO,KAAK,IAAI,CAAC,EAG7B,EAAeA,EAAO,EAAK,EAE3B,GAAmBA,EAAO,EAAK,EAI/B,EAAiBA,EAAO,IAAI,EAG7B,CAAC,GAAiB,IAAqBC,EAAS,EAAK,EAAQ,GAAIC,MAAY,MAAM,KAAK,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,EAAQ,EAAMA,MAAY,CAAC,GAAG,IAAS,MAAM,CAAC,IAAM,EAAU,CAAC,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,CAAO,CAAC,CAAC,OAAO,GAAO,CAAC,CAAC,GAAO,GAAG,CAAC,CAAC,IAAI,IAAQ,CAAC,OAAK,EAAE,EAAE,OAAO,EAAU,OAAO,EAAE,EAAU,CAAc,CAAC,GAAG,IAAS,MAAM,CAAC,IAAM,EAAU,CAAC,EAAK,EAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,EAAK,CAAC,CAAC,OAAO,GAAK,CAAC,CAAC,GAAK,EAAI,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAM,CAAC,MAAM,CAAC,KAAG,CAAC,EAAE,EAAE,OAAO,EAAU,OAAO,EAAE,EAAU,CAAc,CAAC,OAAO,GAAQ,EAAO,OAAO,EAAE,EAAO,CAAc,EAAE,CAAC,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAO,EAAQ,EAAK,EAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,EAAK,CAAC,EAAE,MAAc,CAAC,GAAY,QAAQ,KAAK,IAAI,CAAE,EAAE,CAAC,CAAY,CAAC,EAOxzB,SAAS,GAAgB,EAAE,CAM3B,GAAG,CAAC,IAAa,GAAkB,IAAS,QAAQ,OAAO,IAAM,EAAM,EAAS,QAAY,IAAgB,IAA0B,EAAe,QAAQ,IAAK,EAAU,QAAQ,CAAC,EAAE,EAAE,QAAQ,WAAW,EAAM,UAAU,EAAE,GAAc,EAAI,EAAE,CAAC,MAAc,CAAC,GAAG,CAAC,EAAW,OAAO,SAAS,EAAW,EAAE,CAAC,GAAG,IAAS,QAAQ,OAAO,IAAM,EAAM,EAAS,QAAQ,GAAG,CAAC,EAAM,OAAO,IAAM,EAAU,EAAM,YAAY,EAAM,YAAkB,EAAI,EAAU,QAAQ,YAAY,EAAE,QAAQ,EAAU,QAAQ,GAAM,EAAI,GAAG,EAAM,WAAW,EAAE,EAAa,KAAK,IAAI,CAAC,EAAI,GAAgB,EAAkB,CAAC,GAAW,EAAI,GAAW,EAAM,WAAW,EAAU,EAAa,KAAK,IAAI,EAAE,EAAI,GAAW,GAAgB,GAAmB,CAAC,IAAQ,EAAM,WAAW,EAAI,EAAa,CAAC,EAAG,CAAC,SAAS,EAAS,EAAE,CAAC,GAAc,EAAK,EAAE,EAAa,CAAC,EAAE,IAAM,EAAM,EAAS,QAAQ,GAAG,CAAC,EAAM,OAAO,GAAG,IAAS,QAAQ,CAAC,IAAM,EAAM,EAAM,aAAa,EAKn5B,EAAW,KAAK,MAAM,EAAU,QAAQ,WAAW,CAAK,EAAQ,EAAM,EAAM,WAAW,EAAU,QAAQ,WAAiB,EAAU,KAAK,IAAI,EAAM,GAAG,GAAG,EAAQ,EAAO,KAAK,IAAI,CAAK,GAAG,EAAU,GAAY,EAAM,EAAE,EAAE,IAAI,EAAiB,EAAQ,KAAK,IAAI,EAAE,KAAK,IAAI,EAAM,OAAO,EAAE,CAAM,CAAC,EAAE,GAAc,EAAI,EAAE,EAAM,SAAS,CAAC,KAAK,EAAM,EAAQ,SAAS,QAAQ,CAAC,EAAE,EAAO,eAAe,GAAc,EAAK,EAAE,GAAG,EAAE,MAAO,CAAC,IAAM,EAAG,EAAE,QAAQ,EAAU,QAAQ,EAAK,KAAK,IAAI,CAAE,EAAE,IAAU,EAAY,EAAG,EAAE,EAAE,EAAE,CAAE,CAA6F,OAA5F,EAAO,iBAAiB,YAAY,CAAU,EAAE,EAAO,iBAAiB,UAAU,CAAQ,MAAY,CAAC,EAAO,oBAAoB,YAAY,CAAU,EAAE,EAAO,oBAAoB,UAAU,CAAQ,CAAE,CAAE,EAAE,CAAC,EAAW,EAAM,OAAO,EAAO,CAAY,CAAC,EAC9vB,MAAc,CAAC,GAAG,EAAS,OAAO,IAAM,EAAM,EAAS,QAAQ,GAAG,CAAC,EAAM,OAAO,SAAS,GAAc,CACnG,GAAmB,UAAQ,EAAe,QAAQ,IAAQ,EAAU,SAAQ,qBAAqB,EAAU,OAAO,EAAE,EAAU,QAAQ,0BAA0B,CAAC,GAAG,CAAC,EAAM,OAAO,IAAM,EAAM,EAAM,aAAa,EAAQ,EAAM,KAAK,MAAM,EAAM,WAAW,CAAK,EAAE,MAAoB,CAAC,GAAgB,GAAM,IAAO,EAAM,EAAK,KAAK,IAAI,EAAM,EAAM,OAAO,CAAC,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,CAA8D,OAA7D,EAAM,iBAAiB,SAAS,EAAa,CAAC,QAAQ,EAAI,CAAC,MAAY,CAAC,EAAM,oBAAoB,SAAS,CAAY,EAAK,EAAU,SAAQ,qBAAqB,EAAU,OAAO,CAAE,CAAE,EAAE,CAAC,EAAS,EAAM,MAAM,CAAC,EAC3jB,MAAc,CAAC,GAAG,EAAS,OAAO,IAAM,EAAU,GAAa,QAAQ,GAAG,CAAC,GAAW,OAAO,qBAAuB,IAAY,OAAO,IAAM,EAAS,IAAI,sBAAsB,CAAC,KAAS,CAAC,MAAoB,GAAc,EAAM,cAAc,CAAC,CAAE,EAAE,CAAC,UAAU,EAAE,CAAC,EAA8B,OAA5B,EAAS,QAAQ,CAAS,MAAY,EAAS,WAAW,CAAE,EAAE,CAAC,CAAQ,CAAC,EAO9U,MAAc,CAAC,GAAG,GAAU,CAAC,IAAiB,EAAM,QAAQ,GAAG,CAAC,IAAY,GAAkB,CAAC,IAAc,IAAe,EAAM,OAAO,GAAG,GAA2B,EAAe,QAAQ,OAAO,IAAM,EAAM,EAAO,eAAe,CAAC,IAAmB,EAAa,GAAG,EAAM,MAAM,CAAE,EAAE,KAAK,IAAI,GAAiB,EAAE,EAAE,GAAG,EAAE,UAAU,EAAO,aAAa,CAAK,CAAE,EAAE,CAAC,EAAS,GAAgB,GAAiB,GAAa,EAA0B,GAAW,EAAa,EAAM,OAAO,CAAgB,CAAC,EAG7e,SAAS,GAAqB,EAAO,CAAC,IAAM,EAAM,EAAS,QAAW,IAAO,GAAmB,QAAQ,GAAK,EAAM,WAAW,EAAM,YAAY,EAAO,EAAO,eAAe,CAAC,GAAmB,QAAQ,EAAM,EAAE,EAAE,GAAG,GAAgB,CAAM,CAAE,CAE9O,SAAS,IAAqB,CAAC,GAAoB,IAAI,CAAE,CAGzD,SAAS,GAAkB,EAAO,CAAC,GAAG,GAAkB,IAAS,EAAa,OAAO,IAAI,EAAK,GAAG,GAAY,CAAC,IAAM,GAAU,KAAK,IAAI,EAAE,GAAY,SAAS,IAAU,EAAS,KAAK,IAAI,EAAS,EAAc,CAAC,EAAE,EAAK,CAAC,WAAW,GAAG,GAAU,GAAG,EAAS,YAAY,GAAU,kBAAkB,KAAK,IAAI,EAAc,EAAS,CAAC,CAAC,CAAE,CAAC,GAAoB,CAAC,KAAK,EAAa,GAAG,EAAO,KAAK,EAAO,UAAU,EAAO,EAAa,EAAE,GAAG,MAAI,CAAC,CAAE,CAAC,SAAS,GAAU,EAAM,CAA0D,GAAtD,IAA0B,EAAe,QAAQ,IAAQ,EAAiB,CAAC,EAAiB,QAAQ,EAAM,GAAoB,EAAI,EAAE,MAAO,CAAC,GAAkB,CAAK,CAAE,CAMrnB,SAAS,EAAY,EAAM,CAA0F,IAAM,GAApF,EAAiB,UAAU,EAAiB,EAAiB,GAAG,IAAgC,EAA+N,OAAtN,EAAO,GAAG,EAAO,EAAM,OAAO,EAAS,IAAS,IAA0B,EAAe,QAAQ,IAAQ,GAAkB,EAAiB,QAAQ,EAAO,GAAoB,EAAI,GAAQ,GAAkB,CAAM,EAAU,GAAK,CAIlX,MAAc,CAAC,GAAG,EAAiB,OAAO,IAAM,EAAQ,EAAiB,QAAW,IAAU,OAAY,EAAiB,QAAQ,KAAK,GAAoB,EAAK,EAAK,IAAU,GAAa,GAAkB,CAAO,EACtN,EAAE,CAAC,CAAgB,CAAC,EAEpB,SAAS,GAAc,EAAE,CAAI,EAAE,MAAM,aAAiB,EAAY,CAAC,GAAE,EAAE,eAAe,EAAW,EAAE,MAAM,aAAgB,EAAY,EAAE,GAAE,EAAE,eAAe,CAAG,CAM7J,IAAM,GAAU,IAAO,QAAQ,IAAA,GAAgB,GAAW,IAAO,SAAS,IAAA,GAAgB,IAAe,EAAM,EAAE,EAAE,OAAO,GAAA,CAAc,IAAU,GAAU,CAAC,GAAG,GAAM,SAAS,WAAW,MAAM,GAAU,IAAA,GAAU,OAAO,OAAO,GAAW,IAAA,GAAU,OAAO,SAAS,SAAS,aAAa,GAAa,gBAAgB,GAAK,UAAU,aAAa,WAAW,OAAO,iBAAiB,OAAO,GAAG,EAAM,EAAE,GAAG,EAAS,CAAC,IAAM,EAAM,EAAM,GAAG,OAAoB,EAAM,MAAM,CAAC,MAAM,GAAU,SAAS,CAAc,EAAK,EAAgB,CAAC,IAAI,EAAa,CAAC,EAAe,EAAK,EAAW,CAAC,KAAK,EAAU,MAAG,CAAC,EAAE,IAA6B,EAAK,GAAW,CAAC,MAAM,EAAM,OAAO,QAAQ,EAAE,SAAS,IAAA,GAAyB,kBAAgC,oBAAgC,kBAA0B,cAAuB,eAAuB,cAAmB,WAAe,UAAO,YAAY,EAAK,CAAC,EAAE,IAAY,EAAM,OAAO,GAAgB,EAAMC,EAAU,CAAC,SAAS,CAAc,EAAK,EAAY,CAAC,UAAU,OAAO,UAAU,iBAAiB,YAAY,CAAC,EAAE,SAAS,GAAK,KAAK,OAAO,KAAK,EAAU,UAAU,EAAW,YAAY,EAAiB,WAAW,EAAgB,OAAO,EAAY,QAAQ,EAAa,OAAO,CAAW,CAAC,EAAe,EAAK,EAAY,CAAC,UAAU,OAAO,UAAU,aAAa,YAAY,CAAC,EAAE,SAAS,GAAM,KAAK,QAAQ,KAAK,EAAU,UAAU,EAAW,YAAY,EAAiB,WAAW,EAAgB,OAAO,EAAY,QAAQ,EAAa,OAAO,CAAW,CAAC,CAAC,CAAC,CAAC,EAAE,IAA0B,EAAK,GAAQ,CAAC,QAAQ,EAAE,MAAM,EAAM,OAAO,SAAS,GAAgB,UAAU,GAAa,eAAe,GAAkB,WAAW,GAAc,YAAY,GAAe,WAAW,EAAa,CAAC,CAAC,CAAC,CAAC,CAAE,CAE3sD,IAAM,EAAe,EAAiB,EAAiB,GAAG,EAOpD,GAAc,GAAiB,EAAM,QAAQ,GAA4B,EAAM,OAAO,EAAzD,EAA0E,OAAoB,EAAM,MAAM,CAAC,IAAI,GAAa,MAAM,GAAU,SAAS,EAAE,KAAK,SAAS,uBAAuB,WAAW,aAAa,kBAAkB,UAAU,GAAc,SAAS,CAAc,EAAK,EAAgB,CAAC,IAAI,EAAa,CAAC,EAAe,EAAK,OAAO,CAAC,YAAY,SAAS,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,SAAS,KAAK,mBAAmB,WAAW,SAAS,OAAO,CAAC,EAAE,SAAS,SAAS,EAAa,EAAE,MAAM,EAAM,QAAQ,CAAC,EAAe,EAAK,QAAQ,CAAC,SAAS,IAAI,GAAI,kCAAkC,CAAC,EAAe,EAAK,MAAM,CAAC,IAAI,EAAS,UAAU,GAAI,YAAY,GAAY,GAAgB,IAAA,GAAU,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,QAAQ,OAAO,MAAM,OAAO,OAAO,OAAO,UAAU,OAAO,UAAU,SAAS,eAAe,GAAY,GAAW,OAAO,cAAc,eAAe,OAAO,gBAAgB,OAAO,wBAAwB,QAAQ,cAAc,GAAkB,IAAS,QAAQ,OAAO,OAAO,OAAO,GAAY,EAAW,WAAW,OAAO,IAAA,GAAU,UAAU,GAAU,cAAc,GAAU,KAAK,IAAA,GAAU,WAAW,EAAW,OAAO,mDAAmD,EAAE,SAAS,EAAM,KAAK,EAAK,IAAQ,CAAC,IAAM,EAAS,IAAQ,EAAa,OAAoB,EAAK,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,KAAK,WAAW,MAAM,OAAO,OAAO,OAAO,SAAS,SAAS,gBAAgB,SAAS,eAAe,QAAQ,EAAE,SAAsB,EAAK,EAAW,CAAM,OAAS,OAAI,MAAM,KAAK,IAAI,EAAM,CAAY,GAAG,GAAa,KAAK,GAAY,CAAC,OAAO,EAAS,MAAM,GAAU,SAAS,EAAc,WAAW,EAAc,EAAE,IAAA,EAAS,CAAC,CAAC,EAAE,CAAK,CAAE,CAAC,CAAC,CAAC,EAAE,GAA+B,EAAK,EAAW,CAAC,KAAK,EAAiB,KAAK,SAAS,EAAM,EAAiB,MAAM,OAAO,EAAM,EAAiB,IAAI,UAAU,EAAiB,UAAc,OAAI,SAAS,GAAmB,YAAY,GAAiB,SAAS,EAAiB,KAAK,WAAW,GAAqB,EAAiB,EAAE,EAAE,OAAO,EAAmB,CAAC,EAAE,IAAgB,EAAM,OAAO,GAAgB,EAAK,GAAW,CAAC,MAAM,EAAM,OAAO,QAAQ,EAAe,SAAS,GAAyB,kBAAgC,oBAAgC,kBAA0B,cAAuB,eAAuB,cAAmB,WAAe,UAAO,YAAY,EAAI,CAAC,EAAE,IAAY,EAAM,OAAO,GAAgB,EAAMA,EAAU,CAAC,SAAS,CAAc,EAAK,EAAY,CAAC,UAAU,OAAO,UAAU,iBAAiB,YAAY,EAAY,EAAE,EAAE,SAAS,IAAiB,EAAE,KAAK,OAAO,KAAK,EAAU,UAAU,EAAW,YAAY,EAAiB,WAAW,EAAgB,OAAO,EAAY,QAAQ,EAAa,OAAO,CAAW,CAAC,EAAe,EAAK,EAAY,CAAC,UAAU,OAAO,UAAU,aAAa,YAAY,EAAY,CAAC,EAAE,SAAS,IAAiB,EAAM,OAAO,EAAE,KAAK,QAAQ,KAAK,EAAU,UAAU,EAAW,YAAY,EAAiB,WAAW,EAAgB,OAAO,EAAY,QAAQ,EAAa,OAAO,CAAW,CAAC,CAAC,CAAC,CAAC,EAAE,IAAa,EAAM,OAAO,GAAgB,EAAK,GAAQ,CAAC,QAAQ,EAAe,MAAM,EAAM,OAAO,SAAS,GAAgB,UAAU,GAAa,eAAe,GAAkB,WAAW,GAAc,YAAY,GAAe,WAAW,EAAa,CAAC,CAAC,CAAC,CAAC,CAAE,CAC3zG,SAAS,EAAW,CAAC,OAAK,WAAS,SAAO,YAAU,MAAI,WAAS,cAAY,WAAS,SAAO,UAAQ,CAAqN,OAAjN,IAAO,QAA6B,EAAK,EAAgB,CAAU,WAAgB,SAAiB,YAAc,MAAa,WAAqB,cAAqB,WAAgB,SAAc,QAAM,CAAC,EAAuB,EAAK,EAAe,CAAQ,SAAW,MAAa,WAAqB,cAAmB,SAAc,QAAM,CAAC,CAAE,CAKjc,SAAS,EAAgB,CAAC,WAAS,SAAO,YAAU,MAAI,WAAS,cAAY,WAAS,SAAO,UAAQ,CAAC,GAAK,CAAC,EAAQ,GAAYF,EAAS,EAAK,EAAO,CAAC,EAAe,GAAmBA,EAAS,CAAQ,EAAQ,EAAQD,EAAO,CAAC,EAAQ,EAASA,EAAO,IAAI,EAAE,MAAc,CAAC,IAAM,EAAK,0BAA0B,CAAC,EAAQ,QAAQ,0BAA0B,EAAW,EAAI,CAAC,CAAE,CAAC,EAA4E,MAA1E,GAAS,QAAQ,EAAO,eAAe,CAAC,EAAO,EAAE,EAAO,CAAE,EAAE,EAAS,GAAG,MAAY,CAAC,qBAAqB,CAAI,EAAE,qBAAqB,EAAQ,OAAO,EAAK,EAAS,SAAQ,EAAO,aAAa,EAAS,OAAO,CAAE,CACnkB,EAAE,CAAC,CAAC,EAGJ,MAAc,CAAK,IAAsB,EAAS,SAAQ,EAAO,aAAa,EAAS,OAAO,EAAE,EAAkB,CAAqB,EAAE,EAAS,QAAQ,EAAO,eAAe,CAAC,EAAO,EAAE,EAAO,CAAE,EAAE,EAAsB,GAAG,EAC9N,EAAE,CAAC,CAAW,CAAC,EAAE,IAAM,EAAW,CAAC,SAAS,WAAW,MAAM,EAAE,MAAM,OAAO,OAAO,OAInF,SAAS,SAAS,WAAW,aAAa,EAAe,iCAAiC,EAAE,OAAoB,EAAM,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,SAAS,SAAS,cAAc,MAAM,EAAE,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAW,UAAU,cAAc,EAAQ,CAAC,EAAU,IAAI,EAAE,GAAG,EAAE,SAAsB,EAAK,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,SAAS,SAAS,UAAU,EAAS,SAAS,EAAQ,EAAS,YAAY,EAAS,WAAW,GAAG,IAAA,GAAU,gBAAgB,gBAAgB,WAAW,GAAU,EAAS,kBAAkB,EAAE,aAAa,EAAS,kBAAkB,UAAU,MAAM,EAAE,SAAsB,EAAK,EAAW,CAAC,KAAK,EAAa,KAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAe,EAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAW,UAAU,cAAc,EAAQ,EAAE,EAAU,IAAI,GAAG,EAAE,SAAsB,EAAK,EAAW,CAAC,KAAK,EAAW,KAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,SAAS,EAAe,CAAC,SAAO,MAAI,WAAS,cAAY,SAAO,UAAQ,CAAC,GAAK,CAAC,EAAQ,GAAYC,EAAS,EAAK,EAAO,CAAC,EAAe,GAAmBA,EAAS,CAAQ,EAAQ,EAAQD,EAAO,CAAC,EAAQ,EAASA,EAAO,IAAI,EAK3iC,OAL6iC,MAAc,CAAC,IAAM,EAAK,0BAA0B,CAAC,EAAQ,QAAQ,0BAA0B,EAAW,EAAI,CAAC,CAAE,CAAC,EAA4E,MAA1E,GAAS,QAAQ,EAAO,eAAe,CAAC,EAAO,EAAE,EAAO,CAAE,EAAE,EAAS,GAAG,MAAY,CAAC,qBAAqB,CAAI,EAAE,qBAAqB,EAAQ,OAAO,EAAK,EAAS,SAAQ,EAAO,aAAa,EAAS,OAAO,CAAE,CACl4C,EAAE,CAAC,CAAC,EAGJ,MAAc,CAAK,IAAsB,EAAS,SAAQ,EAAO,aAAa,EAAS,OAAO,EAAE,EAAkB,CAAqB,EAAE,EAAS,QAAQ,EAAO,eAAe,CAAC,EAAO,EAAE,EAAO,CAAE,EAAE,EAAsB,GAAG,EAC9N,EAAE,CAAC,CAAW,CAAC,EAAsB,EAAK,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,SAAS,SAAS,QAAQ,KAAY,WAAW,WAAW,EAAe,QAAQ,cAAc,MAAM,EAAE,SAAsB,EAAK,EAAW,CAAC,KAAK,EAAW,KAAG,CAAC,CAAC,CAAC,CAAE,CAK5P,SAAS,EAAgB,CAAC,OAAK,CAAC,OAAoB,EAAK,MAAM,CAAK,MAAI,IAAI,GAAG,cAAc,OAAO,MAAM,CAAC,QAAQ,QAAQ,MAAM,OAAO,OAAO,OAAO,QAAQ,EAAE,cAAc,MAAM,CAAC,CAAC,CAAE,CAAC,SAAS,EAAW,CAAC,OAAK,MAAI,OAAK,QAAM,IAAM,CAAC,IAAM,EAAa,CAAC,CAAC,GAAM,OAAY,CAAC,EAAW,GAAeC,EAAS,EAAK,EAAQ,EAAQD,EAAO,CAAC,EAQsB,GAAvW,MAAc,CAAC,GAAG,EAAa,CAAC,IAAM,EAAK,0BAA0B,CAAC,EAAQ,QAAQ,0BAA0B,EAAc,EAAI,CAAC,CAAE,CAAC,EAAE,UAAU,CAAC,qBAAqB,CAAI,EAAE,qBAAqB,EAAQ,OAAO,CAAE,CAAE,CAAC,IAAM,EAAW,EAAO,eAAe,EAAc,EAAK,EAAE,GAAM,YAAY,IAAI,EAAE,UAAU,EAAO,aAAa,CAAU,CAAE,EAAE,CAAC,CAAY,CAAC,EAAK,CAAC,EAAK,OAAO,KAAK,IAAM,EAAY,EAAiB,EAAW,CAAC,SAAS,WAAW,MAAM,EAAE,MAAM,OAAO,OAAO,OAAO,UAAU,EAAI,UAAU,EAAY,SAAS,EAAK,MAAM,GAAG,WAAW,gBAAgB,gBAAgB,WAAW,EAAY,aAAa,EAAK,SAAS,UAAU,MAAM,EAAQ,EAAM,EAAK,OAAO,GAAa,OAAoB,EAAMG,EAAU,CAAC,SAAS,CAAC,IAAM,WAAwB,EAAK,MAAM,CAAC,IAAI,EAAM,IAAI,IAAI,GAAG,cAAc,OAAO,MAAM,CAAC,SAAS,WAAW,MAAM,IAAiB,UAAU,QAAQ,OAAO,QAAQ,EAAc,KAAK,UAAU,eAAe,EAAE,QAAQ,EAAM,QAAQ,MAAM,CAAC,EAAe,EAAK,MAAM,CAAC,IAAI,EAAM,IAAI,OAAO,EAAM,OAAO,IAAI,EAAM,KAAK,GAAG,MAAM,EAAW,QAAQ,EAAM,QAAQ,OAAO,UAAU,EAAK,CAAC,CAAC,CAAC,CAAC,CAAE,CAOr+B,SAAS,GAAW,CAAC,QAAM,UAAQ,WAAS,iBAAe,mBAAiB,iBAAe,aAAW,cAAY,aAAW,UAAQ,SAAO,eAAa,CAGxR,IAAM,EAAQ,KAAK,IAAI,EAAQ,EAAE,EAAE,EAAQ,EAAS,EAAM,GAAkC,EAAU,EAAS,KAAK,IAAI,EAAQ,CAAgB,EAAE,EAAc,EAAW,EAAS,KAAK,IAAI,EAAM,EAAE,EAAQ,CAAgB,EAAE,EAAM,EAAE,EAGjO,EAAa,EAAU,EAAE,EAAiB,EAAW,EAAQ,EAAgB,EAAK,EAAQ,EAAa,EAAc,EAAa,GAAS,EAAa,GAAG,EAAa,EAAY,CAAC,EAAW,EAAK,OAAoB,EAAK,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,OAAO,EAAW,KAAK,MAAM,UAAU,mBAAmB,QAAQ,OAAO,WAAW,SAAS,QAAQ,EAAY,aAAa,IAAI,WAAW,EAAe,eAAe,aAAa,qBAAqB,aAAa,UAAU,aAAa,GAAG,CAAU,EAAE,KAAK,UAAU,aAAa,mBAAmB,SAAsB,EAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAc,OAAO,EAAQ,IAAI,SAAS,SAAS,WAAW,EAAY,SAAS,EAA0B,QAAQ,MAAM,EAAE,SAAsB,EAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,WAAW,SAAS,IAAI,EAAO,OAAO,OAAO,UAAU,cAAc,EAAY,KAAK,WAAW,EAAY,aAAa,EAA0B,QAAQ,MAAM,EAAE,SAAS,MAAM,KAAK,CAAC,OAAO,CAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAQ,CAAC,IAAM,EAAS,IAAQ,EAAc,EAAS,KAAK,IAAI,EAAM,CAAO,EAAgH,OAAoB,EAAM,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,EAAQ,OAAO,EAAQ,WAAW,CAAC,EAAE,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAQ,OAAO,EAAQ,aAAa,MAAM,gBAAgB,EAAS,EAAe,EAAiB,UAAU,SAAlT,EAAS,KAA3D,GAAU,IAAW,EAAmD,EAAsB,EAAqR,GAAG,WAAW,EAAY,kDAAkD,MAAM,CAAC,CAAC,EAAe,EAAK,SAAS,CAAC,KAAK,SAAS,KAAK,MAAM,gBAAgB,EAAS,aAAa,eAAe,EAAM,IAAI,SAAS,CAAC,EAAS,QAAQ,MAAa,EAAS,CAAK,EAAE,IAAA,GAAU,MAAM,CAAC,SAAS,WAAW,IAAI,MAAM,KAAK,MAAM,MAAM,EAAQ,OAAO,EAAQ,UAAU,wBAAwB,OAAO,EAAE,QAAQ,EAAE,OAAO,OAAO,WAAW,OAAO,KAAK,UAAU,WAAW,OAAO,iBAAiB,OAAO,OAAO,EAAS,UAAU,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAK,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,SAAS,GAAQ,CAAC,UAAQ,QAAM,WAAS,YAAU,iBAAe,aAAW,cAAY,cAAY,CAAC,OAAoB,EAAM,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,IAAI,EAAW,MAAM,EAAW,QAAQ,EAAY,aAAa,IAAI,WAAW,EAAe,eAAe,aAAa,qBAAqB,aAAa,UAAU,aAAa,WAAW,oBAAoB,WAAS,WAAW,IAAI,WAAW,EAAE,MAAM,EAAU,WAAW,SAAS,GAAG,CAAU,EAAE,cAAc,OAAO,SAAS,CAAC,EAAQ,EAAE,IAAI,CAAK,CAAC,CAAC,CAAE,CAA8D,SAAS,EAAY,CAAC,YAAU,YAAU,UAAQ,WAAS,OAAK,OAAK,YAAU,cAAY,aAAW,SAAO,UAAQ,UAAQ,CAIvpF,IAAM,EAAa,EAAK,IAAI,OAAoB,EAAK,SAAS,CAAC,KAAK,SAAS,aAAa,EAAmB,WAAiB,UAAQ,MAAM,CAAC,SAAS,WAAW,IAAI,MAAM,KAAK,IAAO,OAAO,EAAO,IAAA,GAAU,MAAM,IAAO,QAAQ,EAAO,IAAA,GAAU,UAAU,mBAAmB,QAAQ,OAAO,WAAW,SAAS,eAAe,SAAS,UAAQ,OAAO,EAAE,OAAO,OAAO,aAAa,IAAI,aAAW,eAAe,aAAa,qBAAqB,aAAa,UAAU,aAAa,OAAO,EAAS,UAAU,UAAU,KAAK,UAAU,WAAW,OAAO,iBAAiB,OAAO,GAAG,CAAM,EAAE,SAAsB,EAAK,MAAM,CAAC,MAAM,EAAK,OAAO,EAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,CAAC,UAAU,cAAc,IAAY,OAAO,CAAC,EAAa,EAAa,IAAI,EAAE,SAAsB,EAAK,OAAO,CAAC,EAAE,EAAW,GAAW,OAAO,EAAS,EAAU,EAAY,YAAY,EAAE,cAAc,QAAQ,eAAe,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,kDAlKr0B,IAAqE,IAAwE,EAAO,EAAc,EAG1O,EAAsB,IACtB,EAAc,GAQd,GAAgB,IAAU,GAAmB,GA4I7C,GAA4B,EAAQ,EAAiB,EAAQ,EAAsB,GAAS,EAA0B,GAMu2E,EAAW,CAAC,KAAK,iBAAiB,KAAK,cAAc,EAI9nD,GAAa,CAAC,IAAI,sEAAsE,IAAI,YAAY,EAAQ,EAAc,CAAC,CAAC,MAAM,CAAC,IAAI,sEAAsE,IAAI,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,oEAAoE,IAAI,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,uEAAuE,IAAI,YAAY,CAAC,CAAC,EAAE,EAAe,YAAY,kBAAkB,EAAoB,EAAe,CAAC,OAAO,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,QAAQ,CAAC,SAAS,MAAM,KAAK,EAAE,aAAa,CAAC,SAAS,MAAM,KAAK,EAAE,aAAa,SAAS,wBAAwB,EAAI,EAAE,OAAO,CAAC,KAAK,EAAY,MAAM,MAAM,SAAS,QAAQ,CAAC,KAAK,EAAY,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,EAAY,gBAAgB,MAAM,OAAO,CAAC,CAAC,EAAE,aAAa,EAAc,SAAS,GAAG,OAAO,GAAO,EAAM,SAAS,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAY,gBAAgB,MAAM,UAAU,OAAO,GAAO,EAAM,SAAS,KAAK,EAAE,OAAO,CAAC,KAAK,EAAY,gBAAgB,MAAM,UAAU,OAAO,GAAO,EAAM,SAAS,KAAK,EAAE,OAAO,CAAC,KAAK,EAAY,gBAAgB,MAAM,UAAU,OAAO,GAAO,EAAM,SAAS,KAAK,EAAE,OAAO,CAAC,KAAK,EAAY,gBAAgB,MAAM,UAAU,OAAO,GAAO,EAAM,SAAS,KAAK,EAAE,OAAO,CAAC,KAAK,EAAY,gBAAgB,MAAM,UAAU,OAAO,GAAO,EAAM,SAAS,KAAK,EAAE,OAAO,CAAC,KAAK,EAAY,gBAAgB,MAAM,UAAU,OAAO,GAAO,EAAM,SAAS,KAAK,EAAE,OAAO,CAAC,KAAK,EAAY,gBAAgB,MAAM,UAAU,OAAO,GAAO,EAAM,SAAS,KAAK,EAAE,OAAO,CAAC,KAAK,EAAY,gBAAgB,MAAM,UAAU,OAAO,GAAO,EAAM,SAAS,KAAK,EAAE,OAAO,CAAC,KAAK,EAAY,gBAAgB,MAAM,UAAU,OAAO,GAAO,EAAM,SAAS,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAY,gBAAgB,MAAM,WAAW,OAAO,GAAO,EAAM,SAAS,KAAK,EAAE,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,YAAY,cAAc,OAAO,GAAO,EAAM,SAAS,KAAK,EAAE,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,YAAY,cAAc,OAAO,GAAO,EAAM,SAAS,KAAK,EAAE,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,YAAY,cAAc,OAAO,GAAO,EAAM,SAAS,KAAK,EAAE,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,YAAY,cAAc,OAAO,GAAO,EAAM,SAAS,KAAK,EAAE,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,YAAY,cAAc,OAAO,GAAO,EAAM,SAAS,KAAK,EAAE,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,YAAY,cAAc,OAAO,GAAO,EAAM,SAAS,KAAK,EAAE,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,YAAY,cAAc,OAAO,GAAO,EAAM,SAAS,KAAK,EAAE,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,YAAY,cAAc,OAAO,GAAO,EAAM,SAAS,KAAK,EAAE,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,YAAY,cAAc,OAAO,GAAO,EAAM,SAAS,KAAK,EAAE,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,YAAY,cAAc,OAAO,GAAO,EAAM,SAAS,KAAK,EAAE,IAAI,CAAC,KAAK,EAAY,KAAK,MAAM,MAAM,QAAQ,CAAC,QAAQ,SAAS,EAAE,aAAa,CAAC,QAAQ,SAAS,EAAE,aAAa,QAAQ,wBAAwB,EAAI,EAAE,OAAO,CAAC,KAAK,EAAY,KAAK,MAAM,aAAa,QAAQ,CAAC,QAAQ,MAAM,EAAE,aAAa,CAAC,QAAQ,MAAM,EAAE,aAAa,QAAQ,wBAAwB,EAAI,EAAE,mBAAmB,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,GAAG,EAAE,YAAY,CAAC,KAAK,EAAY,QAAQ,MAAM,eAAe,aAAa,EAAK,EAAE,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAY,QAAQ,MAAM,aAAa,aAAa,EAAI,EAAE,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,KAAK,OAAO,GAAO,CAAC,EAAM,OAAO,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,KAAK,OAAO,GAAO,CAAC,EAAM,OAAO,EAAE,YAAY,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,UAAU,OAAO,GAAO,CAAC,EAAM,OAAO,EAAE,cAAc,CAAC,KAAK,EAAY,MAAM,MAAM,MAAM,aAAa,4BAA4B,OAAO,GAAO,CAAC,EAAM,OAAO,EAAE,WAAW,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,qBAAqB,OAAO,GAAO,CAAC,EAAM,OAAO,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,CAAC,YAAY,EAAE,YAAY,QAAQ,YAAY,2BAA2B,EAAE,OAAO,GAAO,CAAC,EAAM,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAY,QAAQ,MAAM,UAAU,aAAa,oBAAoB,OAAO,GAAO,CAAC,EAAM,OAAO,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,KAAK,OAAO,GAAO,CAAC,EAAM,OAAO,CAAC,EAAE,aAAa,CAAC,QAAQ,GAAK,YAAY,UAAU,cAAc,4BAA4B,WAAW,qBAAqB,OAAO,CAAC,YAAY,EAAE,YAAY,QAAQ,YAAY,2BAA2B,EAAE,QAAQ,oBAAoB,OAAO,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAY,QAAQ,MAAM,SAAS,aAAa,EAAI,EAAE,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE,KAAK,KAAK,OAAO,GAAO,CAAC,EAAM,OAAO,EAAE,YAAY,CAAC,KAAK,EAAY,MAAM,MAAM,eAAe,aAAa,UAAU,OAAO,GAAO,CAAC,EAAM,OAAO,EAAE,MAAM,CAAC,KAAK,EAAY,MAAM,MAAM,QAAQ,aAAa,4BAA4B,OAAO,GAAO,CAAC,EAAM,OAAO,EAAE,WAAW,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,qBAAqB,OAAO,GAAO,CAAC,EAAM,OAAO,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,CAAC,YAAY,EAAE,YAAY,QAAQ,YAAY,2BAA2B,EAAE,OAAO,GAAO,CAAC,EAAM,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAY,QAAQ,MAAM,UAAU,aAAa,kBAAkB,OAAO,GAAO,CAAC,EAAM,OAAO,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,KAAK,OAAO,GAAO,CAAC,EAAM,OAAO,CAAC,EAAE,aAAa,CAAC,QAAQ,GAAK,KAAK,GAAG,YAAY,UAAU,MAAM,4BAA4B,WAAW,qBAAqB,OAAO,CAAC,YAAY,EAAE,YAAY,QAAQ,YAAY,2BAA2B,EAAE,QAAQ,kBAAkB,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAY,QAAQ,MAAM,UAAU,aAAa,EAAK,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,aAAa,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,KAAK,OAAO,GAAO,CAAC,EAAM,OAAO,EAAE,MAAM,CAAC,KAAK,EAAY,MAAM,MAAM,QAAQ,aAAa,UAAU,OAAO,GAAO,CAAC,EAAM,OAAO,EAAE,WAAW,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,qBAAqB,OAAO,GAAO,CAAC,EAAM,OAAO,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,CAAC,YAAY,EAAE,YAAY,QAAQ,YAAY,2BAA2B,EAAE,OAAO,GAAO,CAAC,EAAM,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAY,QAAQ,MAAM,UAAU,aAAa,kBAAkB,OAAO,GAAO,CAAC,EAAM,OAAO,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,KAAK,OAAO,GAAO,CAAC,EAAM,OAAO,CAAC,EAAE,aAAa,CAAC,QAAQ,GAAM,SAAS,GAAG,MAAM,UAAU,WAAW,qBAAqB,OAAO,CAAC,YAAY,EAAE,YAAY,QAAQ,YAAY,2BAA2B,EAAE,QAAQ,kBAAkB,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAY,QAAQ,MAAM,WAAW,aAAa,EAAI,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,KAAK,IAAI,OAAO,GAAO,CAAC,EAAM,OAAO,EAAE,KAAK,CAAC,KAAK,EAAY,QAAQ,MAAM,OAAO,aAAa,GAAK,OAAO,GAAO,CAAC,EAAM,OAAO,EAAE,kBAAkB,CAAC,KAAK,EAAY,QAAQ,MAAM,sBAAsB,aAAa,GAAK,OAAO,GAAO,CAAC,EAAM,OAAO,CAAC,EAAE,aAAa,CAAC,QAAQ,GAAK,SAAS,EAAE,KAAK,GAAK,kBAAkB,EAAI,CAAC,EAAE,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAY,QAAQ,MAAM,OAAO,aAAa,EAAI,EAAE,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,KAAK,IAAI,EAAE,IAAI,IAAI,KAAK,IAAI,OAAO,GAAO,CAAC,EAAM,OAAO,CAAC,EAAE,aAAa,CAAC,QAAQ,GAAK,MAAM,IAAI,CAAC,EAAE,KAAK,CAAC,KAAK,EAAY,MAAM,MAAM,OAAO,aAAa,SAAS,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,SAAS,EAAI,EAAE,aAAa,CAAC,KAAK,EAAY,aAAa,MAAM,SAAS,aAAa,KAAK,CAAC,CAAC"}