{"version":3,"file":"shared.DBQLfMZk.mjs","names":["clamp","length","platform","computePosition","i","x","autoPlacement","d","a","shift","min","max","clamp","getComputedStyle","css","css","getComputedStyle","x","$","e","scroll","cache","window","useRef","x","useState","useRef","e","styles","styles","format","useRef","useState","useCallback","Breakpoint","useRef","Breakpoint","memo","Breakpoint","createContext","useState","useCurrentUser","useMemo","useContext","createContext","useRef","useContext","initialState","createContext","Root","forwardRef","useRef","useState","clamp","containerStyle","useContext","forwardRef","useState","container","COMPONENT_NAME","css","List","forwardRef","useState","clamp","container","mergeRefs","containerStyle","Panel","forwardRef","e","mergeRefs","containerStyle","isFunction","useContext","createContext","Root","forwardRef","useContext","useContext","containerStyle","Fragment","Default","forwardRef","t","a","C","s","e","a$1","c","o","useCallback","useMemo","a","N","a","forwardRef","t","e","s","r","l","c","i","p","C","n","forwardRef","baseStyleByTheme","Item","forwardRef","Fragment","Default","createContext","useContext","useRef","module","root","useRef","useCallback","createContext","Root","forwardRef","useRef","mergeRefs","useContext","forwardRef","e","useMemo","formatProducts","formatProducts","a","x","x","format","offset","isLast","x","x","useRef","useState","useMemo","getProps","useRef","useCallback","useState","progress","useMemo","e","containerStyle","wrapperStyle","wrapperStyleByBreakpoint","iconColorByTheme","Default","forwardRef","useContext","containerStyle","forwardRef","useRef","useState","container","containerStyle","Default","mergeRefs","wrapperResetStyle","wrapperStyleByBreakpoint","listStyle","offset","noop","noop","forwardRef","Default","createContext","forwardRef","getDisplayCount","List","PRODUCTS_PER_REQUEST","entries","e","length","length","length","getPrototype","objectTag","getPrototype","hasOwnProperty","hasOwnProperty","length","hasOwnProperty","isFunction","length","baseSetToString","length","length","getPrototype","length","arrayBufferTag","boolTag","dateTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","mapTag","numberTag","stringTag","regexpTag","setTag","symbolTag","getTag","mapTag","getTag","setTag","isSet","CLONE_DEEP_FLAG","CLONE_SYMBOLS_FLAG","getTag","isSet","slice","forwardRef","styles","containerStyle","useRef","mergeRefs","Default","forwardRef","Default","containerStyle","createContext","PRODUCTS_PER_REQUEST","useContext","getKey","useRef","useCallback","i","r","length","useMemo","offset","containerStyle","useRef","useMemo","p","containerStyle","e","COMPONENT_NAME","styles","withViewEventTracker","getComponent","useRef","mergeRefs","isWebview","getComponent","addPropertyOverrides","IconFonts","Icon","cycleOrder","serializationHash","variantClassNames","numberToPixelString","transition1","toResponsiveImage","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","_","createLayoutDependency","useRef","React.useId","className","classNames","Image","RichText","t","wrap","e","n","o","s","mix","r","clamp","u","a","s","n","o","r","c","t","e","i","n","r","n","e","t","o","n","e","t","r","a","n","e","r","t","s","o","c","i","u","d","l","g","m","p","M","n","e","t","o","a","i","s","r","A","c","l","u","d","O","g","m","q","X","p","Z","v","J","Y","y","b","te","j","x","V","se","c","n","e","isCanvas","Children","useCallback","useRef","useState","measure","writingDirection","isRTL","useEffectEvent","offset","i","startTransition","callback","min","max","Dot","dotStyle","serializationHash","variantClassNames","transition1","toResponsiveImage","Transition","React.useContext","React.useMemo","Variants","React.Fragment","getProps","createLayoutDependency","useRef","React.useId","className","classNames","RichText","Image","fonts","css","className","addPropertyOverrides","cycleOrder","serializationHash","variantClassNames","transition1","toResponsiveImage","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","useRef","React.useId","sharedStyle.className","className","classNames","Image","RichText","sharedStyle.css","sharedStyle.fonts","fonts","css","className","addPropertyOverrides","cycleOrder","serializationHash","variantClassNames","transition1","toResponsiveImage","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","React.useRef","React.useId","sharedStyle.className","className","classNames","Image","RichText","sharedStyle.css","sharedStyle.fonts","addPropertyOverrides","cycleOrder","serializationHash","variantClassNames","transition1","toResponsiveImage","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","createLayoutDependency","useRef","React.useId","className","classNames","Image","RichText","Children","isValidElement","cloneElement","useState","Fragment","useState","useCallback","e","ProductProvider","useRef","Fragment","BaseProductProvider","addPropertyOverrides","cycleOrder","serializationHash","variantClassNames","transition1","a","Transition","React.useContext","React.useMemo","Variants","React.Fragment","humanReadableVariantMap","getProps","_","createLayoutDependency","useRef","React.useId","className","classNames","RichText","ProductInfo","Icon","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","getProps","createLayoutDependency","useRef","React.useId","className","classNames","Productinfo_children","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","Variants","React.Fragment","getProps","createLayoutDependency","useRef","React.useId","className","classNames","serializationHash","variantClassNames","transition1","toResponsiveImage","Transition","React.useContext","React.useMemo","Variants","React.Fragment","getProps","createLayoutDependency","React.useRef","React.useId","className","classNames","Image","fonts","css","className","fonts","css","className","fonts","css","className","fonts","css","className","useRef","useRef","useState","useCallback","isLast","x","useMemo","useState","addPropertyOverrides","Countdown","Schedulable","cycleOrder","serializationHash","variantClassNames","transition1","Transition","React.useContext","React.useMemo","humanReadableVariantMap","Variants","React.Fragment","getProps","_","createLayoutDependency","useRef","React.useId","className","classNames","RichText","Badge","Badge","React.useContext","React.useMemo","React.Fragment","_","useRef","React.useId","className","classNames","RichText","Image"],"sources":["https:/asset.29cm.co.kr/contents/framer/components/@shared/icons/PlusIcon.js","https:/asset.29cm.co.kr/contents/framer/components/systems/PinProductBannerV2/PinProductBannerV2.constants.effect.js","https:/asset.29cm.co.kr/contents/framer/node_modules/@floating-ui/utils/dist/floating-ui.utils.js","https:/asset.29cm.co.kr/contents/framer/node_modules/@floating-ui/core/dist/floating-ui.core.js","https:/asset.29cm.co.kr/contents/framer/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js","https:/asset.29cm.co.kr/contents/framer/node_modules/@floating-ui/dom/dist/floating-ui.dom.js","https:/asset.29cm.co.kr/contents/framer/hooks/useComputeFloatingPosition.js","https:/asset.29cm.co.kr/contents/framer/hooks/useOutsideClick.js","https:/asset.29cm.co.kr/contents/framer/components/systems/PinProductBannerV2/PinProductBannerV2.hooks.event.js","https:/asset.29cm.co.kr/contents/framer/components/systems/PinProductBannerV2/PinProductBannerV2.hooks.js","https:/asset.29cm.co.kr/contents/framer/components/systems/PinProductBannerV2/PinProductBannerV2.module.css.js","https:/asset.29cm.co.kr/contents/framer/libs/property-controls/component-id.js","https:/asset.29cm.co.kr/contents/framer/components/systems/PinProductBannerV2/PinProductBannerV2.js","https:/framerusercontent.com/modules/4gBB3FGqrvzyxmz8kQhP/sy94cNAaDGLYG1eHXw27/PinProductCard.js","https:/asset.29cm.co.kr/contents/framer/utils/mediaBuilder.js","https:/asset.29cm.co.kr/contents/framer/components/systems/KeyVisual/KeyVisualImage/KeyVisualImage.js","https:/asset.29cm.co.kr/contents/framer/hooks/useVideoVisibility.js","https:/asset.29cm.co.kr/contents/framer/components/systems/KeyVisual/KeyVisual.constants.js","https:/asset.29cm.co.kr/contents/framer/components/systems/KeyVisual/KeyVisualVideo/KeyVisualVideo.js","https:/asset.29cm.co.kr/contents/framer/components/systems/KeyVisual/KeyVisual.js","https:/framerusercontent.com/modules/Jd4PPpQoFAzEN1eFj2F3/r6FRCVvPZdkepdglxjqL/KeyVisual.js","https:/asset.29cm.co.kr/contents/framer/components/modules/TagsModule/TagsModule.types.js","https:/asset.29cm.co.kr/contents/framer/hooks/fetchers/useCategoryNewBuyerCoupon.js","https:/asset.29cm.co.kr/contents/framer/components/@shared/providers/SegmentProvider/SegmentProvider.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/IntersectionProvider/IntersectionProvider.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/IntersectionProvider/IntersectionProvider.hooks.js","https:/asset.29cm.co.kr/contents/framer/components/modules/query-store/query.store.js","https:/asset.29cm.co.kr/contents/framer/utils/getRestScrollWidth.js","https:/asset.29cm.co.kr/contents/framer/components/@shared/DraggableTabs/Root.js","https:/asset.29cm.co.kr/contents/framer/components/@shared/DraggableTabs/Root.hooks.js","https:/asset.29cm.co.kr/contents/framer/components/@shared/DraggableTabs/Gradient.js","https:/asset.29cm.co.kr/contents/framer/utils/closest.js","https:/asset.29cm.co.kr/contents/framer/components/@shared/DraggableTabs/List.js","https:/asset.29cm.co.kr/contents/framer/components/@shared/DraggableTabs/Panel.js","https:/asset.29cm.co.kr/contents/framer/components/@shared/DraggableTabs/Trigger.js","https:/asset.29cm.co.kr/contents/framer/components/@shared/DraggableTabs/index.js","https:/asset.29cm.co.kr/contents/framer/components/@shared/providers/BreakpointProvider/BreakpointProvider.hooks.js","https:/asset.29cm.co.kr/contents/framer/hooks/useBreakpoint.js","https:/asset.29cm.co.kr/contents/framer/styles/breakpoint.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/Tags/Root.js","https:/asset.29cm.co.kr/contents/framer/components/@shared/providers/ThemeProvider/ThemeProvider.hooks.js","https:/asset.29cm.co.kr/contents/framer/hooks/useTheme.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/Tags/Root.hooks.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/Tags/List.js","https:/asset.29cm.co.kr/contents/framer/node_modules/@29cm/ruler-ui/dist/components/Tag/Tag.styles.js","https:/asset.29cm.co.kr/contents/framer/node_modules/@29cm/ruler-ui/dist/components/Tag/useTag.js","https:/asset.29cm.co.kr/contents/framer/node_modules/@29cm/ruler-ui/dist/components/Tag/ToggleTag/ToggleTag.js","https:/asset.29cm.co.kr/contents/framer/components/@shared/TagSkeleton/TagSkeleton.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/Tags/Item.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/Tags/Panels.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/Tags/Panel.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/Tags/index.js","https:/asset.29cm.co.kr/contents/framer/hooks/events/useTrackViewComponentEvent.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/EventTrackingProvider/EventTrackingProvider.js","https:/asset.29cm.co.kr/contents/framer/hooks/events/useTrackClickComponentEvent.js","https:/asset.29cm.co.kr/contents/framer/hooks/events/useTrackClickTagContentEvent.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/EventTrackingProvider/EventTrackingProvider.hooks.js","https:/asset.29cm.co.kr/contents/framer/components/modules/module-store/module.store.js","https:/asset.29cm.co.kr/contents/framer/components/modules/hooks.js","https:/asset.29cm.co.kr/contents/framer/hooks/useInViewport.js","https:/asset.29cm.co.kr/contents/framer/components/@shared/EventTrigger/Root.js","https:/asset.29cm.co.kr/contents/framer/components/@shared/EventTrigger/Root.hooks.js","https:/asset.29cm.co.kr/contents/framer/components/@shared/EventTrigger/Target.js","https:/asset.29cm.co.kr/contents/framer/components/@shared/EventTrigger/index.js","https:/asset.29cm.co.kr/contents/framer/utils/spacing.js","https:/asset.29cm.co.kr/contents/framer/components/modules/TagsModule/TagsElement/TagsElement.js","https:/asset.29cm.co.kr/contents/framer/apis/best/BestApiService.js","https:/asset.29cm.co.kr/contents/framer/apis/brand-curation/BrandCurationApiService.js","https:/asset.29cm.co.kr/contents/framer/apis/brand-sale/BrandSaleApiService.js","https:/asset.29cm.co.kr/contents/framer/apis/collection/CollectionApiService.js","https:/asset.29cm.co.kr/contents/framer/apis/keyword-collections/KeywordCollectionApiService.js","https:/asset.29cm.co.kr/contents/framer/node_modules/date-fns/compareAsc.js","https:/asset.29cm.co.kr/contents/framer/node_modules/date-fns/locale/ko/_lib/formatDistance.js","https:/asset.29cm.co.kr/contents/framer/node_modules/date-fns/locale/ko/_lib/formatLong.js","https:/asset.29cm.co.kr/contents/framer/node_modules/date-fns/locale/ko/_lib/formatRelative.js","https:/asset.29cm.co.kr/contents/framer/node_modules/date-fns/locale/ko/_lib/localize.js","https:/asset.29cm.co.kr/contents/framer/node_modules/date-fns/locale/ko/_lib/match.js","https:/asset.29cm.co.kr/contents/framer/node_modules/date-fns/locale/ko.js","https:/asset.29cm.co.kr/contents/framer/node_modules/date-fns/isWithinInterval.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/KeywordCollectionV2/TimeSaleCollectionTags/TimeSaleCollectionTags.utils.js","https:/asset.29cm.co.kr/contents/framer/utils/date.js","https:/asset.29cm.co.kr/contents/framer/components/modules/types.js","https:/asset.29cm.co.kr/contents/framer/components/modules/utils/facet.js","https:/asset.29cm.co.kr/contents/framer/components/systems/KeywordCollection/KeywordCollectionTags/KeywordCollectionTags.utils.js","https:/asset.29cm.co.kr/contents/framer/node_modules/date-fns/subDays.js","https:/asset.29cm.co.kr/contents/framer/node_modules/date-fns/subMonths.js","https:/asset.29cm.co.kr/contents/framer/node_modules/date-fns/sub.js","https:/asset.29cm.co.kr/contents/framer/node_modules/date-fns/formatISO.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/KeywordCollectionV2/TimeSaleCollection.utils.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/CouponCollection/CalendarTags/CalendarTags.utils.js","https:/asset.29cm.co.kr/contents/framer/components/modules/TagsModule/TagsModule.utils.js","https:/asset.29cm.co.kr/contents/framer/components/modules/TagsModule/TagsModule.hooks.js","https:/asset.29cm.co.kr/contents/framer/components/modules/TagsModule/AutoTagsModule/AutoTagsModule.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/SectionLayout/SectionLayout.js","https:/asset.29cm.co.kr/contents/framer/components/@shared/SWRErrorBoundary/SWRErrorBoundary.js","https:/asset.29cm.co.kr/contents/framer/libs/property-controls/breakpoint.js","https:/asset.29cm.co.kr/contents/framer/styles/theme.js","https:/asset.29cm.co.kr/contents/framer/libs/property-controls/theme.js","https:/asset.29cm.co.kr/contents/framer/libs/property-controls/helpers.js","https:/asset.29cm.co.kr/contents/framer/types/models/coupon.js","https:/asset.29cm.co.kr/contents/framer/components/modules/CouponModule/CouponModule.types.js","https:/asset.29cm.co.kr/contents/framer/components/modules/controls.js","https:/asset.29cm.co.kr/contents/framer/components/modules/TagsModule/TagsModule.controls.js","https:/asset.29cm.co.kr/contents/framer/components/modules/TagsModule/LinkedTagsModule/LinkedTagsModule.utils.js","https:/asset.29cm.co.kr/contents/framer/components/modules/utils/key.js","https:/asset.29cm.co.kr/contents/framer/components/modules/TagsModule/LinkedTagsModule/LinkedTagsModule.js","https:/asset.29cm.co.kr/contents/framer/libs/property-controls/segment.js","https:/asset.29cm.co.kr/contents/framer/components/modules/TagsModule/TagsModule.js","https:/framerusercontent.com/modules/LcoSbbUQzAWYrkTx3Hyi/yfr8qKY2xRRK7cInEyBA/TagsModule.js","https:/framerusercontent.com/modules/lRDHiNWNVWmE0lqtoVHP/7qT0r3So12155VV5Jq5x/Video.js","https:/asset.29cm.co.kr/contents/framer/components/systems/Button/Button.constants.js","https:/asset.29cm.co.kr/contents/framer/components/@shared/ErrorFallback/ErrorFallback.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/NoContent/NoContent.js","https:/asset.29cm.co.kr/contents/framer/components/@shared/layouts/Grid.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/Products/Root.hooks.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/ArrowIcon/ArrowIcon.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/Products/HorizontalList.js","https:/asset.29cm.co.kr/contents/framer/utils/isLast.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/noop.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/Products/Item.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/Products/VerticalList.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/Products/Root.js","https:/asset.29cm.co.kr/contents/framer/utils/fromEntries.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_defineProperty.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_baseAssignValue.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_assignMergeValue.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_createBaseFor.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_baseFor.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_cloneBuffer.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_cloneArrayBuffer.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_cloneTypedArray.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_copyArray.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_baseCreate.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_getPrototype.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_initCloneObject.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/isArrayLikeObject.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/isPlainObject.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_safeGet.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_assignValue.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_copyObject.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_nativeKeysIn.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_baseKeysIn.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/keysIn.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/toPlainObject.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_baseMergeDeep.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_baseMerge.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/identity.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_apply.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_overRest.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/constant.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_baseSetToString.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_shortOut.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_setToString.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_baseRest.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_isIterateeCall.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_createAssigner.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/merge.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_arrayEach.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_baseAssign.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_baseAssignIn.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_copySymbols.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_getSymbolsIn.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_copySymbolsIn.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_getAllKeysIn.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_initCloneArray.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_cloneDataView.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_cloneRegExp.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_cloneSymbol.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_initCloneByTag.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_baseIsMap.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/isMap.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_baseIsSet.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/isSet.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/_baseClone.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/cloneDeep.js","https:/asset.29cm.co.kr/contents/framer/utils/createSlices.js","https:/asset.29cm.co.kr/contents/framer/components/@shared/ProductCardSkeleton/ProductCardSkeleton.js","https:/asset.29cm.co.kr/contents/framer/components/@shared/Lazy/Lazy.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/Products/Card.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/Products/index.js","https:/asset.29cm.co.kr/contents/framer/components/systems/curations/Products/Root.utils.js","https:/asset.29cm.co.kr/contents/framer/utils/hideParentElement.js","https:/asset.29cm.co.kr/contents/framer/components/modules/ProductsModule/ProductsElementProvider/ProductsElementProvider.js","https:/asset.29cm.co.kr/contents/framer/components/modules/ProductsModule/ProductsModule.constants.js","https:/asset.29cm.co.kr/contents/framer/components/modules/ProductsModule/ProductsModule.types.js","https:/asset.29cm.co.kr/contents/framer/components/modules/ProductsModule/ProductsElementProvider/ProductsElementProvider.hooks.js","https:/asset.29cm.co.kr/contents/framer/node_modules/swr/infinite/dist/index.js","https:/asset.29cm.co.kr/contents/framer/types/models/sort.js","https:/asset.29cm.co.kr/contents/framer/apis/display-bff/DisplayBffApiService.js","https:/asset.29cm.co.kr/contents/framer/apis/recommend/RecommendApiService.js","https:/asset.29cm.co.kr/contents/framer/components/modules/mock.js","https:/asset.29cm.co.kr/contents/framer/node_modules/lodash-es/last.js","https:/asset.29cm.co.kr/contents/framer/components/modules/ProductsModule/ProductsModule.hooks.js","https:/asset.29cm.co.kr/contents/framer/components/modules/ProductsModule/ProductsElement/ProductsElement.hooks.js","https:/asset.29cm.co.kr/contents/framer/components/modules/ProductsModule/ProductsElement/PaginationElement/ExpandButtonElement/ExpandButtonElement.js","https:/asset.29cm.co.kr/contents/framer/components/modules/ProductsModule/ProductsElement/PaginationElement/VerticalPaginationElement/VerticalPaginationElement.js","https:/asset.29cm.co.kr/contents/framer/components/modules/ProductsModule/ProductsElement/PaginationElement/PaginationElement.js","https:/asset.29cm.co.kr/contents/framer/components/modules/ProductsModule/ProductsElement/ProductsElement.utils.js","https:/asset.29cm.co.kr/contents/framer/components/modules/ProductsModule/ProductsElement/ProductsElement.js","https:/asset.29cm.co.kr/contents/framer/components/modules/ProductsModule/LinkedProductsModule/LinkedProductsModule.js","https:/asset.29cm.co.kr/contents/framer/components/modules/ProductsModule/ProductsModule.controls.js","https:/asset.29cm.co.kr/contents/framer/components/modules/ProductsModule/ProductsModule.js","https:/framerusercontent.com/modules/m3WciOarwtFjChbrrQMz/UgKfY5LLfEJhNhGuri0i/ProductsModule.js","https:/asset.29cm.co.kr/contents/framer/components/systems/ResponsiveSplitViewV3/styles.js","https:/asset.29cm.co.kr/contents/framer/components/systems/ResponsiveSplitViewV3/ResponsiveSplitViewV3.module.css.js","https:/asset.29cm.co.kr/contents/framer/components/systems/ResponsiveSplitViewV3/ResponsiveSplitViewV3.js","https:/framerusercontent.com/modules/O0K3KTtU12sLvFyHu6Iq/Z6tkNXdSALllB99jm7SB/ResponsiveSplitViewV3.js","https:/framerusercontent.com/modules/OuTs1zR1y67GMNNQqwxq/s1ZzjfYamTqijskA2HNQ/Analytics.js","https:/asset.29cm.co.kr/contents/framer/hooks/useCreateIsomorphicAppSchemeLink.js","https:/asset.29cm.co.kr/contents/framer/utils/getAnchorTarget.js","https:/asset.29cm.co.kr/contents/framer/components/systems/Button/Button.utils.js","https:/asset.29cm.co.kr/contents/framer/components/systems/Button/Button.js","https:/framerusercontent.com/modules/StvG2c1V7uA5IIqUxIaE/vbcf7LFrQUhWMAfEAWy2/Button.js","https:/framerusercontent.com/modules/ldHwa1jNsDFXecpfDtkN/uxOqy6DKPnMhAkzKo1dJ/Analytics.js","https:/framerusercontent.com/modules/y5EvvuFSeLBumjht8Wbw/OfCCUd8ZgzySUHgetFU8/nYkCFzCtT.js","https:/ga.jspm.io/npm:@motionone/utils@10.14.0/dist/index.es.js","https:/ga.jspm.io/npm:@motionone/easing@10.12.0/dist/index.es.js","https:/ga.jspm.io/npm:@motionone/animation@10.12.0/dist/index.es.js","https:/ga.jspm.io/npm:tslib@2.4.0/tslib.es6.js","https:/ga.jspm.io/npm:hey-listen@1.0.8/dist/index.js","https:/ga.jspm.io/npm:@motionone/generators@10.12.0/dist/index.es.js","https:/ga.jspm.io/npm:@motionone/dom@10.12.0/dist/index.es.js","https:/ga.jspm.io/npm:use-effect-event@2.0.3/dist/index.js","https:/framerusercontent.com/modules/zvkTOpMSuRzRhLzZZIwG/7GuSIJ2Jm6VU0TIDHoiR/SlideShow.js","https:/framerusercontent.com/modules/PSCkygXWwIclqO7VbbRU/N2rT5vDOyZ4A5iTfc0T3/CVDZd9ntD.js","https:/framerusercontent.com/modules/x6WhUwq7WjunXYIEMnUA/UfTlpdg7iw2eJDtHEWZm/YwH9CpmUw.js","https:/framerusercontent.com/modules/rov60chNN61tMbhzgrtY/IgGCGo50l4UwwCcyIvhl/H_F9Vvi5z.js","https:/framerusercontent.com/modules/4SGr1B6eXJuFbPSQH0Kp/Xzf5Z0M3BM1tzUTImYkd/CzYKAi4nR.js","https:/framerusercontent.com/modules/ZmRCffl3c40g24qTIrUg/4nzMuSmEuMJ1AeOYTKiF/ME4GRE3Jv.js","https:/framerusercontent.com/modules/tGfQ3i6Lg1RXHkGeoS4m/pxpJVN8F02cAL11MJ5XB/UEY1TVOBI.js","https:/asset.29cm.co.kr/contents/framer/utils/cloneFramerChildren.js","https:/asset.29cm.co.kr/contents/framer/components/canvas/ProductProvider/ProductHeartProvider.hooks.event.js","https:/asset.29cm.co.kr/contents/framer/components/canvas/ProductProvider/ProductHeartProvider.hooks.js","https:/asset.29cm.co.kr/contents/framer/components/canvas/ProductProvider/ProductHeartProvider.js","https:/asset.29cm.co.kr/contents/framer/components/canvas/ProductProvider/ProductProvider.utils.js","https:/asset.29cm.co.kr/contents/framer/components/canvas/ProductProvider/ProductProvider.hooks.js","https:/asset.29cm.co.kr/contents/framer/components/canvas/ProductProvider/ProductProvider.hooks.event.js","https:/asset.29cm.co.kr/contents/framer/components/canvas/ProductProvider/ProductProvider.module.css.js","https:/asset.29cm.co.kr/contents/framer/components/canvas/ProductProvider/ProductProvider.js","https:/asset.29cm.co.kr/contents/framer/components/canvas/ProductProvider/index.js","https:/framerusercontent.com/modules/KbHpzadKlTHZMPIgErtm/rMoN0UNCTkzEGgukeJzI/ProductProvider.js","https:/framerusercontent.com/modules/7fsizE0oFarTEkNOXQln/GXm9q2Uyy1TkgjS3skU3/ZHYRofyzb.js","https:/framerusercontent.com/modules/pwTOgCS0rQUSOETdj8OS/T8qrPxVEUR7MaIReUm2B/Bg8Xl4khW.js","https:/framerusercontent.com/modules/cEfyPhnhBj4YnGQuTKME/WjZQcjrRUL27VnrHb33S/Yn1eSbhmb.js","https:/framerusercontent.com/modules/tzUwuYA4shFsznByORHV/ixGXa7OzEznKBnwXK1Dm/ZAcPTC7k1.js","https:/framerusercontent.com/modules/usV0kToToNSl84yGLP1E/TmL2cothX4tYPchdkL7T/FpLvLIQno.js","https:/framerusercontent.com/modules/jfyV7JcQ46zMwRPwwrRS/X0aPzNzsHQGrt8f0dt6Q/He0bDQ223.js","https:/framerusercontent.com/modules/Nu7kHq4ia789QCbPi4of/8XWGRb7FIXwJtx3rb6in/KSgh4wiDx.js","https:/framerusercontent.com/modules/TS8JF0nwW8W1lThvEFu7/utodlCuhsXOyoK5gtYHF/MDuDUrbXi.js","https:/framerusercontent.com/modules/asip07BnBArAIHOjpVwy/iX4lWLAMteI4Nd7RIP9p/QVhM5NdKv.js","https:/framerusercontent.com/modules/3INwc4N3YWOdwRyIsr9i/aS8hFjcnZ4Pj8l7tzAz4/Analytics.js","https:/asset.29cm.co.kr/contents/framer/components/primitives/Schedulable/Schedulable.types.js","https:/asset.29cm.co.kr/contents/framer/hooks/useVisibilityAwareInterval.js","https:/asset.29cm.co.kr/contents/framer/components/primitives/Schedulable/Schedulable.utils.js","https:/asset.29cm.co.kr/contents/framer/components/primitives/Schedulable/Schedulable.hooks.js","https:/asset.29cm.co.kr/contents/framer/components/primitives/Schedulable/Schedulable.js","https:/framerusercontent.com/modules/bv2yzxT3iEOjAMleVPGP/dz4wxqcgggN2LjmSBWfn/Schedulable.js","https:/framerusercontent.com/modules/MYr1AFTnHiOBXB2sbTDs/T8xt0iX6DU3QCLROaNw1/Countdown.js","https:/framerusercontent.com/modules/UtriMZNreMlYjnOdTaqJ/icjaOflyuViycnp3yfeo/Tyu7EX3in.js","https:/asset.29cm.co.kr/contents/framer/components/ruler/Badge/Badge.types.js","https:/asset.29cm.co.kr/contents/framer/libs/property-controls/badge.js","https:/asset.29cm.co.kr/contents/framer/components/systems/Badge/Badge.js","https:/asset.29cm.co.kr/contents/framer/components/systems/Badge/index.js","https:/framerusercontent.com/modules/ujMK2tuF8Uh4yfdgJfeZ/IubTds5GYI6HTrke7tQJ/RulerBadge.js","https:/framerusercontent.com/modules/g0tJhtLLGj5VSWln5PIZ/vsoQ43VsqQ2cMGpAPjs9/A0zOphe2W.js"],"sourcesContent":["import { jsx } from \"react/jsx-runtime\";\nconst PlusIcon = ({\n  className\n}) => {\n  return /* @__PURE__ */ jsx(\"svg\", { className, style: {\n    width: \"16px\",\n    height: \"16px\"\n  }, xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 24 24\", children: /* @__PURE__ */ jsx(\"path\", { fill: \"#fff\", d: \"M13 3h-2v8H3v2h8v8h2v-8h8v-2h-8V3z\" }) });\n};\nexport {\n  PlusIcon\n};\n","const TYPE_SPRING_TRANSITION = {\n  type: \"spring\",\n  stiffness: 400,\n  damping: 30,\n  mass: 1\n};\nconst PIN_BUTTON_HOVER_EFFECT = {\n  scale: 1.2,\n  transition: TYPE_SPRING_TRANSITION\n};\nconst PIN_BUTTON_TAP_EFFECT = {\n  scale: 0.9,\n  transition: TYPE_SPRING_TRANSITION\n};\nconst PRODUCT_BANNER_EFFECT = {\n  animate: {\n    opacity: 1\n  },\n  exit: {\n    opacity: 0\n  },\n  transition: TYPE_SPRING_TRANSITION\n};\nconst PRODUCT_BANNER_EFFECT_INITIAL = {\n  opacity: 0\n};\nexport {\n  PIN_BUTTON_HOVER_EFFECT,\n  PIN_BUTTON_TAP_EFFECT,\n  PRODUCT_BANNER_EFFECT,\n  PRODUCT_BANNER_EFFECT_INITIAL,\n  TYPE_SPRING_TRANSITION\n};\n","const sides = [\"top\", \"right\", \"bottom\", \"left\"];\nconst alignments = [\"start\", \"end\"];\nconst placements = /* @__PURE__ */ sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst createCoords = (v) => ({\n  x: v,\n  y: v\n});\nconst oppositeSideMap = {\n  left: \"right\",\n  right: \"left\",\n  bottom: \"top\",\n  top: \"bottom\"\n};\nconst oppositeAlignmentMap = {\n  start: \"end\",\n  end: \"start\"\n};\nfunction clamp(start, value, end) {\n  return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n  return typeof value === \"function\" ? value(param) : value;\n}\nfunction getSide(placement) {\n  return placement.split(\"-\")[0];\n}\nfunction getAlignment(placement) {\n  return placement.split(\"-\")[1];\n}\nfunction getOppositeAxis(axis) {\n  return axis === \"x\" ? \"y\" : \"x\";\n}\nfunction getAxisLength(axis) {\n  return axis === \"y\" ? \"height\" : \"width\";\n}\nfunction getSideAxis(placement) {\n  return [\"top\", \"bottom\"].includes(getSide(placement)) ? \"y\" : \"x\";\n}\nfunction getAlignmentAxis(placement) {\n  return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n  if (rtl === void 0) {\n    rtl = false;\n  }\n  const alignment = getAlignment(placement);\n  const alignmentAxis = getAlignmentAxis(placement);\n  const length = getAxisLength(alignmentAxis);\n  let mainAlignmentSide = alignmentAxis === \"x\" ? alignment === (rtl ? \"end\" : \"start\") ? \"right\" : \"left\" : alignment === \"start\" ? \"bottom\" : \"top\";\n  if (rects.reference[length] > rects.floating[length]) {\n    mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n  }\n  return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n  return placement.replace(/start|end/g, (alignment) => oppositeAlignmentMap[alignment]);\n}\nfunction getOppositePlacement(placement) {\n  return placement.replace(/left|right|bottom|top/g, (side) => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n  return {\n    top: 0,\n    right: 0,\n    bottom: 0,\n    left: 0,\n    ...padding\n  };\n}\nfunction getPaddingObject(padding) {\n  return typeof padding !== \"number\" ? expandPaddingObject(padding) : {\n    top: padding,\n    right: padding,\n    bottom: padding,\n    left: padding\n  };\n}\nfunction rectToClientRect(rect) {\n  return {\n    ...rect,\n    top: rect.y,\n    left: rect.x,\n    right: rect.x + rect.width,\n    bottom: rect.y + rect.height\n  };\n}\nexport {\n  alignments,\n  clamp,\n  createCoords,\n  evaluate,\n  expandPaddingObject,\n  getAlignment,\n  getAlignmentAxis,\n  getAlignmentSides,\n  getAxisLength,\n  getOppositeAlignmentPlacement,\n  getOppositeAxis,\n  getOppositePlacement,\n  getPaddingObject,\n  getSide,\n  getSideAxis,\n  max,\n  min,\n  placements,\n  rectToClientRect,\n  round,\n  sides\n};\n","import { evaluate, placements, getAlignmentSides, getSide, getAlignment, getSideAxis, clamp, getAlignmentAxis, getPaddingObject, rectToClientRect, getOppositeAlignmentPlacement, getOppositeAxis, getAxisLength } from \"../../utils/dist/floating-ui.utils.js\";\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n  let {\n    reference,\n    floating\n  } = _ref;\n  const sideAxis = getSideAxis(placement);\n  const alignmentAxis = getAlignmentAxis(placement);\n  const alignLength = getAxisLength(alignmentAxis);\n  const side = getSide(placement);\n  const isVertical = sideAxis === \"y\";\n  const commonX = reference.x + reference.width / 2 - floating.width / 2;\n  const commonY = reference.y + reference.height / 2 - floating.height / 2;\n  const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n  let coords;\n  switch (side) {\n    case \"top\":\n      coords = {\n        x: commonX,\n        y: reference.y - floating.height\n      };\n      break;\n    case \"bottom\":\n      coords = {\n        x: commonX,\n        y: reference.y + reference.height\n      };\n      break;\n    case \"right\":\n      coords = {\n        x: reference.x + reference.width,\n        y: commonY\n      };\n      break;\n    case \"left\":\n      coords = {\n        x: reference.x - floating.width,\n        y: commonY\n      };\n      break;\n    default:\n      coords = {\n        x: reference.x,\n        y: reference.y\n      };\n  }\n  switch (getAlignment(placement)) {\n    case \"start\":\n      coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n      break;\n    case \"end\":\n      coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n      break;\n  }\n  return coords;\n}\nconst computePosition = async (reference, floating, config) => {\n  const {\n    placement = \"bottom\",\n    strategy = \"absolute\",\n    middleware = [],\n    platform\n  } = config;\n  const validMiddleware = middleware.filter(Boolean);\n  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n  let rects = await platform.getElementRects({\n    reference,\n    floating,\n    strategy\n  });\n  let {\n    x,\n    y\n  } = computeCoordsFromPlacement(rects, placement, rtl);\n  let statefulPlacement = placement;\n  let middlewareData = {};\n  let resetCount = 0;\n  for (let i = 0; i < validMiddleware.length; i++) {\n    const {\n      name,\n      fn\n    } = validMiddleware[i];\n    const {\n      x: nextX,\n      y: nextY,\n      data,\n      reset\n    } = await fn({\n      x,\n      y,\n      initialPlacement: placement,\n      placement: statefulPlacement,\n      strategy,\n      middlewareData,\n      rects,\n      platform,\n      elements: {\n        reference,\n        floating\n      }\n    });\n    x = nextX != null ? nextX : x;\n    y = nextY != null ? nextY : y;\n    middlewareData = {\n      ...middlewareData,\n      [name]: {\n        ...middlewareData[name],\n        ...data\n      }\n    };\n    if (reset && resetCount <= 50) {\n      resetCount++;\n      if (typeof reset === \"object\") {\n        if (reset.placement) {\n          statefulPlacement = reset.placement;\n        }\n        if (reset.rects) {\n          rects = reset.rects === true ? await platform.getElementRects({\n            reference,\n            floating,\n            strategy\n          }) : reset.rects;\n        }\n        ({\n          x,\n          y\n        } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n      }\n      i = -1;\n    }\n  }\n  return {\n    x,\n    y,\n    placement: statefulPlacement,\n    strategy,\n    middlewareData\n  };\n};\nasync function detectOverflow(state, options) {\n  var _await$platform$isEle;\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    x,\n    y,\n    platform,\n    rects,\n    elements,\n    strategy\n  } = state;\n  const {\n    boundary = \"clippingAncestors\",\n    rootBoundary = \"viewport\",\n    elementContext = \"floating\",\n    altBoundary = false,\n    padding = 0\n  } = evaluate(options, state);\n  const paddingObject = getPaddingObject(padding);\n  const altContext = elementContext === \"floating\" ? \"reference\" : \"floating\";\n  const element = elements[altBoundary ? altContext : elementContext];\n  const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n    element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating)),\n    boundary,\n    rootBoundary,\n    strategy\n  }));\n  const rect = elementContext === \"floating\" ? {\n    ...rects.floating,\n    x,\n    y\n  } : rects.reference;\n  const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n  const offsetScale = await (platform.isElement == null ? void 0 : platform.isElement(offsetParent)) ? await (platform.getScale == null ? void 0 : platform.getScale(offsetParent)) || {\n    x: 1,\n    y: 1\n  } : {\n    x: 1,\n    y: 1\n  };\n  const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n    elements,\n    rect,\n    offsetParent,\n    strategy\n  }) : rect);\n  return {\n    top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n    bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n    left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n    right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n  };\n}\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n  const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter((placement) => getAlignment(placement) === alignment), ...allowedPlacements.filter((placement) => getAlignment(placement) !== alignment)] : allowedPlacements.filter((placement) => getSide(placement) === placement);\n  return allowedPlacementsSortedByAlignment.filter((placement) => {\n    if (alignment) {\n      return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n    }\n    return true;\n  });\n}\nconst autoPlacement = function(options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: \"autoPlacement\",\n    options,\n    async fn(state) {\n      var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n      const {\n        rects,\n        middlewareData,\n        placement,\n        platform,\n        elements\n      } = state;\n      const {\n        crossAxis = false,\n        alignment,\n        allowedPlacements = placements,\n        autoAlignment = true,\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      const placements$1 = alignment !== void 0 || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n      const overflow = await detectOverflow(state, detectOverflowOptions);\n      const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n      const currentPlacement = placements$1[currentIndex];\n      if (currentPlacement == null) {\n        return {};\n      }\n      const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n      if (placement !== currentPlacement) {\n        return {\n          reset: {\n            placement: placements$1[0]\n          }\n        };\n      }\n      const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n      const allOverflows = [...((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || [], {\n        placement: currentPlacement,\n        overflows: currentOverflows\n      }];\n      const nextPlacement = placements$1[currentIndex + 1];\n      if (nextPlacement) {\n        return {\n          data: {\n            index: currentIndex + 1,\n            overflows: allOverflows\n          },\n          reset: {\n            placement: nextPlacement\n          }\n        };\n      }\n      const placementsSortedByMostSpace = allOverflows.map((d) => {\n        const alignment2 = getAlignment(d.placement);\n        return [d.placement, alignment2 && crossAxis ? (\n          // Check along the mainAxis and main crossAxis side.\n          d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0)\n        ) : (\n          // Check only the mainAxis.\n          d.overflows[0]\n        ), d.overflows];\n      }).sort((a, b) => a[1] - b[1]);\n      const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter((d) => d[2].slice(\n        0,\n        // Aligned placements should not check their opposite crossAxis\n        // side.\n        getAlignment(d[0]) ? 2 : 3\n      ).every((v) => v <= 0));\n      const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n      if (resetPlacement !== placement) {\n        return {\n          data: {\n            index: currentIndex + 1,\n            overflows: allOverflows\n          },\n          reset: {\n            placement: resetPlacement\n          }\n        };\n      }\n      return {};\n    }\n  };\n};\nasync function convertValueToCoords(state, options) {\n  const {\n    placement,\n    platform,\n    elements\n  } = state;\n  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n  const side = getSide(placement);\n  const alignment = getAlignment(placement);\n  const isVertical = getSideAxis(placement) === \"y\";\n  const mainAxisMulti = [\"left\", \"top\"].includes(side) ? -1 : 1;\n  const crossAxisMulti = rtl && isVertical ? -1 : 1;\n  const rawValue = evaluate(options, state);\n  let {\n    mainAxis,\n    crossAxis,\n    alignmentAxis\n  } = typeof rawValue === \"number\" ? {\n    mainAxis: rawValue,\n    crossAxis: 0,\n    alignmentAxis: null\n  } : {\n    mainAxis: 0,\n    crossAxis: 0,\n    alignmentAxis: null,\n    ...rawValue\n  };\n  if (alignment && typeof alignmentAxis === \"number\") {\n    crossAxis = alignment === \"end\" ? alignmentAxis * -1 : alignmentAxis;\n  }\n  return isVertical ? {\n    x: crossAxis * crossAxisMulti,\n    y: mainAxis * mainAxisMulti\n  } : {\n    x: mainAxis * mainAxisMulti,\n    y: crossAxis * crossAxisMulti\n  };\n}\nconst offset = function(options) {\n  if (options === void 0) {\n    options = 0;\n  }\n  return {\n    name: \"offset\",\n    options,\n    async fn(state) {\n      var _middlewareData$offse, _middlewareData$arrow;\n      const {\n        x,\n        y,\n        placement,\n        middlewareData\n      } = state;\n      const diffCoords = await convertValueToCoords(state, options);\n      if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n        return {};\n      }\n      return {\n        x: x + diffCoords.x,\n        y: y + diffCoords.y,\n        data: {\n          ...diffCoords,\n          placement\n        }\n      };\n    }\n  };\n};\nconst shift = function(options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: \"shift\",\n    options,\n    async fn(state) {\n      const {\n        x,\n        y,\n        placement\n      } = state;\n      const {\n        mainAxis: checkMainAxis = true,\n        crossAxis: checkCrossAxis = false,\n        limiter = {\n          fn: (_ref) => {\n            let {\n              x: x2,\n              y: y2\n            } = _ref;\n            return {\n              x: x2,\n              y: y2\n            };\n          }\n        },\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      const coords = {\n        x,\n        y\n      };\n      const overflow = await detectOverflow(state, detectOverflowOptions);\n      const crossAxis = getSideAxis(getSide(placement));\n      const mainAxis = getOppositeAxis(crossAxis);\n      let mainAxisCoord = coords[mainAxis];\n      let crossAxisCoord = coords[crossAxis];\n      if (checkMainAxis) {\n        const minSide = mainAxis === \"y\" ? \"top\" : \"left\";\n        const maxSide = mainAxis === \"y\" ? \"bottom\" : \"right\";\n        const min = mainAxisCoord + overflow[minSide];\n        const max = mainAxisCoord - overflow[maxSide];\n        mainAxisCoord = clamp(min, mainAxisCoord, max);\n      }\n      if (checkCrossAxis) {\n        const minSide = crossAxis === \"y\" ? \"top\" : \"left\";\n        const maxSide = crossAxis === \"y\" ? \"bottom\" : \"right\";\n        const min = crossAxisCoord + overflow[minSide];\n        const max = crossAxisCoord - overflow[maxSide];\n        crossAxisCoord = clamp(min, crossAxisCoord, max);\n      }\n      const limitedCoords = limiter.fn({\n        ...state,\n        [mainAxis]: mainAxisCoord,\n        [crossAxis]: crossAxisCoord\n      });\n      return {\n        ...limitedCoords,\n        data: {\n          x: limitedCoords.x - x,\n          y: limitedCoords.y - y\n        }\n      };\n    }\n  };\n};\nexport {\n  autoPlacement,\n  computePosition,\n  detectOverflow,\n  offset,\n  rectToClientRect,\n  shift\n};\n","function getNodeName(node) {\n  if (isNode(node)) {\n    return (node.nodeName || \"\").toLowerCase();\n  }\n  return \"#document\";\n}\nfunction getWindow(node) {\n  var _node$ownerDocument;\n  return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n  var _ref;\n  return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n  return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n  return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n  return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n  if (typeof ShadowRoot === \"undefined\") {\n    return false;\n  }\n  return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n  const {\n    overflow,\n    overflowX,\n    overflowY,\n    display\n  } = getComputedStyle(element);\n  return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && ![\"inline\", \"contents\"].includes(display);\n}\nfunction isTableElement(element) {\n  return [\"table\", \"td\", \"th\"].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n  const webkit = isWebKit();\n  const css = getComputedStyle(element);\n  return css.transform !== \"none\" || css.perspective !== \"none\" || (css.containerType ? css.containerType !== \"normal\" : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== \"none\" : false) || !webkit && (css.filter ? css.filter !== \"none\" : false) || [\"transform\", \"perspective\", \"filter\"].some((value) => (css.willChange || \"\").includes(value)) || [\"paint\", \"layout\", \"strict\", \"content\"].some((value) => (css.contain || \"\").includes(value));\n}\nfunction getContainingBlock(element) {\n  let currentNode = getParentNode(element);\n  while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n    if (isContainingBlock(currentNode)) {\n      return currentNode;\n    } else {\n      currentNode = getParentNode(currentNode);\n    }\n  }\n  return null;\n}\nfunction isWebKit() {\n  if (typeof CSS === \"undefined\" || !CSS.supports)\n    return false;\n  return CSS.supports(\"-webkit-backdrop-filter\", \"none\");\n}\nfunction isLastTraversableNode(node) {\n  return [\"html\", \"body\", \"#document\"].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n  return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n  if (isElement(element)) {\n    return {\n      scrollLeft: element.scrollLeft,\n      scrollTop: element.scrollTop\n    };\n  }\n  return {\n    scrollLeft: element.pageXOffset,\n    scrollTop: element.pageYOffset\n  };\n}\nfunction getParentNode(node) {\n  if (getNodeName(node) === \"html\") {\n    return node;\n  }\n  const result = (\n    // Step into the shadow DOM of the parent of a slotted node.\n    node.assignedSlot || // DOM Element detected.\n    node.parentNode || // ShadowRoot detected.\n    isShadowRoot(node) && node.host || // Fallback.\n    getDocumentElement(node)\n  );\n  return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n  const parentNode = getParentNode(node);\n  if (isLastTraversableNode(parentNode)) {\n    return node.ownerDocument ? node.ownerDocument.body : node.body;\n  }\n  if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n    return parentNode;\n  }\n  return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n  var _node$ownerDocument2;\n  if (list === void 0) {\n    list = [];\n  }\n  if (traverseIframes === void 0) {\n    traverseIframes = true;\n  }\n  const scrollableAncestor = getNearestOverflowAncestor(node);\n  const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n  const win = getWindow(scrollableAncestor);\n  if (isBody) {\n    return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []);\n  }\n  return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nexport {\n  getComputedStyle,\n  getContainingBlock,\n  getDocumentElement,\n  getNearestOverflowAncestor,\n  getNodeName,\n  getNodeScroll,\n  getOverflowAncestors,\n  getParentNode,\n  getWindow,\n  isContainingBlock,\n  isElement,\n  isHTMLElement,\n  isLastTraversableNode,\n  isNode,\n  isOverflowElement,\n  isShadowRoot,\n  isTableElement,\n  isWebKit\n};\n","import { autoPlacement as autoPlacement$1, shift as shift$1, computePosition as computePosition$1 } from \"../../core/dist/floating-ui.core.js\";\nimport { detectOverflow, offset } from \"../../core/dist/floating-ui.core.js\";\nimport { createCoords, round, max, min, rectToClientRect } from \"../../utils/dist/floating-ui.utils.js\";\nimport { getDocumentElement, isElement, isHTMLElement, getNodeName, isOverflowElement, getNodeScroll, getWindow, isTableElement, getComputedStyle, isContainingBlock, getContainingBlock, getOverflowAncestors, getParentNode, isLastTraversableNode, isWebKit } from \"../../utils/dist/floating-ui.utils.dom.js\";\nfunction getCssDimensions(element) {\n  const css = getComputedStyle(element);\n  let width = parseFloat(css.width) || 0;\n  let height = parseFloat(css.height) || 0;\n  const hasOffset = isHTMLElement(element);\n  const offsetWidth = hasOffset ? element.offsetWidth : width;\n  const offsetHeight = hasOffset ? element.offsetHeight : height;\n  const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n  if (shouldFallback) {\n    width = offsetWidth;\n    height = offsetHeight;\n  }\n  return {\n    width,\n    height,\n    $: shouldFallback\n  };\n}\nfunction unwrapElement(element) {\n  return !isElement(element) ? element.contextElement : element;\n}\nfunction getScale(element) {\n  const domElement = unwrapElement(element);\n  if (!isHTMLElement(domElement)) {\n    return createCoords(1);\n  }\n  const rect = domElement.getBoundingClientRect();\n  const {\n    width,\n    height,\n    $\n  } = getCssDimensions(domElement);\n  let x = ($ ? round(rect.width) : rect.width) / width;\n  let y = ($ ? round(rect.height) : rect.height) / height;\n  if (!x || !Number.isFinite(x)) {\n    x = 1;\n  }\n  if (!y || !Number.isFinite(y)) {\n    y = 1;\n  }\n  return {\n    x,\n    y\n  };\n}\nconst noOffsets = /* @__PURE__ */ createCoords(0);\nfunction getVisualOffsets(element) {\n  const win = getWindow(element);\n  if (!isWebKit() || !win.visualViewport) {\n    return noOffsets;\n  }\n  return {\n    x: win.visualViewport.offsetLeft,\n    y: win.visualViewport.offsetTop\n  };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n  if (isFixed === void 0) {\n    isFixed = false;\n  }\n  if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n    return false;\n  }\n  return isFixed;\n}\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n  if (includeScale === void 0) {\n    includeScale = false;\n  }\n  if (isFixedStrategy === void 0) {\n    isFixedStrategy = false;\n  }\n  const clientRect = element.getBoundingClientRect();\n  const domElement = unwrapElement(element);\n  let scale = createCoords(1);\n  if (includeScale) {\n    if (offsetParent) {\n      if (isElement(offsetParent)) {\n        scale = getScale(offsetParent);\n      }\n    } else {\n      scale = getScale(element);\n    }\n  }\n  const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n  let x = (clientRect.left + visualOffsets.x) / scale.x;\n  let y = (clientRect.top + visualOffsets.y) / scale.y;\n  let width = clientRect.width / scale.x;\n  let height = clientRect.height / scale.y;\n  if (domElement) {\n    const win = getWindow(domElement);\n    const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n    let currentWin = win;\n    let currentIFrame = currentWin.frameElement;\n    while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n      const iframeScale = getScale(currentIFrame);\n      const iframeRect = currentIFrame.getBoundingClientRect();\n      const css = getComputedStyle(currentIFrame);\n      const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n      const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n      x *= iframeScale.x;\n      y *= iframeScale.y;\n      width *= iframeScale.x;\n      height *= iframeScale.y;\n      x += left;\n      y += top;\n      currentWin = getWindow(currentIFrame);\n      currentIFrame = currentWin.frameElement;\n    }\n  }\n  return rectToClientRect({\n    width,\n    height,\n    x,\n    y\n  });\n}\nconst topLayerSelectors = [\":popover-open\", \":modal\"];\nfunction isTopLayer(floating) {\n  return topLayerSelectors.some((selector) => {\n    try {\n      return floating.matches(selector);\n    } catch (e) {\n      return false;\n    }\n  });\n}\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n  let {\n    elements,\n    rect,\n    offsetParent,\n    strategy\n  } = _ref;\n  const isFixed = strategy === \"fixed\";\n  const documentElement = getDocumentElement(offsetParent);\n  const topLayer = elements ? isTopLayer(elements.floating) : false;\n  if (offsetParent === documentElement || topLayer && isFixed) {\n    return rect;\n  }\n  let scroll = {\n    scrollLeft: 0,\n    scrollTop: 0\n  };\n  let scale = createCoords(1);\n  const offsets = createCoords(0);\n  const isOffsetParentAnElement = isHTMLElement(offsetParent);\n  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n    if (getNodeName(offsetParent) !== \"body\" || isOverflowElement(documentElement)) {\n      scroll = getNodeScroll(offsetParent);\n    }\n    if (isHTMLElement(offsetParent)) {\n      const offsetRect = getBoundingClientRect(offsetParent);\n      scale = getScale(offsetParent);\n      offsets.x = offsetRect.x + offsetParent.clientLeft;\n      offsets.y = offsetRect.y + offsetParent.clientTop;\n    }\n  }\n  return {\n    width: rect.width * scale.x,\n    height: rect.height * scale.y,\n    x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n    y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n  };\n}\nfunction getClientRects(element) {\n  return Array.from(element.getClientRects());\n}\nfunction getWindowScrollBarX(element) {\n  return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\nfunction getDocumentRect(element) {\n  const html = getDocumentElement(element);\n  const scroll = getNodeScroll(element);\n  const body = element.ownerDocument.body;\n  const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n  const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n  let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n  const y = -scroll.scrollTop;\n  if (getComputedStyle(body).direction === \"rtl\") {\n    x += max(html.clientWidth, body.clientWidth) - width;\n  }\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\nfunction getViewportRect(element, strategy) {\n  const win = getWindow(element);\n  const html = getDocumentElement(element);\n  const visualViewport = win.visualViewport;\n  let width = html.clientWidth;\n  let height = html.clientHeight;\n  let x = 0;\n  let y = 0;\n  if (visualViewport) {\n    width = visualViewport.width;\n    height = visualViewport.height;\n    const visualViewportBased = isWebKit();\n    if (!visualViewportBased || visualViewportBased && strategy === \"fixed\") {\n      x = visualViewport.offsetLeft;\n      y = visualViewport.offsetTop;\n    }\n  }\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\nfunction getInnerBoundingClientRect(element, strategy) {\n  const clientRect = getBoundingClientRect(element, true, strategy === \"fixed\");\n  const top = clientRect.top + element.clientTop;\n  const left = clientRect.left + element.clientLeft;\n  const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n  const width = element.clientWidth * scale.x;\n  const height = element.clientHeight * scale.y;\n  const x = left * scale.x;\n  const y = top * scale.y;\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n  let rect;\n  if (clippingAncestor === \"viewport\") {\n    rect = getViewportRect(element, strategy);\n  } else if (clippingAncestor === \"document\") {\n    rect = getDocumentRect(getDocumentElement(element));\n  } else if (isElement(clippingAncestor)) {\n    rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n  } else {\n    const visualOffsets = getVisualOffsets(element);\n    rect = {\n      ...clippingAncestor,\n      x: clippingAncestor.x - visualOffsets.x,\n      y: clippingAncestor.y - visualOffsets.y\n    };\n  }\n  return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n  const parentNode = getParentNode(element);\n  if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n    return false;\n  }\n  return getComputedStyle(parentNode).position === \"fixed\" || hasFixedPositionAncestor(parentNode, stopNode);\n}\nfunction getClippingElementAncestors(element, cache) {\n  const cachedResult = cache.get(element);\n  if (cachedResult) {\n    return cachedResult;\n  }\n  let result = getOverflowAncestors(element, [], false).filter((el) => isElement(el) && getNodeName(el) !== \"body\");\n  let currentContainingBlockComputedStyle = null;\n  const elementIsFixed = getComputedStyle(element).position === \"fixed\";\n  let currentNode = elementIsFixed ? getParentNode(element) : element;\n  while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n    const computedStyle = getComputedStyle(currentNode);\n    const currentNodeIsContaining = isContainingBlock(currentNode);\n    if (!currentNodeIsContaining && computedStyle.position === \"fixed\") {\n      currentContainingBlockComputedStyle = null;\n    }\n    const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === \"static\" && !!currentContainingBlockComputedStyle && [\"absolute\", \"fixed\"].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n    if (shouldDropCurrentNode) {\n      result = result.filter((ancestor) => ancestor !== currentNode);\n    } else {\n      currentContainingBlockComputedStyle = computedStyle;\n    }\n    currentNode = getParentNode(currentNode);\n  }\n  cache.set(element, result);\n  return result;\n}\nfunction getClippingRect(_ref) {\n  let {\n    element,\n    boundary,\n    rootBoundary,\n    strategy\n  } = _ref;\n  const elementClippingAncestors = boundary === \"clippingAncestors\" ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n  const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n  const firstClippingAncestor = clippingAncestors[0];\n  const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n    const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n    accRect.top = max(rect.top, accRect.top);\n    accRect.right = min(rect.right, accRect.right);\n    accRect.bottom = min(rect.bottom, accRect.bottom);\n    accRect.left = max(rect.left, accRect.left);\n    return accRect;\n  }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n  return {\n    width: clippingRect.right - clippingRect.left,\n    height: clippingRect.bottom - clippingRect.top,\n    x: clippingRect.left,\n    y: clippingRect.top\n  };\n}\nfunction getDimensions(element) {\n  const {\n    width,\n    height\n  } = getCssDimensions(element);\n  return {\n    width,\n    height\n  };\n}\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n  const isOffsetParentAnElement = isHTMLElement(offsetParent);\n  const documentElement = getDocumentElement(offsetParent);\n  const isFixed = strategy === \"fixed\";\n  const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n  let scroll = {\n    scrollLeft: 0,\n    scrollTop: 0\n  };\n  const offsets = createCoords(0);\n  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n    if (getNodeName(offsetParent) !== \"body\" || isOverflowElement(documentElement)) {\n      scroll = getNodeScroll(offsetParent);\n    }\n    if (isOffsetParentAnElement) {\n      const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n      offsets.x = offsetRect.x + offsetParent.clientLeft;\n      offsets.y = offsetRect.y + offsetParent.clientTop;\n    } else if (documentElement) {\n      offsets.x = getWindowScrollBarX(documentElement);\n    }\n  }\n  const x = rect.left + scroll.scrollLeft - offsets.x;\n  const y = rect.top + scroll.scrollTop - offsets.y;\n  return {\n    x,\n    y,\n    width: rect.width,\n    height: rect.height\n  };\n}\nfunction getTrueOffsetParent(element, polyfill) {\n  if (!isHTMLElement(element) || getComputedStyle(element).position === \"fixed\") {\n    return null;\n  }\n  if (polyfill) {\n    return polyfill(element);\n  }\n  return element.offsetParent;\n}\nfunction getOffsetParent(element, polyfill) {\n  const window = getWindow(element);\n  if (!isHTMLElement(element) || isTopLayer(element)) {\n    return window;\n  }\n  let offsetParent = getTrueOffsetParent(element, polyfill);\n  while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === \"static\") {\n    offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n  }\n  if (offsetParent && (getNodeName(offsetParent) === \"html\" || getNodeName(offsetParent) === \"body\" && getComputedStyle(offsetParent).position === \"static\" && !isContainingBlock(offsetParent))) {\n    return window;\n  }\n  return offsetParent || getContainingBlock(element) || window;\n}\nconst getElementRects = async function(data) {\n  const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n  const getDimensionsFn = this.getDimensions;\n  return {\n    reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n    floating: {\n      x: 0,\n      y: 0,\n      ...await getDimensionsFn(data.floating)\n    }\n  };\n};\nfunction isRTL(element) {\n  return getComputedStyle(element).direction === \"rtl\";\n}\nconst platform = {\n  convertOffsetParentRelativeRectToViewportRelativeRect,\n  getDocumentElement,\n  getClippingRect,\n  getOffsetParent,\n  getElementRects,\n  getClientRects,\n  getDimensions,\n  getScale,\n  isElement,\n  isRTL\n};\nconst autoPlacement = autoPlacement$1;\nconst shift = shift$1;\nconst computePosition = (reference, floating, options) => {\n  const cache = /* @__PURE__ */ new Map();\n  const mergedOptions = {\n    platform,\n    ...options\n  };\n  const platformWithCache = {\n    ...mergedOptions.platform,\n    _c: cache\n  };\n  return computePosition$1(reference, floating, {\n    ...mergedOptions,\n    platform: platformWithCache\n  });\n};\nexport {\n  autoPlacement,\n  computePosition,\n  detectOverflow,\n  getOverflowAncestors,\n  offset,\n  platform,\n  shift\n};\n","import { useRef } from \"react\";\nimport { computePosition, autoPlacement, shift } from \"../node_modules/@floating-ui/dom/dist/floating-ui.dom.js\";\nimport { offset } from \"../node_modules/@floating-ui/core/dist/floating-ui.core.js\";\nconst useComputeFloatingPosition = () => {\n  const referenceElementRef = useRef(null);\n  const floatingElementRef = useRef(null);\n  const computeFloatingPosition = async (params = {}) => {\n    if (!referenceElementRef.current || !floatingElementRef.current) {\n      return;\n    }\n    const {\n      x,\n      y\n    } = await computePosition(referenceElementRef.current, floatingElementRef.current, {\n      middleware: [autoPlacement(params.autoPlacement), offset(params.offset), shift(params.shift)]\n    });\n    Object.assign(floatingElementRef.current.style, {\n      left: `${x}px`,\n      top: `${y}px`\n    });\n  };\n  return {\n    referenceElementRef,\n    floatingElementRef,\n    computeFloatingPosition\n  };\n};\nexport {\n  useComputeFloatingPosition\n};\n","import { useEffect } from \"react\";\nconst useOutsideClick = (ref, handler) => {\n  useEffect(() => {\n    const listener = (event) => {\n      if (!ref.current || ref.current.contains(event.target)) {\n        return;\n      }\n      handler();\n    };\n    document.addEventListener(\"mousedown\", listener);\n    document.addEventListener(\"touchstart\", listener);\n    return () => {\n      document.removeEventListener(\"mousedown\", listener);\n      document.removeEventListener(\"touchstart\", listener);\n    };\n  }, [ref, handler]);\n};\nexport {\n  useOutsideClick\n};\n","import { useTrackClickComponent } from \"../../canvas/ComponentEventTracker/ComponentEventTracker.hooks.event.js\";\nconst useTrackClickRoundPlusComponent = () => {\n  const {\n    trackClickComponent\n  } = useTrackClickComponent();\n  const trackClickRoundPlusComponent = () => {\n    trackClickComponent(\"RoundPlus\");\n  };\n  return {\n    trackClickRoundPlusComponent\n  };\n};\nexport {\n  useTrackClickRoundPlusComponent\n};\n","import { useState, useRef, useEffect } from \"react\";\nimport { useComputeFloatingPosition } from \"../../../hooks/useComputeFloatingPosition.js\";\nimport { useOutsideClick } from \"../../../hooks/useOutsideClick.js\";\nimport { useTrackClickRoundPlusComponent } from \"./PinProductBannerV2.hooks.event.js\";\nimport { isCanvas } from \"../../../utils/framer/isCanvas.js\";\nimport \"framer\";\nimport { useInView } from \"framer-motion\";\nconst PRODUCT_OFFSET = 15;\nconst PRODUCT_SHIFT_PADDING = 20;\nconst usePinProductBannerV2 = (initialIsActive) => {\n  const [isActive, setIsActive] = useState(initialIsActive);\n  const containerRef = useRef(null);\n  const {\n    referenceElementRef,\n    floatingElementRef,\n    computeFloatingPosition\n  } = useComputeFloatingPosition();\n  const isAllInViewOnce = useInView(containerRef, {\n    amount: 1,\n    once: true\n  });\n  const {\n    trackClickRoundPlusComponent\n  } = useTrackClickRoundPlusComponent();\n  useEffect(() => {\n    if (!isCanvas()) {\n      return;\n    }\n    setIsActive(initialIsActive);\n  }, [initialIsActive]);\n  useEffect(() => {\n    if (!isActive) {\n      return;\n    }\n    computeFloatingPosition({\n      offset: PRODUCT_OFFSET,\n      shift: {\n        padding: PRODUCT_SHIFT_PADDING\n      },\n      autoPlacement: {\n        allowedPlacements: [\"top\", \"bottom\"]\n      }\n    });\n  }, [isActive]);\n  useOutsideClick(containerRef, () => {\n    if (!isAllInViewOnce) {\n      return;\n    }\n    if (!isActive) {\n      return;\n    }\n    setIsActive(false);\n  });\n  const handlePinButtonClick = () => {\n    trackClickRoundPlusComponent();\n    setIsActive((prev) => !prev);\n  };\n  return {\n    isActive,\n    containerRef,\n    referenceElementRef,\n    floatingElementRef,\n    handlePinButtonClick\n  };\n};\nexport {\n  usePinProductBannerV2\n};\n","(function() {\n  \"use strict\";\n  try {\n    if (typeof document != \"undefined\") {\n      var elementStyle = document.createElement(\"style\");\n      elementStyle.appendChild(document.createTextNode(\"._pinButtonWrapper_1wlij_1 {\\n  padding: 8px;\\n  width: fit-content;\\n  height: fit-content;\\n  cursor: pointer;\\n}\\n\\n._pinButton_1wlij_1 {\\n  position: relative;\\n  display: flex;\\n  justify-content: center;\\n  align-items: center;\\n  padding: 0;\\n  width: 20px;\\n  height: 20px;\\n  background-color: #000;\\n  border: none;\\n  border-radius: 50%;\\n\\n  &[data-color-theme='light'] {\\n    background-color: #fff;\\n\\n    > svg > path {\\n      fill: #000;\\n    }\\n  }\\n}\\n\\n._productWrapper_1wlij_29 {\\n  /* Float on top of the UI */\\n  position: absolute;\\n\\n  /* Avoid layout interference */\\n  width: max-content;\\n  top: 0px;\\n  left: 0px;\\n}\\n\\n._productContainer_1wlij_39 {\\n  display: flex;\\n  justify-content: center;\\n\\n  width: 100%;\\n  height: 100%;\\n  cursor: pointer;\\n\\n  width: 196px;\\n  background: white;\\n  border: 0.7px solid #00000066;\\n  border-radius: 2px;\\n  padding: 8px;\\n}\\n\\n._productContainer_1wlij_39 > :first-child {\\n  width: 100% !important;\\n  height: 100% !important;\\n}\"));\n      document.head.appendChild(elementStyle);\n    }\n  } catch (e) {\n    console.error(\"vite-plugin-css-injected-by-js\", e);\n  }\n})();\nconst pinButtonWrapper = \"_pinButtonWrapper_1wlij_1\";\nconst pinButton = \"_pinButton_1wlij_1\";\nconst productWrapper = \"_productWrapper_1wlij_29\";\nconst productContainer = \"_productContainer_1wlij_39\";\nconst styles = {\n  pinButtonWrapper,\n  pinButton,\n  productWrapper,\n  productContainer\n};\nexport {\n  styles as default,\n  pinButton,\n  pinButtonWrapper,\n  productContainer,\n  productWrapper\n};\n","import { ControlType } from \"framer\";\nconst COMPONENT_ID_PROPS = {\n  componentId: {\n    type: ControlType.String,\n    title: \"컴포넌트 ID\",\n    description: \"이벤트 수집 시에 모듈을 구분하기 위한 값\\nex. 29welcoming\",\n    defaultValue: \"\"\n  }\n};\nexport {\n  COMPONENT_ID_PROPS\n};\n","import { jsxs, jsx } from \"react/jsx-runtime\";\nimport { addPropertyControls, ControlType } from \"framer\";\nimport { motion, AnimatePresence } from \"framer-motion\";\nimport { PlusIcon } from \"../../@shared/icons/PlusIcon.js\";\nimport { isCanvas } from \"../../../utils/framer/isCanvas.js\";\nimport { isFramerPreview } from \"../../../utils/framer/isFramerPreview.js\";\nimport { PIN_BUTTON_HOVER_EFFECT, PIN_BUTTON_TAP_EFFECT, PRODUCT_BANNER_EFFECT, PRODUCT_BANNER_EFFECT_INITIAL } from \"./PinProductBannerV2.constants.effect.js\";\nimport { usePinProductBannerV2 } from \"./PinProductBannerV2.hooks.js\";\nimport styles from \"./PinProductBannerV2.module.css.js\";\nimport { COMPONENT_ID_PROPS } from \"../../../libs/property-controls/component-id.js\";\nimport { ProductCard } from \"../../@shared/ProductCard/ProductCard.js\";\nimport { ProductCardType } from \"../../@shared/ProductCard/ProductCard.types.js\";\nimport \"react\";\nimport \"../../../node_modules/@firebase/analytics/dist/esm/index.esm2017.js\";\nimport \"../../../node_modules/firebase/app/dist/esm/index.esm.js\";\nimport \"../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport { formatFramerProduct2Product } from \"../../../apis/framer/FramerApiService.js\";\nimport \"../../../config/index.js\";\nimport { useFetchProductList } from \"../../../hooks/fetchers/useFetchProductList.js\";\nimport \"../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport \"../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../apis/preuser/PreuserApiService.js\";\nimport \"../../../node_modules/@29cm/snowplow/dist/esm/core/snowplow.js\";\nimport \"../../../node_modules/swr/mutation/dist/index.js\";\nimport \"../../../hooks/stores/content/content.store.js\";\nimport \"../../../hooks/stores/dialog/dialog.store.js\";\nimport \"../../../hooks/stores/global-layout/global-layout.store.js\";\nimport \"../../../hooks/stores/toast/toast.store.js\";\nimport \"../../@shared/providers/ThemeProvider/ThemeProvider.js\";\nimport \"../../@shared/providers/BreakpointProvider/BreakpointProvider.js\";\nimport \"../../../hooks/stores/bottom-sheet/bottom-sheet.store.js\";\nimport \"react-dom\";\nimport \"../Dialog/Dialog.module.css.js\";\nimport \"../../../containers/DialogContainer/DialogContainer.emitter.js\";\nimport \"../../../utils/redirectLogin.js\";\nimport \"../../../utils/event-properties/source.js\";\nimport { useSendProductIds } from \"../../../hooks/product/useSendProductIds.js\";\nimport \"../../../constants/snowplow/snowplowSchema.js\";\nconst PinProductBannerV2 = ({\n  productId,\n  isActive: initialIsActive,\n  buttonTheme,\n  style,\n  componentId\n}) => {\n  const {\n    isActive,\n    containerRef,\n    referenceElementRef,\n    floatingElementRef,\n    handlePinButtonClick\n  } = usePinProductBannerV2(initialIsActive);\n  useSendProductIds(productId);\n  const {\n    productList\n  } = useFetchProductList([Number(productId)]);\n  const framerProduct = productList.find(({\n    itemNo\n  }) => itemNo === Number(productId));\n  const product = formatFramerProduct2Product(framerProduct);\n  const isFramer = isCanvas() || isFramerPreview();\n  if (!product && !isFramer) {\n    return null;\n  }\n  return /* @__PURE__ */ jsxs(\"div\", { ref: containerRef, style, children: [\n    /* @__PURE__ */ jsx(\"div\", { className: styles.pinButtonWrapper, onClick: handlePinButtonClick, children: /* @__PURE__ */ jsx(motion.button, { className: styles.pinButton, ref: referenceElementRef, \"data-color-theme\": buttonTheme, whileHover: PIN_BUTTON_HOVER_EFFECT, whileTap: PIN_BUTTON_TAP_EFFECT, children: /* @__PURE__ */ jsx(PlusIcon, {}) }) }),\n    /* @__PURE__ */ jsx(motion.div, { className: styles.productWrapper, ref: floatingElementRef, children: /* @__PURE__ */ jsx(AnimatePresence, { children: isActive ? /* @__PURE__ */ jsx(motion.div, { ...PRODUCT_BANNER_EFFECT, initial: isCanvas() ? void 0 : PRODUCT_BANNER_EFFECT_INITIAL, children: /* @__PURE__ */ jsx(\"div\", { className: styles.productContainer, style, children: product ? /* @__PURE__ */ jsx(ProductCard, { product, type: ProductCardType.BAR, size: \"small\", eventProperties: {\n      product,\n      isProductGroup: false,\n      componentName: componentId\n    }, hasBadges: false, hasSoldOutBadge: false, hasHeart: false, hasPriceUnit: false, isHeartOn: \"OFF\", style: {\n      overflow: \"hidden\"\n    }, onHeartOn: () => {\n    }, onHeartOff: () => {\n    } }) : /* @__PURE__ */ jsx(Fallback, { productId, isFramer }) }) }) : null }) })\n  ] });\n};\nconst Fallback = ({\n  productId,\n  isFramer\n}) => {\n  if (!isFramer) {\n    return null;\n  }\n  if (!productId) {\n    return \"[관리자용 메시지] 상품 번호를 입력해주세요. 상품 번호가 없을 경우 배포된 페이지에서 본 컴포넌트 자체가 표시되지 않습니다.\";\n  }\n  return \"[관리자용 메시지] 완전 품절된 상품입니다. 완전 품절된 상품은 정책에 따라 배포된 페이지에서 본 컴포넌트 자체가 표시되지 않습니다.\";\n};\naddPropertyControls(PinProductBannerV2, {\n  isActive: {\n    title: \"상품 배너 오픈\",\n    type: ControlType.Boolean,\n    defaultValue: false\n  },\n  productId: {\n    title: \"상품 번호\",\n    type: ControlType.String,\n    placeholder: \"상품 번호를 입력\",\n    description: \"단수만 입력\"\n  },\n  buttonTheme: {\n    title: \"핀 버튼 색상\",\n    type: ControlType.Enum,\n    displaySegmentedControl: true,\n    options: [\"dark\", \"light\"],\n    optionTitles: [\"검은색\", \"하얀색\"],\n    defaultValue: \"dark\"\n  },\n  ...COMPONENT_ID_PROPS\n});\nexport {\n  PinProductBannerV2\n};\n","import{PinProductBannerV2}from\"https://asset.29cm.co.kr/contents/framer/components/systems/PinProductBannerV2/PinProductBannerV2.js\";// import { PinProductBannerV2 } from \"http://localhost:4173/components/systems/PinProductBannerV2/PinProductBannerV2.js\"\nPinProductBannerV2.displayName=\"PinProductCard\";/**\n * @framerDisableUnlink\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default PinProductBannerV2;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PinProductBannerV2\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"auto\",\"framerDisableUnlink\":\"* @framerSupportedLayoutWidth auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PinProductCard.map","var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n  __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n  return value;\n};\nclass MediaBuilder {\n  constructor(src) {\n    __publicField(this, \"src\");\n    this.src = new URL(src);\n  }\n  set(name, value) {\n    this.src.searchParams.set(name, value);\n  }\n  setQuality(quality) {\n    this.set(\"q\", `${quality}`);\n    return this;\n  }\n  setFormat(format) {\n    this.set(\"format\", format);\n    return this;\n  }\n  setWidth(width) {\n    this.set(\"width\", `${width}`);\n    return this;\n  }\n  getSrc() {\n    return this.src.href;\n  }\n  getSrcSet(...widths) {\n    const unique = Array.from(new Set(widths));\n    const array = unique.map((width) => {\n      const url = new URL(this.src);\n      url.searchParams.set(\"width\", `${width * 2}`);\n      return `${url.href} ${width}w`;\n    });\n    return array.join(\",\");\n  }\n}\nconst mediaBuilder = (src) => new MediaBuilder(src);\nexport {\n  mediaBuilder\n};\n","import { jsxs, jsx } from \"react/jsx-runtime\";\nimport { mediaBuilder } from \"../../../../utils/mediaBuilder.js\";\nconst SRC_SET_WIDTHS = [540, 1024, 1440];\nconst KeyVisualImage = ({\n  style,\n  media,\n  lazy,\n  source\n}) => {\n  if (!source) {\n    return;\n  }\n  const imageWebp = mediaBuilder(source).setFormat(\"webp\").setQuality(90);\n  const image = mediaBuilder(source).setQuality(90);\n  return /* @__PURE__ */ jsxs(\"picture\", { children: [\n    /* @__PURE__ */ jsx(\"source\", { srcSet: imageWebp.getSrcSet(...SRC_SET_WIDTHS), src: imageWebp.getSrc(), media }),\n    /* @__PURE__ */ jsx(\"img\", { style, loading: lazy ? \"lazy\" : \"eager\", sizes: \"100vw\", srcSet: image.getSrcSet(...SRC_SET_WIDTHS), src: source, alt: source })\n  ] });\n};\nexport {\n  KeyVisualImage\n};\n","import { useInView } from \"framer-motion\";\nimport { useRef, useState, useCallback, useEffect } from \"react\";\nimport { usePageVisibility } from \"./usePageVisibility.js\";\nimport { useReceiveMessage } from \"./useReceiveMessage.js\";\nconst useVideoVisibility = () => {\n  const videoRef = useRef(null);\n  const isInView = useInView(videoRef);\n  const isPageVisible = usePageVisibility();\n  const [isWindowFocused, setIsWindowFocused] = useState(true);\n  const [shouldLoadSources, setShouldLoadSources] = useState(false);\n  const handleWindowFocusMessage = useCallback((payload) => {\n    setIsWindowFocused(payload.value.toString() === \"true\");\n  }, []);\n  useReceiveMessage(\"isWindowFocused\", handleWindowFocusMessage);\n  useEffect(() => {\n    if (isInView && !shouldLoadSources) {\n      setShouldLoadSources(true);\n    }\n  }, [isInView, shouldLoadSources]);\n  useEffect(() => {\n    var _a;\n    if (!videoRef.current) {\n      return;\n    }\n    if (document.visibilityState === \"hidden\") {\n      videoRef.current.pause();\n      return;\n    }\n    if (!isWindowFocused) {\n      videoRef.current.pause();\n      return;\n    }\n    if (isInView) {\n      (_a = videoRef.current) == null ? void 0 : _a.play().catch(() => {\n      });\n    } else {\n      videoRef.current.pause();\n    }\n  }, [isInView, isPageVisible, isWindowFocused]);\n  return {\n    videoRef,\n    isInView,\n    shouldLoadSources\n  };\n};\nexport {\n  useVideoVisibility\n};\n","var Breakpoint = /* @__PURE__ */ ((Breakpoint2) => {\n  Breakpoint2[Breakpoint2[\"DESKTOP\"] = 0] = \"DESKTOP\";\n  Breakpoint2[Breakpoint2[\"TABLET\"] = 1] = \"TABLET\";\n  Breakpoint2[Breakpoint2[\"MOBILE\"] = 2] = \"MOBILE\";\n  return Breakpoint2;\n})(Breakpoint || {});\nvar MediaType = /* @__PURE__ */ ((MediaType2) => {\n  MediaType2[MediaType2[\"VIDEO\"] = 0] = \"VIDEO\";\n  MediaType2[MediaType2[\"IMAGE\"] = 1] = \"IMAGE\";\n  return MediaType2;\n})(MediaType || {});\nexport {\n  Breakpoint,\n  MediaType\n};\n","import { jsx, jsxs } from \"react/jsx-runtime\";\nimport { useInView } from \"framer-motion\";\nimport { useRef } from \"react\";\nimport \"../../../../node_modules/@firebase/analytics/dist/esm/index.esm2017.js\";\nimport \"../../../../node_modules/firebase/app/dist/esm/index.esm.js\";\nimport \"../../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport \"../../../../config/index.js\";\nimport \"../../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport \"../../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../../apis/preuser/PreuserApiService.js\";\nimport \"framer\";\nimport \"../../../../node_modules/@29cm/snowplow/dist/esm/core/snowplow.js\";\nimport \"../../../../node_modules/swr/mutation/dist/index.js\";\nimport \"../../../../hooks/stores/content/content.store.js\";\nimport \"../../../../hooks/stores/dialog/dialog.store.js\";\nimport \"../../../../hooks/stores/global-layout/global-layout.store.js\";\nimport \"../../../../hooks/stores/toast/toast.store.js\";\nimport \"../../../@shared/providers/ThemeProvider/ThemeProvider.js\";\nimport \"../../../@shared/providers/BreakpointProvider/BreakpointProvider.js\";\nimport \"../../../../hooks/stores/bottom-sheet/bottom-sheet.store.js\";\nimport \"react-dom\";\nimport \"../../Dialog/Dialog.module.css.js\";\nimport \"../../../../containers/DialogContainer/DialogContainer.emitter.js\";\nimport { useVideoVisibility } from \"../../../../hooks/useVideoVisibility.js\";\nimport \"../../../../utils/redirectLogin.js\";\nimport \"../../../../utils/event-properties/source.js\";\nimport { querify } from \"../../../../utils/querify.js\";\nimport { Breakpoint } from \"../KeyVisual.constants.js\";\nconst KeyVisualVideoInner = ({\n  poster,\n  sourceWebm,\n  source,\n  style,\n  breakpoint,\n  media\n}) => {\n  const {\n    videoRef\n  } = useVideoVisibility();\n  const query = querify({\n    width: posterWidthByBreakpoint[breakpoint],\n    q: 90\n  });\n  return /* @__PURE__ */ jsx(\"div\", { style: {\n    position: \"relative\",\n    ...style\n  }, children: /* @__PURE__ */ jsxs(\"video\", { ref: videoRef, playsInline: true, muted: true, loop: true, preload: \"auto\", style: {\n    width: \"100%\",\n    height: \"100%\",\n    objectFit: \"cover\",\n    overflow: \"hidden\",\n    backgroundImage: `url(${poster})`,\n    backgroundPosition: \"center\",\n    backgroundSize: \"cover\"\n  }, poster: `${poster}?${query}`, children: [\n    sourceWebm && /* @__PURE__ */ jsx(\"source\", { type: \"video/webm\", src: sourceWebm, media }),\n    /* @__PURE__ */ jsx(\"source\", { type: \"video/mp4\", src: source, media })\n  ] }) });\n};\nconst KeyVisualVideo = ({\n  style,\n  lazy,\n  ...rest\n}) => {\n  const ref = useRef(null);\n  const isInView = useInView(ref, {\n    margin: \"400px 0px\",\n    once: true\n  });\n  if (lazy && !isInView) {\n    return /* @__PURE__ */ jsx(\"div\", { ref, style });\n  }\n  return /* @__PURE__ */ jsx(KeyVisualVideoInner, { style, ...rest });\n};\nconst posterWidthByBreakpoint = {\n  [Breakpoint.DESKTOP]: void 0,\n  [Breakpoint.TABLET]: 1440,\n  [Breakpoint.MOBILE]: 1024\n};\nexport {\n  KeyVisualVideo\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { addPropertyControls, ControlType } from \"framer\";\nimport { memo } from \"react\";\nimport { KeyVisualImage } from \"./KeyVisualImage/KeyVisualImage.js\";\nimport { KeyVisualVideo } from \"./KeyVisualVideo/KeyVisualVideo.js\";\nimport { MediaType, Breakpoint } from \"./KeyVisual.constants.js\";\nconst KeyVisual = memo(({\n  style,\n  breakpoint,\n  type,\n  lazy,\n  poster,\n  sourceWebm,\n  source,\n  sourceImage\n}) => {\n  if (type === MediaType.IMAGE) {\n    return /* @__PURE__ */ jsx(KeyVisualImage, { style: {\n      ...style,\n      ...mediaStyle\n    }, media: mediaByBreakpoint[breakpoint], lazy, source: sourceImage });\n  }\n  return /* @__PURE__ */ jsx(KeyVisualVideo, { style: {\n    ...style,\n    ...mediaStyle\n  }, breakpoint, lazy, media: mediaByBreakpoint[breakpoint], poster, sourceWebm, source });\n});\nconst mediaByBreakpoint = {\n  [Breakpoint.DESKTOP]: \"(min-width: 1025px)\",\n  [Breakpoint.TABLET]: \"(min-width: 541px)\",\n  [Breakpoint.MOBILE]: void 0\n};\nconst mediaStyle = {\n  width: \"100%\",\n  height: \"100%\",\n  display: \"block\",\n  objectFit: \"cover\",\n  objectPosition: \"50% 50%\",\n  background: \"transparent\",\n  border: 0,\n  outline: \"none\"\n};\nconst isVideo = ({\n  type\n}) => type === MediaType.VIDEO;\nconst isImage = ({\n  type\n}) => type === MediaType.IMAGE;\naddPropertyControls(KeyVisual, {\n  breakpoint: {\n    type: ControlType.Enum,\n    title: \"분기점\",\n    options: [Breakpoint.DESKTOP, Breakpoint.TABLET, Breakpoint.MOBILE],\n    optionTitles: [\"PC\", \"Tablet\", \"Mobile\"],\n    displaySegmentedControl: true\n  },\n  type: {\n    type: ControlType.Enum,\n    title: \"미디어 유형\",\n    options: [MediaType.VIDEO, MediaType.IMAGE],\n    optionTitles: [\"Video\", \"Image\"],\n    defaultValue: MediaType.VIDEO,\n    displaySegmentedControl: true\n  },\n  lazy: {\n    type: ControlType.Boolean,\n    title: \"지연 로드\",\n    description: \"활성화할 경우 미디어가 화면상에 노출되기 직전에 로드됩니다.\",\n    defaultValue: false\n  },\n  poster: {\n    hidden: isImage,\n    type: ControlType.String,\n    title: \"포스터\",\n    description: \"영상이 자동재생되지 않는 환경(ex. 저전력 모드)에서 임시로 노출할 이미지 링크를 입력합니다.\"\n  },\n  sourceWebm: {\n    hidden: isImage,\n    type: ControlType.String,\n    title: \"영상 링크 (.webm)\",\n    description: \".webm 포맷의 영상 링크를 입력합니다.\"\n  },\n  source: {\n    hidden: isImage,\n    type: ControlType.String,\n    title: \"영상 링크 (.mp4)\",\n    description: \".mp4 포맷의 영상 링크를 입력합니다.\"\n  },\n  sourceImage: {\n    hidden: isVideo,\n    type: ControlType.String,\n    title: \"이미지 링크\",\n    description: \"img.29cm.co.kr 주소로 된 이미지 링크를 입력합니다.\"\n  }\n});\nexport {\n  KeyVisual\n};\n","import{KeyVisual}from\"https://asset.29cm.co.kr/contents/framer/components/systems/KeyVisual/KeyVisual.js\";// import { KeyVisual } from \"https://asset.29cm.co.kr/contents/framer/dev/components/systems/KeyVisual/KeyVisual.js\"\n// import { KeyVisual } from \"http://localhost:4173/components/systems/KeyVisual/KeyVisual.js\"\nKeyVisual.displayName=\"KeyVisual\";/**\n * @framerDisableUnlink\n */export default KeyVisual;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"KeyVisual\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./KeyVisual.map","var TagsModuleInputType = /* @__PURE__ */ ((TagsModuleInputType2) => {\n  TagsModuleInputType2[TagsModuleInputType2[\"Linked\"] = 0] = \"Linked\";\n  TagsModuleInputType2[TagsModuleInputType2[\"Manual\"] = 1] = \"Manual\";\n  TagsModuleInputType2[TagsModuleInputType2[\"Auto\"] = 2] = \"Auto\";\n  return TagsModuleInputType2;\n})(TagsModuleInputType || {});\nexport {\n  TagsModuleInputType\n};\n","import useSWR from \"../../node_modules/swr/core/dist/index.js\";\nimport { categoryFirstOrderApi } from \"../../apis/user-segment/CategoryFirstOrderApiService.js\";\nconst CATEGORY_COUPON_FIRST_ORDER_SEGMENT_FETCHER_KEY = \"category-coupon-first-order-segment\";\nconst useCategoryNewBuyerCoupon = (couponId) => {\n  return useSWR(couponId ? [CATEGORY_COUPON_FIRST_ORDER_SEGMENT_FETCHER_KEY, couponId] : null, () => categoryFirstOrderApi.getCategoryCouponFirstOrderSegment(Number(couponId)));\n};\nexport {\n  useCategoryNewBuyerCoupon\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { createContext, useState, useMemo, useContext } from \"react\";\nimport { useCurrentUser } from \"../../../../hooks/code-overrides/useCurrentUser.js\";\nimport { useUserFirstOrderSegment } from \"../../../../hooks/code-overrides/useUserTargetSegment.js\";\nimport { useCategoryNewBuyerCoupon } from \"../../../../hooks/fetchers/useCategoryNewBuyerCoupon.js\";\nimport \"../../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport { useCategoryNewBuyerProduct } from \"../../../../hooks/fetchers/useCategoryNewBuyerProduct.js\";\nimport \"../../../../config/index.js\";\nimport \"../../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport \"../../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../../apis/preuser/PreuserApiService.js\";\nimport \"../../../../hooks/stores/content/content.store.js\";\nimport \"../../../../utils/event-properties/source.js\";\nimport { isCanvas } from \"../../../../utils/framer/isCanvas.js\";\nimport { isFramerPreview } from \"../../../../utils/framer/isFramerPreview.js\";\nconst SegmentContext = createContext(void 0);\nconst SegmentProvider = ({\n  children,\n  segment = []\n}) => {\n  var _a, _b, _c, _d;\n  const groupId = (_b = (_a = segment.filter((seg) => seg.type === \"categoryNewBuyerProduct\")) == null ? void 0 : _a[0]) == null ? void 0 : _b.groupId;\n  const couponId = (_d = (_c = segment.filter((seg) => seg.type === \"categoryNewBuyerCoupon\")) == null ? void 0 : _c[0]) == null ? void 0 : _d.couponId;\n  const [currentSegments] = useState(segment);\n  const {\n    logged,\n    gender: userGender\n  } = useCurrentUser();\n  const {\n    data: userSegmentData,\n    isLoading: isUserSegmentLoading\n  } = useUserFirstOrderSegment(logged);\n  const {\n    data: categoryNewBuyerProductData,\n    isLoading: isCategoryNewBuyerProductLoading\n  } = useCategoryNewBuyerProduct(logged && groupId ? groupId : void 0);\n  const {\n    data: categoryNewBuyerCouponData,\n    isLoading: isCategoryNewBuyerCouponLoading\n  } = useCategoryNewBuyerCoupon(logged && couponId ? couponId : void 0);\n  const segmentValues = useMemo(() => {\n    var _a2, _b2, _c2;\n    const isLogin = logged;\n    const guest = !logged;\n    const isNewBuyer = ((_a2 = userSegmentData == null ? void 0 : userSegmentData.data) == null ? void 0 : _a2.isFirstOrder) ?? false;\n    const isCategoryNewBuyerProduct = ((_b2 = categoryNewBuyerProductData == null ? void 0 : categoryNewBuyerProductData.data) == null ? void 0 : _b2.isOrderable) ?? false;\n    const isCategoryNewBuyerCoupon = ((_c2 = categoryNewBuyerCouponData == null ? void 0 : categoryNewBuyerCouponData.data) == null ? void 0 : _c2.isOrderable) ?? false;\n    const isVisible = () => {\n      if (currentSegments.length === 0) {\n        return true;\n      }\n      if (currentSegments.some((seg) => seg.type === \"\")) {\n        return true;\n      }\n      return currentSegments.every((seg) => {\n        switch (seg.type) {\n          case \"login\":\n            return isLogin;\n          case \"guest\":\n            return guest;\n          case \"newBuyer\":\n            return !logged ? true : isNewBuyer;\n          case \"categoryNewBuyerProduct\":\n            return !logged ? true : isCategoryNewBuyerProduct;\n          case \"categoryNewBuyerCoupon\":\n            return !logged ? true : isCategoryNewBuyerCoupon;\n          case \"gender\": {\n            if (!seg.gender) {\n              return false;\n            }\n            return !logged ? true : userGender !== null && userGender === seg.gender;\n          }\n          default:\n            return false;\n        }\n      });\n    };\n    return {\n      loading: isUserSegmentLoading || isCategoryNewBuyerProductLoading || isCategoryNewBuyerCouponLoading,\n      isLogin,\n      guest,\n      isNewBuyer,\n      isCategoryNewBuyerProduct,\n      isCategoryNewBuyerCoupon,\n      isVisible: isCanvas() || isFramerPreview() || isVisible()\n    };\n  }, [logged, userGender, userSegmentData, isUserSegmentLoading, currentSegments, categoryNewBuyerProductData, categoryNewBuyerCouponData, isCategoryNewBuyerProductLoading, isCategoryNewBuyerCouponLoading]);\n  return /* @__PURE__ */ jsx(SegmentContext.Provider, { value: {\n    ...segmentValues,\n    segments: currentSegments\n  }, children });\n};\nconst useSegment = () => {\n  const context = useContext(SegmentContext);\n  if (context === void 0) {\n    throw new Error(\"useSegment must be used within a SegmentProvider\");\n  }\n  return context;\n};\nexport {\n  SegmentProvider,\n  useSegment\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { useInView } from \"framer-motion\";\nimport { createContext, useRef } from \"react\";\nconst IntersectionContext = createContext({\n  isInView: false\n});\nconst IntersectionProvider = ({\n  children,\n  ...rest\n}) => {\n  const ref = useRef(null);\n  const isInView = useInView(ref, rest);\n  return /* @__PURE__ */ jsx(IntersectionContext.Provider, { value: {\n    isInView\n  }, children: /* @__PURE__ */ jsx(\"div\", { ref, style: {\n    width: \"100%\"\n  }, children }) });\n};\nexport {\n  IntersectionContext,\n  IntersectionProvider\n};\n","import { useContext } from \"react\";\nimport { IntersectionContext } from \"./IntersectionProvider.js\";\nconst useIntersectionContext = () => {\n  return useContext(IntersectionContext);\n};\nexport {\n  useIntersectionContext\n};\n","import { create } from \"../../../node_modules/zustand/esm/index.js\";\nconst initialState = {\n  queries: {}\n};\nconst useQueryStore = create((set) => ({\n  ...initialState,\n  dispatchSetQuery: (key, query) => set((prev) => ({\n    queries: {\n      ...prev.queries,\n      [key]: query\n    }\n  }))\n}));\nexport {\n  useQueryStore\n};\n","const getRestScrollWidth = (element) => {\n  const {\n    scrollWidth = 0,\n    offsetWidth = 0\n  } = element ?? {};\n  return scrollWidth - offsetWidth;\n};\nexport {\n  getRestScrollWidth\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { useMotionValue, clamp, animate } from \"framer-motion\";\nimport { createContext, forwardRef, useRef, useState, useLayoutEffect, useEffect } from \"react\";\nimport { getRestScrollWidth } from \"../../../utils/getRestScrollWidth.js\";\nconst DraggableTabsContext = createContext(null);\nconst Root = forwardRef(({\n  children,\n  style,\n  defaultValue,\n  value,\n  dragPaddingLeft = 0,\n  dragPaddingRight = 0,\n  onValueChange,\n  ...rest\n}, ref) => {\n  const refs = useRef(/* @__PURE__ */ new Map());\n  const listRef = useRef(null);\n  const [firstValue] = refs.current.keys();\n  const [currentValue, setCurrentValue] = useState(defaultValue ?? value ?? firstValue);\n  const listX = useMotionValue(0);\n  const focusTo = (incoming, smooth = true) => {\n    const item = refs.current.get(incoming);\n    if (item === void 0) {\n      return;\n    }\n    const threshold = getRestScrollWidth(listRef.current);\n    const finalX = -clamp(0, threshold, item.offsetLeft - dragPaddingLeft);\n    if (smooth) {\n      animate(listX, finalX, {\n        type: \"spring\",\n        stiffness: 400,\n        damping: 50\n      });\n    } else {\n      listX.set(finalX);\n    }\n  };\n  const move = (next) => {\n    onValueChange == null ? void 0 : onValueChange(next);\n    setCurrentValue(next);\n    focusTo(next);\n  };\n  useLayoutEffect(() => {\n    if (defaultValue) {\n      focusTo(defaultValue, false);\n    }\n  }, []);\n  useEffect(() => {\n    if (value) {\n      move(value);\n    }\n  }, [value]);\n  const context = {\n    refs,\n    listRef,\n    currentValue,\n    listX,\n    dragPaddingLeft,\n    dragPaddingRight,\n    move\n  };\n  return /* @__PURE__ */ jsx(DraggableTabsContext.Provider, { value: context, children: /* @__PURE__ */ jsx(\"div\", { ref, ...rest, style: {\n    ...style,\n    ...containerStyle\n  }, children }) });\n});\nconst containerStyle = {\n  display: \"flex\",\n  flexDirection: \"column\"\n};\nexport {\n  DraggableTabsContext,\n  Root\n};\n","import { useContext } from \"react\";\nimport { DraggableTabsContext } from \"./Root.js\";\nconst useDraggableTabsContext = () => {\n  const context = useContext(DraggableTabsContext);\n  if (!context) {\n    throw new Error(\"useDraggableTabsContext should be used within Root\");\n  }\n  return context;\n};\nexport {\n  useDraggableTabsContext\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { useTransform, motion, useMotionValue, useMotionValueEvent } from \"framer-motion\";\nimport { useDraggableTabsContext } from \"./Root.hooks.js\";\nimport { forwardRef, useState, useEffect } from \"react\";\nimport { getRestScrollWidth } from \"../../../utils/getRestScrollWidth.js\";\nconst Gradient = forwardRef(({\n  style,\n  theme = \"light\",\n  ...props\n}, ref) => {\n  const {\n    listRef\n  } = useDraggableTabsContext();\n  const xProgress = useListXProgress();\n  const opacity = useTransform(xProgress, [0.95, 1], [1, 0]);\n  const [hidden, setHidden] = useState(true);\n  useEffect(() => {\n    const container = listRef.current;\n    if (container === null) {\n      return;\n    }\n    setHidden(container.scrollWidth <= container.clientWidth);\n  }, []);\n  return /* @__PURE__ */ jsx(motion.div, { ref, ...props, style: {\n    ...gradientStyle,\n    ...gradientStyleByTheme[theme],\n    opacity: hidden ? 0 : opacity,\n    ...style\n  } });\n});\nconst useListXProgress = () => {\n  const {\n    listX,\n    listRef\n  } = useDraggableTabsContext();\n  const xProgress = useMotionValue(0);\n  useMotionValueEvent(listX, \"change\", (latest) => {\n    xProgress.set(-latest / getRestScrollWidth(listRef.current));\n  });\n  return xProgress;\n};\nconst gradientStyle = {\n  position: \"absolute\",\n  zIndex: 8,\n  inset: \"0 0 0 auto\",\n  pointerEvents: \"none\",\n  width: 60\n};\nconst gradientStyleByTheme = {\n  light: {\n    background: \"linear-gradient(270deg, #ffffff 0%, rgba(0, 0, 0, 0) 100%)\"\n  },\n  dark: {\n    background: \"linear-gradient(270deg, #000000 0%, rgba(0, 0, 0, 0) 100%)\"\n  }\n};\nexport {\n  Gradient\n};\n","const closest = (array, target) => {\n  return array.reduce((prev, curr) => Math.abs(curr - target) < Math.abs(prev - target) ? curr : prev, 0);\n};\nexport {\n  closest\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { forwardRef, useState, useLayoutEffect, useEffect } from \"react\";\nimport { withCSS } from \"framer\";\nimport { motion, clamp, animate } from \"framer-motion\";\nimport { closest } from \"../../../utils/closest.js\";\nimport { getRestScrollWidth } from \"../../../utils/getRestScrollWidth.js\";\nimport { mergeRefs } from \"../../../utils/react/mergeRefs.js\";\nimport { useDraggableTabsContext } from \"./Root.hooks.js\";\nconst COMPONENT_NAME = \"tabs-list\";\nconst INITIAL_DAMPING = 0.4;\nconst css = [`\n    .${COMPONENT_NAME}-container::-webkit-scrollbar {\n      display: none;\n    }\n  `];\nconst List = withCSS(forwardRef(({\n  children,\n  style,\n  gap = 0,\n  damping = INITIAL_DAMPING,\n  ...rest\n}, ref) => {\n  const {\n    listRef,\n    refs,\n    listX,\n    dragPaddingLeft,\n    dragPaddingRight\n  } = useDraggableTabsContext();\n  const [constraints, setConstraints] = useState({\n    left: 0,\n    right: 0\n  });\n  const updateConstraints = () => {\n    if (!listRef.current) {\n      return;\n    }\n    const maxScroll = getRestScrollWidth(listRef.current);\n    const newLeft = -maxScroll;\n    setConstraints((prev) => {\n      if (prev.left === newLeft) {\n        return prev;\n      }\n      return {\n        left: newLeft,\n        right: 0\n      };\n    });\n  };\n  const getChildrenPositions = () => {\n    return Array.from(refs.current.values()).map((element) => element.offsetLeft);\n  };\n  const handleDragEnd = (_, {\n    velocity\n  }) => {\n    const destinationX = listX.get() + velocity.x * damping;\n    const closestX = closest(getChildrenPositions(), -destinationX);\n    const threshold = getRestScrollWidth(listRef.current);\n    const finalX = -clamp(0, threshold, closestX - dragPaddingLeft);\n    animate(listX, finalX, {\n      type: \"spring\",\n      stiffness: 200,\n      damping: 50\n    });\n  };\n  useLayoutEffect(() => {\n    updateConstraints();\n  }, []);\n  useEffect(() => {\n    const container = listRef.current;\n    if (!container) {\n      return;\n    }\n    const resizeObserver = new ResizeObserver(() => {\n      updateConstraints();\n    });\n    resizeObserver.observe(container);\n    return () => {\n      resizeObserver.disconnect();\n    };\n  }, []);\n  return /* @__PURE__ */ jsx(\"div\", { ref: mergeRefs([ref, listRef]), className: `${COMPONENT_NAME}-container`, style: {\n    ...containerStyle,\n    ...style\n  }, ...rest, children: /* @__PURE__ */ jsx(motion.div, { style: {\n    ...listStyle,\n    x: listX,\n    gap,\n    paddingLeft: dragPaddingLeft,\n    paddingRight: dragPaddingRight\n  }, drag: \"x\", dragElastic: 0.1, dragConstraints: constraints, dragPropagation: false, onDragEnd: handleDragEnd, whileDrag: {\n    pointerEvents: \"none\"\n  }, children }) });\n}), css);\nconst containerStyle = {\n  position: \"relative\",\n  zIndex: 8,\n  width: \"100%\",\n  overflow: \"hidden\",\n  msOverflowStyle: \"none\",\n  scrollbarWidth: \"none\",\n  cursor: \"grab\"\n};\nconst listStyle = {\n  display: \"inline-flex\",\n  minWidth: \"100%\"\n};\nexport {\n  List\n};\n","import { useDraggableTabsContext } from \"./Root.hooks.js\";\nconst Panel = ({\n  children,\n  value\n}) => {\n  const {\n    currentValue\n  } = useDraggableTabsContext();\n  const isCurrent = value === currentValue;\n  return isCurrent ? children : null;\n};\nexport {\n  Panel\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { forwardRef } from \"react\";\nimport { useDraggableTabsContext } from \"./Root.hooks.js\";\nimport { mergeRefs } from \"../../../utils/react/mergeRefs.js\";\nimport { isFunction } from \"../../../utils/function.js\";\nimport { playHaptic } from \"../../../utils/playHaptic.js\";\nconst Trigger = forwardRef(({\n  children,\n  style,\n  value,\n  onClick,\n  ...rest\n}, ref) => {\n  const {\n    refs,\n    currentValue,\n    move\n  } = useDraggableTabsContext();\n  const isCurrent = value === currentValue;\n  const register = (incoming) => (element) => {\n    refs.current.set(incoming, element);\n  };\n  const handleClick = (e) => {\n    onClick == null ? void 0 : onClick(e);\n    move(value);\n    playHaptic(\"rigid\");\n  };\n  return /* @__PURE__ */ jsx(\"div\", { ref: mergeRefs([ref, register(value)]), style: {\n    ...containerStyle,\n    ...style\n  }, ...rest, onClick: handleClick, children: isFunction(children) ? children(isCurrent) : children });\n});\nconst containerStyle = {\n  position: \"relative\",\n  display: \"flex\",\n  flex: \"0 0 auto\",\n  alignItems: \"center\",\n  justifyContent: \"center\",\n  cursor: \"pointer\",\n  scrollSnapAlign: \"start\"\n};\nexport {\n  Trigger\n};\n","import { Gradient } from \"./Gradient.js\";\nimport { List } from \"./List.js\";\nimport { Panel } from \"./Panel.js\";\nimport { Root } from \"./Root.js\";\nimport { Trigger } from \"./Trigger.js\";\nconst DraggableTabs = {\n  Root,\n  List,\n  Trigger,\n  Panel,\n  Gradient\n};\nexport {\n  DraggableTabs\n};\n","import { useContext } from \"react\";\nimport { BreakpointContext } from \"./BreakpointProvider.js\";\nconst useBreakpointContext = () => {\n  return useContext(BreakpointContext);\n};\nexport {\n  useBreakpointContext\n};\n","import \"../components/@shared/providers/BreakpointProvider/BreakpointProvider.js\";\nimport { useBreakpointContext } from \"../components/@shared/providers/BreakpointProvider/BreakpointProvider.hooks.js\";\nconst useBreakpoint = () => {\n  const {\n    breakpoint\n  } = useBreakpointContext();\n  return breakpoint;\n};\nexport {\n  useBreakpoint\n};\n","var Breakpoint = /* @__PURE__ */ ((Breakpoint2) => {\n  Breakpoint2[\"DESKTOP\"] = \"desktop\";\n  Breakpoint2[\"TABLET\"] = \"tablet\";\n  Breakpoint2[\"MOBILE\"] = \"mobile\";\n  return Breakpoint2;\n})(Breakpoint || {});\nexport {\n  Breakpoint\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { createContext, forwardRef } from \"react\";\nimport { DraggableTabs } from \"../../../@shared/DraggableTabs/index.js\";\nimport \"../../../../node_modules/@firebase/analytics/dist/esm/index.esm2017.js\";\nimport \"../../../../node_modules/firebase/app/dist/esm/index.esm.js\";\nimport \"../../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport \"../../../../config/index.js\";\nimport \"../../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport \"../../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../../apis/preuser/PreuserApiService.js\";\nimport \"framer\";\nimport \"../../../../node_modules/@29cm/snowplow/dist/esm/core/snowplow.js\";\nimport \"../../../../node_modules/swr/mutation/dist/index.js\";\nimport \"../../../../hooks/stores/content/content.store.js\";\nimport \"../../../../hooks/stores/dialog/dialog.store.js\";\nimport \"../../../../hooks/stores/global-layout/global-layout.store.js\";\nimport \"../../../../hooks/stores/toast/toast.store.js\";\nimport \"../../../@shared/providers/ThemeProvider/ThemeProvider.js\";\nimport { useBreakpoint } from \"../../../../hooks/useBreakpoint.js\";\nimport \"../../../../hooks/stores/bottom-sheet/bottom-sheet.store.js\";\nimport \"react-dom\";\nimport \"../../Dialog/Dialog.module.css.js\";\nimport \"framer-motion\";\nimport \"../../../../containers/DialogContainer/DialogContainer.emitter.js\";\nimport \"../../../../utils/redirectLogin.js\";\nimport \"../../../../utils/event-properties/source.js\";\nimport { Breakpoint } from \"../../../../styles/breakpoint.js\";\nconst TagsContext = createContext(null);\nconst Root = forwardRef(({\n  children,\n  loading = false,\n  defaultValue,\n  value,\n  dragPaddingLeft,\n  dragPaddingRight,\n  onValueChange\n}, ref) => {\n  const breakpoint = useBreakpoint();\n  const sidePadding = sidePaddingByBreakpoint[breakpoint];\n  return /* @__PURE__ */ jsx(TagsContext.Provider, { value: {\n    loading\n  }, children: /* @__PURE__ */ jsx(DraggableTabs.Root, { ref, defaultValue, value, dragPaddingLeft: dragPaddingLeft ?? sidePadding, dragPaddingRight: dragPaddingRight ?? sidePadding, onValueChange, children }) });\n});\nconst sidePaddingByBreakpoint = {\n  [Breakpoint.DESKTOP]: 0,\n  [Breakpoint.TABLET]: 20,\n  [Breakpoint.MOBILE]: 20\n};\nexport {\n  Root,\n  TagsContext\n};\n","import { useContext } from \"react\";\nimport { ThemeContext } from \"./ThemeProvider.js\";\nconst useThemeContext = () => {\n  return useContext(ThemeContext);\n};\nexport {\n  useThemeContext\n};\n","import \"../components/@shared/providers/ThemeProvider/ThemeProvider.js\";\nimport { useThemeContext } from \"../components/@shared/providers/ThemeProvider/ThemeProvider.hooks.js\";\nconst useTheme = () => {\n  const {\n    theme\n  } = useThemeContext();\n  return theme;\n};\nexport {\n  useTheme\n};\n","import { useContext } from \"react\";\nimport { TagsContext } from \"./Root.js\";\nconst useTagsContext = () => {\n  const context = useContext(TagsContext);\n  if (!context) {\n    throw new Error(\"useTagsContext should be used within Root\");\n  }\n  return context;\n};\nexport {\n  useTagsContext\n};\n","import { jsxs, jsx } from \"react/jsx-runtime\";\nimport { forwardRef, Fragment } from \"react\";\nimport { DraggableTabs } from \"../../../@shared/DraggableTabs/index.js\";\nimport \"../../../../node_modules/@firebase/analytics/dist/esm/index.esm2017.js\";\nimport \"../../../../node_modules/firebase/app/dist/esm/index.esm.js\";\nimport \"../../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport \"../../../../config/index.js\";\nimport \"../../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport \"../../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../../apis/preuser/PreuserApiService.js\";\nimport \"framer\";\nimport \"../../../../node_modules/@29cm/snowplow/dist/esm/core/snowplow.js\";\nimport \"../../../../node_modules/swr/mutation/dist/index.js\";\nimport \"../../../../hooks/stores/content/content.store.js\";\nimport \"../../../../hooks/stores/dialog/dialog.store.js\";\nimport \"../../../../hooks/stores/global-layout/global-layout.store.js\";\nimport \"../../../../hooks/stores/toast/toast.store.js\";\nimport { useTheme } from \"../../../../hooks/useTheme.js\";\nimport { useBreakpoint } from \"../../../../hooks/useBreakpoint.js\";\nimport \"../../../../hooks/stores/bottom-sheet/bottom-sheet.store.js\";\nimport \"react-dom\";\nimport \"../../Dialog/Dialog.module.css.js\";\nimport \"framer-motion\";\nimport \"../../../../containers/DialogContainer/DialogContainer.emitter.js\";\nimport \"../../../../utils/redirectLogin.js\";\nimport \"../../../../utils/event-properties/source.js\";\nimport { Breakpoint } from \"../../../../styles/breakpoint.js\";\nimport { useTagsContext } from \"./Root.hooks.js\";\nconst LIST_GAP = 6;\nconst SKELETONS_PER_PENDING = 3;\nconst List = ({\n  style,\n  children,\n  list\n}, ref) => {\n  const breakpoint = useBreakpoint();\n  const theme = useTheme();\n  const {\n    loading\n  } = useTagsContext();\n  const pending = loading && list.length === 0;\n  const shouldRenderGradient = !pending && breakpoint !== Breakpoint.MOBILE;\n  return /* @__PURE__ */ jsxs(\"div\", { style: {\n    ...containerStyle,\n    ...style\n  }, children: [\n    /* @__PURE__ */ jsxs(DraggableTabs.List, { ref, gap: LIST_GAP, children: [\n      list.map((item, index) => (\n        // eslint-disable-next-line react/no-array-index-key\n        /* @__PURE__ */ jsx(Fragment, { children: children({\n          index,\n          pending,\n          item\n        }) }, index)\n      )),\n      pending ? Array.from({\n        length: SKELETONS_PER_PENDING\n      }).map((_, index) => (\n        // eslint-disable-next-line react/no-array-index-key\n        /* @__PURE__ */ jsx(Fragment, { children: children({\n          index,\n          pending\n        }) }, index)\n      )) : null\n    ] }),\n    shouldRenderGradient ? /* @__PURE__ */ jsx(DraggableTabs.Gradient, { theme }) : null\n  ] });\n};\nconst Default = forwardRef(List);\nconst containerStyle = {\n  position: \"relative\",\n  width: \"100%\",\n  marginBottom: 16,\n  overflow: \"hidden\"\n};\nexport {\n  Default as List\n};\n","import { tv as g } from \"../../packages/configs/tailwind-variants/index.js\";\nconst t = g({\n  base: \"focus-visible:outline focus-visible:outline-1 focus-visible:outline-offset-1 focus-visible:outline-interactive\"\n}), a = g({\n  slots: {\n    base: [t(), \"inline-flex cursor-pointer items-center justify-center rounded-full px-14 py-6\"],\n    label: \"text-m-medium\"\n  },\n  variants: {\n    active: {\n      true: {},\n      false: {}\n    },\n    theme: {\n      light: {\n        label: \"hover:text-primary-hover  active:text-primary-pressed\"\n      },\n      dark: {}\n    },\n    disabled: {\n      true: {\n        base: \"cursor-not-allowed bg-disabled [&_*]:cursor-not-allowed\",\n        label: \"text-disabled hover:text-disabled active:text-disabled\",\n        icon: \"text-disabled\"\n      }\n    }\n  },\n  compoundVariants: [\n    {\n      active: true,\n      disabled: false,\n      theme: \"light\",\n      class: {\n        base: \"pressed:bg-primary-pressed bg-primary text-on-color hover:bg-primary-hover\",\n        label: \"text-on-color hover:text-on-white-hover active:text-on-white-pressed\"\n      }\n    },\n    {\n      active: true,\n      disabled: false,\n      theme: \"dark\",\n      class: {\n        base: \"pressed:bg-primary-pressed bg-[#3d3d3d] text-on-color\",\n        label: \"text-on-color\"\n      }\n    },\n    {\n      active: false,\n      disabled: false,\n      theme: \"light\",\n      class: {\n        base: \"bg-tertiary text-secondary\",\n        label: \"text-secondary hover:text-secondary-hover active:text-secondary-pressed\"\n      }\n    },\n    {\n      active: false,\n      disabled: false,\n      theme: \"dark\",\n      class: {\n        base: \"bg-[#19191a] text-secondary-dark\",\n        label: \"text-secondary-dark\"\n      }\n    }\n  ],\n  defaultVariants: {\n    disabled: false\n  }\n});\nexport {\n  t as baseFocusVisible,\n  a as baseTag\n};\n","import { cn as a } from \"../../packages/configs/tailwind-variants/index.js\";\nimport { useCallback, useMemo } from \"react\";\nconst C = (o) => {\n  const { disabled: s, onClick: e, className: a$1, bgClass: c } = o, l = useCallback(() => {\n    !s && e && e();\n  }, [s, e]), n = useMemo(() => a(s ? \"\" : c, a$1), [s, c]);\n  return {\n    handleClick: l,\n    className: n\n  };\n};\nexport {\n  C as useTag\n};\n","import { j as m } from \"../../../node_modules/.pnpm/react@18.3.0/node_modules/react/jsx-runtime.js\";\nimport { tv as g } from \"../../../packages/configs/tailwind-variants/index.js\";\nimport { forwardRef } from \"react\";\nimport { baseTag as a } from \"../Tag.styles.js\";\nimport { useTag as C } from \"../useTag.js\";\nconst N = g({\n  extend: a\n}), d = forwardRef(\n  ({ className: t, active: e = false, theme: a2 = \"light\", disabled: s, onClick: r, children: m$1, bgClass: l, ...c }, n) => {\n    const { base: g2, label: i } = N({ active: e, theme: a2, disabled: s }), { handleClick: p, className: f } = C({ disabled: s, onClick: r, bgClass: l, className: t });\n    return /* @__PURE__ */ m.jsx(\n      \"button\",\n      {\n        ...c,\n        ref: n,\n        className: g2({ className: f }),\n        onClick: p,\n        disabled: s,\n        children: /* @__PURE__ */ m.jsx(\"span\", { className: i(), children: m$1 })\n      }\n    );\n  }\n);\nexport {\n  d as ToggleTag\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { forwardRef } from \"react\";\nimport { Skeleton } from \"../Skeleton/Skeleton.js\";\nconst TagSkeleton = forwardRef(({\n  theme = \"light\"\n}, ref) => {\n  return /* @__PURE__ */ jsx(Skeleton, { ref, style: {\n    width: 73,\n    height: \"29px\",\n    borderRadius: 20,\n    ...baseStyleByTheme[theme]\n  } });\n});\nconst baseStyleByTheme = {\n  light: {\n    backgroundColor: \"#dee2e6\"\n  },\n  dark: {\n    backgroundColor: \"#27272a\"\n  }\n};\nexport {\n  TagSkeleton\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { forwardRef } from \"react\";\nimport { DraggableTabs } from \"../../../@shared/DraggableTabs/index.js\";\nimport \"../../../../node_modules/@firebase/analytics/dist/esm/index.esm2017.js\";\nimport \"../../../../node_modules/firebase/app/dist/esm/index.esm.js\";\nimport \"../../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport \"../../../../config/index.js\";\nimport \"../../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport \"../../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../../apis/preuser/PreuserApiService.js\";\nimport \"framer\";\nimport \"../../../../node_modules/@29cm/snowplow/dist/esm/core/snowplow.js\";\nimport \"../../../../node_modules/swr/mutation/dist/index.js\";\nimport \"../../../../hooks/stores/content/content.store.js\";\nimport \"../../../../hooks/stores/dialog/dialog.store.js\";\nimport \"../../../../hooks/stores/global-layout/global-layout.store.js\";\nimport \"../../../../hooks/stores/toast/toast.store.js\";\nimport { useTheme } from \"../../../../hooks/useTheme.js\";\nimport \"../../../@shared/providers/BreakpointProvider/BreakpointProvider.js\";\nimport \"../../../../hooks/stores/bottom-sheet/bottom-sheet.store.js\";\nimport \"react-dom\";\nimport \"../../Dialog/Dialog.module.css.js\";\nimport \"framer-motion\";\nimport \"../../../../containers/DialogContainer/DialogContainer.emitter.js\";\nimport \"../../../../utils/redirectLogin.js\";\nimport { ToggleTag as d } from \"../../../../node_modules/@29cm/ruler-ui/dist/components/Tag/ToggleTag/ToggleTag.js\";\nimport \"../../../../utils/event-properties/source.js\";\nimport { useTagsContext } from \"./Root.hooks.js\";\nimport { TagSkeleton } from \"../../../@shared/TagSkeleton/TagSkeleton.js\";\nconst Item = forwardRef(({\n  children,\n  value,\n  onClick\n}, ref) => {\n  const {\n    loading\n  } = useTagsContext();\n  const theme = useTheme();\n  if (loading) {\n    return /* @__PURE__ */ jsx(TagSkeleton, { theme });\n  }\n  return /* @__PURE__ */ jsx(DraggableTabs.Trigger, { ref, value, onClick, children: (active) => /* @__PURE__ */ jsx(d, { active, theme, className: \"whitespace-nowrap\", children }) });\n});\nexport {\n  Item\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { Fragment } from \"react\";\nimport { useTagsContext } from \"./Root.hooks.js\";\nconst Panels = ({\n  children,\n  list\n}) => {\n  const {\n    loading\n  } = useTagsContext();\n  const pending = loading && list.length === 0;\n  if (pending) {\n    return children({\n      index: 0,\n      pending\n    });\n  }\n  return list.map((item, index) => (\n    // eslint-disable-next-line react/no-array-index-key\n    /* @__PURE__ */ jsx(Fragment, { children: children({\n      index,\n      pending,\n      item\n    }) }, index)\n  ));\n};\nexport {\n  Panels\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { DraggableTabs } from \"../../../@shared/DraggableTabs/index.js\";\nimport { useTagsContext } from \"./Root.hooks.js\";\nconst Panel = ({\n  children,\n  value\n}) => {\n  const {\n    loading\n  } = useTagsContext();\n  if (loading) {\n    return children;\n  }\n  return /* @__PURE__ */ jsx(DraggableTabs.Panel, { value, children });\n};\nexport {\n  Panel\n};\n","import { Root } from \"./Root.js\";\nimport { List as Default } from \"./List.js\";\nimport { Item } from \"./Item.js\";\nimport { Panels } from \"./Panels.js\";\nimport { Panel } from \"./Panel.js\";\nconst Tags = {\n  Root,\n  List: Default,\n  Item,\n  Panels,\n  Panel\n};\nexport {\n  Tags\n};\n","import { useAnalytics } from \"../analytics/useAnalytics.js\";\nimport { createContentEventProperties } from \"../../utils/event-properties/content.js\";\nimport \"../../utils/event-properties/source.js\";\nimport \"framer\";\nimport \"react\";\nconst useTrackViewComponentEvent = () => {\n  const {\n    trackAmplitude,\n    trackFirebase\n  } = useAnalytics();\n  const trackViewComponentEvent = (component, extra = {}) => {\n    const properties = {\n      ...createContentEventProperties(),\n      component,\n      ...extra\n    };\n    trackAmplitude(\"view_component_content\", properties);\n    trackFirebase(\"view_component_content\", properties);\n  };\n  return {\n    trackViewComponentEvent\n  };\n};\nexport {\n  useTrackViewComponentEvent\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { createContext } from \"react\";\nimport { useTrackViewEvent } from \"./EventTrackingProvider.hooks.js\";\nconst EventTrackingContext = createContext({\n  componentId: \"\"\n});\nconst EventTrackingProvider = ({\n  children,\n  componentId\n}) => {\n  const ref = useTrackViewEvent(componentId);\n  return /* @__PURE__ */ jsx(EventTrackingContext.Provider, { value: {\n    componentId\n  }, children: /* @__PURE__ */ jsx(\"div\", { ref, style: {\n    width: \"100%\"\n  }, children }) });\n};\nexport {\n  EventTrackingContext,\n  EventTrackingProvider\n};\n","import { useAnalytics } from \"../analytics/useAnalytics.js\";\nimport { createContentEventProperties } from \"../../utils/event-properties/content.js\";\nimport \"../../utils/event-properties/source.js\";\nimport \"framer\";\nimport \"react\";\nconst useTrackClickComponentEvent = () => {\n  const {\n    trackAmplitude,\n    trackFirebase\n  } = useAnalytics();\n  const trackClickComponentEvent = (component, extra = {}) => {\n    const properties = {\n      ...createContentEventProperties(),\n      component,\n      ...extra\n    };\n    trackAmplitude(\"click_component_content\", properties);\n    trackFirebase(\"click_component_content\", properties);\n  };\n  return {\n    trackClickComponentEvent\n  };\n};\nexport {\n  useTrackClickComponentEvent\n};\n","import { useTrackSnowplowEvent } from \"../snowplow/useTrackSnowplowEvent.js\";\nconst useTrackClickTagContentEvent = () => {\n  const trackSnowplowEvent = useTrackSnowplowEvent();\n  const trackClickTagContentEvent = (component, tagProps) => {\n    trackSnowplowEvent(\"click_tag_content\", {\n      section_name: component,\n      // NOTE: (김홍동) 컴포넌트의 순서를 알 수 없기 때문에 현재는 1로 대응(데이터 팀과 언라인 완료)\n      position: 1,\n      ...tagProps\n    });\n  };\n  const trackClickButtonEvent = (componentId, layoutPosition, label = \"\") => {\n    trackSnowplowEvent(\"click_button\", {\n      // TODO(임규민): section_name, position 프로퍼티에 할당한 약속된 임의 값 수정\n      section_name: componentId,\n      section_title: componentId,\n      position: -1,\n      layout_position: layoutPosition,\n      button_id: \"tag\",\n      button_name: label\n    });\n  };\n  return {\n    trackClickTagContentEvent,\n    trackClickButtonEvent\n  };\n};\nexport {\n  useTrackClickTagContentEvent\n};\n","import { useContext, useRef, useEffect } from \"react\";\nimport { useInView } from \"framer-motion\";\nimport { useTrackViewComponentEvent } from \"../../../../hooks/events/useTrackViewComponentEvent.js\";\nimport { EventTrackingContext } from \"./EventTrackingProvider.js\";\nimport { useTrackClickComponentEvent } from \"../../../../hooks/events/useTrackClickComponentEvent.js\";\nimport { definedOnly } from \"../../../../utils/definedOnly.js\";\nimport { map } from \"../../../../utils/map.js\";\nimport { useTrackClickTagContentEvent } from \"../../../../hooks/events/useTrackClickTagContentEvent.js\";\nconst useEventTrackingContext = () => {\n  const context = useContext(EventTrackingContext);\n  return context;\n};\nconst FALLBACK_COMPONENT_ID = \"unknown_section\";\nconst useComponentId = () => {\n  const {\n    componentId\n  } = useEventTrackingContext();\n  return componentId || FALLBACK_COMPONENT_ID;\n};\nconst useTrackEvent = () => {\n  const componentId = useComponentId();\n  const {\n    trackClickComponentEvent\n  } = useTrackClickComponentEvent();\n  const {\n    trackClickTagContentEvent\n  } = useTrackClickTagContentEvent();\n  const trackEvent = (extra) => {\n    const properties = map(definedOnly(extra), String);\n    trackClickComponentEvent(componentId, properties);\n  };\n  const trackClickTagSnowplowEvent = (tagProps) => {\n    trackClickTagContentEvent(componentId, tagProps);\n  };\n  return {\n    trackEvent,\n    trackClickTagSnowplowEvent\n  };\n};\nconst useTrackViewEvent = (componentId) => {\n  const {\n    trackViewComponentEvent\n  } = useTrackViewComponentEvent();\n  const ref = useRef(null);\n  const isInView = useInView(ref, {\n    amount: 0.5\n  });\n  useEffect(() => {\n    if (!isInView) {\n      return;\n    }\n    trackViewComponentEvent(componentId);\n  }, [componentId, isInView]);\n  return ref;\n};\nexport {\n  FALLBACK_COMPONENT_ID,\n  useComponentId,\n  useEventTrackingContext,\n  useTrackEvent,\n  useTrackViewEvent\n};\n","import { create } from \"../../../node_modules/zustand/esm/index.js\";\nimport { subscribeWithSelector } from \"../../../node_modules/zustand/esm/middleware.js\";\nconst initialState = {\n  rootModules: {}\n};\nconst useModuleStore = create(subscribeWithSelector((set) => ({\n  ...initialState,\n  dispatchSetRootModule: (key, module) => set((prev) => ({\n    rootModules: {\n      ...prev.rootModules,\n      [key]: module\n    }\n  }))\n})));\nexport {\n  useModuleStore\n};\n","import { useEffect } from \"react\";\nimport { useComponentId } from \"../systems/curations/EventTrackingProvider/EventTrackingProvider.hooks.js\";\nimport \"../systems/curations/EventTrackingProvider/EventTrackingProvider.js\";\nimport { useTrackSnowplowEvent } from \"../../hooks/snowplow/useTrackSnowplowEvent.js\";\nimport { useModuleStore } from \"./module-store/module.store.js\";\nimport { shallow as shallow$1 } from \"../../node_modules/zustand/esm/shallow.js\";\nimport { useSegment } from \"../@shared/providers/SegmentProvider/SegmentProvider.js\";\nconst useRootComponentId = (query) => {\n  const componentId = useComponentId();\n  const root = useModuleStore((state) => state.rootModules[(query == null ? void 0 : query.rootOutput) ?? \"\"], shallow$1);\n  return (root == null ? void 0 : root.componentId) || componentId;\n};\nconst useSetRootModule = (query, output) => {\n  const componentId = useComponentId();\n  const segment = useSegment();\n  const dispatchSetRootModule = useModuleStore((state) => state.dispatchSetRootModule);\n  const {\n    isRoot = false\n  } = query ?? {};\n  useEffect(() => {\n    if (!isRoot) {\n      return;\n    }\n    if (!output) {\n      return;\n    }\n    dispatchSetRootModule(output, {\n      componentId,\n      segment: segment.segments\n    });\n  }, [isRoot, output, componentId, segment]);\n};\nconst useTrackClickButtonEvent = (query) => {\n  const trackSnowplowEvent = useTrackSnowplowEvent();\n  const componentId = useRootComponentId(query);\n  const trackClickButtonEvent = ({\n    type,\n    layoutPosition = -1,\n    name = \"\"\n  }) => {\n    trackSnowplowEvent(\"click_button\", {\n      // TODO(임규민): section_name, position 프로퍼티에 할당한 약속된 임의 값 수정\n      section_name: componentId,\n      section_title: componentId,\n      position: -1,\n      layout_position: layoutPosition,\n      button_id: type,\n      button_name: name\n    });\n  };\n  return trackClickButtonEvent;\n};\nconst useTrackImpressionContentEvent = () => {\n  const trackSnowplowEvent = useTrackSnowplowEvent();\n  const componentId = useComponentId();\n  const trackImpressionContentEvent = () => {\n    trackSnowplowEvent(\"impression_content\", {\n      // TODO(임규민): section_name, position, layout_position 프로퍼티에 할당한 약속된 임의 값 수정\n      section_name: componentId,\n      section_title: componentId,\n      position: -1,\n      layout_position: -1\n    });\n  };\n  return trackImpressionContentEvent;\n};\nexport {\n  useRootComponentId,\n  useSetRootModule,\n  useTrackClickButtonEvent,\n  useTrackImpressionContentEvent\n};\n","import { useRef, useCallback } from \"react\";\nimport { useUpdatedRef } from \"./useUpdatedRef.js\";\nimport { useWindowEventListener } from \"./useWindowEventListener.js\";\nconst useInViewport = (callback) => {\n  const ref = useRef(null);\n  const prevIsInViewport = useRef(false);\n  const updatedCallback = useUpdatedRef(callback);\n  const handleScroll = useCallback(() => {\n    if (ref.current === null) {\n      return;\n    }\n    const isInViewport = getIsInViewport(ref.current);\n    if (isInViewport !== prevIsInViewport.current) {\n      updatedCallback.current(isInViewport);\n    }\n    prevIsInViewport.current = isInViewport;\n  }, []);\n  useWindowEventListener(\"scroll\", handleScroll);\n  return ref;\n};\nconst getIsInViewport = (element) => {\n  const {\n    offsetHeight\n  } = element;\n  const top = getAbsoluteOffsetTop(element);\n  const bottom = top + offsetHeight;\n  const isElementInViewport = window.scrollY <= top && bottom <= window.scrollY + window.innerHeight;\n  const isViewportInElement = top <= window.scrollY && window.scrollY + window.innerHeight <= bottom;\n  return isViewportInElement || isElementInViewport;\n};\nconst getAbsoluteOffsetTop = (element) => {\n  return Math.round(element.getBoundingClientRect().top + window.scrollY);\n};\nexport {\n  useInViewport\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { createContext, forwardRef, useRef } from \"react\";\nimport { useInViewport } from \"../../../hooks/useInViewport.js\";\nimport \"../../../hooks/stores/content/content.store.js\";\nimport \"../../../utils/event-properties/source.js\";\nimport \"framer\";\nimport { mergeRefs } from \"../../../utils/react/mergeRefs.js\";\nconst EventTriggerContext = createContext({\n  isViewportEntered: () => false,\n  canTriggerFallbackImpression: () => false,\n  setCanTriggerFallbackImpression: () => {\n  },\n  types: [],\n  onImpression: void 0\n});\nconst Root = forwardRef(({\n  children,\n  className,\n  style,\n  types,\n  onImpression\n}, ref) => {\n  const isViewportEntered = useRef(false);\n  const canTriggerFallbackImpression = useRef(true);\n  const observeViewport = types.includes(\"impression\");\n  const handleViewportEnter = () => {\n    if (canTriggerFallbackImpression.current) {\n      onImpression == null ? void 0 : onImpression();\n    }\n    isViewportEntered.current = true;\n    canTriggerFallbackImpression.current = false;\n  };\n  const handleViewportLeave = () => {\n    isViewportEntered.current = false;\n    canTriggerFallbackImpression.current = true;\n  };\n  const containerRef = useInViewport((isInViewport) => {\n    if (!observeViewport) {\n      return;\n    }\n    if (isInViewport) {\n      handleViewportEnter();\n    } else {\n      handleViewportLeave();\n    }\n  });\n  return /* @__PURE__ */ jsx(EventTriggerContext.Provider, { value: {\n    isViewportEntered: () => isViewportEntered.current,\n    canTriggerFallbackImpression: () => canTriggerFallbackImpression.current,\n    setCanTriggerFallbackImpression: (next) => canTriggerFallbackImpression.current = next,\n    types,\n    onImpression\n  }, children: /* @__PURE__ */ jsx(\"div\", { ref: mergeRefs([containerRef, ref]), className, style: {\n    width: \"100%\",\n    ...style\n  }, children }) });\n});\nexport {\n  EventTriggerContext,\n  Root\n};\n","import { useContext } from \"react\";\nimport { EventTriggerContext } from \"./Root.js\";\nconst useEventTriggerContext = () => useContext(EventTriggerContext);\nexport {\n  useEventTriggerContext\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { forwardRef } from \"react\";\nimport { useEventTriggerContext } from \"./Root.hooks.js\";\nconst Target = forwardRef(({\n  children,\n  onClick,\n  ...rest\n}, ref) => {\n  const {\n    isViewportEntered,\n    canTriggerFallbackImpression,\n    setCanTriggerFallbackImpression,\n    types,\n    onImpression\n  } = useEventTriggerContext();\n  const handleClick = (e) => {\n    onClick == null ? void 0 : onClick(e);\n    const shouldTriggerFallbackImpression = types.includes(\"impression\") && !isViewportEntered() && canTriggerFallbackImpression();\n    if (shouldTriggerFallbackImpression) {\n      onImpression == null ? void 0 : onImpression();\n      setCanTriggerFallbackImpression(false);\n    }\n  };\n  return /* @__PURE__ */ jsx(\"div\", { ref, ...rest, onClick: handleClick, children });\n});\nexport {\n  Target\n};\n","import { Root } from \"./Root.js\";\nimport { Target } from \"./Target.js\";\nconst EventTrigger = {\n  Root,\n  Target\n};\nexport {\n  EventTrigger\n};\n","const getPaddingStyle = (value) => {\n  return value.isMixed ? `${value.paddingTop}px ${value.paddingRight}px ${value.paddingBottom}px ${value.paddingLeft}px` : `${value.padding}px`;\n};\nconst getPadding = (value) => {\n  return {\n    top: value.isMixed ? value.paddingTop : value.padding,\n    right: value.isMixed ? value.paddingRight : value.padding,\n    bottom: value.isMixed ? value.paddingBottom : value.padding,\n    left: value.isMixed ? value.paddingLeft : value.padding\n  };\n};\nexport {\n  getPadding,\n  getPaddingStyle\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { useMemo, useEffect } from \"react\";\nimport { useQueryStore } from \"../../query-store/query.store.js\";\nimport { Tags } from \"../../../systems/curations/Tags/index.js\";\nimport { useTrackClickButtonEvent, useSetRootModule } from \"../../hooks.js\";\nimport { EventTrigger } from \"../../../@shared/EventTrigger/index.js\";\nimport { getPadding } from \"../../../../utils/spacing.js\";\nimport { useSegment } from \"../../../@shared/providers/SegmentProvider/SegmentProvider.js\";\nconst TagsElement = ({\n  loading = false,\n  currentIndex = 0,\n  inputs: _inputs,\n  output,\n  layout\n}) => {\n  const dispatchSetQuery = useQueryStore((state) => state.dispatchSetQuery);\n  const inputs = useMemo(() => attachAdditionalQuery(_inputs, output), [_inputs, output]);\n  const currentInput = inputs[currentIndex];\n  const {\n    isVisible\n  } = useSegment();\n  const trackClickButtonEvent = useTrackClickButtonEvent(currentInput == null ? void 0 : currentInput.query);\n  const handleClick = (index, name = \"\") => () => {\n    trackClickButtonEvent({\n      type: \"tag\",\n      layoutPosition: index + 1,\n      name\n    });\n  };\n  const handleValueChange = (value) => {\n    if (!output) {\n      return;\n    }\n    const index = Number(value);\n    const input = inputs[index];\n    dispatchSetQuery(output, input.query);\n  };\n  useEffect(() => {\n    window == null ? void 0 : window.dispatchEvent(new CustomEvent(\"layout-done\"));\n    if (!currentInput) {\n      return;\n    }\n    if (!output) {\n      return;\n    }\n    dispatchSetQuery(output, currentInput.query);\n  }, [output, currentInput]);\n  useSetRootModule(currentInput == null ? void 0 : currentInput.query, output);\n  const padding = getPadding(layout);\n  if (!loading && inputs.length === 0 || !isVisible) {\n    window == null ? void 0 : window.dispatchEvent(new CustomEvent(\"layout-done\"));\n    return null;\n  }\n  return /* @__PURE__ */ jsx(Tags.Root, { loading, defaultValue: 0, value: currentIndex, dragPaddingLeft: padding.left, dragPaddingRight: padding.right, onValueChange: handleValueChange, children: /* @__PURE__ */ jsx(Tags.List, { style: {\n    margin: 0,\n    paddingTop: padding.top,\n    paddingBottom: padding.bottom,\n    lineHeight: 0\n  }, list: inputs, children: ({\n    item,\n    index\n  }) => /* @__PURE__ */ jsx(EventTrigger.Target, { onClick: handleClick(index, item == null ? void 0 : item.label), children: /* @__PURE__ */ jsx(Tags.Item, { value: index, children: item == null ? void 0 : item.label }) }) }) });\n};\nconst attachAdditionalQuery = (values, output) => {\n  return values.map((value, index) => ({\n    ...value,\n    query: {\n      ...value.query,\n      facetName: value.label,\n      keys: [...value.query.keys ?? [], `tags-${index}`],\n      isRoot: value.query.rootOutput === void 0,\n      rootOutput: value.query.rootOutput || output\n    }\n  }));\n};\nexport {\n  TagsElement\n};\n","import { APIService } from \"../APIService.js\";\nimport { throwFailError } from \"../@middlewares/throwFailError.js\";\nimport { env } from \"../../config/index.js\";\nclass BestApiService extends APIService {\n  constructor() {\n    super();\n    this.setBaseUrl(env.api.search);\n    this.setMiddleware(throwFailError);\n  }\n  async getRankedProducts(payload) {\n    return this.post(`/api/v5/best`, payload).then((data) => ({\n      products: formatBestProducts(data.data.products),\n      totalCount: data.data.totalCount\n    }));\n  }\n  async getPLPFacetGroup(payload) {\n    return this.post(`/api/v5/plp/facet-group`, payload);\n  }\n}\nconst bestApi = new BestApiService();\nconst formatBestProducts = (products) => products.map((product) => {\n  var _a;\n  return {\n    ...product,\n    frontBrand: {\n      frontBrandId: product.frontBrandNo,\n      nameKor: product.frontBrandNameKor,\n      nameEng: product.frontBrandNameEng\n    },\n    productId: product.itemNo,\n    productName: product.itemName,\n    isCoupon: product.saleInfoV2.isCoupon,\n    heartOn: true,\n    frontCategories: (_a = product.frontCategoryInfo) == null ? void 0 : _a.map((category) => ({\n      largeCategoryCode: category.categoryLargeCode,\n      largeCategoryName: category.categoryLargeName,\n      mediumCategoryCode: category.categoryMediumCode,\n      mediumCategoryName: category.categoryMediumName,\n      smallCategoryCode: category.categorySmallCode,\n      smallCategoryName: category.categorySmallName\n    }))\n  };\n});\nexport {\n  bestApi\n};\n","import { env } from \"../../config/index.js\";\nimport { throwFailError } from \"../@middlewares/throwFailError.js\";\nimport { APIService } from \"../APIService.js\";\nclass BrandCurationApiService extends APIService {\n  constructor() {\n    super();\n    this.setMiddleware(throwFailError);\n  }\n  async getFavoriteBrands({\n    size,\n    brandGroupIds\n  }) {\n    return this.get(`${env.api.content}/api/v4/framers/proxy/content-api/api/v5/brand-curations/favorite`, {\n      size,\n      brandGroupIds\n    });\n  }\n}\nconst brandCurationApi = new BrandCurationApiService();\nexport {\n  brandCurationApi\n};\n","import { throwFailError } from \"../@middlewares/throwFailError.js\";\nimport { APIService } from \"../APIService.js\";\nimport { env } from \"../../config/index.js\";\nclass BrandSaleApiService extends APIService {\n  constructor() {\n    super();\n    this.setBaseUrl(env.api.content);\n    this.setMiddleware(throwFailError);\n  }\n  // NOTE: (김홍동) 구 이굿입점회(BrandTimeSale) 신 이굿입점회(CouponCollection)에서 사용되는 api로 brandSaleList를 받아옵니다.\n  // brandSaleList은 그룹별로 어떤 brandSaleId이 있는지 확인할 수 있습니다. 이굿입점회에서는 그룹별 시작 날짜를 가져와 탭을 그리는데 사용됩니다.\n  getBrandSaleGroup(brandSaleGroupId) {\n    return this.get(`/api/v4/framers/proxy/content-api/api/v4/brand-sale-groups/${brandSaleGroupId}`);\n  }\n  // NOTE: (김홍동) 구 이굿입점회(BrandTimeSale) 신 이굿입점회(CouponCollection)에서 사용되는 api로 brandSaleCouponList를 받아옵니다.\n  // brandSaleCouponList에서는 쿠폰의 정보, 브랜드의 정보를 알 수 있습니다.\n  getBrandSales(brandSaleId) {\n    return this.get(`/api/v4/framers/proxy/content-api/api/v4/brand-sales/${brandSaleId}`);\n  }\n  // NOTE: (김홍동) 구 이굿입점회(CouponCollection)에서 사용되는 api로 상품리스트를 받아옵니다. 페이지네이션을 제공하지 않습니다.\n  getBrandSaleCouponDetail(brandSaleCouponId, size) {\n    return this.get(`/api/v4/framers/proxy/content-api/api/v4/brand-sale-coupons/${brandSaleCouponId}`, {\n      size\n    });\n  }\n  // NOTE: (김홍동) 신 이굿입점회(CouponCollection)에서 사용되는 api로 getBrandSales에서 각 브랜드의 couponCollectionId를 바탕으로 상품리스트를 받아옵니다. 페이지네이션을 제공합니다.\n  async getCouponCollectionProducts(couponCollectionId, params) {\n    return this.get(`/api/v4/framers/proxy/content-api/api/v5/coupon-collections/${couponCollectionId}/products`, params).then((res) => {\n      return {\n        ...res.data,\n        resultList: formatProducts(res.data.resultList)\n      };\n    });\n  }\n}\nconst brandSaleApi = new BrandSaleApiService();\nconst formatProducts = (products) => products.map((product) => {\n  var _a;\n  return {\n    ...product,\n    frontBrand: {\n      frontBrandId: product.frontBrand.id,\n      nameKor: product.frontBrand.nameKor,\n      nameEng: product.frontBrand.nameEng\n    },\n    isCoupon: product.saleInfo.coupon,\n    isFreeShipping: product.freeShipping,\n    isNew: product.newProperty,\n    isSoldOut: product.soldOut,\n    frontCategories: (_a = product.frontCategories) == null ? void 0 : _a.map((category) => ({\n      largeCategoryCode: category.largeCode ?? 0,\n      largeCategoryName: category.largeName ?? \"\",\n      mediumCategoryCode: category.mediumCode ?? 0,\n      mediumCategoryName: category.mediumName ?? \"\",\n      smallCategoryCode: category.smallCode ?? 0,\n      smallCategoryName: category.smallName ?? \"\"\n    }))\n  };\n});\nexport {\n  brandSaleApi\n};\n","import { APIService } from \"../APIService.js\";\nimport { throwFailError } from \"../@middlewares/throwFailError.js\";\nimport { environments, env } from \"../../config/index.js\";\nconst DEFAULT_COLLECTION_PRODUCTS_SIZE = 20;\nclass CollectionApiService extends APIService {\n  constructor() {\n    super();\n    this.setMiddleware(throwFailError);\n  }\n  async getCollection(collectionId, needShuffle, isDevMode) {\n    const baseUrl = isDevMode ? environments.development.api.content : env.api.content;\n    return this.get(`${baseUrl}/api/v4/framers/collections/${collectionId}/product-group-preview?productShuffleEnabled=${String(needShuffle)}`);\n  }\n  async getCollections(collectionIds) {\n    return this.get(`${env.api.content}/api/v4/framers/proxy/content-api/api/v4/collections`, {\n      collectionIds: collectionIds.join(\",\")\n    });\n  }\n  async getCollectionProducts({\n    collectionId,\n    productGroupId,\n    sort,\n    isDevMode\n  }) {\n    const baseUrl = isDevMode ? environments.development.api.content : env.api.content;\n    return this.get(`${baseUrl}/api/v4/framers/proxy/content-api/api/v5/keyword-collections/${collectionId}/product-groups/${productGroupId}/products`, {\n      sort,\n      page: 0,\n      size: DEFAULT_COLLECTION_PRODUCTS_SIZE\n    }).then((data) => formatProducts(data.data.resultList));\n  }\n}\nconst formatProducts = (products) => products.map((product) => {\n  var _a;\n  return {\n    frontBrand: {\n      frontBrandId: product.frontBrand.id,\n      nameKor: product.frontBrand.nameKor,\n      nameEng: product.frontBrand.nameEng\n    },\n    productId: product.productId,\n    productName: product.productName,\n    subjectDescriptions: product.subjectDescriptions,\n    imageUrl: product.imageUrl,\n    consumerPrice: product.consumerPrice,\n    lastSalePrice: product.lastSalePrice,\n    lastSalePercent: product.lastSalePercent,\n    heartCount: product.heartCount,\n    heartOn: product.heartOn,\n    reviewCount: product.reviewCount,\n    reviewAveragePoint: product.reviewAveragePoint,\n    isCoupon: product.saleInfo.coupon,\n    isFreeShipping: product.freeShipping,\n    isNew: product.newProperty,\n    isSoldOut: product.soldOut,\n    frontCategories: (_a = product.frontCategories) == null ? void 0 : _a.map((category) => ({\n      largeCategoryCode: category.largeCode ?? 0,\n      largeCategoryName: category.largeName ?? \"\",\n      mediumCategoryCode: category.mediumCode ?? 0,\n      mediumCategoryName: category.mediumName ?? \"\",\n      smallCategoryCode: category.smallCode ?? 0,\n      smallCategoryName: category.smallName ?? \"\"\n    }))\n  };\n});\nconst collectionApi = new CollectionApiService();\nexport {\n  collectionApi\n};\n","import { APIService } from \"../APIService.js\";\nimport { throwFailError } from \"../@middlewares/throwFailError.js\";\nimport { env } from \"../../config/index.js\";\nclass KeywordCollectionApiService extends APIService {\n  constructor() {\n    super();\n    this.setMiddleware(throwFailError);\n  }\n  async getKeywordCollection(collectionId) {\n    return this.get(`${env.api.content}/api/v4/framers/proxy/content-api/api/v5/keyword-collections/${collectionId}`);\n  }\n  async getCollectionProducts({\n    collectionId,\n    productGroupId,\n    sort,\n    page,\n    size\n  }) {\n    return this.get(`${env.api.content}/api/v4/framers/proxy/content-api/api/v5/keyword-collections/${collectionId}/product-groups/${productGroupId}/products`, {\n      sort,\n      page,\n      size\n    }).then((data) => ({\n      ...data.data,\n      resultList: data.data.resultList.map((product) => {\n        var _a;\n        return {\n          frontBrand: {\n            frontBrandId: product.frontBrand.id,\n            nameKor: product.frontBrand.nameKor,\n            nameEng: product.frontBrand.nameEng\n          },\n          productId: product.productId,\n          productName: product.productName,\n          subjectDescriptions: product.subjectDescriptions,\n          imageUrl: product.imageUrl,\n          consumerPrice: product.consumerPrice,\n          lastSalePrice: product.lastSalePrice,\n          lastSalePercent: product.lastSalePercent,\n          heartCount: product.heartCount,\n          heartOn: product.heartOn,\n          reviewCount: product.reviewCount,\n          reviewAveragePoint: product.reviewAveragePoint,\n          isCoupon: product.saleInfo.coupon,\n          isFreeShipping: product.freeShipping,\n          isNew: product.newProperty,\n          isSoldOut: product.soldOut,\n          frontCategories: (_a = product.frontCategories) == null ? void 0 : _a.map((category) => ({\n            largeCategoryCode: category.largeCode ?? 0,\n            largeCategoryName: category.largeName ?? \"\",\n            mediumCategoryCode: category.mediumCode ?? 0,\n            mediumCategoryName: category.mediumName ?? \"\",\n            smallCategoryCode: category.smallCode ?? 0,\n            smallCategoryName: category.smallName ?? \"\"\n          }))\n        };\n      })\n    }));\n  }\n}\nconst keywordCollectionApi = new KeywordCollectionApiService();\nexport {\n  keywordCollectionApi\n};\n","import { toDate } from \"./toDate.js\";\nfunction compareAsc(dateLeft, dateRight) {\n  const _dateLeft = toDate(dateLeft);\n  const _dateRight = toDate(dateRight);\n  const diff = _dateLeft.getTime() - _dateRight.getTime();\n  if (diff < 0) {\n    return -1;\n  } else if (diff > 0) {\n    return 1;\n  } else {\n    return diff;\n  }\n}\nexport {\n  compareAsc,\n  compareAsc as default\n};\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"1초 미만\",\n    other: \"{{count}}초 미만\"\n  },\n  xSeconds: {\n    one: \"1초\",\n    other: \"{{count}}초\"\n  },\n  halfAMinute: \"30초\",\n  lessThanXMinutes: {\n    one: \"1분 미만\",\n    other: \"{{count}}분 미만\"\n  },\n  xMinutes: {\n    one: \"1분\",\n    other: \"{{count}}분\"\n  },\n  aboutXHours: {\n    one: \"약 1시간\",\n    other: \"약 {{count}}시간\"\n  },\n  xHours: {\n    one: \"1시간\",\n    other: \"{{count}}시간\"\n  },\n  xDays: {\n    one: \"1일\",\n    other: \"{{count}}일\"\n  },\n  aboutXWeeks: {\n    one: \"약 1주\",\n    other: \"약 {{count}}주\"\n  },\n  xWeeks: {\n    one: \"1주\",\n    other: \"{{count}}주\"\n  },\n  aboutXMonths: {\n    one: \"약 1개월\",\n    other: \"약 {{count}}개월\"\n  },\n  xMonths: {\n    one: \"1개월\",\n    other: \"{{count}}개월\"\n  },\n  aboutXYears: {\n    one: \"약 1년\",\n    other: \"약 {{count}}년\"\n  },\n  xYears: {\n    one: \"1년\",\n    other: \"{{count}}년\"\n  },\n  overXYears: {\n    one: \"1년 이상\",\n    other: \"{{count}}년 이상\"\n  },\n  almostXYears: {\n    one: \"거의 1년\",\n    other: \"거의 {{count}}년\"\n  }\n};\nconst formatDistance = (token, count, options) => {\n  let result;\n  const tokenValue = formatDistanceLocale[token];\n  if (typeof tokenValue === \"string\") {\n    result = tokenValue;\n  } else if (count === 1) {\n    result = tokenValue.one;\n  } else {\n    result = tokenValue.other.replace(\"{{count}}\", count.toString());\n  }\n  if (options == null ? void 0 : options.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return result + \" 후\";\n    } else {\n      return result + \" 전\";\n    }\n  }\n  return result;\n};\nexport {\n  formatDistance\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\nconst dateFormats = {\n  full: \"y년 M월 d일 EEEE\",\n  long: \"y년 M월 d일\",\n  medium: \"y.MM.dd\",\n  short: \"y.MM.dd\"\n};\nconst timeFormats = {\n  full: \"a H시 mm분 ss초 zzzz\",\n  long: \"a H:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\"\n};\nconst dateTimeFormats = {\n  full: \"{{date}} {{time}}\",\n  long: \"{{date}} {{time}}\",\n  medium: \"{{date}} {{time}}\",\n  short: \"{{date}} {{time}}\"\n};\nconst formatLong = {\n  date: buildFormatLongFn({\n    formats: dateFormats,\n    defaultWidth: \"full\"\n  }),\n  time: buildFormatLongFn({\n    formats: timeFormats,\n    defaultWidth: \"full\"\n  }),\n  dateTime: buildFormatLongFn({\n    formats: dateTimeFormats,\n    defaultWidth: \"full\"\n  })\n};\nexport {\n  formatLong\n};\n","const formatRelativeLocale = {\n  lastWeek: \"'지난' eeee p\",\n  yesterday: \"'어제' p\",\n  today: \"'오늘' p\",\n  tomorrow: \"'내일' p\",\n  nextWeek: \"'다음' eeee p\",\n  other: \"P\"\n};\nconst formatRelative = (token, _date, _baseDate, _options) => formatRelativeLocale[token];\nexport {\n  formatRelative\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\nconst eraValues = {\n  narrow: [\"BC\", \"AD\"],\n  abbreviated: [\"BC\", \"AD\"],\n  wide: [\"기원전\", \"서기\"]\n};\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n  wide: [\"1분기\", \"2분기\", \"3분기\", \"4분기\"]\n};\nconst monthValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"],\n  abbreviated: [\n    \"1월\",\n    \"2월\",\n    \"3월\",\n    \"4월\",\n    \"5월\",\n    \"6월\",\n    \"7월\",\n    \"8월\",\n    \"9월\",\n    \"10월\",\n    \"11월\",\n    \"12월\"\n  ],\n  wide: [\n    \"1월\",\n    \"2월\",\n    \"3월\",\n    \"4월\",\n    \"5월\",\n    \"6월\",\n    \"7월\",\n    \"8월\",\n    \"9월\",\n    \"10월\",\n    \"11월\",\n    \"12월\"\n  ]\n};\nconst dayValues = {\n  narrow: [\"일\", \"월\", \"화\", \"수\", \"목\", \"금\", \"토\"],\n  short: [\"일\", \"월\", \"화\", \"수\", \"목\", \"금\", \"토\"],\n  abbreviated: [\"일\", \"월\", \"화\", \"수\", \"목\", \"금\", \"토\"],\n  wide: [\"일요일\", \"월요일\", \"화요일\", \"수요일\", \"목요일\", \"금요일\", \"토요일\"]\n};\nconst dayPeriodValues = {\n  narrow: {\n    am: \"오전\",\n    pm: \"오후\",\n    midnight: \"자정\",\n    noon: \"정오\",\n    morning: \"아침\",\n    afternoon: \"오후\",\n    evening: \"저녁\",\n    night: \"밤\"\n  },\n  abbreviated: {\n    am: \"오전\",\n    pm: \"오후\",\n    midnight: \"자정\",\n    noon: \"정오\",\n    morning: \"아침\",\n    afternoon: \"오후\",\n    evening: \"저녁\",\n    night: \"밤\"\n  },\n  wide: {\n    am: \"오전\",\n    pm: \"오후\",\n    midnight: \"자정\",\n    noon: \"정오\",\n    morning: \"아침\",\n    afternoon: \"오후\",\n    evening: \"저녁\",\n    night: \"밤\"\n  }\n};\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"오전\",\n    pm: \"오후\",\n    midnight: \"자정\",\n    noon: \"정오\",\n    morning: \"아침\",\n    afternoon: \"오후\",\n    evening: \"저녁\",\n    night: \"밤\"\n  },\n  abbreviated: {\n    am: \"오전\",\n    pm: \"오후\",\n    midnight: \"자정\",\n    noon: \"정오\",\n    morning: \"아침\",\n    afternoon: \"오후\",\n    evening: \"저녁\",\n    night: \"밤\"\n  },\n  wide: {\n    am: \"오전\",\n    pm: \"오후\",\n    midnight: \"자정\",\n    noon: \"정오\",\n    morning: \"아침\",\n    afternoon: \"오후\",\n    evening: \"저녁\",\n    night: \"밤\"\n  }\n};\nconst ordinalNumber = (dirtyNumber, options) => {\n  const number = Number(dirtyNumber);\n  const unit = String(options == null ? void 0 : options.unit);\n  switch (unit) {\n    case \"minute\":\n    case \"second\":\n      return String(number);\n    case \"date\":\n      return number + \"일\";\n    default:\n      return number + \"번째\";\n  }\n};\nconst localize = {\n  ordinalNumber,\n  era: buildLocalizeFn({\n    values: eraValues,\n    defaultWidth: \"wide\"\n  }),\n  quarter: buildLocalizeFn({\n    values: quarterValues,\n    defaultWidth: \"wide\",\n    argumentCallback: (quarter) => quarter - 1\n  }),\n  month: buildLocalizeFn({\n    values: monthValues,\n    defaultWidth: \"wide\"\n  }),\n  day: buildLocalizeFn({\n    values: dayValues,\n    defaultWidth: \"wide\"\n  }),\n  dayPeriod: buildLocalizeFn({\n    values: dayPeriodValues,\n    defaultWidth: \"wide\",\n    formattingValues: formattingDayPeriodValues,\n    defaultFormattingWidth: \"wide\"\n  })\n};\nexport {\n  localize\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\nconst matchOrdinalNumberPattern = /^(\\d+)(일|번째)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\nconst matchEraPatterns = {\n  narrow: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n  abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n  wide: /^(기원전|서기)/i\n};\nconst parseEraPatterns = {\n  any: [/^(bc|기원전)/i, /^(ad|서기)/i]\n};\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^q[1234]/i,\n  wide: /^[1234]사?분기/i\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i]\n};\nconst matchMonthPatterns = {\n  narrow: /^(1[012]|[123456789])/,\n  abbreviated: /^(1[012]|[123456789])월/i,\n  wide: /^(1[012]|[123456789])월/i\n};\nconst parseMonthPatterns = {\n  any: [\n    /^1월?$/,\n    /^2/,\n    /^3/,\n    /^4/,\n    /^5/,\n    /^6/,\n    /^7/,\n    /^8/,\n    /^9/,\n    /^10/,\n    /^11/,\n    /^12/\n  ]\n};\nconst matchDayPatterns = {\n  narrow: /^[일월화수목금토]/,\n  short: /^[일월화수목금토]/,\n  abbreviated: /^[일월화수목금토]/,\n  wide: /^[일월화수목금토]요일/\n};\nconst parseDayPatterns = {\n  any: [/^일/, /^월/, /^화/, /^수/, /^목/, /^금/, /^토/]\n};\nconst matchDayPeriodPatterns = {\n  any: /^(am|pm|오전|오후|자정|정오|아침|저녁|밤)/i\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^(am|오전)/i,\n    pm: /^(pm|오후)/i,\n    midnight: /^자정/i,\n    noon: /^정오/i,\n    morning: /^아침/i,\n    afternoon: /^오후/i,\n    evening: /^저녁/i,\n    night: /^밤/i\n  }\n};\nconst match = {\n  ordinalNumber: buildMatchPatternFn({\n    matchPattern: matchOrdinalNumberPattern,\n    parsePattern: parseOrdinalNumberPattern,\n    valueCallback: (value) => parseInt(value, 10)\n  }),\n  era: buildMatchFn({\n    matchPatterns: matchEraPatterns,\n    defaultMatchWidth: \"wide\",\n    parsePatterns: parseEraPatterns,\n    defaultParseWidth: \"any\"\n  }),\n  quarter: buildMatchFn({\n    matchPatterns: matchQuarterPatterns,\n    defaultMatchWidth: \"wide\",\n    parsePatterns: parseQuarterPatterns,\n    defaultParseWidth: \"any\",\n    valueCallback: (index) => index + 1\n  }),\n  month: buildMatchFn({\n    matchPatterns: matchMonthPatterns,\n    defaultMatchWidth: \"wide\",\n    parsePatterns: parseMonthPatterns,\n    defaultParseWidth: \"any\"\n  }),\n  day: buildMatchFn({\n    matchPatterns: matchDayPatterns,\n    defaultMatchWidth: \"wide\",\n    parsePatterns: parseDayPatterns,\n    defaultParseWidth: \"any\"\n  }),\n  dayPeriod: buildMatchFn({\n    matchPatterns: matchDayPeriodPatterns,\n    defaultMatchWidth: \"any\",\n    parsePatterns: parseDayPeriodPatterns,\n    defaultParseWidth: \"any\"\n  })\n};\nexport {\n  match\n};\n","import { formatDistance } from \"./ko/_lib/formatDistance.js\";\nimport { formatLong } from \"./ko/_lib/formatLong.js\";\nimport { formatRelative } from \"./ko/_lib/formatRelative.js\";\nimport { localize } from \"./ko/_lib/localize.js\";\nimport { match } from \"./ko/_lib/match.js\";\nconst ko = {\n  code: \"ko\",\n  formatDistance,\n  formatLong,\n  formatRelative,\n  localize,\n  match,\n  options: {\n    weekStartsOn: 0,\n    firstWeekContainsDate: 1\n  }\n};\nexport {\n  ko as default,\n  ko\n};\n","import { toDate } from \"./toDate.js\";\nfunction isWithinInterval(date, interval) {\n  const time = +toDate(date);\n  const [startTime, endTime] = [\n    +toDate(interval.start),\n    +toDate(interval.end)\n  ].sort((a, b) => a - b);\n  return time >= startTime && time <= endTime;\n}\nexport {\n  isWithinInterval as default,\n  isWithinInterval\n};\n","import { createKRTimeZoneDate } from \"../../../../../utils/createUTCDate.js\";\nimport { compareAsc } from \"../../../../../node_modules/date-fns/compareAsc.js\";\nimport { parseISO } from \"../../../../../node_modules/date-fns/parseISO.js\";\nimport { formatDate as format } from \"../../../../../node_modules/date-fns/format.js\";\nimport { ko } from \"../../../../../node_modules/date-fns/locale/ko.js\";\nimport { isWithinInterval } from \"../../../../../node_modules/date-fns/isWithinInterval.js\";\nimport { isBefore } from \"../../../../../node_modules/date-fns/isBefore.js\";\nconst orderByDateAsc = (list) => list.sort((groupA, groupB) => compareAsc(groupA.startAt, groupB.startAt));\nconst formatSchedule = (str) => {\n  const schedule = parseISO(str);\n  return format(schedule, \"M. d EEEEE\", {\n    locale: ko\n  });\n};\nconst getCurrentScheduleIndex = (list) => {\n  const now = createKRTimeZoneDate();\n  const currentIndex = list.findIndex((group, index) => {\n    const nextGroup = list[index + 1];\n    const start = parseISO(group.startAt);\n    const end = parseISO(group.endAt);\n    const isWithin = end ? isWithinInterval(now, {\n      start,\n      end\n    }) : false;\n    const isUpcoming = isBefore(now, start);\n    const isLast = nextGroup === void 0;\n    return isWithin || isUpcoming || isLast;\n  });\n  return currentIndex === -1 ? void 0 : currentIndex;\n};\nexport {\n  formatSchedule,\n  getCurrentScheduleIndex,\n  orderByDateAsc\n};\n","import { createKRTimeZoneDate } from \"./createUTCDate.js\";\nimport { isAfter } from \"../node_modules/date-fns/isAfter.js\";\nimport { compareAsc } from \"../node_modules/date-fns/compareAsc.js\";\nimport { isWithinInterval } from \"../node_modules/date-fns/isWithinInterval.js\";\nimport { isEqual } from \"../node_modules/date-fns/isEqual.js\";\nimport { parseISO } from \"../node_modules/date-fns/parseISO.js\";\nimport { isBefore } from \"../node_modules/date-fns/isBefore.js\";\nconst composeFramerDateTime = (dateTime) => {\n  const {\n    date,\n    hours,\n    minutes,\n    seconds\n  } = dateTime;\n  if (!date) {\n    return;\n  }\n  const copied = createKRTimeZoneDate(date);\n  copied.setHours(hours, minutes, seconds);\n  return copied;\n};\nconst appendFramerTime = (date, time) => {\n  const {\n    hours,\n    minutes,\n    seconds\n  } = time;\n  const copied = new Date(date);\n  copied.setHours(hours, minutes, seconds);\n  return copied;\n};\nconst isAbove = (date, dateToCompare) => isEqual(date, dateToCompare) || isAfter(date, dateToCompare);\nconst orderByDateAsc = (items, selector) => {\n  return [...items].sort((x, y) => compareAsc(selector(x), selector(y)));\n};\nconst getCurrentScheduleIndex = (list, startDateSelector, endDateSelector) => {\n  const now = createKRTimeZoneDate();\n  const currentIndex = list.findIndex((item, index) => {\n    const nextItem = list[index + 1];\n    const startDate = startDateSelector(item);\n    const endDate = endDateSelector(item, nextItem);\n    const start = parseISO(startDate.toString());\n    const end = endDate ? parseISO(endDate.toString()) : void 0;\n    const isWithin = end ? isWithinInterval(now, {\n      start,\n      end\n    }) : false;\n    const isUpcoming = isBefore(now, start);\n    const isLast = nextItem === void 0;\n    return isWithin || isUpcoming || isLast;\n  });\n  return currentIndex === -1 ? void 0 : currentIndex;\n};\nconst getScheduleStatus = (startAt, endAt) => {\n  const now = createKRTimeZoneDate();\n  const isOngoing = isWithinInterval(now, {\n    start: startAt,\n    end: endAt\n  });\n  if (isOngoing) {\n    return \"ongoing\";\n  }\n  const isUpcoming = isBefore(now, startAt);\n  if (isUpcoming) {\n    return \"upcoming\";\n  }\n  return \"end\";\n};\nexport {\n  appendFramerTime,\n  composeFramerDateTime,\n  getCurrentScheduleIndex,\n  getScheduleStatus,\n  isAbove,\n  orderByDateAsc\n};\n","var QueryType = /* @__PURE__ */ ((QueryType2) => {\n  QueryType2[\"Product\"] = \"product\";\n  QueryType2[\"KeywordCollection\"] = \"keyword-collection\";\n  QueryType2[\"KeywordCollections\"] = \"keyword-collections\";\n  QueryType2[\"BrandCuration\"] = \"brand-curation\";\n  QueryType2[\"Recommendation\"] = \"recommendation\";\n  QueryType2[\"Ranking\"] = \"ranking\";\n  QueryType2[\"CouponCollection\"] = \"coupon-collection\";\n  QueryType2[\"RaffleGroup\"] = \"raffle-group\";\n  QueryType2[\"Coupon\"] = \"coupon\";\n  QueryType2[\"Preuser\"] = \"preuser\";\n  QueryType2[\"CustomCategory\"] = \"custom-category\";\n  QueryType2[\"Moloco\"] = \"moloco\";\n  return QueryType2;\n})(QueryType || {});\nvar RankingType = /* @__PURE__ */ ((RankingType2) => {\n  RankingType2[\"Popularity\"] = \"POPULARITY\";\n  RankingType2[\"Trending\"] = \"TRENDING\";\n  return RankingType2;\n})(RankingType || {});\nvar PopularityPeriodType = /* @__PURE__ */ ((PopularityPeriodType2) => {\n  PopularityPeriodType2[\"Realtime\"] = \"REALTIME\";\n  PopularityPeriodType2[\"Hourly\"] = \"HOURLY\";\n  PopularityPeriodType2[\"Daily\"] = \"DAILY\";\n  return PopularityPeriodType2;\n})(PopularityPeriodType || {});\nvar TrendingPeriodType = /* @__PURE__ */ ((TrendingPeriodType2) => {\n  TrendingPeriodType2[\"Hourly\"] = \"HOURLY\";\n  return TrendingPeriodType2;\n})(TrendingPeriodType || {});\nvar CategoryType = /* @__PURE__ */ ((CategoryType2) => {\n  CategoryType2[CategoryType2[\"Large\"] = 0] = \"Large\";\n  CategoryType2[CategoryType2[\"Middle\"] = 1] = \"Middle\";\n  return CategoryType2;\n})(CategoryType || {});\nexport {\n  CategoryType,\n  PopularityPeriodType,\n  QueryType,\n  RankingType,\n  TrendingPeriodType\n};\n","import { CategoryType } from \"../types.js\";\nconst CATEGORY_MIN_PRODUCT_COUNT = 12;\nconst mergeByLargeCategories = (values, excludeCategories) => {\n  const map = values.reduce(\n    (prev, curr) => {\n      const {\n        count = 0,\n        children = []\n      } = prev[curr.largeId] ?? {};\n      if (excludeCategories.largeIds.includes(curr.largeId)) {\n        return prev;\n      }\n      return {\n        ...prev,\n        [curr.largeId]: {\n          id: curr.largeId,\n          name: curr.largeName,\n          count: count + curr.count,\n          children: concatMiddleCategories(children, curr, excludeCategories.middleIds)\n        }\n      };\n    },\n    // 중복 카테고리를 솎아내기 쉽도록 카테고리 id 가 key 인 객체로 정의한다.\n    {}\n  );\n  return Object.values(map);\n};\nconst concatMiddleCategories = (categories, value, excludeMiddleCategoryIds) => {\n  if (!value.middleId || !value.middleName || excludeMiddleCategoryIds.includes(value.middleId)) {\n    return categories;\n  }\n  const has = categories.findIndex((category) => category.id === value.middleId) !== -1;\n  return has ? categories : [...categories, {\n    id: value.middleId,\n    name: value.middleName,\n    parentId: value.largeId\n  }];\n};\nconst filterByOverMinProductCount = (values) => {\n  return values.filter(({\n    count = 0\n  }) => count >= CATEGORY_MIN_PRODUCT_COUNT);\n};\nconst orderByGender = (values, matcher, gender) => {\n  const oppositeGender = getOppositeGender(gender);\n  return [...values].sort((x, y) => (\n    // 현재 성별을 우선적으로 검사하여 해당되는 카테고리를 앞으로 보낸다.\n    matcher(y, gender) - matcher(x, gender) || // 현재 성별과 반대되는 성별을 기준으로 검사하여 해당되는 카테고리를 뒤로 보낸다.\n    matcher(x, oppositeGender) - matcher(y, oppositeGender)\n  ));\n};\nconst getOppositeGender = (gender) => {\n  return gender === \"F\" ? \"M\" : \"F\";\n};\nconst isGenderCategoryMatches = (value, gender) => {\n  return Number(value.name.includes(gender === \"F\" ? \"여성\" : \"남성\"));\n};\nconst isGenderProductGroupMatches = (value, gender) => {\n  return Number(value.gender === gender);\n};\nconst reshapeCategoryFacetValues = (values, options) => {\n  const {\n    categoryType,\n    gender,\n    excludeCategories\n  } = options;\n  const categories = orderByGender(filterByOverMinProductCount(mergeByLargeCategories(values, excludeCategories)), isGenderCategoryMatches, gender);\n  switch (categoryType) {\n    case CategoryType.Large:\n      return categories;\n    case CategoryType.Middle:\n      return categories.flatMap((category) => category.children ?? []);\n  }\n};\nexport {\n  filterByOverMinProductCount,\n  isGenderCategoryMatches,\n  isGenderProductGroupMatches,\n  mergeByLargeCategories,\n  orderByGender,\n  reshapeCategoryFacetValues\n};\n","import { createKRTimeZoneDate } from \"../../../../utils/createUTCDate.js\";\nimport { isAbove } from \"../../../../utils/date.js\";\nimport { isBefore } from \"../../../../node_modules/date-fns/isBefore.js\";\nimport { isWithinInterval } from \"../../../../node_modules/date-fns/isWithinInterval.js\";\nimport { formatDate as format } from \"../../../../node_modules/date-fns/format.js\";\nimport { ko } from \"../../../../node_modules/date-fns/locale/ko.js\";\nconst SEPARATOR = \"@\";\nconst reservedWords = [\"DATE\", \"GENDER\"];\nconst getProductGroupType = (productGroupList) => {\n  const includedReservedWordProductGroup = productGroupList.find((group) => group.title.includes(SEPARATOR));\n  if (includedReservedWordProductGroup === void 0) {\n    return \"KEYWORD\";\n  }\n  const firstReservedWord = includedReservedWordProductGroup.title.split(SEPARATOR)[0];\n  if (!reservedWords.includes(firstReservedWord)) {\n    return \"KEYWORD\";\n  }\n  return firstReservedWord;\n};\nconst reshapeProductGroupList = (productGroupList, productGroupType, gender) => {\n  if (productGroupType === \"DATE\") {\n    return reshapeDateProductGroupList(productGroupList);\n  }\n  if (productGroupType === \"GENDER\") {\n    return reshapeGenderProductGroupList(productGroupList, gender);\n  }\n  return productGroupList;\n};\nconst findInitialProductGroupId = (collectionProductGroup, reshapedProductGroupList, productGroupType) => {\n  if (collectionProductGroup.length === 0) {\n    return void 0;\n  }\n  if (productGroupType === \"DATE\") {\n    const currentProductGroupList = findCurrentProductGroupListByDate(collectionProductGroup);\n    return currentProductGroupList.productGroupId;\n  }\n  return reshapedProductGroupList[0].productGroupId;\n};\nconst reshapeDateProductGroupList = (productGroupList) => productGroupList.map((group) => ({\n  ...group,\n  title: formatTitle(group.title, \"DATE\")\n}));\nconst reshapeGenderProductGroupList = (productGroupList, gender) => {\n  const genderProductGroup = productGroupList.reduce((acc, cur) => {\n    const isCommonGroup = !cur.title.includes(SEPARATOR);\n    if (isCommonGroup) {\n      return {\n        ...acc,\n        common: [...acc.common, cur]\n      };\n    }\n    const isNotAllowedReservedWord = cur.title.split(SEPARATOR)[0] !== \"GENDER\";\n    if (isNotAllowedReservedWord) {\n      return {\n        ...acc,\n        notAllowed: [...acc.notAllowed, cur]\n      };\n    }\n    const groupGender = cur.title.split(SEPARATOR)[1].split(\":\")[0];\n    const formattedTitleGroup = {\n      ...cur,\n      title: formatTitle(cur.title, \"GENDER\")\n    };\n    switch (groupGender) {\n      case \"F\":\n        return {\n          ...acc,\n          female: [...acc.female, formattedTitleGroup]\n        };\n      case \"M\":\n        return {\n          ...acc,\n          male: [...acc.male, formattedTitleGroup]\n        };\n      default:\n        return {\n          ...acc,\n          notAllowed: [...acc.notAllowed, cur]\n        };\n    }\n  }, {\n    male: [],\n    female: [],\n    common: [],\n    notAllowed: []\n  });\n  if (!gender || gender === \"F\") {\n    return [...genderProductGroup.female, ...genderProductGroup.common, ...genderProductGroup.male, ...genderProductGroup.notAllowed];\n  }\n  return [...genderProductGroup.male, ...genderProductGroup.common, ...genderProductGroup.female, ...genderProductGroup.notAllowed];\n};\nconst findCurrentProductGroupIndex = (productGroupList) => {\n  const now = createKRTimeZoneDate();\n  return productGroupList.findIndex((group, index) => {\n    const standardDate = new Date(group.title.split(\"@\")[1]);\n    const nextGroupList = productGroupList[index + 1];\n    const nextDate = nextGroupList ? new Date(nextGroupList.title.split(\"@\")[1]) : null;\n    const isFirstProductGroupList = index === 0;\n    const isLastProductGroupList = nextDate === null;\n    const isBeforeStart = isFirstProductGroupList && isBefore(now, standardDate);\n    const isLast = isLastProductGroupList && isAbove(now, standardDate);\n    const isWithin = !isLastProductGroupList && isWithinInterval(now, {\n      start: standardDate,\n      end: nextDate\n    });\n    return isBeforeStart || isLast || isWithin;\n  });\n};\nconst findCurrentProductGroupListByDate = (productGroupList) => {\n  const currentIndex = findCurrentProductGroupIndex(productGroupList);\n  return productGroupList[currentIndex ?? 0];\n};\nconst formatTitle = (title, reservedWord) => {\n  if (!reservedWord) {\n    return title;\n  }\n  const [, needToFormatTitle] = title.split(SEPARATOR);\n  switch (reservedWord) {\n    case \"DATE\":\n      return format(new Date(needToFormatTitle), \"M. d EEEEE\", {\n        locale: ko\n      });\n    case \"GENDER\":\n      return needToFormatTitle.split(\":\")[1];\n    default:\n      return title;\n  }\n};\nexport {\n  findCurrentProductGroupIndex,\n  findInitialProductGroupId,\n  getProductGroupType,\n  reshapeProductGroupList\n};\n","import { addDays } from \"./addDays.js\";\nfunction subDays(date, amount) {\n  return addDays(date, -amount);\n}\nexport {\n  subDays as default,\n  subDays\n};\n","import { addMonths } from \"./addMonths.js\";\nfunction subMonths(date, amount) {\n  return addMonths(date, -amount);\n}\nexport {\n  subMonths as default,\n  subMonths\n};\n","import { subDays } from \"./subDays.js\";\nimport { subMonths } from \"./subMonths.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nfunction sub(date, duration) {\n  const {\n    years = 0,\n    months = 0,\n    weeks = 0,\n    days = 0,\n    hours = 0,\n    minutes = 0,\n    seconds = 0\n  } = duration;\n  const dateWithoutMonths = subMonths(date, months + years * 12);\n  const dateWithoutDays = subDays(dateWithoutMonths, days + weeks * 7);\n  const minutestoSub = minutes + hours * 60;\n  const secondstoSub = seconds + minutestoSub * 60;\n  const mstoSub = secondstoSub * 1e3;\n  const finalDate = constructFrom(date, dateWithoutDays.getTime() - mstoSub);\n  return finalDate;\n}\nexport {\n  sub as default,\n  sub\n};\n","import { toDate } from \"./toDate.js\";\nimport { addLeadingZeros } from \"./_lib/addLeadingZeros.js\";\nfunction formatISO(date, options) {\n  const _date = toDate(date);\n  if (isNaN(_date.getTime())) {\n    throw new RangeError(\"Invalid time value\");\n  }\n  const format = (options == null ? void 0 : options.format) ?? \"extended\";\n  const representation = (options == null ? void 0 : options.representation) ?? \"complete\";\n  let result = \"\";\n  let tzOffset = \"\";\n  const dateDelimiter = format === \"extended\" ? \"-\" : \"\";\n  const timeDelimiter = format === \"extended\" ? \":\" : \"\";\n  if (representation !== \"time\") {\n    const day = addLeadingZeros(_date.getDate(), 2);\n    const month = addLeadingZeros(_date.getMonth() + 1, 2);\n    const year = addLeadingZeros(_date.getFullYear(), 4);\n    result = `${year}${dateDelimiter}${month}${dateDelimiter}${day}`;\n  }\n  if (representation !== \"date\") {\n    const offset = _date.getTimezoneOffset();\n    if (offset !== 0) {\n      const absoluteOffset = Math.abs(offset);\n      const hourOffset = addLeadingZeros(Math.trunc(absoluteOffset / 60), 2);\n      const minuteOffset = addLeadingZeros(absoluteOffset % 60, 2);\n      const sign = offset < 0 ? \"+\" : \"-\";\n      tzOffset = `${sign}${hourOffset}:${minuteOffset}`;\n    } else {\n      tzOffset = \"Z\";\n    }\n    const hour = addLeadingZeros(_date.getHours(), 2);\n    const minute = addLeadingZeros(_date.getMinutes(), 2);\n    const second = addLeadingZeros(_date.getSeconds(), 2);\n    const separator = result === \"\" ? \"\" : \"T\";\n    const time = [hour, minute, second].join(timeDelimiter);\n    result = `${result}${separator}${time}${tzOffset}`;\n  }\n  return result;\n}\nexport {\n  formatISO as default,\n  formatISO\n};\n","import { createKRTimeZoneDate } from \"../../../../utils/createUTCDate.js\";\nimport { sub } from \"../../../../node_modules/date-fns/sub.js\";\nimport { formatISO } from \"../../../../node_modules/date-fns/formatISO.js\";\nimport { formatSchedule } from \"./TimeSaleCollectionTags/TimeSaleCollectionTags.utils.js\";\nconst DATE_PREFIX = \"DATE@\";\nconst removeDatePrefix = (str) => str.replace(DATE_PREFIX, \"\").trim();\nconst reshapeProductGroups = (list, displayEndAt) => list.map((item, index) => {\n  const nextGroup = list[index + 1];\n  const startAt = formatISO(createKRTimeZoneDate(removeDatePrefix(item.title)));\n  const endAt = nextGroup ? (\n    // NOTE: (한지원) 상품 그룹 응답에서 종료일을 명확히 알 수 없으므로, 다음 스케줄의 1초 전 시간을 종료일로 설정합니다.\n    formatISO(sub(createKRTimeZoneDate(removeDatePrefix(nextGroup.title)), {\n      seconds: 1\n    }))\n  ) : displayEndAt;\n  return {\n    ...item,\n    title: formatSchedule(startAt),\n    startAt,\n    endAt\n  };\n});\nexport {\n  removeDatePrefix,\n  reshapeProductGroups\n};\n","import { createKRTimeZoneDate } from \"../../../../../utils/createUTCDate.js\";\nimport { isAbove } from \"../../../../../utils/date.js\";\nimport { ko } from \"../../../../../node_modules/date-fns/locale/ko.js\";\nimport { isWithinInterval } from \"../../../../../node_modules/date-fns/isWithinInterval.js\";\nimport { formatDate as format } from \"../../../../../node_modules/date-fns/format.js\";\nimport { differenceInHours } from \"../../../../../node_modules/date-fns/differenceInHours.js\";\nconst STANDARD_DIFF_HOURS = 48;\nconst getCurrentBrandSaleIndex = (brandSaleList) => {\n  const now = createKRTimeZoneDate();\n  const currentIndex = brandSaleList.findIndex((brandSale, index) => {\n    const nextInterval = brandSaleList[index + 1];\n    const hasNext = nextInterval !== void 0;\n    const start = new Date(brandSale.displayStartAt);\n    const end = new Date(brandSale.displayEndAt);\n    const isWithin = hasNext && isWithinInterval(now, {\n      start,\n      end\n    });\n    const isLast = !hasNext && isAbove(now, start);\n    return isWithin || isLast;\n  });\n  return currentIndex === -1 ? void 0 : currentIndex;\n};\nconst getCalendarTagName = ({\n  displayStartAt,\n  displayEndAt\n}) => {\n  const defaultTagName = format(displayStartAt, \"M. d eeeee\", {\n    locale: ko\n  });\n  if (!displayEndAt) {\n    return defaultTagName;\n  }\n  const diff = differenceInHours(displayEndAt, displayStartAt);\n  if (diff > STANDARD_DIFF_HOURS) {\n    return `${defaultTagName} 시작`;\n  }\n  return defaultTagName;\n};\nexport {\n  getCalendarTagName,\n  getCurrentBrandSaleIndex\n};\n","import { getProductGroupType } from \"../../systems/KeywordCollection/KeywordCollectionTags/KeywordCollectionTags.utils.js\";\nimport { reshapeProductGroups } from \"../../systems/curations/KeywordCollectionV2/TimeSaleCollection.utils.js\";\nimport { orderByDateAsc, getCurrentScheduleIndex } from \"../../../utils/date.js\";\nimport { getCalendarTagName, getCurrentBrandSaleIndex } from \"../../systems/curations/CouponCollection/CalendarTags/CalendarTags.utils.js\";\nimport { orderByGender, isGenderProductGroupMatches } from \"../utils/facet.js\";\nconst GENDER_PREFIX = \"GENDER@\";\nconst GENDER_SEPARATOR = \":\";\nconst reshapeProductGroupsByGender = (groups) => groups.map((group) => {\n  const [gender, title] = group.title.replace(GENDER_PREFIX, \"\").trim().split(GENDER_SEPARATOR);\n  return {\n    ...group,\n    title: group.title.includes(GENDER_PREFIX) ? title : group.title,\n    gender\n  };\n});\nconst getKeywordCollectionTagsResult = (query, userSegment) => {\n  const {\n    displayEndAt,\n    productGroups = []\n  } = query;\n  const type = getProductGroupType(productGroups);\n  if (type === \"DATE\") {\n    const groups = orderByDateAsc(reshapeProductGroups(productGroups, displayEndAt ?? \"\"), (x) => x.startAt);\n    const currentIndex = getCurrentScheduleIndex(groups, (x) => x.startAt, (x) => x.endAt);\n    return {\n      values: groups.map((group, index) => ({\n        label: group.title,\n        query: {\n          ...query,\n          selectedProductGroup: {\n            id: group.productGroupId,\n            index,\n            sort: group.sort,\n            startAt: group.startAt,\n            endAt: group.endAt\n          }\n        }\n      })),\n      currentIndex\n    };\n  }\n  if (type === \"GENDER\") {\n    const gender = userSegment.gender ?? \"F\";\n    const groups = orderByGender(reshapeProductGroupsByGender(productGroups), isGenderProductGroupMatches, gender);\n    return {\n      values: groups.map((group, index) => ({\n        label: group.title,\n        query: {\n          ...query,\n          selectedProductGroup: {\n            id: group.productGroupId,\n            sort: group.sort,\n            index\n          }\n        }\n      }))\n    };\n  }\n  return {\n    values: productGroups.map((group, index) => ({\n      label: group.title,\n      query: {\n        ...query,\n        selectedProductGroup: {\n          id: group.productGroupId,\n          index,\n          sort: group.sort\n        }\n      }\n    }))\n  };\n};\nconst getCouponCollectionTagsResult = (query) => {\n  const {\n    brandSales = []\n  } = query;\n  const values = brandSales.map((brandSale, index) => ({\n    label: getCalendarTagName(brandSale),\n    query: {\n      ...query,\n      brandSaleId: brandSale.brandSaleId,\n      index,\n      displayStartAt: brandSale.displayStartAt,\n      displayEndAt: brandSale.displayEndAt\n    }\n  }));\n  const currentIndex = getCurrentBrandSaleIndex(brandSales);\n  return {\n    values,\n    currentIndex\n  };\n};\nexport {\n  getCouponCollectionTagsResult,\n  getKeywordCollectionTagsResult,\n  reshapeProductGroupsByGender\n};\n","import useSWR from \"../../../node_modules/swr/core/dist/index.js\";\nimport { bestApi } from \"../../../apis/best/BestApiService.js\";\nimport { brandCurationApi } from \"../../../apis/brand-curation/BrandCurationApiService.js\";\nimport { brandSaleApi } from \"../../../apis/brand-sale/BrandSaleApiService.js\";\nimport { collectionApi } from \"../../../apis/collection/CollectionApiService.js\";\nimport { keywordCollectionApi } from \"../../../apis/keyword-collections/KeywordCollectionApiService.js\";\nimport { formatSchedule } from \"../../systems/curations/KeywordCollectionV2/TimeSaleCollectionTags/TimeSaleCollectionTags.utils.js\";\nimport { orderByDateAsc, getCurrentScheduleIndex } from \"../../../utils/date.js\";\nimport { splitToNumberArray } from \"../../../utils/splitToNumberArray.js\";\nimport { QueryType, CategoryType, RankingType } from \"../types.js\";\nimport { reshapeCategoryFacetValues } from \"../utils/facet.js\";\nimport { getKeywordCollectionTagsResult, getCouponCollectionTagsResult } from \"./TagsModule.utils.js\";\nconst TAGS_FETCHER_KEY = \"tags-module/tags\";\nconst useTagsQuery = (options) => {\n  const {\n    enabled: _enabled = true,\n    query,\n    userSegment\n  } = options;\n  const enabled = _enabled && query !== void 0;\n  const {\n    data,\n    isLoading,\n    ...rest\n  } = useSWR(enabled ? [TAGS_FETCHER_KEY, query] : null, () => queryTags(query, userSegment));\n  const {\n    values = [],\n    currentIndex\n  } = data ?? {};\n  const hasTags = values.length > 0;\n  return {\n    isLoading: isLoading || !enabled || !hasTags,\n    tags: values,\n    currentIndex,\n    ...rest\n  };\n};\nconst fetchKeywordCollectionTags = async (query, userSegment) => {\n  if (!query.keywordCollectionId) {\n    return {\n      values: []\n    };\n  }\n  const {\n    data\n  } = await keywordCollectionApi.getKeywordCollection(Number(query.keywordCollectionId));\n  const {\n    title,\n    description,\n    displayEndAt,\n    productGroups\n  } = data;\n  return getKeywordCollectionTagsResult({\n    ...query,\n    title,\n    description: description ?? void 0,\n    displayEndAt: displayEndAt ?? void 0,\n    couponId: data.couponId ?? void 0,\n    productGroups\n  }, userSegment);\n};\nconst fetchKeywordCollectionsTags = async (query) => {\n  if (!query.keywordCollectionIds) {\n    return {\n      values: []\n    };\n  }\n  const {\n    data\n  } = await collectionApi.getCollections(splitToNumberArray(query.keywordCollectionIds));\n  const collections = orderByDateAsc(data, (x) => x.displayStartAt);\n  const currentIndex = getCurrentScheduleIndex(collections, (current) => current.displayStartAt, (_, next) => next == null ? void 0 : next.displayStartAt);\n  return {\n    values: collections.map((collection) => {\n      const {\n        collectionId,\n        title,\n        description,\n        displayStartAt,\n        displayEndAt,\n        productGroupList,\n        couponId\n      } = collection;\n      const [firstProductGroup] = productGroupList;\n      return {\n        label: formatSchedule(displayStartAt),\n        query: {\n          // NOTE(임규민): 다중 키워드 컬렉션의 개별 요소는 결국 키워드 컬렉션이므로, 연결되는 모듈에서 KeywordCollectionQuery 로 식별되도록 한다.\n          type: QueryType.KeywordCollection,\n          keywordCollectionId: `${collectionId}`,\n          title,\n          description: description ?? void 0,\n          displayEndAt: displayEndAt ?? void 0,\n          couponId: couponId ?? void 0,\n          productGroups: productGroupList.map((group) => ({\n            productGroupId: group.collectionProductGroupId,\n            title: group.title,\n            sort: group.sort\n          })),\n          selectedProductGroup: {\n            id: firstProductGroup.collectionProductGroupId,\n            sort: firstProductGroup.sort,\n            index: 0\n          }\n        }\n      };\n    }),\n    currentIndex\n  };\n};\nconst fetchBrandCurationTags = async (query) => {\n  if (!query.brandGroupIds) {\n    return {\n      values: []\n    };\n  }\n  const brandGroupIds = splitToNumberArray(query.brandGroupIds).join(\",\");\n  const {\n    data\n  } = await brandCurationApi.getFavoriteBrands({\n    size: query.brandSize,\n    brandGroupIds\n  });\n  const values = data.frontBrands.map((brand) => ({\n    label: brand.nameKor,\n    query: {\n      ...query,\n      brandId: brand.frontBrandId\n    }\n  }));\n  return {\n    values\n  };\n};\nconst fetchRankingTags = async (query, userSegment) => {\n  if (!query.rankingTagIds) {\n    return {\n      values: []\n    };\n  }\n  const tagIds = splitToNumberArray(query.rankingTagIds);\n  const {\n    data\n  } = await bestApi.getPLPFacetGroup({\n    facetGroupInput: {\n      tagFacetInputs: tagIds.map((tagId) => ({\n        tagId\n      }))\n    }\n  });\n  const gender = userSegment.gender ?? \"F\";\n  const categories = reshapeCategoryFacetValues(data.categoryFacet.values, {\n    categoryType: query.categoryType,\n    gender,\n    excludeCategories: {\n      largeIds: splitToNumberArray(query.excludeLargeCategoryIds),\n      middleIds: splitToNumberArray(query.excludeMiddleCategoryIds)\n    }\n  });\n  const inputs = categories.map((category) => {\n    const categoryProperties = {\n      [CategoryType.Large]: {\n        largeCategoryId: category.id\n      },\n      [CategoryType.Middle]: {\n        largeCategoryId: category.parentId,\n        middleCategoryId: category.id\n      }\n    };\n    return {\n      label: category.name,\n      query: {\n        ...query,\n        ...categoryProperties[query.categoryType],\n        childCategories: category.children ?? []\n      }\n    };\n  });\n  const allCategory = {\n    label: \"전체\",\n    query\n  };\n  const isTrending = query.rankingType === RankingType.Trending;\n  return {\n    values: isTrending ? [allCategory, ...inputs] : inputs\n  };\n};\nconst fetchCouponCollectionTags = async (query) => {\n  if (!query.brandSaleGroupId) {\n    return {\n      values: []\n    };\n  }\n  const {\n    data\n  } = await brandSaleApi.getBrandSaleGroup(Number(query.brandSaleGroupId));\n  const {\n    title,\n    description,\n    brandSaleList\n  } = data;\n  return getCouponCollectionTagsResult({\n    ...query,\n    title,\n    description: description ?? void 0,\n    brandSales: brandSaleList\n  });\n};\nconst queryTags = (query, userSegment) => {\n  if (!query) {\n    return {\n      values: []\n    };\n  }\n  switch (query.type) {\n    case QueryType.KeywordCollection:\n      return fetchKeywordCollectionTags(query, userSegment);\n    case QueryType.KeywordCollections:\n      return fetchKeywordCollectionsTags(query);\n    case QueryType.BrandCuration:\n      return fetchBrandCurationTags(query);\n    case QueryType.Ranking:\n      return fetchRankingTags(query, userSegment);\n    case QueryType.CouponCollection:\n      return fetchCouponCollectionTags(query);\n    default:\n      return {\n        values: []\n      };\n  }\n};\nexport {\n  useTagsQuery\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { useSegment } from \"../../../@shared/providers/SegmentProvider/SegmentProvider.js\";\nimport \"../../../systems/curations/IntersectionProvider/IntersectionProvider.js\";\nimport { useIntersectionContext } from \"../../../systems/curations/IntersectionProvider/IntersectionProvider.hooks.js\";\nimport \"react\";\nimport \"../../../../node_modules/@firebase/analytics/dist/esm/index.esm2017.js\";\nimport \"../../../../node_modules/firebase/app/dist/esm/index.esm.js\";\nimport { useCurrentUser } from \"../../../../hooks/useCurrentUser.js\";\nimport \"framer\";\nimport \"../../../../node_modules/@29cm/snowplow/dist/esm/core/snowplow.js\";\nimport \"../../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport \"../../../../config/index.js\";\nimport \"../../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport \"../../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../../apis/preuser/PreuserApiService.js\";\nimport \"../../../../node_modules/swr/mutation/dist/index.js\";\nimport \"../../../../hooks/stores/content/content.store.js\";\nimport \"../../../../hooks/stores/dialog/dialog.store.js\";\nimport \"../../../../hooks/stores/global-layout/global-layout.store.js\";\nimport \"../../../../hooks/stores/toast/toast.store.js\";\nimport \"../../../@shared/providers/ThemeProvider/ThemeProvider.js\";\nimport \"../../../@shared/providers/BreakpointProvider/BreakpointProvider.js\";\nimport \"../../../../hooks/stores/bottom-sheet/bottom-sheet.store.js\";\nimport \"react-dom\";\nimport \"../../../systems/Dialog/Dialog.module.css.js\";\nimport \"framer-motion\";\nimport \"../../../../containers/DialogContainer/DialogContainer.emitter.js\";\nimport \"../../../../utils/redirectLogin.js\";\nimport \"../../../../utils/event-properties/source.js\";\nimport { TagsElement } from \"../TagsElement/TagsElement.js\";\nimport { useTagsQuery } from \"../TagsModule.hooks.js\";\nconst AutoTagsModule = ({\n  query,\n  output,\n  layout\n}) => {\n  const {\n    isInView\n  } = useIntersectionContext();\n  const {\n    isVisible\n  } = useSegment();\n  const user = useCurrentUser();\n  const {\n    isLoading,\n    tags,\n    currentIndex\n  } = useTagsQuery({\n    query,\n    userSegment: user,\n    enabled: isInView && isVisible\n  });\n  return /* @__PURE__ */ jsx(TagsElement, { loading: isLoading, currentIndex, inputs: tags, output, layout });\n};\nexport {\n  AutoTagsModule\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { BreakpointProvider } from \"../../../@shared/providers/BreakpointProvider/BreakpointProvider.js\";\nimport \"react\";\nimport { ThemeProvider } from \"../../../@shared/providers/ThemeProvider/ThemeProvider.js\";\nimport { IntersectionProvider } from \"../IntersectionProvider/IntersectionProvider.js\";\nimport \"framer-motion\";\nimport \"../../../../node_modules/@firebase/analytics/dist/esm/index.esm2017.js\";\nimport \"../../../../node_modules/firebase/app/dist/esm/index.esm.js\";\nimport { SWRConfig } from \"../../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport \"../../../../config/index.js\";\nimport \"../../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport \"../../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../../apis/preuser/PreuserApiService.js\";\nimport \"framer\";\nimport \"../../../../node_modules/@29cm/snowplow/dist/esm/core/snowplow.js\";\nimport \"../../../../hooks/stores/content/content.store.js\";\nimport \"../../../../utils/event-properties/source.js\";\nimport { EventTrackingProvider } from \"../EventTrackingProvider/EventTrackingProvider.js\";\nimport \"../../../../constants/snowplow/snowplowSchema.js\";\nimport \"../../../../hooks/stores/dialog/dialog.store.js\";\nimport \"../../../../hooks/stores/global-layout/global-layout.store.js\";\nimport \"../../../../hooks/stores/toast/toast.store.js\";\nimport { SegmentProvider } from \"../../../@shared/providers/SegmentProvider/SegmentProvider.js\";\nconst SectionLayout = ({\n  children,\n  theme = \"light\",\n  breakpoint = \"mobile\",\n  componentId,\n  intersectionOptions,\n  segment\n}) => {\n  return /* @__PURE__ */ jsx(ThemeProvider, { theme, children: /* @__PURE__ */ jsx(BreakpointProvider, { breakpoint, children: /* @__PURE__ */ jsx(IntersectionProvider, { once: true, margin: \"200px 0px\", ...intersectionOptions, children: /* @__PURE__ */ jsx(EventTrackingProvider, { componentId, children: /* @__PURE__ */ jsx(SWRConfig, { value: {\n    revalidateIfStale: false,\n    revalidateOnFocus: false,\n    revalidateOnReconnect: false,\n    errorRetryCount: 1\n  }, children: /* @__PURE__ */ jsx(SegmentProvider, { segment, children }) }) }) }) }) });\n};\nexport {\n  SectionLayout\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { useRef, useState } from \"react\";\nimport { SWRConfig } from \"../../../node_modules/swr/core/dist/index.js\";\nconst SWRErrorBoundary = ({\n  children,\n  fallback,\n  errorRetryCount = 1,\n  errorRetryInterval = 5 * 1e3\n}) => {\n  const exhaustedKeys = useRef(/* @__PURE__ */ new Set());\n  const [isError, setIsError] = useState(false);\n  const retry = () => setIsError(false);\n  return /* @__PURE__ */ jsx(SWRConfig, { value: {\n    /**\n     * NOTE(임규민): retry count 를 모두 소진했을 경우에만 fallback 이 보여져야 하기 때문에, config 의 기본 옵션 대신 override callback 을 사용합니다.\n     * @see {@link https://swr.vercel.app/ko/docs/error-handling#error-retry}\n     */\n    onErrorRetry: (_error, key, _config, revalidate, {\n      retryCount\n    }) => {\n      if (retryCount > errorRetryCount) {\n        return;\n      }\n      if (retryCount >= errorRetryCount) {\n        exhaustedKeys.current.add(key);\n      }\n      setTimeout(() => {\n        revalidate({\n          retryCount\n        });\n      }, errorRetryInterval);\n    },\n    onError: (_error, key) => {\n      if (!exhaustedKeys.current.has(key)) {\n        return;\n      }\n      exhaustedKeys.current.delete(key);\n      setIsError(true);\n    }\n  }, children: isError ? fallback == null ? void 0 : fallback(retry) : children });\n};\nexport {\n  SWRErrorBoundary\n};\n","import { ControlType } from \"framer\";\nimport { Breakpoint } from \"../../styles/breakpoint.js\";\nconst BREAKPOINT_CONTROLS = {\n  breakpoint: {\n    type: ControlType.Enum,\n    title: \"분기점\",\n    options: [Breakpoint.DESKTOP, Breakpoint.TABLET, Breakpoint.MOBILE],\n    optionTitles: [\"PC\", \"Tablet\", \"Mobile\"],\n    displaySegmentedControl: true\n  }\n};\nexport {\n  BREAKPOINT_CONTROLS\n};\n","var Theme = /* @__PURE__ */ ((Theme2) => {\n  Theme2[\"LIGHT\"] = \"light\";\n  Theme2[\"DARK\"] = \"dark\";\n  return Theme2;\n})(Theme || {});\nexport {\n  Theme\n};\n","import { ControlType } from \"framer\";\nimport { Theme } from \"../../styles/theme.js\";\nconst THEME_CONTROLS = {\n  theme: {\n    type: ControlType.Enum,\n    title: \"테마\",\n    description: \"Light 테마는 일부 스타일이 미적용되어 있을 수 있습니다.\",\n    options: [Theme.LIGHT, Theme.DARK],\n    optionTitles: [\"Light\", \"Dark\"],\n    defaultValue: Theme.LIGHT,\n    displaySegmentedControl: true\n  }\n};\nexport {\n  THEME_CONTROLS\n};\n","import { ControlType } from \"framer\";\nimport { entries } from \"../../utils/entries.js\";\nconst combineObjectPropertyControls = (...controls) => {\n  return controls.flatMap(entries).reduce((prev, curr) => {\n    const [key, incoming] = curr;\n    const copied = {\n      ...prev\n    };\n    const existing = copied[key] ?? {};\n    if (existing.type === ControlType.Enum && incoming.type === ControlType.Enum) {\n      copied[key] = mergeEnumControlDescription(existing, incoming);\n      return prev = copied;\n    }\n    return prev = {\n      ...prev,\n      [key]: incoming\n    };\n  }, {});\n};\nconst mergeEnumControlDescription = (existing, incoming) => {\n  return {\n    ...existing,\n    options: [...existing.options, ...incoming.options],\n    optionTitles: [...existing.optionTitles ?? [], ...incoming.optionTitles ?? []]\n  };\n};\nexport {\n  combineObjectPropertyControls\n};\n","var CouponType = /* @__PURE__ */ ((CouponType2) => {\n  CouponType2[CouponType2[\"NORMAL\"] = 0] = \"NORMAL\";\n  CouponType2[CouponType2[\"LIMITED\"] = 1] = \"LIMITED\";\n  CouponType2[CouponType2[\"RANDOM\"] = 2] = \"RANDOM\";\n  return CouponType2;\n})(CouponType || {});\nvar CouponDiscountType = /* @__PURE__ */ ((CouponDiscountType2) => {\n  CouponDiscountType2[CouponDiscountType2[\"RATE\"] = 0] = \"RATE\";\n  CouponDiscountType2[CouponDiscountType2[\"AMOUNT\"] = 1] = \"AMOUNT\";\n  return CouponDiscountType2;\n})(CouponDiscountType || {});\nvar DiscountType = /* @__PURE__ */ ((DiscountType2) => {\n  DiscountType2[\"FIXED_RATE\"] = \"FIXED_RATE\";\n  DiscountType2[\"FIXED_PRICE\"] = \"FIXED_PRICE\";\n  return DiscountType2;\n})(DiscountType || {});\nvar AvailableDayType = /* @__PURE__ */ ((AvailableDayType2) => {\n  AvailableDayType2[\"RANGE\"] = \"RANGE\";\n  AvailableDayType2[\"DAY\"] = \"DAY\";\n  AvailableDayType2[\"NONE\"] = \"NONE\";\n  return AvailableDayType2;\n})(AvailableDayType || {});\nvar KindType = /* @__PURE__ */ ((KindType2) => {\n  KindType2[\"PRODUCT\"] = \"PRODUCT\";\n  KindType2[\"CART\"] = \"CART\";\n  return KindType2;\n})(KindType || {});\nexport {\n  AvailableDayType,\n  CouponDiscountType,\n  CouponType,\n  DiscountType,\n  KindType\n};\n","var CouponModuleInputType = /* @__PURE__ */ ((CouponModuleInputType2) => {\n  CouponModuleInputType2[CouponModuleInputType2[\"Linked\"] = 0] = \"Linked\";\n  CouponModuleInputType2[CouponModuleInputType2[\"Manual\"] = 1] = \"Manual\";\n  CouponModuleInputType2[CouponModuleInputType2[\"Auto\"] = 2] = \"Auto\";\n  return CouponModuleInputType2;\n})(CouponModuleInputType || {});\nvar CouponUpdateType = /* @__PURE__ */ ((CouponUpdateType2) => {\n  CouponUpdateType2[CouponUpdateType2[\"NORMAL\"] = 0] = \"NORMAL\";\n  CouponUpdateType2[CouponUpdateType2[\"DAILY\"] = 1] = \"DAILY\";\n  return CouponUpdateType2;\n})(CouponUpdateType || {});\nexport {\n  CouponModuleInputType,\n  CouponUpdateType\n};\n","import { ControlType } from \"framer\";\nimport { CouponType } from \"../../types/models/coupon.js\";\nimport { CouponUpdateType } from \"./CouponModule/CouponModule.types.js\";\nimport { QueryType, RankingType, PopularityPeriodType, TrendingPeriodType, CategoryType } from \"./types.js\";\nconst PRODUCT_CONTROLS = {\n  type: {\n    type: ControlType.Enum,\n    title: \"유형\",\n    options: [QueryType.Product],\n    optionTitles: [\"상품\"]\n  },\n  productIds: {\n    hidden: ({\n      type\n    }) => type !== QueryType.Product,\n    type: ControlType.String,\n    title: \"상품 ID\",\n    description: \"복수 입력 시 콤마(,)로 구분\",\n    defaultValue: \"\"\n  }\n};\nconst KEYWORD_COLLECTION_CONTROLS = {\n  type: {\n    type: ControlType.Enum,\n    title: \"유형\",\n    options: [QueryType.KeywordCollection],\n    optionTitles: [\"키워드 컬렉션\"]\n  },\n  keywordCollectionId: {\n    hidden: ({\n      type\n    }) => type !== QueryType.KeywordCollection,\n    type: ControlType.String,\n    title: \"키워드 컬렉션 ID\",\n    description: \"단수만 입력\",\n    defaultValue: \"\"\n  }\n};\nconst KEYWORD_COLLECTIONS_CONTROLS = {\n  type: {\n    type: ControlType.Enum,\n    title: \"유형\",\n    options: [QueryType.KeywordCollections],\n    optionTitles: [\"다중 키워드 컬렉션\"]\n  },\n  keywordCollectionIds: {\n    hidden: ({\n      type\n    }) => type !== QueryType.KeywordCollections,\n    type: ControlType.String,\n    title: \"키워드 컬렉션 ID\",\n    description: \"복수 입력 시 콤마(,)로 구분\",\n    defaultValue: \"\",\n    placeholder: \"11628,11629,11630\"\n  }\n};\nconst BRAND_CURATION_CONTROLS = {\n  type: {\n    type: ControlType.Enum,\n    title: \"유형\",\n    options: [QueryType.BrandCuration],\n    optionTitles: [\"브랜드 큐레이션\"]\n  },\n  brandGroupIds: {\n    hidden: ({\n      type\n    }) => type !== QueryType.BrandCuration,\n    type: ControlType.String,\n    title: \"브랜드 그룹 ID\",\n    description: \"복수 입력 시 콤마(,)로 구분\",\n    defaultValue: \"\"\n  },\n  brandSize: {\n    hidden: ({\n      type\n    }) => type !== QueryType.BrandCuration,\n    type: ControlType.Number,\n    title: \"개수\",\n    description: \"최대 500개, 미입력 시 최대 개수로 노출\",\n    unit: \"개\",\n    defaultValue: 20,\n    min: 0,\n    displayStepper: true\n  },\n  brandCurationTagIds: {\n    hidden: ({\n      type\n    }) => type !== QueryType.BrandCuration,\n    type: ControlType.String,\n    title: \"태그 ID\",\n    description: \"태그 아이디 입력 시 매핑된 상품만 노출\\n복수 입력 시 콤마(,)로 구분\",\n    defaultValue: \"\"\n  }\n};\nconst RECOMMENDATION_CONTROLS = {\n  type: {\n    type: ControlType.Enum,\n    title: \"유형\",\n    options: [QueryType.Recommendation],\n    optionTitles: [\"개인화 추천\"]\n  },\n  recommendationTagIds: {\n    hidden: ({\n      type\n    }) => type !== QueryType.Recommendation,\n    type: ControlType.String,\n    title: \"태그 ID\",\n    description: \"태그 아이디 입력 시 매핑된 상품만 노출\\n복수 입력 시 콤마(,)로 구분\",\n    defaultValue: \"\"\n  }\n};\nconst RANKING_CONTROLS = {\n  type: {\n    type: ControlType.Enum,\n    title: \"유형\",\n    options: [QueryType.Ranking],\n    optionTitles: [\"랭킹\"]\n  },\n  rankingType: {\n    hidden: ({\n      type\n    }) => type !== QueryType.Ranking,\n    type: ControlType.Enum,\n    title: \"랭킹 유형\",\n    options: [RankingType.Popularity, RankingType.Trending],\n    optionTitles: [\"인기\", \"급상승\"]\n  },\n  popularityPeriodType: {\n    hidden: ({\n      type,\n      rankingType\n    }) => type !== QueryType.Ranking || rankingType !== RankingType.Popularity,\n    type: ControlType.Enum,\n    title: \"기간\",\n    options: [PopularityPeriodType.Realtime, PopularityPeriodType.Hourly, PopularityPeriodType.Daily],\n    optionTitles: [\"실시간\", \"시간별\", \"일별\"]\n  },\n  trendingPeriodType: {\n    hidden: ({\n      type,\n      rankingType\n    }) => type !== QueryType.Ranking || rankingType !== RankingType.Trending,\n    type: ControlType.Enum,\n    title: \"기간\",\n    options: [TrendingPeriodType.Hourly],\n    optionTitles: [\"시간별\"]\n  },\n  rankingTagIds: {\n    hidden: ({\n      type\n    }) => type !== QueryType.Ranking,\n    type: ControlType.String,\n    title: \"태그 ID\",\n    description: \"태그 아이디 입력 시 매핑된 상품만 노출\\n복수 입력 시 콤마(,)로 구분\",\n    defaultValue: \"\"\n  },\n  categoryType: {\n    hidden: ({\n      type\n    }) => type !== QueryType.Ranking,\n    type: ControlType.Enum,\n    title: \"카테고리 유형\",\n    options: [CategoryType.Large, CategoryType.Middle],\n    optionTitles: [\"대카테고리\", \"중카테고리\"],\n    defaultValue: CategoryType.Large\n  },\n  excludeLargeCategoryIds: {\n    hidden: ({\n      type\n    }) => type !== QueryType.Ranking,\n    title: \"제외 대카테고리 ID\",\n    type: ControlType.String,\n    description: \"패싯에서 제외 시킬 대카테고리 ID 입력\\n복수 입력 시 콤마(,)로 구분\",\n    defaultValue: \"\",\n    placeholder: \"268100100,269100100,272100100,273100100\"\n  },\n  excludeMiddleCategoryIds: {\n    hidden: ({\n      type\n    }) => type !== QueryType.Ranking,\n    type: ControlType.String,\n    title: \"제외 중카테고리 ID\",\n    description: \"패싯에서 제외 시킬 중카테고리 ID 입력\\n복수 입력 시 콤마(,)로 구분\",\n    defaultValue: \"\",\n    placeholder: \"268103100,268106100,268104100,268117100\"\n  }\n};\nconst COUPON_COLLECTION_CONTROLS = {\n  type: {\n    type: ControlType.Enum,\n    title: \"유형\",\n    options: [QueryType.CouponCollection],\n    optionTitles: [\"타임 세일 브랜드\"]\n  },\n  brandSaleGroupId: {\n    hidden: ({\n      type\n    }) => type !== QueryType.CouponCollection,\n    type: ControlType.String,\n    title: \"타임 세일 브랜드 ID\",\n    description: \"단수만 입력\",\n    defaultValue: \"\"\n  }\n};\nconst RAFFLE_GROUP_CONTROLS = {\n  type: {\n    type: ControlType.Enum,\n    title: \"유형\",\n    options: [QueryType.RaffleGroup],\n    optionTitles: [\"래플 그룹\"]\n  },\n  raffleGroupId: {\n    hidden: ({\n      type\n    }) => type !== QueryType.RaffleGroup,\n    type: ControlType.String,\n    title: \"래플 그룹 ID\"\n  }\n};\nconst COUPON_CONTROLS = {\n  type: {\n    type: ControlType.Enum,\n    title: \"유형\",\n    options: [QueryType.Coupon],\n    optionTitles: [\"쿠폰\"]\n  },\n  couponType: {\n    type: ControlType.Enum,\n    title: \"쿠폰 유형\",\n    description: \"랜덤 쿠폰은 쿠폰 번호 없이 당일에 발급 가능한 쿠폰이 발급됩니다.\",\n    options: [CouponType.NORMAL, CouponType.LIMITED, CouponType.RANDOM],\n    optionTitles: [\"일반\", \"선착순\", \"랜덤\"]\n  },\n  couponUpdateType: {\n    hidden: (props) => props.couponType === CouponType.RANDOM,\n    type: ControlType.Enum,\n    title: \"쿠폰 갱신 유형\",\n    options: [CouponUpdateType.NORMAL, CouponUpdateType.DAILY],\n    optionTitles: [\"고정\", \"일자별\"]\n  },\n  couponIds: {\n    hidden: (props) => props.couponType !== CouponType.RANDOM && props.couponUpdateType !== CouponUpdateType.NORMAL,\n    type: ControlType.String,\n    title: \"쿠폰 ID\",\n    description: \"복수 입력 시 콤마(,)로 구분\\n랜덤 쿠폰은 유의사항 문구 자동생성을 위해 첫 회차에 해당하는 쿠폰번호 목록을 입력해 주세요.\"\n  },\n  dailyCouponOptions: {\n    hidden: (props) => props.couponType === CouponType.RANDOM || props.couponUpdateType !== CouponUpdateType.DAILY,\n    type: ControlType.Array,\n    title: \"갱신 일자\",\n    control: {\n      type: ControlType.Object,\n      controls: {\n        dailyCouponIds: {\n          type: ControlType.Array,\n          title: \"쿠폰 번호 목록\",\n          description: \"일자별 쿠폰 번호 목록을 입력합니다.\\n하나의 쿠폰 번호 목록당 하나의 날짜에 연결됩니다.\",\n          control: {\n            type: ControlType.String,\n            title: \"쿠폰 번호 목록\"\n          }\n        },\n        updateSchedule: {\n          type: ControlType.Object,\n          title: \"갱신 기간\",\n          controls: {\n            startAt: {\n              type: ControlType.Date,\n              title: \"시작일\"\n            },\n            endAt: {\n              type: ControlType.Date,\n              title: \"종료일\"\n            }\n          }\n        },\n        updateAt: {\n          type: ControlType.Object,\n          title: \"갱신 주기\",\n          description: \"ex) 10시 0분 0초 입력 -> 매일 오전 10시에 쿠폰번호 갱신\",\n          controls: {\n            hours: {\n              type: ControlType.Number,\n              title: \"시\",\n              defaultValue: 0,\n              min: 0,\n              max: 23,\n              unit: \"시\",\n              step: 1,\n              displayStepper: true\n            },\n            minutes: {\n              type: ControlType.Number,\n              title: \"분\",\n              defaultValue: 0,\n              min: 0,\n              max: 59,\n              unit: \"분\",\n              step: 1,\n              displayStepper: true\n            },\n            seconds: {\n              type: ControlType.Number,\n              title: \"초\",\n              defaultValue: 0,\n              min: 0,\n              max: 59,\n              unit: \"초\",\n              step: 1,\n              displayStepper: true\n            }\n          }\n        }\n      }\n    }\n  }\n};\nconst PREUSER_CONTROLS = {\n  type: {\n    type: ControlType.Enum,\n    title: \"유형\",\n    options: [QueryType.Preuser],\n    optionTitles: [\"체험단\"]\n  },\n  preuserIds: {\n    type: ControlType.String,\n    hidden: ({\n      type\n    }) => type !== QueryType.Preuser,\n    title: \"체험단 ID\",\n    description: \"복수 입력 시 콤마(,)로 구분\",\n    defaultValue: \"\"\n  }\n};\nconst QUERY_CONTROL = {\n  type: ControlType.Object,\n  title: \"질의\",\n  controls: {}\n};\nconst CUSTOM_CATEGORY_CONTROLS = {\n  type: {\n    type: ControlType.Enum,\n    title: \"질의 유형\",\n    options: [QueryType.CustomCategory],\n    optionTitles: [\"카테고리\"]\n  },\n  categoryIds: {\n    hidden: ({\n      type\n    }) => type !== QueryType.CustomCategory,\n    type: ControlType.String,\n    title: \"카테고리 ID\",\n    description: \"복수개의 카테고리를 mix 하여 커스텀 카테고리 입력 시 콤마(,)로 구분\",\n    defaultValue: \"\"\n  }\n};\nconst MOLOCO_CONTROL = {\n  type: {\n    type: ControlType.Enum,\n    title: \"유형\",\n    options: [QueryType.Moloco],\n    optionTitles: [\"몰로코\"]\n  },\n  tagId: {\n    hidden: ({\n      type\n    }) => type !== QueryType.Moloco,\n    type: ControlType.String,\n    title: \"태그 ID\"\n  },\n  inventoryId: {\n    hidden: ({\n      type\n    }) => type !== QueryType.Moloco,\n    type: ControlType.String,\n    title: \"인벤토리 ID\",\n    description: \"몰로코와 협의된 값 ex) campaign_29week\"\n  },\n  pageId: {\n    hidden: ({\n      type\n    }) => type !== QueryType.Moloco,\n    type: ControlType.String,\n    title: \"페이지 ID\",\n    description: \"해당 모듈이 노출될 이구위크 페이지 이름, 임의값으로 정해서 전달주시면 됩니다. *페이지당 1개의 고유 pageId 필요\"\n  },\n  categories: {\n    hidden: ({\n      type\n    }) => type !== QueryType.Moloco,\n    type: ControlType.Array,\n    title: \"카테고리\",\n    description: \"카테고리를 입력하면 기존 몰로코 데이터에서 해당 카테고리 데이터만 노출됩니다\",\n    control: {\n      type: ControlType.Object,\n      controls: {\n        categoryId: {\n          type: ControlType.String,\n          title: \"카테고리 ID\"\n        },\n        categoryName: {\n          type: ControlType.String,\n          title: \"카테고리 이름\"\n        }\n      }\n    }\n  }\n};\nexport {\n  BRAND_CURATION_CONTROLS,\n  COUPON_COLLECTION_CONTROLS,\n  COUPON_CONTROLS,\n  CUSTOM_CATEGORY_CONTROLS,\n  KEYWORD_COLLECTIONS_CONTROLS,\n  KEYWORD_COLLECTION_CONTROLS,\n  MOLOCO_CONTROL,\n  PREUSER_CONTROLS,\n  PRODUCT_CONTROLS,\n  QUERY_CONTROL,\n  RAFFLE_GROUP_CONTROLS,\n  RANKING_CONTROLS,\n  RECOMMENDATION_CONTROLS\n};\n","import { combineObjectPropertyControls } from \"../../../libs/property-controls/helpers.js\";\nimport { QUERY_CONTROL, COUPON_COLLECTION_CONTROLS, RANKING_CONTROLS, BRAND_CURATION_CONTROLS, KEYWORD_COLLECTIONS_CONTROLS, KEYWORD_COLLECTION_CONTROLS, RECOMMENDATION_CONTROLS, PRODUCT_CONTROLS } from \"../controls.js\";\nconst AUTO_TAGS_MODULE_QUERY = {\n  ...QUERY_CONTROL,\n  controls: combineObjectPropertyControls(KEYWORD_COLLECTION_CONTROLS, KEYWORD_COLLECTIONS_CONTROLS, BRAND_CURATION_CONTROLS, RANKING_CONTROLS, COUPON_COLLECTION_CONTROLS)\n};\nconst MANUAL_TAGS_MODULE_QUERY = {\n  ...QUERY_CONTROL,\n  controls: combineObjectPropertyControls(PRODUCT_CONTROLS, RECOMMENDATION_CONTROLS)\n};\nexport {\n  AUTO_TAGS_MODULE_QUERY,\n  MANUAL_TAGS_MODULE_QUERY\n};\n","import { QueryType } from \"../../types.js\";\nimport { getKeywordCollectionTagsResult, getCouponCollectionTagsResult } from \"../TagsModule.utils.js\";\nconst getKeywordCollectionTags = (query, userSegment) => {\n  if (query.productGroups === void 0) {\n    return {\n      values: []\n    };\n  }\n  return getKeywordCollectionTagsResult(query, userSegment);\n};\nconst getCouponCollectionTags = (query) => {\n  if (query.brandSales === void 0) {\n    return {\n      values: []\n    };\n  }\n  return getCouponCollectionTagsResult(query);\n};\nconst getRankingTags = (query) => {\n  if (query.childCategories === void 0) {\n    return {\n      values: []\n    };\n  }\n  const {\n    childCategories\n  } = query;\n  const inputs = childCategories.map((category) => ({\n    label: category.name,\n    query: {\n      ...query,\n      middleCategoryId: category.id\n    }\n  }));\n  const allCategory = {\n    label: \"전체\",\n    query\n  };\n  return {\n    values: [allCategory, ...inputs]\n  };\n};\nconst getTags = (query, userSegment) => {\n  if (!query) {\n    return {\n      values: []\n    };\n  }\n  switch (query.type) {\n    case QueryType.KeywordCollection:\n      return getKeywordCollectionTags(query, userSegment);\n    case QueryType.CouponCollection:\n      return getCouponCollectionTags(query);\n    case QueryType.Ranking:\n      return getRankingTags(query);\n    default:\n      return {\n        values: []\n      };\n  }\n};\nexport {\n  getTags\n};\n","import { QueryType } from \"../types.js\";\nconst createKey = (query) => {\n  var _a;\n  return ((_a = query == null ? void 0 : query.keys) == null ? void 0 : _a.join(\"-\")) ?? void 0;\n};\nconst MOLOCO_SHARED_KEY = \"moloco-shared\";\nconst getMolocoCacheQuery = (query) => {\n  if (query.type !== QueryType.Moloco) {\n    return query;\n  }\n  const molocoQuery = query;\n  return {\n    type: molocoQuery.type,\n    tagId: molocoQuery.tagId,\n    inventoryId: molocoQuery.inventoryId,\n    pageId: molocoQuery.pageId\n    // facetName은 의도적으로 제외\n    // 이유: 모든 탭 데이터가 이미 API에서 반환되므로\n    //       탭마다 다른 cache를 만들 필요가 없음\n  };\n};\nconst createMolocoKey = (query) => {\n  return [MOLOCO_SHARED_KEY, getMolocoCacheQuery(query)];\n};\nexport {\n  createKey,\n  createMolocoKey,\n  getMolocoCacheQuery\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { useQueryStore } from \"../../query-store/query.store.js\";\nimport { TagsElement } from \"../TagsElement/TagsElement.js\";\nimport { useMemo, useEffect } from \"react\";\nimport \"../../../../node_modules/@firebase/analytics/dist/esm/index.esm2017.js\";\nimport \"../../../../node_modules/firebase/app/dist/esm/index.esm.js\";\nimport { useCurrentUser } from \"../../../../hooks/useCurrentUser.js\";\nimport \"framer\";\nimport \"../../../../node_modules/@29cm/snowplow/dist/esm/core/snowplow.js\";\nimport \"../../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport \"../../../../config/index.js\";\nimport \"../../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport \"../../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../../apis/preuser/PreuserApiService.js\";\nimport \"../../../../node_modules/swr/mutation/dist/index.js\";\nimport \"../../../../hooks/stores/content/content.store.js\";\nimport \"../../../../hooks/stores/dialog/dialog.store.js\";\nimport \"../../../../hooks/stores/global-layout/global-layout.store.js\";\nimport \"../../../../hooks/stores/toast/toast.store.js\";\nimport \"../../../@shared/providers/ThemeProvider/ThemeProvider.js\";\nimport \"../../../@shared/providers/BreakpointProvider/BreakpointProvider.js\";\nimport \"../../../../hooks/stores/bottom-sheet/bottom-sheet.store.js\";\nimport \"react-dom\";\nimport \"../../../systems/Dialog/Dialog.module.css.js\";\nimport \"framer-motion\";\nimport \"../../../../containers/DialogContainer/DialogContainer.emitter.js\";\nimport { shallow as shallow$1 } from \"../../../../node_modules/zustand/esm/shallow.js\";\nimport \"../../../../utils/redirectLogin.js\";\nimport \"../../../../utils/event-properties/source.js\";\nimport { getTags } from \"./LinkedTagsModule.utils.js\";\nimport { createKey } from \"../../utils/key.js\";\nconst LinkedTagsModule = ({\n  value,\n  output,\n  layout\n}) => {\n  const user = useCurrentUser();\n  const [query, dispatchSetQuery] = useQueryStore((state) => [state.queries[value], state.dispatchSetQuery], shallow$1);\n  const {\n    values,\n    currentIndex\n  } = useMemo(() => getTags(query, user), [query, user]);\n  useEffect(() => {\n    if (values.length > 0 || !query) {\n      return;\n    }\n    dispatchSetQuery(output, query);\n  }, [query, values.length]);\n  return /* @__PURE__ */ jsx(TagsElement, { inputs: values, output, currentIndex, layout }, createKey(query));\n};\nexport {\n  LinkedTagsModule\n};\n","import { ControlType } from \"framer\";\nconst SEGMENT_CONTROLS = {\n  segment: {\n    title: \"세그먼트\",\n    type: ControlType.Array,\n    description: \"설정한 세그먼트 조건에 따라 노출/미노출이 됩니다.\",\n    control: {\n      type: ControlType.Object,\n      controls: {\n        type: {\n          type: ControlType.Enum,\n          title: \"타입\",\n          options: [\"login\", \"guest\", \"newBuyer\", \"categoryNewBuyerProduct\", \"categoryNewBuyerCoupon\", \"gender\"],\n          optionTitles: [\"로그인\", \"미로그인\", \"생애 첫구매\", \"카테고리 첫구매 상품\", \"카테고리 첫구매 쿠폰\", \"성별\"],\n          defaultValue: \"\"\n        },\n        groupId: {\n          hidden: ({\n            type\n          }) => type !== \"categoryNewBuyerProduct\",\n          type: ControlType.String,\n          title: \"그룹 ID\",\n          defaultValue: \"\"\n        },\n        couponId: {\n          hidden: ({\n            type\n          }) => type !== \"categoryNewBuyerCoupon\",\n          type: ControlType.String,\n          title: \"쿠폰 ID\",\n          defaultValue: \"\"\n        },\n        gender: {\n          hidden: ({\n            type\n          }) => type !== \"gender\",\n          type: ControlType.Enum,\n          title: \"성별\",\n          description: \"선택한 성별의 유저에게만 노출됩니다. 미로그인 유저에게는 항상 노출됩니다.\",\n          options: [\"M\", \"F\"],\n          optionTitles: [\"남성\", \"여성\"],\n          defaultValue: \"F\"\n        }\n      }\n    }\n  }\n};\nexport {\n  SEGMENT_CONTROLS\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { addPropertyControls, ControlType } from \"framer\";\nimport { TagsModuleInputType } from \"./TagsModule.types.js\";\nimport { AutoTagsModule } from \"./AutoTagsModule/AutoTagsModule.js\";\nimport { SectionLayout } from \"../../systems/curations/SectionLayout/SectionLayout.js\";\nimport { SWRErrorBoundary } from \"../../@shared/SWRErrorBoundary/SWRErrorBoundary.js\";\nimport { BREAKPOINT_CONTROLS } from \"../../../libs/property-controls/breakpoint.js\";\nimport { THEME_CONTROLS } from \"../../../libs/property-controls/theme.js\";\nimport { COMPONENT_ID_PROPS } from \"../../../libs/property-controls/component-id.js\";\nimport { TagsElement } from \"./TagsElement/TagsElement.js\";\nimport { MANUAL_TAGS_MODULE_QUERY, AUTO_TAGS_MODULE_QUERY } from \"./TagsModule.controls.js\";\nimport { LinkedTagsModule } from \"./LinkedTagsModule/LinkedTagsModule.js\";\nimport { SEGMENT_CONTROLS } from \"../../../libs/property-controls/segment.js\";\nconst TagsModuleInner = ({\n  input,\n  output,\n  layout\n}) => {\n  switch (input.type) {\n    case TagsModuleInputType.Linked:\n      return /* @__PURE__ */ jsx(LinkedTagsModule, { value: input.value, output, layout });\n    case TagsModuleInputType.Auto:\n      return /* @__PURE__ */ jsx(AutoTagsModule, { query: input.query, output, layout });\n    case TagsModuleInputType.Manual:\n      return /* @__PURE__ */ jsx(TagsElement, { inputs: input.values, output, layout });\n    default:\n      return null;\n  }\n};\nconst TagsModule = ({\n  theme,\n  breakpoint,\n  componentId,\n  segment,\n  ...rest\n}) => {\n  return /* @__PURE__ */ jsx(SectionLayout, { theme, breakpoint, componentId, segment, children: /* @__PURE__ */ jsx(SWRErrorBoundary, { children: /* @__PURE__ */ jsx(TagsModuleInner, { ...rest }) }) });\n};\naddPropertyControls(TagsModule, {\n  ...BREAKPOINT_CONTROLS,\n  ...THEME_CONTROLS,\n  ...SEGMENT_CONTROLS,\n  componentId: {\n    hidden: ({\n      input\n    }) => (input == null ? void 0 : input.type) === TagsModuleInputType.Linked,\n    ...COMPONENT_ID_PROPS.componentId\n  },\n  input: {\n    type: ControlType.Object,\n    title: \"입력 값\",\n    controls: {\n      type: {\n        type: ControlType.Enum,\n        title: \"유형\",\n        options: [TagsModuleInputType.Linked, TagsModuleInputType.Auto, TagsModuleInputType.Manual],\n        optionTitles: [\"연결\", \"자동\", \"수동\"]\n      },\n      value: {\n        hidden: ({\n          type\n        }) => type !== TagsModuleInputType.Linked,\n        type: ControlType.String,\n        title: \"출력 값\",\n        defaultValue: \"\"\n      },\n      values: {\n        hidden: ({\n          type\n        }) => type !== TagsModuleInputType.Manual,\n        type: ControlType.Array,\n        title: \"입력 값 목록\",\n        control: {\n          type: ControlType.Object,\n          title: \"입력 값\",\n          controls: {\n            label: {\n              type: ControlType.String,\n              title: \"이름\",\n              defaultValue: \"텍스트\"\n            },\n            query: MANUAL_TAGS_MODULE_QUERY\n          }\n        },\n        defaultValue: [{\n          label: \"텍스트\"\n        }]\n      },\n      query: {\n        hidden: ({\n          type\n        }) => type !== TagsModuleInputType.Auto,\n        ...AUTO_TAGS_MODULE_QUERY\n      }\n    }\n  },\n  output: {\n    type: ControlType.String,\n    title: \"출력 값\"\n  },\n  layout: {\n    type: ControlType.Object,\n    title: \"레이아웃\",\n    controls: {\n      padding: {\n        type: ControlType.FusedNumber,\n        title: \"패딩\",\n        defaultValue: 0,\n        toggleKey: \"isMixed\",\n        toggleTitles: [\"All\", \"Individual\"],\n        valueKeys: [\"paddingTop\", \"paddingRight\", \"paddingBottom\", \"paddingLeft\"],\n        valueLabels: [\"T\", \"R\", \"B\", \"L\"],\n        min: 0\n      }\n    }\n  }\n});\nexport {\n  TagsModule\n};\n","import{TagsModule}from\"https://asset.29cm.co.kr/contents/framer/components/modules/TagsModule/TagsModule.js\";TagsModule.displayName=\"[조립형]Tags\";export default TagsModule;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TagsModule\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TagsModule.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,useIsInCurrentNavigationTarget,RenderTarget}from\"framer\";import{isMotionValue,useInView}from\"framer-motion\";import{borderRadiusControl,defaultEvents,useIsBrowserSafari,useIsOnCanvas,useOnEnter,useOnExit,useRadius,useRenderTarget}from\"https://framerusercontent.com/modules/G4IfyjvwmaeSBpdb4TWu/OIjZRBmWDcIE2B6qgG1j/index.js\";// https://framer.com/m/framer/default-utils.js@^0.45.0\nimport{memo,useCallback,useEffect,useMemo,useRef,useState}from\"react\";var ObjectFitType;(function(ObjectFitType){ObjectFitType[\"Fill\"]=\"fill\";ObjectFitType[\"Contain\"]=\"contain\";ObjectFitType[\"Cover\"]=\"cover\";ObjectFitType[\"None\"]=\"none\";ObjectFitType[\"ScaleDown\"]=\"scale-down\";})(ObjectFitType||(ObjectFitType={}));var SrcType;(function(SrcType){SrcType[\"Video\"]=\"Upload\";SrcType[\"Url\"]=\"URL\";})(SrcType||(SrcType={}));const defaultVideo=\"https://framerusercontent.com/assets/MLWPbW1dUQawJLhhun3dBwpgJak.mp4\";// Reduce renders\nfunction getProps(props){const{width,height,topLeft,topRight,bottomRight,bottomLeft,id,children,...rest}=props;return rest;}/**\n * VIDEO\n *\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 112\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export function Video(props){const newProps=getProps(props);return /*#__PURE__*/_jsx(VideoMemo,{...newProps});}function usePlaybackControls(videoRef){const isInCurrentNavigationTarget=useIsInCurrentNavigationTarget();const requestingPlay=useRef(false);const isPlayingRef=useRef(false);const setProgress=useCallback(rawProgress=>{if(!videoRef.current)return;const newProgress=(rawProgress===1?.999:rawProgress)*videoRef.current.duration;const isAlreadySet=Math.abs(videoRef.current.currentTime-newProgress)<.1;if(videoRef.current.duration>0&&!isAlreadySet){videoRef.current.currentTime=newProgress;}},[]);const play=useCallback(()=>{const video=videoRef.current;if(!video)return;video.preload=\"auto\"// makes sure browsers don't throttle: https://html.spec.whatwg.org/multipage/media.html#:~:text=When%20the%20media%20resource%20is%20playing%2C%20hints%20to%20the%20user%20agent%20that%20bandwidth%20is%20to%20be%20considered%20scarce%2C%20e.g.%20suggesting%20throttling%20the%20download%20so%20that%20the%20media%20data%20is%20obtained%20at%20the%20slowest%20possible%20rate%20that%20still%20maintains%20consistent%20playback.\n;const isPlaying=video.currentTime>0&&video.onplaying&&!video.paused&&!video.ended&&video.readyState>=video.HAVE_CURRENT_DATA;if(!isPlaying&&video&&!requestingPlay.current&&isInCurrentNavigationTarget){requestingPlay.current=true;isPlayingRef.current=true;video.play().catch(e=>{})// It's likely fine, swallow error\n.finally(()=>requestingPlay.current=false);}},[]);const pause=useCallback(()=>{if(!videoRef.current||requestingPlay.current)return;videoRef.current.pause();isPlayingRef.current=false;},[]);return{play,pause,setProgress,isPlaying:isPlayingRef};}function useAutoplayBehavior({playingProp,muted,loop,playsinline,controls}){const[initialPlayingProp]=useState(()=>playingProp);const[hasPlayingPropChanged,setHasPlayingPropChanged]=useState(false);if(playingProp!==initialPlayingProp&&!hasPlayingPropChanged){setHasPlayingPropChanged(true);}const behavesAsGif=// passing `playing === true` on mount indicates that the video should\n// autoplay, like a GIF\ninitialPlayingProp&&muted&&loop&&playsinline&&!controls&&// Some users of the <Video> component use it by wrapping it with\n// another smart component and adding their own controls on top. (The\n// controls use transitions to control the video: e.g., when clicking\n// the play button, the smart component will transition to a state with\n// <Video playing={true} />.) In this case, we don't want the video to\n// behave as a gif, as it will be weird if the video suddenly started\n// acting as such (and auto-pausing when leaving the viewport) as soon\n// as the site visitor mutes it and clicks “Play”.\n!hasPlayingPropChanged;let autoplay;if(behavesAsGif)autoplay=\"on-viewport\";else if(initialPlayingProp)autoplay=\"on-mount\";else autoplay=\"no-autoplay\";return autoplay;}const VideoMemo=/*#__PURE__*/memo(function VideoInner(props){const{// default props\nsrcType=\"URL\",srcUrl,srcFile=\"\",posterEnabled=false,controls=false,playing=true,loop=true,muted=true,playsinline=true,restartOnEnter=false,objectFit=\"cover\",backgroundColor=\"rgba(0,0,0,0)\",radius=0,volume=25,startTime:startTimeProp=0,poster,playing:playingProp,progress,onSeeked,onPause,onPlay,onEnd,onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp}=props;const videoRef=useRef();const isSafari=useIsBrowserSafari();const wasPausedOnLeave=useRef(null);const wasEndedOnLeave=useRef(null);const isOnCanvas=useIsOnCanvas();const renderTarget=useRenderTarget();const isStaticRenderer=isOnCanvas||renderTarget===RenderTarget.export;const borderRadius=useRadius(props);// Hard-coding `autoplayBehavior` and `isInViewport` when on canvas as a\n// tiny perf optimization. isStaticRenderer won’t change through the lifecycle of\n// the component, so using these hooks conditionally should be safe\nconst autoplayBehavior=isStaticRenderer?\"no-autoplay\":useAutoplayBehavior({playingProp,muted,loop,playsinline,controls});const isInViewport=isStaticRenderer?true:useInView(videoRef);const isCloseToViewport=isStaticRenderer?false:useInView(videoRef,{margin:\"10%\",once:true});// Video elements behave oddly at 100% duration\nconst startTime=startTimeProp===100?99.9:startTimeProp;const{play,pause,setProgress,isPlaying}=usePlaybackControls(videoRef);// Pause/play via props\nuseEffect(()=>{if(isStaticRenderer)return;if(autoplayBehavior===\"on-viewport\")return;if(playingProp)play();else pause();},[autoplayBehavior,playingProp]);// Pause/play via viewport\nuseEffect(()=>{if(isStaticRenderer)return;// this also explicitly retries playing for videos that play on-mount, which could fail if they're not muted for example\nif(isInViewport&&playingProp&&autoplayBehavior!==\"no-autoplay\")play();if(autoplayBehavior!==\"on-viewport\")return;pause();},[autoplayBehavior,isInViewport,playingProp]);useEffect(()=>{if(!isOnCanvas||poster||posterEnabled||startTime||!videoRef.current)return;// forces a poster to show up when the video is in an iframe; this is needed when `poster` changes\nvideoRef.current.currentTime=.01;},[posterEnabled,poster,startTime]);/**\n     * The Video component has some effects that sync the video element with props\n     * like `startTime`, `progress`, etc. React calls these effects whenever these\n     * props change. However, it also calls them on the first mount, and this is\n     * troublesome – if we’re doing SSR, and the user changed the video state before\n     * the video was hydrated, the initial `useEffect` call will reset the video\n     * state. To avoid this, we use this flag.\n     */const isMountedAndReadyForProgressChanges=useRef(false);// Allow scrubbling via progress prop\n// 1) Handle cases when the progress prop itself changes\nuseEffect(()=>{if(!isMountedAndReadyForProgressChanges.current){isMountedAndReadyForProgressChanges.current=true;return;}const rawProgressValue=isMotionValue(progress)?progress.get():(progress??0)*.01;setProgress(// When the progress value exists (e.g. <Video startTime={10}\n// progress={50} />), we respect the `progress` value over\n// `startTime`, even if `startTime` changes. That’s because\n// `startTime` == start == changing it shouldn’t affect the current\n// progress\n(rawProgressValue??0)||// Then why fall back to `startTime` when `progress` doesn’t exist,\n// you might ask? Now, that’s for\n// - canvas UX: we want the video progress to change when the user\n//   is scrobbling the “Start Time” in component settings.\n// - backwards compatibility: maybe some users *are* scrobbling\n//   using `startTime` instead of `progress`? We don’t know, and it\n//   always supported it, so let’s not break it\n(startTime??0)/100);},[startTime,srcFile,srcUrl,progress]);// 2) Handle cases when the motion value inside the progress prop changes\nuseEffect(()=>{if(!isMotionValue(progress))return;return progress.on(\"change\",value=>setProgress(value));},[progress]);// (Prototyping) Checking if we need to play on navigation enter\nuseOnEnter(()=>{if(wasPausedOnLeave.current===null)return;if(videoRef.current){// if (restartOnEnter) setProgress(0)\nif(!wasEndedOnLeave&&loop||!wasPausedOnLeave.current)play();}});// (Prototyping) Pausing & saving playing state on navigation exit\nuseOnExit(()=>{if(videoRef.current){wasEndedOnLeave.current=videoRef.current.ended;wasPausedOnLeave.current=videoRef.current.paused;pause();}});const src=useMemo(()=>{let fragment=\"\";// if (\n//     startTime > 0 &&\n//     videoRef.current &&\n//     !isNaN(videoRef.current.duration) &&\n//     !isStaticRenderer\n// ) {\n//     console.log(startTime, videoRef.current.duration)\n//     fragment = `#t=${startTime * videoRef.current.duration}`\n// }\nif(srcType===\"URL\")return srcUrl+fragment;if(srcType===\"Upload\")return srcFile+fragment;},[srcType,srcFile,srcUrl,startTime]);// Autoplay via JS to work in Safari\nuseEffect(()=>{if(isSafari&&videoRef.current&&autoplayBehavior===\"on-mount\"){setTimeout(()=>play(),50);}},[]);// Volume Control\nuseEffect(()=>{if(videoRef.current&&!muted)videoRef.current.volume=(volume??0)/100;},[volume]);// When video is ready, set start-time, then autoplay if needed\nconst handleReady=()=>{const video=videoRef.current;if(!video)return;if(video.currentTime<.3&&startTime>0)setProgress((startTime??0)*.01);if(// when the component updates (e.g. only srcFile/url changes), and the video was already playing, keep playing\nisPlaying.current||autoplayBehavior===\"on-mount\"||playingProp&&autoplayBehavior===\"on-viewport\"&&isInViewport)play();};return /*#__PURE__*/_jsx(\"video\",{onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp,src:src,loop:loop,ref:videoRef,onSeeked:e=>onSeeked?.(e),onPause:e=>onPause?.(e),onPlay:e=>onPlay?.(e),onEnded:e=>onEnd?.(e),autoPlay:isPlaying.current||autoplayBehavior===\"on-mount\"||playingProp&&autoplayBehavior===\"on-viewport\"&&isInViewport,preload:isPlaying.current?\"auto\":isStaticRenderer&&!poster?\"metadata\":autoplayBehavior!==\"on-mount\"&&!isCloseToViewport?\"none\":// `autoplay` overrides this too\n\"metadata\",poster:posterEnabled&&!srcFile&&srcUrl===defaultVideo?\"https://framerusercontent.com/images/5ILRvlYXf72kHSVHqpa3snGzjU.jpg\":posterEnabled&&poster?poster:undefined,onLoadedData:handleReady,controls:controls,muted:isStaticRenderer?true:muted,playsInline:playsinline,style:{cursor:!!onClick?\"pointer\":\"auto\",width:\"100%\",height:\"100%\",borderRadius,display:\"block\",objectFit:objectFit,backgroundColor:backgroundColor,objectPosition:\"50% 50%\"}});});Video.displayName=\"Video\";function capitalizeFirstLetter(value){return value.charAt(0).toUpperCase()+value.slice(1);}export function titleCase(value){const groups=value.match(/[A-Z]{2,}|[A-Z][a-z]+|[a-z]+|[A-Z]|\\d+/gu)||[];return groups.map(capitalizeFirstLetter).join(\" \");}const objectFitOptions=[\"cover\",\"fill\",\"contain\",\"scale-down\",\"none\"];addPropertyControls(Video,{srcType:{type:ControlType.Enum,displaySegmentedControl:true,title:\"Source\",options:[\"URL\",\"Upload\"]},srcUrl:{type:ControlType.String,title:\"URL\",defaultValue:\"https://framerusercontent.com/assets/MLWPbW1dUQawJLhhun3dBwpgJak.mp4\",hidden(props){return props.srcType===\"Upload\";}},srcFile:{type:ControlType.File,title:\"File\",allowedFileTypes:[\"mp4\",\"webm\"],hidden(props){return props.srcType===\"URL\";}},playing:{type:ControlType.Boolean,title:\"Playing\",enabledTitle:\"Yes\",disabledTitle:\"No\"},...borderRadiusControl,posterEnabled:{type:ControlType.Boolean,title:\"Poster\",enabledTitle:\"Yes\",disabledTitle:\"No\"},poster:{type:ControlType.Image,title:\"Image\",hidden:({posterEnabled})=>!posterEnabled,description:\"We recommend adding a poster. [Learn more](https://www.framer.com/help/articles/how-are-videos-optimized-in-framer/).\"},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"rgba(0,0,0,0)\"},startTime:{title:\"Start Time\",type:ControlType.Number,min:0,max:100,step:.1,unit:\"%\"},loop:{type:ControlType.Boolean,title:\"Loop\",enabledTitle:\"Yes\",disabledTitle:\"No\"},objectFit:{type:ControlType.Enum,title:\"Fit\",options:objectFitOptions,optionTitles:objectFitOptions.map(titleCase)},// restartOnEnter: {\n//     type: ControlType.Boolean,\n//     title: \"On ReEnter\",\n//     enabledTitle: \"Restart\",\n//     disabledTitle: \"Resume\",\n// },\ncontrols:{type:ControlType.Boolean,title:\"Controls\",enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:false},muted:{type:ControlType.Boolean,title:\"Muted\",enabledTitle:\"Yes\",disabledTitle:\"No\"},volume:{type:ControlType.Number,max:100,min:0,unit:\"%\",hidden:({muted})=>muted,defaultValue:25},onEnd:{type:ControlType.EventHandler},onSeeked:{type:ControlType.EventHandler},onPause:{type:ControlType.EventHandler},onPlay:{type:ControlType.EventHandler},...defaultEvents});\nexport const __FramerMetadata__ = {\"exports\":{\"VideoProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"titleCase\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Video\":{\"type\":\"reactComponent\",\"name\":\"Video\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"112\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicWidth\":\"200\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Video.map","import \"react/jsx-runtime\";\nimport { download } from \"../../@shared/Icon/assets/download.js\";\nimport { plus } from \"../../@shared/Icon/assets/plus.js\";\nimport { chevronRight } from \"../../@shared/Icon/assets/chevronRight.js\";\nimport { chevronDown } from \"../../@shared/Icon/assets/chevronDown.js\";\nimport { heart } from \"../../@shared/Icon/assets/heart.js\";\nimport { bell } from \"../../@shared/Icon/assets/bell.js\";\nimport { gift } from \"../../@shared/Icon/assets/gift.js\";\nimport { share } from \"../../@shared/Icon/assets/share.js\";\nimport { scrap } from \"../../@shared/Icon/assets/scrap.js\";\nimport { lock } from \"../../@shared/Icon/assets/lock.js\";\nimport { lockOff } from \"../../@shared/Icon/assets/lockOff.js\";\nconst prefixIconAssets = {\n  scrap,\n  lock,\n  lockOff,\n  heart,\n  bell,\n  gift,\n  share\n};\nconst postfixIconAssets = {\n  plus,\n  chevronRight,\n  download,\n  chevronDown,\n  share\n};\nconst PREFIX_ICON_OPTIONS = Object.keys(prefixIconAssets);\nconst POSTFIX_ICON_OPTIONS = Object.keys(postfixIconAssets);\nexport {\n  POSTFIX_ICON_OPTIONS,\n  PREFIX_ICON_OPTIONS,\n  postfixIconAssets,\n  prefixIconAssets\n};\n","import { jsx, jsxs } from \"react/jsx-runtime\";\nimport { Icon } from \"../Icon/Icon.js\";\nimport \"react\";\nimport \"../../../node_modules/@firebase/analytics/dist/esm/index.esm2017.js\";\nimport \"../../../node_modules/firebase/app/dist/esm/index.esm.js\";\nimport \"../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport \"../../../config/index.js\";\nimport \"../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport \"../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../apis/preuser/PreuserApiService.js\";\nimport \"framer\";\nimport \"../../../node_modules/@29cm/snowplow/dist/esm/core/snowplow.js\";\nimport \"../../../node_modules/swr/mutation/dist/index.js\";\nimport \"../../../hooks/stores/content/content.store.js\";\nimport \"../../../hooks/stores/dialog/dialog.store.js\";\nimport \"../../../hooks/stores/global-layout/global-layout.store.js\";\nimport \"../../../hooks/stores/toast/toast.store.js\";\nimport { useTheme } from \"../../../hooks/useTheme.js\";\nimport { useBreakpoint } from \"../../../hooks/useBreakpoint.js\";\nimport \"../../../hooks/stores/bottom-sheet/bottom-sheet.store.js\";\nimport \"react-dom\";\nimport \"../../systems/Dialog/Dialog.module.css.js\";\nimport \"framer-motion\";\nimport \"../../../containers/DialogContainer/DialogContainer.emitter.js\";\nimport \"../../../utils/redirectLogin.js\";\nimport \"../../../utils/event-properties/source.js\";\nimport { Button as Default } from \"../Button/Button.js\";\nimport { typography } from \"../../../styles/typography.js\";\nconst ErrorFallback = ({\n  iconType,\n  iconSize = 40,\n  title,\n  descriptions,\n  buttonText,\n  buttonPrefixIcon,\n  buttonPostfixIcon,\n  onButtonClick\n}) => {\n  const breakpoint = useBreakpoint();\n  const theme = useTheme();\n  const errorFallbackDescriptions = typeof descriptions === \"string\" ? [descriptions] : descriptions;\n  return /* @__PURE__ */ jsx(\"div\", { style: {\n    ...containerStyle,\n    ...containerStyleByBreakpoint[breakpoint]\n  }, children: /* @__PURE__ */ jsxs(\"div\", { style: {\n    ...wrapperStyle,\n    ...wrapperStyleByTheme[theme],\n    ...wrapperStyleByBreakpoint[breakpoint]\n  }, children: [\n    /* @__PURE__ */ jsx(Icon, { type: iconType, size: iconSize, weight: \"light\", color: iconColorByTheme[theme] }),\n    /* @__PURE__ */ jsxs(\"div\", { style: detailLayout, children: [\n      /* @__PURE__ */ jsx(\"span\", { style: {\n        ...titleStyle,\n        ...titleStyleByTheme[theme]\n      }, children: title }),\n      /* @__PURE__ */ jsx(\"div\", { style: {\n        ...descriptionStyle,\n        ...descriptionStyleByTheme[theme]\n      }, children: errorFallbackDescriptions.map((description, index) => (\n        // eslint-disable-next-line react/no-array-index-key\n        /* @__PURE__ */ jsx(\"span\", { children: description }, index)\n      )) })\n    ] }),\n    /* @__PURE__ */ jsx(Default, { ...toIconProps(buttonPrefixIcon, buttonPostfixIcon), variant: \"custom\", size: \"xSmall\", backgroundColor: buttonColorByTheme[theme].backgroundColor, color: buttonColorByTheme[theme].color, onClick: onButtonClick, children: buttonText })\n  ] }) });\n};\nconst toIconProps = (prefixIcon, postfixIcon) => {\n  if (!postfixIcon) {\n    return {\n      prefixIcon\n    };\n  }\n  return {\n    postfixIcon\n  };\n};\nconst containerStyle = {\n  width: \"100%\",\n  paddingBottom: 16\n};\nconst containerStyleByBreakpoint = {\n  desktop: {\n    paddingLeft: 0,\n    paddingRight: 0\n  },\n  tablet: {\n    paddingLeft: 20,\n    paddingRight: 20\n  },\n  mobile: {\n    paddingLeft: 20,\n    paddingRight: 20\n  }\n};\nconst wrapperStyle = {\n  width: \"100%\",\n  maxWidth: 1080,\n  display: \"flex\",\n  flexDirection: \"column\",\n  justifyContent: \"center\",\n  alignItems: \"center\",\n  gap: 8,\n  borderRadius: \"6px\"\n};\nconst wrapperStyleByTheme = {\n  light: {\n    backgroundColor: \"#F4F4F4\"\n  },\n  dark: {\n    backgroundColor: \"#19191A\"\n  }\n};\nconst wrapperStyleByBreakpoint = {\n  desktop: {\n    padding: \"40px 16px\"\n  },\n  tablet: {\n    padding: \"24px 16px\"\n  },\n  mobile: {\n    padding: \"24px 16px\"\n  }\n};\nconst iconColorByTheme = {\n  light: \"#000000\",\n  dark: \"#FFFFFF\"\n};\nconst buttonColorByTheme = {\n  light: {\n    backgroundColor: \"#ffffff\",\n    color: \"#000000\"\n  },\n  dark: {\n    backgroundColor: \"#474747\",\n    color: \"#FFFFFF\"\n  }\n};\nconst detailLayout = {\n  display: \"flex\",\n  flexDirection: \"column\",\n  alignItems: \"center\",\n  gap: \"4px\",\n  textAlign: \"center\",\n  paddingBottom: \"8px\"\n};\nconst titleStyle = {\n  ...typography(18, 500)\n};\nconst titleStyleByTheme = {\n  light: {\n    color: \"#000000\"\n  },\n  dark: {\n    color: \"#FFFFFF\"\n  }\n};\nconst descriptionStyle = {\n  display: \"flex\",\n  flexDirection: \"column\",\n  whiteSpace: \"pre-wrap\",\n  ...typography(14, 400)\n};\nconst descriptionStyleByTheme = {\n  light: {\n    color: \"#474747\"\n  },\n  dark: {\n    color: \"#A0A0A0\"\n  }\n};\nexport {\n  ErrorFallback\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { ErrorFallback } from \"../../../@shared/ErrorFallback/ErrorFallback.js\";\nconst NoContent = ({\n  onClick\n}) => {\n  return /* @__PURE__ */ jsx(ErrorFallback, { iconType: \"clock\", iconSize: 40, title: \"서비스 지연 중\", descriptions: `현재 접속량이 많아 서비스가 지연되고 있습니다.\n잠시 후 ‘새로고침’ 해주세요.`, buttonText: \"새로고침\", buttonPrefixIcon: \"redo\", onButtonClick: onClick });\n};\nexport {\n  NoContent\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { forwardRef } from \"react\";\nconst Grid = ({\n  as,\n  children,\n  style,\n  row,\n  column,\n  ...rest\n}, ref) => {\n  const Element = as ?? \"div\";\n  return /* @__PURE__ */ jsx(Element, { ...rest, ref, style: {\n    display: \"grid\",\n    rowGap: row == null ? void 0 : row.gap,\n    columnGap: column == null ? void 0 : column.gap,\n    gridAutoRows: row == null ? void 0 : row.width,\n    gridAutoColumns: column == null ? void 0 : column.width,\n    ...(column == null ? void 0 : column.count) !== void 0 ? verticalGridStyle(column.count, column.minWidth ?? 0) : void 0,\n    ...(row == null ? void 0 : row.count) !== void 0 ? horizontalGridStyle(row.count, row.minWidth ?? 0) : void 0,\n    ...style\n  }, children });\n};\nconst toPixel = (value) => {\n  if (typeof value === \"number\") {\n    return `${value}px`;\n  }\n  return value.includes(\"px\") ? value : `${value}px`;\n};\nconst verticalGridStyle = (count, minWidth) => ({\n  // NOTE(임규민): minmax 를 사용하지 않으면 특정 웹뷰 환경에서 크기가 맞지 않는 문제가 있음.\n  gridTemplateColumns: `repeat(${count === \"auto\" ? \"auto-fill\" : count}, minmax(${toPixel(minWidth)}, 1fr))`,\n  gridAutoFlow: \"row\"\n});\nconst horizontalGridStyle = (count, minWidth) => ({\n  // NOTE(임규민): minmax 를 사용하지 않으면 특정 웹뷰 환경에서 크기가 맞지 않는 문제가 있음.\n  gridTemplateRows: `repeat(${count === \"auto\" ? \"auto-fill\" : count}, minmax(${toPixel(minWidth)}, auto))`,\n  gridAutoRows: \"min-content\",\n  gridAutoFlow: \"column\"\n});\nconst Default = forwardRef(Grid);\nexport {\n  Default as Grid\n};\n","import { useContext } from \"react\";\nimport { ProductsContext } from \"./Root.js\";\nconst useProductsContext = () => {\n  const context = useContext(ProductsContext);\n  if (!context) {\n    throw new Error(\"useProductsContext should be used within Root\");\n  }\n  return context;\n};\nexport {\n  useProductsContext\n};\n","import { jsx } from \"react/jsx-runtime\";\nconst ArrowIcon = ({\n  color,\n  size,\n  style,\n  ...rest\n}) => {\n  const svgHeight = size ?? 30;\n  const svgWidth = svgHeight * 12 / 30;\n  return /* @__PURE__ */ jsx(\"div\", { ...rest, style: {\n    ...containerStyle,\n    ...size && {\n      width: size,\n      height: size\n    },\n    ...style\n  }, children: /* @__PURE__ */ jsx(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: svgWidth, height: svgHeight, viewBox: \"0 0 12 30\", fill: \"none\", children: /* @__PURE__ */ jsx(\"path\", { d: \"M1 1L11 15L1 29\", stroke: color, strokeWidth: \"2\", strokeLinecap: \"round\", strokeLinejoin: \"round\" }) }) });\n};\nconst containerStyle = {\n  width: 50,\n  height: 50,\n  display: \"flex\",\n  alignItems: \"center\",\n  justifyContent: \"center\"\n};\nexport {\n  ArrowIcon\n};\n","import { jsxs, jsx } from \"react/jsx-runtime\";\nimport { forwardRef, useRef, useState, useEffect } from \"react\";\nimport { Grid as Default } from \"../../../@shared/layouts/Grid.js\";\nimport { ProductCardType } from \"../../../@shared/ProductCard/ProductCard.types.js\";\nimport \"../../../../node_modules/@firebase/analytics/dist/esm/index.esm2017.js\";\nimport \"../../../../node_modules/firebase/app/dist/esm/index.esm.js\";\nimport \"../../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport \"../../../../config/index.js\";\nimport \"../../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport \"../../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../../apis/preuser/PreuserApiService.js\";\nimport \"framer\";\nimport \"../../../../node_modules/@29cm/snowplow/dist/esm/core/snowplow.js\";\nimport \"../../../../node_modules/swr/mutation/dist/index.js\";\nimport \"../../../../hooks/stores/content/content.store.js\";\nimport \"../../../../hooks/stores/dialog/dialog.store.js\";\nimport \"../../../../hooks/stores/global-layout/global-layout.store.js\";\nimport \"../../../../hooks/stores/toast/toast.store.js\";\nimport { useTheme } from \"../../../../hooks/useTheme.js\";\nimport { useBreakpoint } from \"../../../../hooks/useBreakpoint.js\";\nimport \"../../../../hooks/stores/bottom-sheet/bottom-sheet.store.js\";\nimport \"react-dom\";\nimport \"../../Dialog/Dialog.module.css.js\";\nimport \"framer-motion\";\nimport \"../../../../containers/DialogContainer/DialogContainer.emitter.js\";\nimport \"../../../../utils/redirectLogin.js\";\nimport \"../../../../utils/event-properties/source.js\";\nimport { mergeRefs } from \"../../../../utils/react/mergeRefs.js\";\nimport { useProductsContext } from \"./Root.hooks.js\";\nimport { ArrowIcon } from \"../ArrowIcon/ArrowIcon.js\";\nconst NAVIGATOR_SIZE = 50;\nconst HorizontalList = forwardRef(({\n  style,\n  listStyle,\n  children,\n  options,\n  pagination = false,\n  padding,\n  navigatorOffset\n}, ref) => {\n  const breakpoint = useBreakpoint();\n  const theme = useTheme();\n  const {\n    pending,\n    initialHasNext\n  } = useProductsContext();\n  const gridRef = useRef(null);\n  const isScrolling = useRef(false);\n  const {\n    card,\n    row,\n    column,\n    navigator\n  } = options;\n  const {\n    type = ProductCardType.CARD\n  } = card ?? {};\n  const [hasPrevious, setHasPrevious] = useState(false);\n  const [hasNext, setHasNext] = useState(initialHasNext);\n  const inset = (column == null ? void 0 : column.gap) ?? 0;\n  const isBarType = type === ProductCardType.BAR;\n  const applyScrollSnap = isBarType && breakpoint !== \"desktop\";\n  const shouldRenderNavigator = pagination && navigator;\n  const scrollTo = (direction) => {\n    if (isScrolling.current || pending) {\n      return;\n    }\n    const container = gridRef.current;\n    if (container === null) {\n      return;\n    }\n    const position = getScrollPosition(container, inset, direction);\n    const hasRemainingNextOffset = position < Math.ceil(container.scrollWidth - container.clientWidth);\n    const hasRemainingPrevOffset = position > 0;\n    setHasNext(hasRemainingNextOffset || initialHasNext);\n    setHasPrevious(hasRemainingPrevOffset);\n    isScrolling.current = true;\n    container.scroll({\n      behavior: \"smooth\",\n      left: position\n    });\n    setTimeout(() => {\n      isScrolling.current = false;\n    }, 700);\n  };\n  const handlePreviousClick = () => {\n    if (hasPrevious) {\n      scrollTo(\"previous\");\n    }\n  };\n  const handleNextClick = () => {\n    if (hasNext) {\n      scrollTo(\"next\");\n    }\n  };\n  useEffect(() => {\n    if (pending) {\n      return;\n    }\n    const container = gridRef.current;\n    if (container === null) {\n      return;\n    }\n    setHasNext(container.scrollWidth > container.clientWidth || initialHasNext);\n  }, [pending]);\n  return /* @__PURE__ */ jsxs(\"div\", { style: {\n    ...containerStyle,\n    ...style\n  }, children: [\n    shouldRenderNavigator ? /* @__PURE__ */ jsx(ArrowIcon, { style: {\n      ...baseNavigatorStyle,\n      ...leftNavigatorStyle,\n      ...navigatorOffset !== void 0 && {\n        left: `-${navigatorOffset}px`\n      }\n    }, color: hasPrevious ? iconColorByTheme[theme] : disabledIconColorByTheme[theme], onClick: handlePreviousClick }) : null,\n    /* @__PURE__ */ jsx(Default, { ref: mergeRefs([ref, gridRef]), style: {\n      ...wrapperResetStyle,\n      ...wrapperStyle,\n      ...wrapperStyleByBreakpoint[breakpoint],\n      overflowX: navigator ? \"hidden\" : \"scroll\",\n      overflowY: \"hidden\",\n      scrollSnapType: applyScrollSnap ? \"x mandatory\" : \"none\",\n      WebkitScrollSnapType: applyScrollSnap ? \"x mandatory\" : \"none\",\n      ...padding ? {\n        padding: `${padding.top ?? 0}px ${padding.right ?? 0}px ${padding.bottom ?? 0}px ${padding.left ?? 0}px`,\n        scrollPaddingLeft: padding.left ?? 0,\n        scrollPaddingRight: padding.right ?? 0\n      } : void 0,\n      ...listStyle\n    }, row, column, children }),\n    shouldRenderNavigator ? /* @__PURE__ */ jsx(ArrowIcon, { style: {\n      ...baseNavigatorStyle,\n      ...rightNavigatorStyle,\n      ...navigatorOffset !== void 0 && {\n        right: `-${navigatorOffset}px`\n      }\n    }, color: hasNext ? iconColorByTheme[theme] : disabledIconColorByTheme[theme], onClick: handleNextClick }) : null\n  ] });\n});\nconst getScrollPosition = (container, inset, direction) => {\n  const offset = container.clientWidth + inset;\n  return Math.ceil(container.scrollLeft + (direction === \"previous\" ? -offset : offset));\n};\nconst containerStyle = {\n  position: \"relative\",\n  width: \"100%\"\n};\nconst iconColorByTheme = {\n  light: \"#000\",\n  dark: \"#fff\"\n};\nconst disabledIconColorByTheme = {\n  light: \"#a0a0a0\",\n  dark: \"#474747\"\n};\nconst baseNavigatorStyle = {\n  position: \"absolute\",\n  top: \"50%\",\n  cursor: \"pointer\"\n};\nconst leftNavigatorStyle = {\n  left: `-${NAVIGATOR_SIZE}px`,\n  transform: \"translateY(-50%) rotate(180deg)\"\n};\nconst rightNavigatorStyle = {\n  right: `-${NAVIGATOR_SIZE}px`,\n  transform: \"translateY(-50%)\"\n};\nconst wrapperResetStyle = {\n  padding: 0,\n  margin: 0\n};\nconst wrapperStyle = {\n  padding: \"0 20px\",\n  msOverflowStyle: \"none\",\n  scrollbarWidth: \"none\"\n};\nconst wrapperStyleByBreakpoint = {\n  mobile: {\n    padding: \"0 20px\",\n    scrollPaddingLeft: 20,\n    scrollPaddingRight: 20\n  },\n  tablet: {\n    padding: \"0 20px\",\n    scrollPaddingLeft: 20,\n    scrollPaddingRight: 20\n  },\n  desktop: {\n    padding: 0\n  }\n};\nexport {\n  HorizontalList\n};\n","const isLast = (list, index) => list.length - 1 === index;\nexport {\n  isLast\n};\n","function noop() {\n}\nexport {\n  noop as default\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { Intersection } from \"../../../@shared/Intersection/Intersection.js\";\nimport \"react-dom\";\nimport \"../../../@shared/Icon/Icon.js\";\nimport { useProductsContext } from \"./Root.hooks.js\";\nimport { isLast } from \"../../../../utils/isLast.js\";\nimport noop from \"../../../../node_modules/lodash-es/noop.js\";\nconst Item = ({\n  children,\n  index,\n  onLastItemView = noop\n}) => {\n  const {\n    products,\n    initialHasNext\n  } = useProductsContext();\n  if (isLast(products, index) && initialHasNext) {\n    return /* @__PURE__ */ jsx(Intersection, { style: itemStyle, margin: \"200px\", onView: onLastItemView, children });\n  }\n  return /* @__PURE__ */ jsx(\"div\", { style: itemStyle, children });\n};\nconst itemStyle = {\n  scrollSnapAlign: \"start\",\n  boxSizing: \"border-box\"\n};\nexport {\n  Item\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { forwardRef } from \"react\";\nimport { Grid as Default } from \"../../../@shared/layouts/Grid.js\";\nimport { useBreakpoint } from \"../../../../hooks/useBreakpoint.js\";\nimport { ComponentName } from \"../../../../styles/ComponentName.js\";\nimport { createWithStyle } from \"../../../../styles/createWithStyle.js\";\nimport { css } from \"../../../../styles/css.js\";\nimport \"../../../../hooks/stores/content/content.store.js\";\nimport \"../../../../utils/event-properties/source.js\";\nimport { isCanvas } from \"../../../../utils/framer/isCanvas.js\";\nimport \"framer\";\nimport { ProductCardType } from \"../../../@shared/ProductCard/ProductCard.types.js\";\nconst {\n  classNames,\n  withStyle\n} = createWithStyle(ComponentName.ProductsVerticalList, {\n  container: css`\n    &[data-card-type='card'],\n    &[data-card-type='card-detailed'] {\n      @media (max-width: 614px) {\n        grid-template-columns: repeat(2, minmax(100px, 1fr)) !important;\n      }\n    }\n\n    &[data-card-type='bar'] {\n      @media (max-width: 614px) {\n        grid-template-columns: repeat(1, minmax(100px, 1fr)) !important;\n      }\n    }\n  `\n});\nconst VerticalList = withStyle(forwardRef(({\n  style,\n  children,\n  options,\n  padding\n}, ref) => {\n  const breakpoint = useBreakpoint();\n  const {\n    row,\n    column,\n    card\n  } = options;\n  const {\n    type = ProductCardType.CARD\n  } = card ?? {};\n  const isAutoColumn = (column == null ? void 0 : column.count) === \"auto\";\n  const shouldApplyCanvasStyle = isAutoColumn && isCanvas() && breakpoint === \"mobile\";\n  return /* @__PURE__ */ jsx(Default, { ref, className: isAutoColumn ? classNames.container : void 0, style: {\n    ...wrapperResetStyle,\n    ...wrapperStyleByBreakpoint[breakpoint],\n    ...shouldApplyCanvasStyle ? wrapperMobileCanvasStyle[type] : void 0,\n    ...padding ? {\n      padding: `${padding.top ?? 0}px ${padding.right ?? 0}px ${padding.bottom ?? 0}px ${padding.left ?? 0}px`\n    } : void 0,\n    ...style\n  }, row, column, \"data-card-type\": type, children });\n}));\nconst wrapperResetStyle = {\n  padding: 0,\n  margin: 0\n};\nconst wrapperMobileCanvasStyle = {\n  [ProductCardType.CARD]: {\n    gridTemplateColumns: \"repeat(2, minmax(100px, 1fr))\"\n  },\n  [ProductCardType.CARD_DETAILED]: {\n    gridTemplateColumns: \"repeat(2, minmax(100px, 1fr))\"\n  },\n  [ProductCardType.BAR]: {\n    gridTemplateColumns: \"repeat(1, minmax(100px, 1fr))\"\n  }\n};\nconst wrapperStyleByBreakpoint = {\n  mobile: {\n    padding: \"0 20px\"\n  },\n  tablet: {\n    padding: \"0 20px\"\n  },\n  desktop: {\n    padding: 0\n  }\n};\nexport {\n  VerticalList\n};\n","import { jsx, jsxs } from \"react/jsx-runtime\";\nimport { createContext, forwardRef } from \"react\";\nimport { useProductGroupHeart } from \"../../../../hooks/product/useProductGroupHeart.js\";\nimport \"../../../../node_modules/@firebase/analytics/dist/esm/index.esm2017.js\";\nimport \"../../../../node_modules/firebase/app/dist/esm/index.esm.js\";\nimport \"../../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport \"../../../../config/index.js\";\nimport \"../../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport \"../../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../../apis/preuser/PreuserApiService.js\";\nimport \"framer\";\nimport \"../../../../node_modules/@29cm/snowplow/dist/esm/core/snowplow.js\";\nimport \"../../../../node_modules/swr/mutation/dist/index.js\";\nimport \"../../../../hooks/stores/content/content.store.js\";\nimport \"../../../../hooks/stores/dialog/dialog.store.js\";\nimport \"../../../../hooks/stores/global-layout/global-layout.store.js\";\nimport \"../../../../hooks/stores/toast/toast.store.js\";\nimport \"../../../@shared/providers/ThemeProvider/ThemeProvider.js\";\nimport { useBreakpoint } from \"../../../../hooks/useBreakpoint.js\";\nimport \"../../../../hooks/stores/bottom-sheet/bottom-sheet.store.js\";\nimport \"react-dom\";\nimport \"../../Dialog/Dialog.module.css.js\";\nimport \"framer-motion\";\nimport \"../../../../containers/DialogContainer/DialogContainer.emitter.js\";\nimport \"../../../../utils/redirectLogin.js\";\nimport \"../../../../utils/event-properties/source.js\";\nimport { HorizontalList } from \"./HorizontalList.js\";\nimport { Item } from \"./Item.js\";\nimport { VerticalList } from \"./VerticalList.js\";\nimport { PRODUCTS_PER_REQUEST } from \"../../Products/Products.js\";\nconst ProductsContext = createContext(null);\nconst Root = forwardRef(({\n  style,\n  listStyle,\n  padding,\n  navigatorOffset,\n  children,\n  products: _products,\n  loading = false,\n  options: responsiveOptions,\n  hasNext: initialHasNext = false,\n  onLastItemView\n}, ref) => {\n  const breakpoint = useBreakpoint();\n  const {\n    isHeartOn,\n    handleHeartOn,\n    handleHeartOff\n  } = useProductGroupHeart();\n  const options = responsiveOptions[breakpoint];\n  const {\n    direction = \"horizontal\",\n    card = {},\n    row,\n    column\n  } = options;\n  const rowCount = (row == null ? void 0 : row.count) === \"auto\" ? 0 : (row == null ? void 0 : row.count) ?? 0;\n  const columnCount = (column == null ? void 0 : column.count) === \"auto\" ? 0 : (column == null ? void 0 : column.count) ?? 0;\n  const displayCount = getDisplayCount(options);\n  const products = slice(_products, rowCount * columnCount);\n  const pagination = displayCount < products.length || initialHasNext;\n  const pending = loading && products.length === 0;\n  const List = direction === \"horizontal\" ? HorizontalList : VerticalList;\n  const handleLastItemView = () => {\n    if (loading) {\n      return;\n    }\n    onLastItemView == null ? void 0 : onLastItemView();\n  };\n  return /* @__PURE__ */ jsx(ProductsContext.Provider, { value: {\n    card,\n    products,\n    pending,\n    initialHasNext,\n    isHeartOn,\n    onHeartOn: handleHeartOn,\n    onHeartOff: handleHeartOff\n  }, children: /* @__PURE__ */ jsxs(List, { ref, style, listStyle, options, pagination, padding, navigatorOffset, children: [\n    products.map((product, index) => /* @__PURE__ */ jsx(Item, { index, onLastItemView: handleLastItemView, children: children({\n      index,\n      product,\n      pending\n    }) }, product.productId)),\n    pending ? Array.from({\n      length: displayCount\n    }, (_, index) => /* @__PURE__ */ jsx(Item, { index, children: children({\n      index,\n      pending\n    }) }, index)) : null\n  ] }) });\n});\nconst getDisplayCount = (options) => {\n  const {\n    direction,\n    column,\n    row\n  } = options;\n  const {\n    displayCount: columnDisplayCount = 0,\n    count: columnCount = 0\n  } = column ?? {};\n  const {\n    displayCount: rowDisplayCount = 0,\n    count: rowCount = 0\n  } = row ?? {};\n  const isAutoRow = rowCount === \"auto\";\n  const isAutoColumn = columnCount === \"auto\";\n  if (direction === \"horizontal\") {\n    return columnDisplayCount * (isAutoRow ? 0 : rowCount);\n  }\n  if (direction === \"vertical\" && isAutoColumn) {\n    return PRODUCTS_PER_REQUEST;\n  }\n  return rowDisplayCount * (isAutoColumn ? 0 : columnCount);\n};\nconst slice = (list, count) => {\n  return count > 0 ? list.slice(0, count) : list;\n};\nexport {\n  ProductsContext,\n  Root\n};\n","const fromEntries = (entries) => {\n  return Object.fromEntries(entries);\n};\nexport {\n  fromEntries\n};\n","import getNative from \"./_getNative.js\";\nvar defineProperty = function() {\n  try {\n    var func = getNative(Object, \"defineProperty\");\n    func({}, \"\", {});\n    return func;\n  } catch (e) {\n  }\n}();\nexport {\n  defineProperty as default\n};\n","import defineProperty from \"./_defineProperty.js\";\nfunction baseAssignValue(object, key, value) {\n  if (key == \"__proto__\" && defineProperty) {\n    defineProperty(object, key, {\n      \"configurable\": true,\n      \"enumerable\": true,\n      \"value\": value,\n      \"writable\": true\n    });\n  } else {\n    object[key] = value;\n  }\n}\nexport {\n  baseAssignValue as default\n};\n","import baseAssignValue from \"./_baseAssignValue.js\";\nimport eq from \"./eq.js\";\nfunction assignMergeValue(object, key, value) {\n  if (value !== void 0 && !eq(object[key], value) || value === void 0 && !(key in object)) {\n    baseAssignValue(object, key, value);\n  }\n}\nexport {\n  assignMergeValue as default\n};\n","function createBaseFor(fromRight) {\n  return function(object, iteratee, keysFunc) {\n    var index = -1, iterable = Object(object), props = keysFunc(object), length = props.length;\n    while (length--) {\n      var key = props[fromRight ? length : ++index];\n      if (iteratee(iterable[key], key, iterable) === false) {\n        break;\n      }\n    }\n    return object;\n  };\n}\nexport {\n  createBaseFor as default\n};\n","import createBaseFor from \"./_createBaseFor.js\";\nvar baseFor = createBaseFor();\nexport {\n  baseFor as default\n};\n","import root from \"./_root.js\";\nvar freeExports = typeof exports == \"object\" && exports && !exports.nodeType && exports;\nvar freeModule = freeExports && typeof module == \"object\" && module && !module.nodeType && module;\nvar moduleExports = freeModule && freeModule.exports === freeExports;\nvar Buffer = moduleExports ? root.Buffer : void 0, allocUnsafe = Buffer ? Buffer.allocUnsafe : void 0;\nfunction cloneBuffer(buffer, isDeep) {\n  if (isDeep) {\n    return buffer.slice();\n  }\n  var length = buffer.length, result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n  buffer.copy(result);\n  return result;\n}\nexport {\n  cloneBuffer as default\n};\n","import Uint8Array from \"./_Uint8Array.js\";\nfunction cloneArrayBuffer(arrayBuffer) {\n  var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n  new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n  return result;\n}\nexport {\n  cloneArrayBuffer as default\n};\n","import cloneArrayBuffer from \"./_cloneArrayBuffer.js\";\nfunction cloneTypedArray(typedArray, isDeep) {\n  var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n  return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\nexport {\n  cloneTypedArray as default\n};\n","function copyArray(source, array) {\n  var index = -1, length = source.length;\n  array || (array = Array(length));\n  while (++index < length) {\n    array[index] = source[index];\n  }\n  return array;\n}\nexport {\n  copyArray as default\n};\n","import isObject from \"./isObject.js\";\nvar objectCreate = Object.create;\nvar baseCreate = /* @__PURE__ */ function() {\n  function object() {\n  }\n  return function(proto) {\n    if (!isObject(proto)) {\n      return {};\n    }\n    if (objectCreate) {\n      return objectCreate(proto);\n    }\n    object.prototype = proto;\n    var result = new object();\n    object.prototype = void 0;\n    return result;\n  };\n}();\nexport {\n  baseCreate as default\n};\n","import overArg from \"./_overArg.js\";\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\nconst getPrototype$1 = getPrototype;\nexport {\n  getPrototype$1 as default\n};\n","import baseCreate from \"./_baseCreate.js\";\nimport getPrototype from \"./_getPrototype.js\";\nimport isPrototype from \"./_isPrototype.js\";\nfunction initCloneObject(object) {\n  return typeof object.constructor == \"function\" && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};\n}\nexport {\n  initCloneObject as default\n};\n","import isArrayLike from \"./isArrayLike.js\";\nimport isObjectLike from \"./isObjectLike.js\";\nfunction isArrayLikeObject(value) {\n  return isObjectLike(value) && isArrayLike(value);\n}\nexport {\n  isArrayLikeObject as default\n};\n","import baseGetTag from \"./_baseGetTag.js\";\nimport getPrototype from \"./_getPrototype.js\";\nimport isObjectLike from \"./isObjectLike.js\";\nvar objectTag = \"[object Object]\";\nvar funcProto = Function.prototype, objectProto = Object.prototype;\nvar funcToString = funcProto.toString;\nvar hasOwnProperty = objectProto.hasOwnProperty;\nvar objectCtorString = funcToString.call(Object);\nfunction isPlainObject(value) {\n  if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n    return false;\n  }\n  var proto = getPrototype(value);\n  if (proto === null) {\n    return true;\n  }\n  var Ctor = hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n  return typeof Ctor == \"function\" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;\n}\nexport {\n  isPlainObject as default\n};\n","function safeGet(object, key) {\n  if (key === \"constructor\" && typeof object[key] === \"function\") {\n    return;\n  }\n  if (key == \"__proto__\") {\n    return;\n  }\n  return object[key];\n}\nexport {\n  safeGet as default\n};\n","import baseAssignValue from \"./_baseAssignValue.js\";\nimport eq from \"./eq.js\";\nvar objectProto = Object.prototype;\nvar hasOwnProperty = objectProto.hasOwnProperty;\nfunction assignValue(object, key, value) {\n  var objValue = object[key];\n  if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === void 0 && !(key in object)) {\n    baseAssignValue(object, key, value);\n  }\n}\nexport {\n  assignValue as default\n};\n","import assignValue from \"./_assignValue.js\";\nimport baseAssignValue from \"./_baseAssignValue.js\";\nfunction copyObject(source, props, object, customizer) {\n  var isNew = !object;\n  object || (object = {});\n  var index = -1, length = props.length;\n  while (++index < length) {\n    var key = props[index];\n    var newValue = customizer ? customizer(object[key], source[key], key, object, source) : void 0;\n    if (newValue === void 0) {\n      newValue = source[key];\n    }\n    if (isNew) {\n      baseAssignValue(object, key, newValue);\n    } else {\n      assignValue(object, key, newValue);\n    }\n  }\n  return object;\n}\nexport {\n  copyObject as default\n};\n","function nativeKeysIn(object) {\n  var result = [];\n  if (object != null) {\n    for (var key in Object(object)) {\n      result.push(key);\n    }\n  }\n  return result;\n}\nexport {\n  nativeKeysIn as default\n};\n","import isObject from \"./isObject.js\";\nimport isPrototype from \"./_isPrototype.js\";\nimport nativeKeysIn from \"./_nativeKeysIn.js\";\nvar objectProto = Object.prototype;\nvar hasOwnProperty = objectProto.hasOwnProperty;\nfunction baseKeysIn(object) {\n  if (!isObject(object)) {\n    return nativeKeysIn(object);\n  }\n  var isProto = isPrototype(object), result = [];\n  for (var key in object) {\n    if (!(key == \"constructor\" && (isProto || !hasOwnProperty.call(object, key)))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\nexport {\n  baseKeysIn as default\n};\n","import arrayLikeKeys from \"./_arrayLikeKeys.js\";\nimport baseKeysIn from \"./_baseKeysIn.js\";\nimport isArrayLike from \"./isArrayLike.js\";\nfunction keysIn(object) {\n  return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\nexport {\n  keysIn as default\n};\n","import copyObject from \"./_copyObject.js\";\nimport keysIn from \"./keysIn.js\";\nfunction toPlainObject(value) {\n  return copyObject(value, keysIn(value));\n}\nexport {\n  toPlainObject as default\n};\n","import assignMergeValue from \"./_assignMergeValue.js\";\nimport cloneBuffer from \"./_cloneBuffer.js\";\nimport cloneTypedArray from \"./_cloneTypedArray.js\";\nimport copyArray from \"./_copyArray.js\";\nimport initCloneObject from \"./_initCloneObject.js\";\nimport isArguments from \"./isArguments.js\";\nimport isArray from \"./isArray.js\";\nimport isArrayLikeObject from \"./isArrayLikeObject.js\";\nimport isBuffer from \"./isBuffer.js\";\nimport isFunction from \"./isFunction.js\";\nimport isObject from \"./isObject.js\";\nimport isPlainObject from \"./isPlainObject.js\";\nimport isTypedArray from \"./isTypedArray.js\";\nimport safeGet from \"./_safeGet.js\";\nimport toPlainObject from \"./toPlainObject.js\";\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n  var objValue = safeGet(object, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue);\n  if (stacked) {\n    assignMergeValue(object, key, stacked);\n    return;\n  }\n  var newValue = customizer ? customizer(objValue, srcValue, key + \"\", object, source, stack) : void 0;\n  var isCommon = newValue === void 0;\n  if (isCommon) {\n    var isArr = isArray(srcValue), isBuff = !isArr && isBuffer(srcValue), isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n    newValue = srcValue;\n    if (isArr || isBuff || isTyped) {\n      if (isArray(objValue)) {\n        newValue = objValue;\n      } else if (isArrayLikeObject(objValue)) {\n        newValue = copyArray(objValue);\n      } else if (isBuff) {\n        isCommon = false;\n        newValue = cloneBuffer(srcValue, true);\n      } else if (isTyped) {\n        isCommon = false;\n        newValue = cloneTypedArray(srcValue, true);\n      } else {\n        newValue = [];\n      }\n    } else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n      newValue = objValue;\n      if (isArguments(objValue)) {\n        newValue = toPlainObject(objValue);\n      } else if (!isObject(objValue) || isFunction(objValue)) {\n        newValue = initCloneObject(srcValue);\n      }\n    } else {\n      isCommon = false;\n    }\n  }\n  if (isCommon) {\n    stack.set(srcValue, newValue);\n    mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n    stack[\"delete\"](srcValue);\n  }\n  assignMergeValue(object, key, newValue);\n}\nexport {\n  baseMergeDeep as default\n};\n","import Stack from \"./_Stack.js\";\nimport assignMergeValue from \"./_assignMergeValue.js\";\nimport baseFor from \"./_baseFor.js\";\nimport baseMergeDeep from \"./_baseMergeDeep.js\";\nimport isObject from \"./isObject.js\";\nimport keysIn from \"./keysIn.js\";\nimport safeGet from \"./_safeGet.js\";\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n  if (object === source) {\n    return;\n  }\n  baseFor(source, function(srcValue, key) {\n    stack || (stack = new Stack());\n    if (isObject(srcValue)) {\n      baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n    } else {\n      var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + \"\", object, source, stack) : void 0;\n      if (newValue === void 0) {\n        newValue = srcValue;\n      }\n      assignMergeValue(object, key, newValue);\n    }\n  }, keysIn);\n}\nexport {\n  baseMerge as default\n};\n","function identity(value) {\n  return value;\n}\nexport {\n  identity as default\n};\n","function apply(func, thisArg, args) {\n  switch (args.length) {\n    case 0:\n      return func.call(thisArg);\n    case 1:\n      return func.call(thisArg, args[0]);\n    case 2:\n      return func.call(thisArg, args[0], args[1]);\n    case 3:\n      return func.call(thisArg, args[0], args[1], args[2]);\n  }\n  return func.apply(thisArg, args);\n}\nexport {\n  apply as default\n};\n","import apply from \"./_apply.js\";\nvar nativeMax = Math.max;\nfunction overRest(func, start, transform) {\n  start = nativeMax(start === void 0 ? func.length - 1 : start, 0);\n  return function() {\n    var args = arguments, index = -1, length = nativeMax(args.length - start, 0), array = Array(length);\n    while (++index < length) {\n      array[index] = args[start + index];\n    }\n    index = -1;\n    var otherArgs = Array(start + 1);\n    while (++index < start) {\n      otherArgs[index] = args[index];\n    }\n    otherArgs[start] = transform(array);\n    return apply(func, this, otherArgs);\n  };\n}\nexport {\n  overRest as default\n};\n","function constant(value) {\n  return function() {\n    return value;\n  };\n}\nexport {\n  constant as default\n};\n","import constant from \"./constant.js\";\nimport defineProperty from \"./_defineProperty.js\";\nimport identity from \"./identity.js\";\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n  return defineProperty(func, \"toString\", {\n    \"configurable\": true,\n    \"enumerable\": false,\n    \"value\": constant(string),\n    \"writable\": true\n  });\n};\nconst baseSetToString$1 = baseSetToString;\nexport {\n  baseSetToString$1 as default\n};\n","var HOT_COUNT = 800, HOT_SPAN = 16;\nvar nativeNow = Date.now;\nfunction shortOut(func) {\n  var count = 0, lastCalled = 0;\n  return function() {\n    var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled);\n    lastCalled = stamp;\n    if (remaining > 0) {\n      if (++count >= HOT_COUNT) {\n        return arguments[0];\n      }\n    } else {\n      count = 0;\n    }\n    return func.apply(void 0, arguments);\n  };\n}\nexport {\n  shortOut as default\n};\n","import baseSetToString from \"./_baseSetToString.js\";\nimport shortOut from \"./_shortOut.js\";\nvar setToString = shortOut(baseSetToString);\nexport {\n  setToString as default\n};\n","import identity from \"./identity.js\";\nimport overRest from \"./_overRest.js\";\nimport setToString from \"./_setToString.js\";\nfunction baseRest(func, start) {\n  return setToString(overRest(func, start, identity), func + \"\");\n}\nexport {\n  baseRest as default\n};\n","import eq from \"./eq.js\";\nimport isArrayLike from \"./isArrayLike.js\";\nimport isIndex from \"./_isIndex.js\";\nimport isObject from \"./isObject.js\";\nfunction isIterateeCall(value, index, object) {\n  if (!isObject(object)) {\n    return false;\n  }\n  var type = typeof index;\n  if (type == \"number\" ? isArrayLike(object) && isIndex(index, object.length) : type == \"string\" && index in object) {\n    return eq(object[index], value);\n  }\n  return false;\n}\nexport {\n  isIterateeCall as default\n};\n","import baseRest from \"./_baseRest.js\";\nimport isIterateeCall from \"./_isIterateeCall.js\";\nfunction createAssigner(assigner) {\n  return baseRest(function(object, sources) {\n    var index = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : void 0, guard = length > 2 ? sources[2] : void 0;\n    customizer = assigner.length > 3 && typeof customizer == \"function\" ? (length--, customizer) : void 0;\n    if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n      customizer = length < 3 ? void 0 : customizer;\n      length = 1;\n    }\n    object = Object(object);\n    while (++index < length) {\n      var source = sources[index];\n      if (source) {\n        assigner(object, source, index, customizer);\n      }\n    }\n    return object;\n  });\n}\nexport {\n  createAssigner as default\n};\n","import baseMerge from \"./_baseMerge.js\";\nimport createAssigner from \"./_createAssigner.js\";\nvar merge = createAssigner(function(object, source, srcIndex) {\n  baseMerge(object, source, srcIndex);\n});\nexport {\n  merge as default\n};\n","function arrayEach(array, iteratee) {\n  var index = -1, length = array == null ? 0 : array.length;\n  while (++index < length) {\n    if (iteratee(array[index], index, array) === false) {\n      break;\n    }\n  }\n  return array;\n}\nexport {\n  arrayEach as default\n};\n","import copyObject from \"./_copyObject.js\";\nimport keys from \"./keys.js\";\nfunction baseAssign(object, source) {\n  return object && copyObject(source, keys(source), object);\n}\nexport {\n  baseAssign as default\n};\n","import copyObject from \"./_copyObject.js\";\nimport keysIn from \"./keysIn.js\";\nfunction baseAssignIn(object, source) {\n  return object && copyObject(source, keysIn(source), object);\n}\nexport {\n  baseAssignIn as default\n};\n","import copyObject from \"./_copyObject.js\";\nimport getSymbols from \"./_getSymbols.js\";\nfunction copySymbols(source, object) {\n  return copyObject(source, getSymbols(source), object);\n}\nexport {\n  copySymbols as default\n};\n","import arrayPush from \"./_arrayPush.js\";\nimport getPrototype from \"./_getPrototype.js\";\nimport getSymbols from \"./_getSymbols.js\";\nimport stubArray from \"./stubArray.js\";\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n  var result = [];\n  while (object) {\n    arrayPush(result, getSymbols(object));\n    object = getPrototype(object);\n  }\n  return result;\n};\nexport {\n  getSymbolsIn as default\n};\n","import copyObject from \"./_copyObject.js\";\nimport getSymbolsIn from \"./_getSymbolsIn.js\";\nfunction copySymbolsIn(source, object) {\n  return copyObject(source, getSymbolsIn(source), object);\n}\nexport {\n  copySymbolsIn as default\n};\n","import baseGetAllKeys from \"./_baseGetAllKeys.js\";\nimport getSymbolsIn from \"./_getSymbolsIn.js\";\nimport keysIn from \"./keysIn.js\";\nfunction getAllKeysIn(object) {\n  return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\nexport {\n  getAllKeysIn as default\n};\n","var objectProto = Object.prototype;\nvar hasOwnProperty = objectProto.hasOwnProperty;\nfunction initCloneArray(array) {\n  var length = array.length, result = new array.constructor(length);\n  if (length && typeof array[0] == \"string\" && hasOwnProperty.call(array, \"index\")) {\n    result.index = array.index;\n    result.input = array.input;\n  }\n  return result;\n}\nexport {\n  initCloneArray as default\n};\n","import cloneArrayBuffer from \"./_cloneArrayBuffer.js\";\nfunction cloneDataView(dataView, isDeep) {\n  var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n  return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\nexport {\n  cloneDataView as default\n};\n","var reFlags = /\\w*$/;\nfunction cloneRegExp(regexp) {\n  var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n  result.lastIndex = regexp.lastIndex;\n  return result;\n}\nexport {\n  cloneRegExp as default\n};\n","import Symbol$1 from \"./_Symbol.js\";\nvar symbolProto = Symbol$1 ? Symbol$1.prototype : void 0, symbolValueOf = symbolProto ? symbolProto.valueOf : void 0;\nfunction cloneSymbol(symbol) {\n  return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\nexport {\n  cloneSymbol as default\n};\n","import cloneArrayBuffer from \"./_cloneArrayBuffer.js\";\nimport cloneDataView from \"./_cloneDataView.js\";\nimport cloneRegExp from \"./_cloneRegExp.js\";\nimport cloneSymbol from \"./_cloneSymbol.js\";\nimport cloneTypedArray from \"./_cloneTypedArray.js\";\nvar boolTag = \"[object Boolean]\", dateTag = \"[object Date]\", mapTag = \"[object Map]\", numberTag = \"[object Number]\", regexpTag = \"[object RegExp]\", setTag = \"[object Set]\", stringTag = \"[object String]\", symbolTag = \"[object Symbol]\";\nvar arrayBufferTag = \"[object ArrayBuffer]\", dataViewTag = \"[object DataView]\", float32Tag = \"[object Float32Array]\", float64Tag = \"[object Float64Array]\", int8Tag = \"[object Int8Array]\", int16Tag = \"[object Int16Array]\", int32Tag = \"[object Int32Array]\", uint8Tag = \"[object Uint8Array]\", uint8ClampedTag = \"[object Uint8ClampedArray]\", uint16Tag = \"[object Uint16Array]\", uint32Tag = \"[object Uint32Array]\";\nfunction initCloneByTag(object, tag, isDeep) {\n  var Ctor = object.constructor;\n  switch (tag) {\n    case arrayBufferTag:\n      return cloneArrayBuffer(object);\n    case boolTag:\n    case dateTag:\n      return new Ctor(+object);\n    case dataViewTag:\n      return cloneDataView(object, isDeep);\n    case float32Tag:\n    case float64Tag:\n    case int8Tag:\n    case int16Tag:\n    case int32Tag:\n    case uint8Tag:\n    case uint8ClampedTag:\n    case uint16Tag:\n    case uint32Tag:\n      return cloneTypedArray(object, isDeep);\n    case mapTag:\n      return new Ctor();\n    case numberTag:\n    case stringTag:\n      return new Ctor(object);\n    case regexpTag:\n      return cloneRegExp(object);\n    case setTag:\n      return new Ctor();\n    case symbolTag:\n      return cloneSymbol(object);\n  }\n}\nexport {\n  initCloneByTag as default\n};\n","import getTag from \"./_getTag.js\";\nimport isObjectLike from \"./isObjectLike.js\";\nvar mapTag = \"[object Map]\";\nfunction baseIsMap(value) {\n  return isObjectLike(value) && getTag(value) == mapTag;\n}\nexport {\n  baseIsMap as default\n};\n","import baseIsMap from \"./_baseIsMap.js\";\nimport baseUnary from \"./_baseUnary.js\";\nimport nodeUtil from \"./_nodeUtil.js\";\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\nexport {\n  isMap as default\n};\n","import getTag from \"./_getTag.js\";\nimport isObjectLike from \"./isObjectLike.js\";\nvar setTag = \"[object Set]\";\nfunction baseIsSet(value) {\n  return isObjectLike(value) && getTag(value) == setTag;\n}\nexport {\n  baseIsSet as default\n};\n","import baseIsSet from \"./_baseIsSet.js\";\nimport baseUnary from \"./_baseUnary.js\";\nimport nodeUtil from \"./_nodeUtil.js\";\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\nexport {\n  isSet as default\n};\n","import Stack from \"./_Stack.js\";\nimport arrayEach from \"./_arrayEach.js\";\nimport assignValue from \"./_assignValue.js\";\nimport baseAssign from \"./_baseAssign.js\";\nimport baseAssignIn from \"./_baseAssignIn.js\";\nimport cloneBuffer from \"./_cloneBuffer.js\";\nimport copyArray from \"./_copyArray.js\";\nimport copySymbols from \"./_copySymbols.js\";\nimport copySymbolsIn from \"./_copySymbolsIn.js\";\nimport getAllKeys from \"./_getAllKeys.js\";\nimport getAllKeysIn from \"./_getAllKeysIn.js\";\nimport getTag from \"./_getTag.js\";\nimport initCloneArray from \"./_initCloneArray.js\";\nimport initCloneByTag from \"./_initCloneByTag.js\";\nimport initCloneObject from \"./_initCloneObject.js\";\nimport isArray from \"./isArray.js\";\nimport isBuffer from \"./isBuffer.js\";\nimport isMap from \"./isMap.js\";\nimport isObject from \"./isObject.js\";\nimport isSet from \"./isSet.js\";\nimport keys from \"./keys.js\";\nimport keysIn from \"./keysIn.js\";\nvar CLONE_DEEP_FLAG = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG = 4;\nvar argsTag = \"[object Arguments]\", arrayTag = \"[object Array]\", boolTag = \"[object Boolean]\", dateTag = \"[object Date]\", errorTag = \"[object Error]\", funcTag = \"[object Function]\", genTag = \"[object GeneratorFunction]\", mapTag = \"[object Map]\", numberTag = \"[object Number]\", objectTag = \"[object Object]\", regexpTag = \"[object RegExp]\", setTag = \"[object Set]\", stringTag = \"[object String]\", symbolTag = \"[object Symbol]\", weakMapTag = \"[object WeakMap]\";\nvar arrayBufferTag = \"[object ArrayBuffer]\", dataViewTag = \"[object DataView]\", float32Tag = \"[object Float32Array]\", float64Tag = \"[object Float64Array]\", int8Tag = \"[object Int8Array]\", int16Tag = \"[object Int16Array]\", int32Tag = \"[object Int32Array]\", uint8Tag = \"[object Uint8Array]\", uint8ClampedTag = \"[object Uint8ClampedArray]\", uint16Tag = \"[object Uint16Array]\", uint32Tag = \"[object Uint32Array]\";\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false;\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n  var result, isDeep = bitmask & CLONE_DEEP_FLAG, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG;\n  if (customizer) {\n    result = object ? customizer(value, key, object, stack) : customizer(value);\n  }\n  if (result !== void 0) {\n    return result;\n  }\n  if (!isObject(value)) {\n    return value;\n  }\n  var isArr = isArray(value);\n  if (isArr) {\n    result = initCloneArray(value);\n    if (!isDeep) {\n      return copyArray(value, result);\n    }\n  } else {\n    var tag = getTag(value), isFunc = tag == funcTag || tag == genTag;\n    if (isBuffer(value)) {\n      return cloneBuffer(value, isDeep);\n    }\n    if (tag == objectTag || tag == argsTag || isFunc && !object) {\n      result = isFlat || isFunc ? {} : initCloneObject(value);\n      if (!isDeep) {\n        return isFlat ? copySymbolsIn(value, baseAssignIn(result, value)) : copySymbols(value, baseAssign(result, value));\n      }\n    } else {\n      if (!cloneableTags[tag]) {\n        return object ? value : {};\n      }\n      result = initCloneByTag(value, tag, isDeep);\n    }\n  }\n  stack || (stack = new Stack());\n  var stacked = stack.get(value);\n  if (stacked) {\n    return stacked;\n  }\n  stack.set(value, result);\n  if (isSet(value)) {\n    value.forEach(function(subValue) {\n      result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n    });\n  } else if (isMap(value)) {\n    value.forEach(function(subValue, key2) {\n      result.set(key2, baseClone(subValue, bitmask, customizer, key2, value, stack));\n    });\n  }\n  var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys;\n  var props = isArr ? void 0 : keysFunc(value);\n  arrayEach(props || value, function(subValue, key2) {\n    if (props) {\n      key2 = subValue;\n      subValue = value[key2];\n    }\n    assignValue(result, key2, baseClone(subValue, bitmask, customizer, key2, value, stack));\n  });\n  return result;\n}\nexport {\n  baseClone as default\n};\n","import baseClone from \"./_baseClone.js\";\nvar CLONE_DEEP_FLAG = 1, CLONE_SYMBOLS_FLAG = 4;\nfunction cloneDeep(value) {\n  return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\nexport {\n  cloneDeep as default\n};\n","import { fromEntries } from \"./fromEntries.js\";\nimport { entries } from \"./entries.js\";\nimport merge from \"../node_modules/lodash-es/merge.js\";\nimport cloneDeep from \"../node_modules/lodash-es/cloneDeep.js\";\nconst mergeBase = (base = {}, source = {}) => {\n  return merge(cloneDeep(base), source);\n};\nconst createSlices = (slices) => {\n  const {\n    base,\n    ...rest\n  } = slices;\n  return fromEntries(entries(rest).map(([name, slice]) => [name, mergeBase(base, slice)]));\n};\nexport {\n  createSlices\n};\n","import { jsxs, jsx } from \"react/jsx-runtime\";\nimport { forwardRef } from \"react\";\nimport { ProductCardType } from \"../ProductCard/ProductCard.types.js\";\nimport { Skeleton } from \"../Skeleton/Skeleton.js\";\nimport { createSlices } from \"../../../utils/createSlices.js\";\nconst ProductCardSkeleton = forwardRef(({\n  style,\n  type = ProductCardType.CARD,\n  theme = \"light\",\n  size = \"medium\",\n  hasName = true,\n  hasBrandName = true,\n  hasBadges = true,\n  ...rest\n}, ref) => {\n  const styles = stylesByType[type][size];\n  return /* @__PURE__ */ jsxs(\"div\", { ref, ...rest, style: {\n    ...containerStyle,\n    ...styles == null ? void 0 : styles.container,\n    ...style\n  }, children: [\n    /* @__PURE__ */ jsx(Skeleton, { style: {\n      ...styles == null ? void 0 : styles.image,\n      ...baseStyleByTheme[theme],\n      borderRadius: 2\n    } }),\n    /* @__PURE__ */ jsxs(\"div\", { style: summaryStyle, children: [\n      hasBrandName ? /* @__PURE__ */ jsx(Skeleton, { style: {\n        ...styles == null ? void 0 : styles.brandName,\n        ...baseStyleByTheme[theme],\n        borderRadius: 6\n      } }) : null,\n      hasName ? /* @__PURE__ */ jsx(Skeleton, { style: {\n        ...styles == null ? void 0 : styles.name,\n        ...baseStyleByTheme[theme],\n        borderRadius: 6\n      } }) : null,\n      /* @__PURE__ */ jsx(Skeleton, { style: {\n        ...styles == null ? void 0 : styles.price,\n        ...baseStyleByTheme[theme],\n        borderRadius: 6\n      } }),\n      hasBadges ? /* @__PURE__ */ jsx(Skeleton, { style: {\n        ...styles == null ? void 0 : styles.badge,\n        ...baseStyleByTheme[theme],\n        borderRadius: 6\n      } }) : null\n    ] })\n  ] });\n});\nconst baseStyleByTheme = {\n  light: {\n    backgroundColor: \"#dee2e6\"\n  },\n  dark: {\n    backgroundColor: \"#27272a\"\n  }\n};\nconst containerStyle = {\n  display: \"flex\",\n  gap: \"10px\",\n  width: \"100%\",\n  margin: \"0 auto\"\n};\nconst summaryStyle = {\n  flex: \"1\",\n  display: \"flex\",\n  flexDirection: \"column\"\n};\nconst barStyles = createSlices({\n  base: {\n    container: {\n      flexDirection: \"row\",\n      alignItems: \"center\",\n      gap: 8\n    },\n    brandName: {\n      width: \"60%\",\n      height: 11\n    },\n    name: {\n      width: \"80%\",\n      height: 13,\n      marginTop: 5\n    },\n    price: {\n      width: \"50%\",\n      height: 16,\n      marginTop: 5\n    },\n    badge: {\n      width: \"20%\",\n      height: 16,\n      marginTop: 6\n    }\n  },\n  small: {\n    image: {\n      width: 56,\n      height: 56\n    }\n  },\n  medium: {\n    image: {\n      width: 80,\n      height: 80\n    }\n  }\n});\nconst cardStyles = createSlices({\n  base: {\n    container: {\n      flexDirection: \"column\",\n      gap: 10,\n      paddingBottom: 16\n    },\n    image: {\n      width: \"100%\",\n      aspectRatio: \"1 / 1\"\n    },\n    brandName: {\n      width: \"60%\",\n      height: 16.31\n    },\n    name: {\n      width: \"80%\",\n      height: 16.31,\n      marginTop: 4\n    },\n    price: {\n      width: \"50%\",\n      height: 15.2,\n      marginTop: 4\n    },\n    badge: {\n      width: \"20%\",\n      height: 13,\n      marginTop: 4\n    }\n  },\n  small: {},\n  medium: {}\n});\nconst cardDetailedStyles = createSlices({\n  base: {\n    container: {\n      flexDirection: \"column\",\n      gap: 14\n    },\n    image: {\n      width: \"100%\",\n      aspectRatio: \"1 / 1\"\n    },\n    brandName: {\n      width: \"60%\",\n      height: 16.31\n    },\n    name: {\n      width: \"80%\",\n      height: 19.59,\n      marginTop: 4\n    },\n    price: {\n      width: \"50%\",\n      height: 22.41,\n      marginTop: 6\n    },\n    badge: {\n      width: \"20%\",\n      height: 16,\n      marginTop: 6\n    }\n  },\n  small: {\n    container: {\n      paddingBottom: 44\n    }\n  },\n  medium: {\n    container: {\n      paddingBottom: 69\n    }\n  }\n});\nconst stylesByType = {\n  [ProductCardType.BAR]: barStyles,\n  [ProductCardType.CARD]: cardStyles,\n  [ProductCardType.CARD_DETAILED]: cardDetailedStyles\n};\nexport {\n  ProductCardSkeleton\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { useInView } from \"framer-motion\";\nimport { forwardRef, useRef } from \"react\";\nimport { mergeRefs } from \"../../../utils/react/mergeRefs.js\";\nconst Lazy = ({\n  as,\n  children,\n  fallback,\n  margin,\n  ...rest\n}, ref) => {\n  const elementRef = useRef(null);\n  const isIntersecting = useInView(elementRef, {\n    margin,\n    once: true\n  });\n  const Component = as ?? \"div\";\n  if (!isIntersecting) {\n    return /* @__PURE__ */ jsx(Component, { ref: mergeRefs([ref, elementRef]), ...rest, children: fallback });\n  }\n  return /* @__PURE__ */ jsx(Component, { ref: mergeRefs([ref, elementRef]), ...rest, children });\n};\nconst Default = forwardRef(Lazy);\nexport {\n  Default as Lazy\n};\n","import { jsx, jsxs } from \"react/jsx-runtime\";\nimport { ProductCard } from \"../../../@shared/ProductCard/ProductCard.js\";\nimport { useProductsContext } from \"./Root.hooks.js\";\nimport { ProductCardSkeleton } from \"../../../@shared/ProductCardSkeleton/ProductCardSkeleton.js\";\nimport \"react\";\nimport \"../../../../node_modules/@firebase/analytics/dist/esm/index.esm2017.js\";\nimport \"../../../../node_modules/firebase/app/dist/esm/index.esm.js\";\nimport \"../../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport \"../../../../config/index.js\";\nimport \"../../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport \"../../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../../apis/preuser/PreuserApiService.js\";\nimport \"framer\";\nimport \"../../../../node_modules/@29cm/snowplow/dist/esm/core/snowplow.js\";\nimport \"../../../../node_modules/swr/mutation/dist/index.js\";\nimport \"../../../../hooks/stores/content/content.store.js\";\nimport \"../../../../hooks/stores/dialog/dialog.store.js\";\nimport \"../../../../hooks/stores/global-layout/global-layout.store.js\";\nimport \"../../../../hooks/stores/toast/toast.store.js\";\nimport { useTheme } from \"../../../../hooks/useTheme.js\";\nimport \"../../../@shared/providers/BreakpointProvider/BreakpointProvider.js\";\nimport \"../../../../hooks/stores/bottom-sheet/bottom-sheet.store.js\";\nimport \"react-dom\";\nimport \"../../Dialog/Dialog.module.css.js\";\nimport \"framer-motion\";\nimport \"../../../../containers/DialogContainer/DialogContainer.emitter.js\";\nimport \"../../../../utils/redirectLogin.js\";\nimport \"../../../../utils/event-properties/source.js\";\nimport { Lazy as Default } from \"../../../@shared/Lazy/Lazy.js\";\nimport { typography } from \"../../../../styles/typography.js\";\nimport { ProductCardType } from \"../../../@shared/ProductCard/ProductCard.types.js\";\nconst Card = ({\n  index,\n  componentName,\n  eventProperties,\n  variant,\n  showLazyFallback = true,\n  ...rest\n}) => {\n  const theme = useTheme();\n  const {\n    products,\n    card,\n    pending,\n    isHeartOn,\n    onHeartOn,\n    onHeartOff\n  } = useProductsContext();\n  const product = products[index];\n  const isBarType = card.type === ProductCardType.BAR;\n  const isCardType = card.type === ProductCardType.CARD || card.type === ProductCardType.CARD_DETAILED;\n  const hideBarTypeRank = !isBarType || !card.hasRank;\n  const hideCardTypeRank = !isCardType || !card.hasRank;\n  const position = index + 1;\n  if (pending) {\n    return /* @__PURE__ */ jsx(ProductRank, { hidden: hideBarTypeRank, position, children: /* @__PURE__ */ jsx(ProductCardSkeleton, { theme, ...card, style: rest.style }) });\n  }\n  return /* @__PURE__ */ jsx(Default, { margin: \"0px 200px\", fallback: showLazyFallback ? /* @__PURE__ */ jsx(ProductRank, { hidden: hideBarTypeRank, position, children: /* @__PURE__ */ jsx(ProductCardSkeleton, { theme, ...card, style: rest.style }) }) : null, children: /* @__PURE__ */ jsx(ProductRank, { hidden: hideBarTypeRank, position, children: /* @__PURE__ */ jsx(ProductCard, { ...rest, ...card, hasRank: !hideCardTypeRank, theme, product, positionNo: position, variant, isHeartOn: isHeartOn(product.productId), onHeartOn, onHeartOff, eventProperties: {\n    product,\n    isProductGroup: true,\n    componentName,\n    positionNo: position,\n    ...eventProperties\n  } }) }) });\n};\nconst ProductRank = ({\n  children,\n  hidden = false,\n  position\n}) => {\n  const theme = useTheme();\n  if (hidden) {\n    return children;\n  }\n  return /* @__PURE__ */ jsxs(\"div\", { style: containerStyle, children: [\n    /* @__PURE__ */ jsx(\"div\", { style: rankAreaStyle, children: /* @__PURE__ */ jsx(\"div\", { style: {\n      ...typography(16, 700),\n      ...rankTextStyleByTheme[theme]\n    }, children: position }) }),\n    children\n  ] });\n};\nconst containerStyle = {\n  display: \"flex\",\n  alignItems: \"center\",\n  gap: \"12px\"\n};\nconst rankAreaStyle = {\n  minWidth: 40,\n  height: \"100%\",\n  display: \"flex\",\n  alignItems: \"center\",\n  justifyContent: \"center\"\n};\nconst rankTextStyleByTheme = {\n  light: {\n    color: \"#000\"\n  },\n  dark: {\n    color: \"#fff\"\n  }\n};\nexport {\n  Card\n};\n","import { Root } from \"./Root.js\";\nimport { Card } from \"./Card.js\";\nconst Products = {\n  Root,\n  Card\n};\nexport {\n  Products\n};\n","import { entries } from \"../../../../utils/entries.js\";\nimport merge from \"../../../../node_modules/lodash-es/merge.js\";\nimport cloneDeep from \"../../../../node_modules/lodash-es/cloneDeep.js\";\nconst createOptionTemplate = (options) => {\n  const {\n    base,\n    mobile = {},\n    tablet = {},\n    desktop = {}\n  } = options;\n  return Object.fromEntries(entries({\n    mobile,\n    tablet,\n    desktop\n  }).map(([key, value]) => [key, merge(cloneDeep(base), value)]));\n};\nconst getResponsiveWidth = (gap, column = 1, inset = 0) => {\n  return `calc((100% - ${gap * Math.max(column - 1, 1) + inset}px) / ${column})`;\n};\nexport {\n  createOptionTemplate,\n  getResponsiveWidth\n};\n","const hideClosestParentByFramerName = (currentElement, framerName, isVisible) => {\n  if (!currentElement) {\n    return null;\n  }\n  const targetName = framerName || \"segmentWrapper\";\n  const parentElement = currentElement.closest(`[data-framer-name=\"${targetName}\"]`);\n  if (parentElement) {\n    parentElement.style.display = isVisible ? parentElement.style.display === \"none\" ? \"\" : parentElement.style.display : \"none\";\n  }\n  return parentElement;\n};\nexport {\n  hideClosestParentByFramerName\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { createContext } from \"react\";\nimport \"../../../systems/Countdown/Countdown.js\";\nimport \"react-dom\";\nimport \"../../../systems/Dialog/Dialog.module.css.js\";\nimport \"framer-motion\";\nimport \"../../../systems/Expandable/Expandable.js\";\nimport \"../../../systems/FixedScrollProgressBar/FixedScrollProgressBar.js\";\nimport \"../../../../hooks/stores/content/content.store.js\";\nimport \"../../../../hooks/stores/dialog/dialog.store.js\";\nimport \"../../../../hooks/stores/global-layout/global-layout.store.js\";\nimport \"../../../../hooks/stores/toast/toast.store.js\";\nimport \"../../../../node_modules/@firebase/analytics/dist/esm/index.esm2017.js\";\nimport \"../../../../node_modules/firebase/app/dist/esm/index.esm.js\";\nimport \"../../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport \"../../../../config/index.js\";\nimport \"../../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport \"../../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../../apis/preuser/PreuserApiService.js\";\nimport \"framer\";\nimport \"../../../../node_modules/@29cm/snowplow/dist/esm/core/snowplow.js\";\nimport \"../../../systems/ShareButtonWithReferralEvent/ShareButtonWithReferralEvent.js\";\nimport \"../../../../node_modules/swr/mutation/dist/index.js\";\nimport \"../../../@shared/providers/ThemeProvider/ThemeProvider.js\";\nimport \"../../../@shared/providers/BreakpointProvider/BreakpointProvider.js\";\nimport \"../../../../hooks/stores/bottom-sheet/bottom-sheet.store.js\";\nimport \"../../../../containers/DialogContainer/DialogContainer.emitter.js\";\nimport \"../../../../utils/redirectLogin.js\";\nimport \"../../../../utils/event-properties/source.js\";\nimport \"../../../../constants/snowplow/snowplowSchema.js\";\nimport { PRODUCTS_PER_REQUEST } from \"../../../systems/Products/Products.js\";\nimport \"../../../systems/ResponsiveSplitView/ResponsiveSplitView.js\";\nimport \"../../../systems/ResponsiveSplitViewOverlayButton/ResponsiveSplitViewOverlayButton.js\";\nimport \"../../../systems/RollingNumber/RollingNumber.js\";\nimport \"../../../systems/TabBar/TabBar.js\";\nimport \"../../../systems/TimeProgressBar/TimeProgressBar.js\";\nimport \"../../../systems/ViewportContainer/ViewportContainer.js\";\nimport \"../../../systems/TabBarV2/TabBarV2.js\";\nimport \"../../../systems/TabBarV3/TabBarV3.js\";\nconst ProductsElementContext = createContext({\n  query: void 0,\n  size: PRODUCTS_PER_REQUEST\n});\nconst ProductsElementProvider = ({\n  children,\n  query,\n  size\n}) => {\n  return /* @__PURE__ */ jsx(ProductsElementContext.Provider, { value: {\n    query,\n    size\n  }, children });\n};\nexport {\n  ProductsElementContext,\n  ProductsElementProvider\n};\n","const PRODUCTS_PER_REQUEST = 30;\nexport {\n  PRODUCTS_PER_REQUEST\n};\n","var ScrollDirection = /* @__PURE__ */ ((ScrollDirection2) => {\n  ScrollDirection2[\"Vertical\"] = \"vertical\";\n  ScrollDirection2[\"Horizontal\"] = \"horizontal\";\n  return ScrollDirection2;\n})(ScrollDirection || {});\nvar ProductsModuleInputType = /* @__PURE__ */ ((ProductsModuleInputType2) => {\n  ProductsModuleInputType2[ProductsModuleInputType2[\"Linked\"] = 0] = \"Linked\";\n  ProductsModuleInputType2[ProductsModuleInputType2[\"Manual\"] = 1] = \"Manual\";\n  ProductsModuleInputType2[ProductsModuleInputType2[\"Preuser\"] = 2] = \"Preuser\";\n  return ProductsModuleInputType2;\n})(ProductsModuleInputType || {});\nvar PaginationType = /* @__PURE__ */ ((PaginationType2) => {\n  PaginationType2[PaginationType2[\"Default\"] = 0] = \"Default\";\n  PaginationType2[PaginationType2[\"ExpandButton\"] = 1] = \"ExpandButton\";\n  PaginationType2[PaginationType2[\"None\"] = 2] = \"None\";\n  return PaginationType2;\n})(PaginationType || {});\nexport {\n  PaginationType,\n  ProductsModuleInputType,\n  ScrollDirection\n};\n","import { useContext } from \"react\";\nimport { ProductsElementContext } from \"./ProductsElementProvider.js\";\nconst useProductsElementContext = () => {\n  return useContext(ProductsElementContext);\n};\nexport {\n  useProductsElementContext\n};\n","import { useRef, useCallback } from \"react\";\nimport useSWR from \"../../core/dist/index.js\";\nimport { withMiddleware, SWRGlobalState, cache, INFINITE_PREFIX, createCacheHelper, isUndefined, useIsomorphicLayoutEffect, serialize, UNDEFINED, isFunction } from \"../../_internal/dist/index.js\";\nimport { s as shimExports } from \"../../../use-sync-external-store/shim/index.js\";\nconst getFirstPageKey = (getKey) => {\n  return serialize(getKey ? getKey(0, null) : null)[0];\n};\nconst EMPTY_PROMISE = Promise.resolve();\nconst infinite = (useSWRNext) => (getKey, fn, config) => {\n  const didMountRef = useRef(false);\n  const { cache: cache$1, initialSize = 1, revalidateAll = false, persistSize = false, revalidateFirstPage = true, revalidateOnMount = false, parallel = false } = config;\n  const [, , , PRELOAD] = SWRGlobalState.get(cache);\n  let infiniteKey;\n  try {\n    infiniteKey = getFirstPageKey(getKey);\n    if (infiniteKey)\n      infiniteKey = INFINITE_PREFIX + infiniteKey;\n  } catch (err) {\n  }\n  const [get, set, subscribeCache] = createCacheHelper(cache$1, infiniteKey);\n  const getSnapshot = useCallback(() => {\n    const size = isUndefined(get()._l) ? initialSize : get()._l;\n    return size;\n  }, [\n    cache$1,\n    infiniteKey,\n    initialSize\n  ]);\n  shimExports.useSyncExternalStore(useCallback(\n    (callback) => {\n      if (infiniteKey)\n        return subscribeCache(infiniteKey, () => {\n          callback();\n        });\n      return () => {\n      };\n    },\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    [\n      cache$1,\n      infiniteKey\n    ]\n  ), getSnapshot, getSnapshot);\n  const resolvePageSize = useCallback(() => {\n    const cachedPageSize = get()._l;\n    return isUndefined(cachedPageSize) ? initialSize : cachedPageSize;\n  }, [\n    infiniteKey,\n    initialSize\n  ]);\n  const lastPageSizeRef = useRef(resolvePageSize());\n  useIsomorphicLayoutEffect(() => {\n    if (!didMountRef.current) {\n      didMountRef.current = true;\n      return;\n    }\n    if (infiniteKey) {\n      set({\n        _l: persistSize ? lastPageSizeRef.current : resolvePageSize()\n      });\n    }\n  }, [\n    infiniteKey,\n    cache$1\n  ]);\n  const shouldRevalidateOnMount = revalidateOnMount && !didMountRef.current;\n  const swr = useSWRNext(infiniteKey, async (key) => {\n    const forceRevalidateAll = get()._i;\n    const data = [];\n    const pageSize = resolvePageSize();\n    const [getCache] = createCacheHelper(cache$1, key);\n    const cacheData = getCache().data;\n    const revalidators = [];\n    let previousPageData = null;\n    for (let i = 0; i < pageSize; ++i) {\n      const [pageKey, pageArg] = serialize(getKey(i, parallel ? null : previousPageData));\n      if (!pageKey) {\n        break;\n      }\n      const [getSWRCache, setSWRCache] = createCacheHelper(cache$1, pageKey);\n      let pageData = getSWRCache().data;\n      const shouldFetchPage = revalidateAll || forceRevalidateAll || isUndefined(pageData) || revalidateFirstPage && !i && !isUndefined(cacheData) || shouldRevalidateOnMount || cacheData && !isUndefined(cacheData[i]) && !config.compare(cacheData[i], pageData);\n      if (fn && shouldFetchPage) {\n        const revalidate = async () => {\n          const hasPreloadedRequest = pageKey in PRELOAD;\n          if (!hasPreloadedRequest) {\n            pageData = await fn(pageArg);\n          } else {\n            const req = PRELOAD[pageKey];\n            delete PRELOAD[pageKey];\n            pageData = await req;\n          }\n          setSWRCache({\n            data: pageData,\n            _k: pageArg\n          });\n          data[i] = pageData;\n        };\n        if (parallel) {\n          revalidators.push(revalidate);\n        } else {\n          await revalidate();\n        }\n      } else {\n        data[i] = pageData;\n      }\n      if (!parallel) {\n        previousPageData = pageData;\n      }\n    }\n    if (parallel) {\n      await Promise.all(revalidators.map((r) => r()));\n    }\n    set({\n      _i: UNDEFINED\n    });\n    return data;\n  }, config);\n  const mutate = useCallback(\n    // eslint-disable-next-line func-names\n    function(data, opts) {\n      const options = typeof opts === \"boolean\" ? {\n        revalidate: opts\n      } : opts || {};\n      const shouldRevalidate = options.revalidate !== false;\n      if (!infiniteKey)\n        return EMPTY_PROMISE;\n      if (shouldRevalidate) {\n        if (!isUndefined(data)) {\n          set({\n            _i: false\n          });\n        } else {\n          set({\n            _i: true\n          });\n        }\n      }\n      return arguments.length ? swr.mutate(data, {\n        ...options,\n        revalidate: shouldRevalidate\n      }) : swr.mutate();\n    },\n    // swr.mutate is always the same reference\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    [\n      infiniteKey,\n      cache$1\n    ]\n  );\n  const setSize = useCallback(\n    (arg) => {\n      if (!infiniteKey)\n        return EMPTY_PROMISE;\n      const [, changeSize] = createCacheHelper(cache$1, infiniteKey);\n      let size;\n      if (isFunction(arg)) {\n        size = arg(resolvePageSize());\n      } else if (typeof arg == \"number\") {\n        size = arg;\n      }\n      if (typeof size != \"number\")\n        return EMPTY_PROMISE;\n      changeSize({\n        _l: size\n      });\n      lastPageSizeRef.current = size;\n      const data = [];\n      const [getInfiniteCache] = createCacheHelper(cache$1, infiniteKey);\n      let previousPageData = null;\n      for (let i = 0; i < size; ++i) {\n        const [pageKey] = serialize(getKey(i, previousPageData));\n        const [getCache] = createCacheHelper(cache$1, pageKey);\n        const pageData = pageKey ? getCache().data : UNDEFINED;\n        if (isUndefined(pageData)) {\n          return mutate(getInfiniteCache().data);\n        }\n        data.push(pageData);\n        previousPageData = pageData;\n      }\n      return mutate(data);\n    },\n    // exclude getKey from the dependencies, which isn't allowed to change during the lifecycle\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    [\n      infiniteKey,\n      cache$1,\n      mutate,\n      resolvePageSize\n    ]\n  );\n  return {\n    size: resolvePageSize(),\n    setSize,\n    mutate,\n    get data() {\n      return swr.data;\n    },\n    get error() {\n      return swr.error;\n    },\n    get isValidating() {\n      return swr.isValidating;\n    },\n    get isLoading() {\n      return swr.isLoading;\n    }\n  };\n};\nconst useSWRInfinite = withMiddleware(useSWR, infinite);\nexport {\n  useSWRInfinite as default,\n  infinite\n};\n","var SortType = /* @__PURE__ */ ((SortType2) => {\n  SortType2[\"FEATURED\"] = \"FEATURED\";\n  SortType2[\"BEST\"] = \"BEST\";\n  SortType2[\"NEW\"] = \"NEW\";\n  SortType2[\"REVIEW_DESC\"] = \"REVIEW_DESC\";\n  SortType2[\"PRICE_DESC\"] = \"PRICE_DESC\";\n  SortType2[\"PRICE_ASC\"] = \"PRICE_ASC\";\n  SortType2[\"DISCOUNT_DESC\"] = \"DISCOUNT_DESC\";\n  SortType2[\"LIKE_DESC\"] = \"LIKE_DESC\";\n  SortType2[\"ORDER_DESC\"] = \"ORDER_DESC\";\n  return SortType2;\n})(SortType || {});\nexport {\n  SortType\n};\n","import { throwFailError } from \"../@middlewares/throwFailError.js\";\nimport { APIService } from \"../APIService.js\";\nimport { env } from \"../../config/index.js\";\nclass DisplayBffApiService extends APIService {\n  constructor() {\n    super();\n    this.setBaseUrl(env.api.displayBff);\n    this.setMiddleware(throwFailError);\n  }\n  async getFacetGroup(payload) {\n    return this.post(`/api/v1/listing/facet-group`, {\n      ...payload,\n      pageType: \"CATEGORY_PLP\"\n    });\n  }\n  async getItems(payload) {\n    const params = new URLSearchParams({\n      tagIds: payload.tagIds.join(\",\"),\n      inventoryId: payload.inventoryId,\n      pageId: payload.pageId\n    });\n    if (payload.categoryCodes && payload.categoryCodes.length > 0) {\n      params.append(\"categoryCodes\", payload.categoryCodes.join(\",\"));\n    }\n    return this.get(`/api/v1/framer/listing/promoted-items?${params.toString()}`, void 0, {\n      credentials: \"include\"\n    });\n  }\n}\nconst displayBffApi = new DisplayBffApiService();\nexport {\n  displayBffApi\n};\n","import { APIService } from \"../APIService.js\";\nimport { throwFailError } from \"../@middlewares/throwFailError.js\";\nimport { env } from \"../../config/index.js\";\nclass RecommendApiService extends APIService {\n  constructor() {\n    super();\n    this.setBaseUrl(env.api.content);\n    this.setMiddleware(throwFailError);\n  }\n  async getPersonalizedProducts(productGroupId, limit) {\n    return this.get(`/api/v4/framers/proxy/content-api/api/v4/product-groups/${productGroupId}/for-you-products`, {\n      limit\n    }, {\n      credentials: \"include\"\n    }).then((data) => ({\n      ...data,\n      data: {\n        ...data.data,\n        productList: formatProducts(data.data.productList)\n      }\n    }));\n  }\n  async getRecommendedProductsByTagId(query) {\n    return this.get(\"/api/v4/framers/proxy/content-api/api/v5/recommendation/personalize/products\", query, {\n      credentials: \"include\"\n    }).then((data) => ({\n      ...data,\n      data: {\n        ...data.data,\n        products: formatCollectionProduct2Product(data.data.products)\n      }\n    }));\n  }\n}\nconst recommendApi = new RecommendApiService();\nconst formatCollectionProduct2Product = (products) => products.map((product) => {\n  var _a;\n  return {\n    frontBrand: {\n      frontBrandId: product.frontBrand.id,\n      nameKor: product.frontBrand.nameKor,\n      nameEng: product.frontBrand.nameEng\n    },\n    productId: product.productId,\n    productName: product.productName,\n    subjectDescriptions: product.subjectDescriptions,\n    imageUrl: product.imageUrl,\n    consumerPrice: product.consumerPrice,\n    lastSalePrice: product.lastSalePrice,\n    lastSalePercent: product.lastSalePercent,\n    heartCount: product.heartCount,\n    heartOn: product.heartOn,\n    reviewCount: product.reviewCount,\n    reviewAveragePoint: product.reviewAveragePoint,\n    isCoupon: product.saleInfo.coupon,\n    isFreeShipping: product.freeShipping,\n    isNew: product.newProperty,\n    isSoldOut: product.soldOut,\n    frontCategories: (_a = product.frontCategories) == null ? void 0 : _a.map((category) => ({\n      largeCategoryCode: category.largeCode ?? 0,\n      largeCategoryName: category.largeName ?? \"\",\n      mediumCategoryCode: category.mediumCode ?? 0,\n      mediumCategoryName: category.mediumName ?? \"\",\n      smallCategoryCode: category.smallCode ?? 0,\n      smallCategoryName: category.smallName ?? \"\"\n    }))\n  };\n});\nconst formatProducts = (products) => products.map((product) => ({\n  frontBrand: {\n    frontBrandId: product.frontBrandId,\n    nameKor: product.frontBrandNameKor,\n    nameEng: product.frontBrandNameEng\n  },\n  productId: product.productId,\n  productName: product.productName,\n  subjectDescriptions: product.subjectDescriptions,\n  imageUrl: product.imageUrl,\n  consumerPrice: product.consumerPrice,\n  lastSalePrice: product.lastSalePrice,\n  lastSalePercent: product.lastSalePercent,\n  heartCount: product.heartCount,\n  heartOn: product.heartOn,\n  reviewCount: product.reviewCount,\n  reviewAveragePoint: product.reviewAveragePoint,\n  isCoupon: product.searchSale.coupon,\n  isFreeShipping: product.freeShipping,\n  isNew: product.newProperty,\n  isSoldOut: product.soldOut,\n  frontCategoryInfo: product.searchFrontCategoryList\n}));\nexport {\n  formatCollectionProduct2Product,\n  recommendApi\n};\n","const MOCK_PRODUCTS = [{\n  consumerPrice: 155e3,\n  imageUrl: \"/item/202502/11efe8378fbdcae28f0ab7d30031e3c9.jpg\",\n  heartCount: 2789,\n  reviewCount: 118,\n  lastSalePercent: 15,\n  lastSalePrice: 132525,\n  isSoldOut: false,\n  isFreeShipping: true,\n  isNew: false,\n  reviewAveragePoint: 5,\n  heartOn: true,\n  subjectDescriptions: [\"[25SS]\"],\n  frontBrand: {\n    frontBrandId: 7789,\n    nameKor: \"노스페이스\",\n    nameEng: \"THE NORTH FACE\"\n  },\n  productId: 1942207,\n  productName: \"보레알리스 2 NM2DR04A_BLK\",\n  isCoupon: true,\n  frontCategories: [{\n    largeCategoryCode: 269100100,\n    largeCategoryName: \"여성가방\",\n    mediumCategoryCode: 269106100,\n    mediumCategoryName: \"백팩\",\n    smallCategoryCode: 100100100\n  }, {\n    largeCategoryCode: 273100100,\n    largeCategoryName: \"남성가방\",\n    mediumCategoryCode: 273104100,\n    mediumCategoryName: \"백팩\",\n    smallCategoryCode: 100100100\n  }, {\n    largeCategoryCode: 273100100,\n    largeCategoryName: \"남성가방\",\n    mediumCategoryCode: 100100100,\n    smallCategoryCode: 100100100\n  }, {\n    largeCategoryCode: 269100100,\n    largeCategoryName: \"여성가방\",\n    mediumCategoryCode: 100100100,\n    smallCategoryCode: 100100100\n  }]\n}, {\n  consumerPrice: 169e3,\n  imageUrl: \"/item/202411/11efa7ab6d5d1ecf9316592337ae1aca.jpg\",\n  heartCount: 22,\n  reviewCount: 0,\n  lastSalePercent: 44,\n  lastSalePrice: 94640,\n  isSoldOut: false,\n  isFreeShipping: true,\n  isNew: false,\n  reviewAveragePoint: 0,\n  heartOn: true,\n  subjectDescriptions: [],\n  frontBrand: {\n    frontBrandId: 7789,\n    nameKor: \"노스페이스\",\n    nameEng: \"THE NORTH FACE\"\n  },\n  productId: 2389405,\n  productName: \"듀얼 백팩 NM2DQ06K_LBE\",\n  isCoupon: true,\n  frontCategories: [{\n    largeCategoryCode: 273100100,\n    largeCategoryName: \"남성가방\",\n    mediumCategoryCode: 273104100,\n    mediumCategoryName: \"백팩\",\n    smallCategoryCode: 100100100\n  }]\n}, {\n  consumerPrice: 159e3,\n  imageUrl: \"/item/202411/11efa7a8eb30739b9d18ef45b4791ed5.jpg\",\n  heartCount: 3926,\n  reviewCount: 476,\n  lastSalePercent: 10,\n  lastSalePrice: 143100,\n  isSoldOut: false,\n  isFreeShipping: true,\n  isNew: false,\n  reviewAveragePoint: 4.9,\n  heartOn: true,\n  subjectDescriptions: [],\n  frontBrand: {\n    frontBrandId: 7789,\n    nameKor: \"노스페이스\",\n    nameEng: \"THE NORTH FACE\"\n  },\n  productId: 1634106,\n  productName: \"빅 샷 NM2DQ50A_BLK\",\n  isCoupon: false,\n  frontCategories: [{\n    largeCategoryCode: 273100100,\n    largeCategoryName: \"남성가방\",\n    mediumCategoryCode: 273104100,\n    mediumCategoryName: \"백팩\",\n    smallCategoryCode: 100100100\n  }, {\n    largeCategoryCode: 273100100,\n    largeCategoryName: \"남성가방\",\n    mediumCategoryCode: 100100100,\n    smallCategoryCode: 100100100\n  }]\n}, {\n  consumerPrice: 368e3,\n  imageUrl: \"/item/202501/11efc9657db7ebf58521852ca60f84fe.jpg\",\n  heartCount: 3710,\n  reviewCount: 200,\n  lastSalePercent: 0,\n  lastSalePrice: 368e3,\n  isSoldOut: false,\n  isFreeShipping: true,\n  isNew: false,\n  reviewAveragePoint: 5,\n  heartOn: true,\n  subjectDescriptions: [\"[25SS]\"],\n  frontBrand: {\n    frontBrandId: 7789,\n    nameKor: \"노스페이스\",\n    nameEng: \"THE NORTH FACE\"\n  },\n  productId: 2714814,\n  productName: \"여성 노벨티 눕시 RDS 다운 자켓 NJ1DR80J_BLK\",\n  isCoupon: false,\n  frontCategories: [{\n    largeCategoryCode: 268100100,\n    largeCategoryName: \"여성의류\",\n    mediumCategoryCode: 268102100,\n    mediumCategoryName: \"아우터\",\n    smallCategoryCode: 268102117,\n    smallCategoryName: \"숏패딩\"\n  }, {\n    largeCategoryCode: 268100100,\n    largeCategoryName: \"여성의류\",\n    mediumCategoryCode: 268102100,\n    mediumCategoryName: \"아우터\",\n    smallCategoryCode: 100100100\n  }, {\n    largeCategoryCode: 268100100,\n    largeCategoryName: \"여성의류\",\n    mediumCategoryCode: 100100100,\n    smallCategoryCode: 100100100\n  }]\n}, {\n  consumerPrice: 149e3,\n  imageUrl: \"/item/202502/11efe1c52098184b8521d58f5330e571.jpg\",\n  heartCount: 169,\n  reviewCount: 2,\n  lastSalePercent: 15,\n  lastSalePrice: 127395,\n  isSoldOut: false,\n  isFreeShipping: true,\n  isNew: false,\n  reviewAveragePoint: 5,\n  heartOn: true,\n  subjectDescriptions: [],\n  frontBrand: {\n    frontBrandId: 7789,\n    nameKor: \"노스페이스\",\n    nameEng: \"THE NORTH FACE\"\n  },\n  productId: 2715548,\n  productName: \"보레알리스 2 NM2DQ52E_JBK\",\n  isCoupon: true,\n  frontCategories: [{\n    largeCategoryCode: 273100100,\n    largeCategoryName: \"남성가방\",\n    mediumCategoryCode: 273104100,\n    mediumCategoryName: \"백팩\",\n    smallCategoryCode: 100100100\n  }, {\n    largeCategoryCode: 273100100,\n    largeCategoryName: \"남성가방\",\n    mediumCategoryCode: 100100100,\n    smallCategoryCode: 100100100\n  }]\n}, {\n  consumerPrice: 109e3,\n  imageUrl: \"/item/202411/11efa7a909f8dae393166bd9acde4a3d.jpg\",\n  heartCount: 5482,\n  reviewCount: 403,\n  lastSalePercent: 15,\n  lastSalePrice: 93195,\n  isSoldOut: false,\n  isFreeShipping: true,\n  isNew: false,\n  reviewAveragePoint: 5,\n  heartOn: true,\n  subjectDescriptions: [],\n  frontBrand: {\n    frontBrandId: 7789,\n    nameKor: \"노스페이스\",\n    nameEng: \"THE NORTH FACE\"\n  },\n  productId: 1744341,\n  productName: \"미니샷 NM2DQ53A_BLK\",\n  isCoupon: true,\n  frontCategories: [{\n    largeCategoryCode: 273100100,\n    largeCategoryName: \"남성가방\",\n    mediumCategoryCode: 273104100,\n    mediumCategoryName: \"백팩\",\n    smallCategoryCode: 100100100\n  }, {\n    largeCategoryCode: 273100100,\n    largeCategoryName: \"남성가방\",\n    mediumCategoryCode: 100100100,\n    smallCategoryCode: 100100100\n  }]\n}, {\n  consumerPrice: 398e3,\n  imageUrl: \"/item/202502/11efe1c50372b3098521eff5f021c0b7.jpg\",\n  heartCount: 4450,\n  reviewCount: 500,\n  lastSalePercent: 0,\n  lastSalePrice: 398e3,\n  isSoldOut: false,\n  isFreeShipping: true,\n  isNew: false,\n  reviewAveragePoint: 5,\n  heartOn: true,\n  subjectDescriptions: [],\n  frontBrand: {\n    frontBrandId: 7789,\n    nameKor: \"노스페이스\",\n    nameEng: \"THE NORTH FACE\"\n  },\n  productId: 2158524,\n  productName: \"노벨티 눕시 RDS 다운 자켓 NJ1DQ51J_BLK\",\n  isCoupon: false,\n  frontCategories: [{\n    largeCategoryCode: 272100100,\n    largeCategoryName: \"남성의류\",\n    mediumCategoryCode: 272102100,\n    mediumCategoryName: \"아우터\",\n    smallCategoryCode: 272102104,\n    smallCategoryName: \"숏패딩\"\n  }, {\n    largeCategoryCode: 268100100,\n    largeCategoryName: \"여성의류\",\n    mediumCategoryCode: 268116100,\n    mediumCategoryName: \"EXCLUSIVE\",\n    smallCategoryCode: 268116103,\n    smallCategoryName: \"아우터\"\n  }, {\n    largeCategoryCode: 272100100,\n    largeCategoryName: \"남성의류\",\n    mediumCategoryCode: 272111100,\n    mediumCategoryName: \"EXCLUSIVE\",\n    smallCategoryCode: 272111103,\n    smallCategoryName: \"아우터\"\n  }, {\n    largeCategoryCode: 268100100,\n    largeCategoryName: \"여성의류\",\n    mediumCategoryCode: 268116100,\n    mediumCategoryName: \"EXCLUSIVE\",\n    smallCategoryCode: 100100100\n  }, {\n    largeCategoryCode: 272100100,\n    largeCategoryName: \"남성의류\",\n    mediumCategoryCode: 100100100,\n    smallCategoryCode: 100100100\n  }, {\n    largeCategoryCode: 272100100,\n    largeCategoryName: \"남성의류\",\n    mediumCategoryCode: 272111100,\n    mediumCategoryName: \"EXCLUSIVE\",\n    smallCategoryCode: 100100100\n  }, {\n    largeCategoryCode: 272100100,\n    largeCategoryName: \"남성의류\",\n    mediumCategoryCode: 272102100,\n    mediumCategoryName: \"아우터\",\n    smallCategoryCode: 100100100\n  }, {\n    largeCategoryCode: 268100100,\n    largeCategoryName: \"여성의류\",\n    mediumCategoryCode: 100100100,\n    smallCategoryCode: 100100100\n  }]\n}, {\n  consumerPrice: 199e3,\n  imageUrl: \"/item/202502/11efe9a806bbc08c8f0af1b717708006.jpg\",\n  heartCount: 1893,\n  reviewCount: 94,\n  lastSalePercent: 5,\n  lastSalePrice: 189050,\n  isSoldOut: false,\n  isFreeShipping: true,\n  isNew: false,\n  reviewAveragePoint: 5,\n  heartOn: true,\n  subjectDescriptions: [\"[25SS]\"],\n  frontBrand: {\n    frontBrandId: 7789,\n    nameKor: \"노스페이스\",\n    nameEng: \"THE NORTH FACE\"\n  },\n  productId: 2326012,\n  productName: \"눕시 온볼 베스트 NV3NR50A_BLK\",\n  isCoupon: true,\n  frontCategories: [{\n    largeCategoryCode: 272100100,\n    largeCategoryName: \"남성의류\",\n    mediumCategoryCode: 272102100,\n    mediumCategoryName: \"아우터\",\n    smallCategoryCode: 272102106,\n    smallCategoryName: \"베스트\"\n  }, {\n    largeCategoryCode: 272100100,\n    largeCategoryName: \"남성의류\",\n    mediumCategoryCode: 100100100,\n    smallCategoryCode: 100100100\n  }, {\n    largeCategoryCode: 272100100,\n    largeCategoryName: \"남성의류\",\n    mediumCategoryCode: 272102100,\n    mediumCategoryName: \"아우터\",\n    smallCategoryCode: 100100100\n  }]\n}, {\n  consumerPrice: 269e3,\n  imageUrl: \"/item/202412/11efb924aca3ec8ead1bbdf9e249e357.jpg\",\n  heartCount: 172,\n  reviewCount: 20,\n  lastSalePercent: 0,\n  lastSalePrice: 269e3,\n  isSoldOut: false,\n  isFreeShipping: true,\n  isNew: false,\n  reviewAveragePoint: 5,\n  heartOn: true,\n  subjectDescriptions: [],\n  frontBrand: {\n    frontBrandId: 7789,\n    nameKor: \"노스페이스\",\n    nameEng: \"THE NORTH FACE\"\n  },\n  productId: 2987892,\n  productName: \"남성 1996 에코 눕시 베스트 NV1DQ55A_BLK\",\n  isCoupon: false,\n  frontCategories: [{\n    largeCategoryCode: 268100100,\n    largeCategoryName: \"여성의류\",\n    mediumCategoryCode: 268102100,\n    mediumCategoryName: \"아우터\",\n    smallCategoryCode: 268102117,\n    smallCategoryName: \"숏패딩\"\n  }, {\n    largeCategoryCode: 272100100,\n    largeCategoryName: \"남성의류\",\n    mediumCategoryCode: 272102100,\n    mediumCategoryName: \"아우터\",\n    smallCategoryCode: 272102104,\n    smallCategoryName: \"숏패딩\"\n  }]\n}, {\n  consumerPrice: 398e3,\n  imageUrl: \"/item/202501/11efd3c8584dfacb85218560bb0f3ad4.jpg\",\n  heartCount: 4982,\n  reviewCount: 369,\n  lastSalePercent: 0,\n  lastSalePrice: 398e3,\n  isSoldOut: false,\n  isFreeShipping: true,\n  isNew: false,\n  reviewAveragePoint: 5,\n  heartOn: true,\n  subjectDescriptions: [\"[25SS]\"],\n  frontBrand: {\n    frontBrandId: 7789,\n    nameKor: \"노스페이스\",\n    nameEng: \"THE NORTH FACE\"\n  },\n  productId: 2276799,\n  productName: \"노벨티 눕시 다운 자켓 (RDS) NJ1DR50K_RBK\",\n  isCoupon: false,\n  frontCategories: [{\n    largeCategoryCode: 272100100,\n    largeCategoryName: \"남성의류\",\n    mediumCategoryCode: 272102100,\n    mediumCategoryName: \"아우터\",\n    smallCategoryCode: 272102104,\n    smallCategoryName: \"숏패딩\"\n  }, {\n    largeCategoryCode: 268100100,\n    largeCategoryName: \"여성의류\",\n    mediumCategoryCode: 268102100,\n    mediumCategoryName: \"아우터\",\n    smallCategoryCode: 268102117,\n    smallCategoryName: \"숏패딩\"\n  }, {\n    largeCategoryCode: 268100100,\n    largeCategoryName: \"여성의류\",\n    mediumCategoryCode: 268116100,\n    mediumCategoryName: \"EXCLUSIVE\",\n    smallCategoryCode: 268116103,\n    smallCategoryName: \"아우터\"\n  }, {\n    largeCategoryCode: 272100100,\n    largeCategoryName: \"남성의류\",\n    mediumCategoryCode: 272111100,\n    mediumCategoryName: \"EXCLUSIVE\",\n    smallCategoryCode: 272111103,\n    smallCategoryName: \"아우터\"\n  }, {\n    largeCategoryCode: 268100100,\n    largeCategoryName: \"여성의류\",\n    mediumCategoryCode: 268116100,\n    mediumCategoryName: \"EXCLUSIVE\",\n    smallCategoryCode: 100100100\n  }, {\n    largeCategoryCode: 272100100,\n    largeCategoryName: \"남성의류\",\n    mediumCategoryCode: 100100100,\n    smallCategoryCode: 100100100\n  }, {\n    largeCategoryCode: 272100100,\n    largeCategoryName: \"남성의류\",\n    mediumCategoryCode: 272111100,\n    mediumCategoryName: \"EXCLUSIVE\",\n    smallCategoryCode: 100100100\n  }, {\n    largeCategoryCode: 272100100,\n    largeCategoryName: \"남성의류\",\n    mediumCategoryCode: 272102100,\n    mediumCategoryName: \"아우터\",\n    smallCategoryCode: 100100100\n  }, {\n    largeCategoryCode: 268100100,\n    largeCategoryName: \"여성의류\",\n    mediumCategoryCode: 268102100,\n    mediumCategoryName: \"아우터\",\n    smallCategoryCode: 100100100\n  }, {\n    largeCategoryCode: 268100100,\n    largeCategoryName: \"여성의류\",\n    mediumCategoryCode: 100100100,\n    smallCategoryCode: 100100100\n  }]\n}, {\n  consumerPrice: 178e3,\n  imageUrl: \"/item/202411/11efa7d791842b119d18ff2e784a1000.jpg\",\n  heartCount: 216,\n  reviewCount: 3,\n  lastSalePercent: 34,\n  lastSalePrice: 118370,\n  isSoldOut: false,\n  isFreeShipping: true,\n  isNew: false,\n  reviewAveragePoint: 5,\n  heartOn: true,\n  subjectDescriptions: [],\n  frontBrand: {\n    frontBrandId: 7789,\n    nameKor: \"노스페이스\",\n    nameEng: \"THE NORTH FACE\"\n  },\n  productId: 2885368,\n  productName: \"밴든 자켓 NJ3BQ53K_GRY\",\n  isCoupon: true,\n  frontCategories: [{\n    largeCategoryCode: 272100100,\n    largeCategoryName: \"남성의류\",\n    mediumCategoryCode: 272102100,\n    mediumCategoryName: \"아우터\",\n    smallCategoryCode: 272102129,\n    smallCategoryName: \"바람막이\"\n  }, {\n    largeCategoryCode: 272100100,\n    largeCategoryName: \"남성의류\",\n    mediumCategoryCode: 100100100,\n    smallCategoryCode: 100100100\n  }, {\n    largeCategoryCode: 272100100,\n    largeCategoryName: \"남성의류\",\n    mediumCategoryCode: 272102100,\n    mediumCategoryName: \"아우터\",\n    smallCategoryCode: 100100100\n  }]\n}, {\n  consumerPrice: 178e3,\n  imageUrl: \"/item/202411/11efa7d93984c9559d1821d6fcb2b98b.jpg\",\n  heartCount: 274,\n  reviewCount: 2,\n  lastSalePercent: 34,\n  lastSalePrice: 118370,\n  isSoldOut: false,\n  isFreeShipping: true,\n  isNew: false,\n  reviewAveragePoint: 5,\n  heartOn: true,\n  subjectDescriptions: [],\n  frontBrand: {\n    frontBrandId: 7789,\n    nameKor: \"노스페이스\",\n    nameEng: \"THE NORTH FACE\"\n  },\n  productId: 2901769,\n  productName: \"밴든 자켓 NJ3BQ53L_BBR\",\n  isCoupon: true,\n  frontCategories: [{\n    largeCategoryCode: 272100100,\n    largeCategoryName: \"남성의류\",\n    mediumCategoryCode: 272102100,\n    mediumCategoryName: \"아우터\",\n    smallCategoryCode: 272102104,\n    smallCategoryName: \"숏패딩\"\n  }, {\n    largeCategoryCode: 272100100,\n    largeCategoryName: \"남성의류\",\n    mediumCategoryCode: 100100100,\n    smallCategoryCode: 100100100\n  }, {\n    largeCategoryCode: 272100100,\n    largeCategoryName: \"남성의류\",\n    mediumCategoryCode: 272102100,\n    mediumCategoryName: \"아우터\",\n    smallCategoryCode: 100100100\n  }]\n}, {\n  consumerPrice: 165e3,\n  imageUrl: \"/item/202411/11efa7ba136c129b9d18835acf182eb2.jpg\",\n  heartCount: 378,\n  reviewCount: 12,\n  lastSalePercent: 36,\n  lastSalePrice: 105600,\n  isSoldOut: false,\n  isFreeShipping: true,\n  isNew: false,\n  reviewAveragePoint: 5,\n  heartOn: true,\n  subjectDescriptions: [],\n  frontBrand: {\n    frontBrandId: 7789,\n    nameKor: \"노스페이스\",\n    nameEng: \"THE NORTH FACE\"\n  },\n  productId: 2652594,\n  productName: \"어센드 엘티 25 NM2SQ11A_BLK\",\n  isCoupon: true,\n  frontCategories: [{\n    largeCategoryCode: 273100100,\n    largeCategoryName: \"남성가방\",\n    mediumCategoryCode: 273104100,\n    mediumCategoryName: \"백팩\",\n    smallCategoryCode: 100100100\n  }, {\n    largeCategoryCode: 273100100,\n    largeCategoryName: \"남성가방\",\n    mediumCategoryCode: 100100100,\n    smallCategoryCode: 100100100\n  }]\n}, {\n  consumerPrice: 179e3,\n  imageUrl: \"/item/202412/11efc64ed7874620ad1be9f7ff63eea8.jpg\",\n  heartCount: 98,\n  reviewCount: 7,\n  lastSalePercent: 15,\n  lastSalePrice: 153045,\n  isSoldOut: false,\n  isFreeShipping: true,\n  isNew: false,\n  reviewAveragePoint: 5,\n  heartOn: true,\n  subjectDescriptions: [\"[25SS]\"],\n  frontBrand: {\n    frontBrandId: 7789,\n    nameKor: \"노스페이스\",\n    nameEng: \"THE NORTH FACE\"\n  },\n  productId: 3005503,\n  productName: \"슈퍼팩 투 NM2DR01J_BLK\",\n  isCoupon: true,\n  frontCategories: [{\n    largeCategoryCode: 269100100,\n    largeCategoryName: \"여성가방\",\n    mediumCategoryCode: 269106100,\n    mediumCategoryName: \"백팩\",\n    smallCategoryCode: 100100100\n  }, {\n    largeCategoryCode: 273100100,\n    largeCategoryName: \"남성가방\",\n    mediumCategoryCode: 273104100,\n    mediumCategoryName: \"백팩\",\n    smallCategoryCode: 100100100\n  }]\n}, {\n  consumerPrice: 149e3,\n  imageUrl: \"/item/202411/11efa7e13b9316619316a5c4947fa678.jpg\",\n  heartCount: 774,\n  reviewCount: 35,\n  lastSalePercent: 41,\n  lastSalePrice: 88655,\n  isSoldOut: false,\n  isFreeShipping: true,\n  isNew: false,\n  reviewAveragePoint: 5,\n  heartOn: true,\n  subjectDescriptions: [],\n  frontBrand: {\n    frontBrandId: 7789,\n    nameKor: \"노스페이스\",\n    nameEng: \"THE NORTH FACE\"\n  },\n  productId: 2949339,\n  productName: \"여성 스트링 EX 부띠 NS99Q57J_RBK\",\n  isCoupon: true,\n  frontCategories: [{\n    largeCategoryCode: 270100100,\n    largeCategoryName: \"여성신발\",\n    mediumCategoryCode: 270103100,\n    mediumCategoryName: \"부츠\",\n    smallCategoryCode: 270103101,\n    smallCategoryName: \"앵클 부츠\"\n  }]\n}, {\n  consumerPrice: 269e3,\n  imageUrl: \"/item/202411/11efad615d9f79558521b5ff60f4e8a3.jpg\",\n  heartCount: 640,\n  reviewCount: 6,\n  lastSalePercent: 44,\n  lastSalePrice: 151050,\n  isSoldOut: false,\n  isFreeShipping: true,\n  isNew: false,\n  reviewAveragePoint: 5,\n  heartOn: true,\n  subjectDescriptions: [],\n  frontBrand: {\n    frontBrandId: 7789,\n    nameKor: \"노스페이스\",\n    nameEng: \"THE NORTH FACE\"\n  },\n  productId: 2923736,\n  productName: \"여성 써밋 히트라인 자켓 NJ3NQ82A_BLK\",\n  isCoupon: true,\n  frontCategories: [{\n    largeCategoryCode: 268100100,\n    largeCategoryName: \"여성의류\",\n    mediumCategoryCode: 268102100,\n    mediumCategoryName: \"아우터\",\n    smallCategoryCode: 268102118,\n    smallCategoryName: \"경량패딩\"\n  }]\n}, {\n  consumerPrice: 178e3,\n  imageUrl: \"/item/202411/11efa7d9f79a488d9316d7182d8c60f0.jpg\",\n  heartCount: 905,\n  reviewCount: 7,\n  lastSalePercent: 24,\n  lastSalePrice: 135280,\n  isSoldOut: false,\n  isFreeShipping: true,\n  isNew: false,\n  reviewAveragePoint: 4.5,\n  heartOn: true,\n  subjectDescriptions: [],\n  frontBrand: {\n    frontBrandId: 7789,\n    nameKor: \"노스페이스\",\n    nameEng: \"THE NORTH FACE\"\n  },\n  productId: 2906821,\n  productName: \"여성 에센셜 라이트 브이모션 자켓 NJ3NQ80J_CRE\",\n  isCoupon: true,\n  frontCategories: [{\n    largeCategoryCode: 268100100,\n    largeCategoryName: \"여성의류\",\n    mediumCategoryCode: 268102100,\n    mediumCategoryName: \"아우터\",\n    smallCategoryCode: 268102118,\n    smallCategoryName: \"경량패딩\"\n  }]\n}, {\n  consumerPrice: 418e3,\n  imageUrl: \"/item/202411/11efad4449d5bb7f8521a9c74e484920.jpg\",\n  heartCount: 971,\n  reviewCount: 28,\n  lastSalePercent: 15,\n  lastSalePrice: 357390,\n  isSoldOut: false,\n  isFreeShipping: true,\n  isNew: false,\n  reviewAveragePoint: 5,\n  heartOn: true,\n  subjectDescriptions: [],\n  frontBrand: {\n    frontBrandId: 7789,\n    nameKor: \"노스페이스\",\n    nameEng: \"THE NORTH FACE\"\n  },\n  productId: 2969341,\n  productName: \"여성 노벨티 눕시 미드 다운 자켓 (RDS) NJ1DQ94J_BLK\",\n  isCoupon: true,\n  frontCategories: [{\n    largeCategoryCode: 268100100,\n    largeCategoryName: \"여성의류\",\n    mediumCategoryCode: 268102100,\n    mediumCategoryName: \"아우터\",\n    smallCategoryCode: 268102117,\n    smallCategoryName: \"숏패딩\"\n  }]\n}, {\n  consumerPrice: 89e3,\n  imageUrl: \"/item/202411/11efa7abf5e841e39d18072019049ade.jpg\",\n  heartCount: 3355,\n  reviewCount: 175,\n  lastSalePercent: 15,\n  lastSalePrice: 76095,\n  isSoldOut: false,\n  isFreeShipping: true,\n  isNew: false,\n  reviewAveragePoint: 5,\n  heartOn: true,\n  subjectDescriptions: [],\n  frontBrand: {\n    frontBrandId: 7789,\n    nameKor: \"노스페이스\",\n    nameEng: \"THE NORTH FACE\"\n  },\n  productId: 2417483,\n  productName: \"보레알리스 미니 팩 NM2DQ55A_BLK\",\n  isCoupon: true,\n  frontCategories: [{\n    largeCategoryCode: 269100100,\n    largeCategoryName: \"여성가방\",\n    mediumCategoryCode: 269106100,\n    mediumCategoryName: \"백팩\",\n    smallCategoryCode: 100100100\n  }, {\n    largeCategoryCode: 269100100,\n    largeCategoryName: \"여성가방\",\n    mediumCategoryCode: 100100100,\n    smallCategoryCode: 100100100\n  }]\n}, {\n  consumerPrice: 399e3,\n  imageUrl: \"/item/202411/11efa5991c716fa3afbc4f7994967cf8.jpg\",\n  heartCount: 807,\n  reviewCount: 30,\n  lastSalePercent: 30,\n  lastSalePrice: 279300,\n  isSoldOut: false,\n  isFreeShipping: true,\n  isNew: false,\n  reviewAveragePoint: 5,\n  heartOn: true,\n  subjectDescriptions: [\"[29CM 단독]\"],\n  frontBrand: {\n    frontBrandId: 7789,\n    nameKor: \"노스페이스\",\n    nameEng: \"THE NORTH FACE\"\n  },\n  productId: 2916253,\n  productName: \"써밋 마테호른 RDS 다운 자켓 NJ1DQ90A_RBK\",\n  isCoupon: false,\n  frontCategories: [{\n    largeCategoryCode: 272100100,\n    largeCategoryName: \"남성의류\",\n    mediumCategoryCode: 272102100,\n    mediumCategoryName: \"아우터\",\n    smallCategoryCode: 272102104,\n    smallCategoryName: \"숏패딩\"\n  }]\n}];\nconst createMockProductList = (productIdList) => productIdList.map((productId, index) => ({\n  ...MOCK_PRODUCTS[index % MOCK_PRODUCTS.length],\n  productId\n  // 입력된 ID로 덮어쓰기\n}));\nconst createMockCollection = (collectionId, index) => ({\n  collectionId,\n  title: `원브랜드데이 ${index + 1}일차`,\n  description: \"오늘이 마지막! 전에 없던 강력한 혜택을 붙잡아요\",\n  displayStartAt: \"2026-01-21T00:00:00.000+09:00\",\n  displayEndAt: \"2026-01-21T23:59:59.999+09:00\",\n  couponId: 3e5 + index,\n  coverImageUrl: \"https://img.29cm.co.kr/next-brand/2025/08/29/4c2abdbffea0465ab184c13a12e07d31_20250829132052.jpg\",\n  productGroupList: [{\n    collectionProductGroupId: collectionId * 100 + 1,\n    title: \"BEST\",\n    sort: \"BEST\"\n  }, {\n    collectionProductGroupId: collectionId * 100 + 2,\n    title: \"아우터\",\n    sort: \"BEST\"\n  }, {\n    collectionProductGroupId: collectionId * 100 + 3,\n    title: \"상의\",\n    sort: \"BEST\"\n  }, {\n    collectionProductGroupId: collectionId * 100 + 4,\n    title: \"하의\",\n    sort: \"BEST\"\n  }, {\n    collectionProductGroupId: collectionId * 100 + 5,\n    title: \"원피스\",\n    sort: \"BEST\"\n  }, {\n    collectionProductGroupId: collectionId * 100 + 6,\n    title: \"가방/잡화\",\n    sort: \"BEST\"\n  }]\n});\nexport {\n  MOCK_PRODUCTS,\n  createMockCollection,\n  createMockProductList\n};\n","function last(array) {\n  var length = array == null ? 0 : array.length;\n  return length ? array[length - 1] : void 0;\n}\nexport {\n  last as default\n};\n","import { useMemo } from \"react\";\nimport useSWR from \"../../../node_modules/swr/core/dist/index.js\";\nimport useSWRInfinite from \"../../../node_modules/swr/infinite/dist/index.js\";\nimport { keywordCollectionApi } from \"../../../apis/keyword-collections/KeywordCollectionApiService.js\";\nimport { SortType } from \"../../../types/models/sort.js\";\nimport { bestApi } from \"../../../apis/best/BestApiService.js\";\nimport { brandSaleApi } from \"../../../apis/brand-sale/BrandSaleApiService.js\";\nimport { displayBffApi } from \"../../../apis/display-bff/DisplayBffApiService.js\";\nimport { framerApi } from \"../../../apis/framer/FramerApiService.js\";\nimport { preuserApi } from \"../../../apis/preuser/PreuserApiService.js\";\nimport { recommendApi } from \"../../../apis/recommend/RecommendApiService.js\";\nimport \"../../../hooks/stores/content/content.store.js\";\nimport \"../../../utils/event-properties/source.js\";\nimport { isCanvas } from \"../../../utils/framer/isCanvas.js\";\nimport { isFramerPreview } from \"../../../utils/framer/isFramerPreview.js\";\nimport { splitToNumberArray } from \"../../../utils/splitToNumberArray.js\";\nimport { MOCK_PRODUCTS } from \"../mock.js\";\nimport { QueryType, RankingType } from \"../types.js\";\nimport { createMolocoKey } from \"../utils/key.js\";\nimport last from \"../../../node_modules/lodash-es/last.js\";\nconst BRAND_CURATION_PRODUCTS_MAX_SIZE = 60;\nconst RECOMMENDATION_PRODUCTS_MAX_SIZE = 60;\nconst RANKING_PRODUCTS_PER_REQUEST = 24;\nconst RANKING_PRODUCTS_MAX_SIZE = 100;\nconst RANKING_PRODUCTS_DEFAULT_AGE = 30;\nconst getInitialPaginationOptions = (size) => ({\n  page: 1,\n  size\n});\nconst useMolocoProductsQuery = (options) => {\n  const {\n    enabled: _enabled = true,\n    query\n  } = options;\n  const enabled = _enabled && query !== void 0;\n  const cacheKey = enabled && query ? createMolocoKey(query) : null;\n  const {\n    data,\n    isLoading,\n    ...rest\n  } = useSWR(cacheKey, () => fetchMolocoItems(query));\n  const products = useMemo(() => (data == null ? void 0 : data.products) ?? [], [data]);\n  return {\n    isLoading: isLoading || !enabled,\n    products,\n    hasNext: false,\n    page: 1,\n    fetchNextPage: () => {\n    },\n    ...rest\n  };\n};\nconst useProductsQuery = (options) => {\n  const {\n    enabled: _enabled = true,\n    query,\n    size: _size,\n    userSegment\n  } = options;\n  const enabled = _enabled && query !== void 0;\n  const {\n    isLoading,\n    data,\n    size,\n    setSize,\n    ...rest\n  } = useSWRInfinite(getKey(query, getInitialPaginationOptions(_size), enabled), ({\n    key\n  }) => queryProducts(key.query, userSegment, key.pagination));\n  const products = useMemo(() => (data == null ? void 0 : data.flatMap((item) => item.products)) ?? [], [data]);\n  const {\n    hasNext = false\n  } = last(data) ?? {};\n  const fetchNextPage = () => {\n    if (!hasNext) {\n      return;\n    }\n    setSize((prev) => prev + 1);\n  };\n  return {\n    isLoading: isLoading || !enabled,\n    products,\n    hasNext,\n    page: size,\n    fetchNextPage,\n    ...rest\n  };\n};\nconst fetchProducts = async (query, options) => {\n  if (!query.productIds) {\n    return {\n      hasNext: false,\n      products: []\n    };\n  }\n  const {\n    page,\n    size\n  } = options;\n  const offset = page * size;\n  const productIds = splitToNumberArray(query.productIds);\n  const skipped = productIds.slice(offset, productIds.length);\n  const took = skipped.slice(0, size);\n  const hasNext = skipped.length > took.length;\n  const products = await framerApi.getFramerProductListV2(took);\n  return {\n    hasNext,\n    products\n  };\n};\nconst fetchKeywordCollectionProducts = async (query, options) => {\n  var _a, _b;\n  if (!query.keywordCollectionId) {\n    return {\n      hasNext: false,\n      products: []\n    };\n  }\n  const keywordCollectionId = Number(query.keywordCollectionId);\n  const {\n    hasNext,\n    resultList\n  } = await keywordCollectionApi.getCollectionProducts({\n    collectionId: keywordCollectionId,\n    productGroupId: ((_a = query.selectedProductGroup) == null ? void 0 : _a.id) ?? await fetchFirstProductGroupId(keywordCollectionId),\n    sort: ((_b = query.selectedProductGroup) == null ? void 0 : _b.sort) ?? SortType.FEATURED,\n    ...options\n  });\n  return {\n    hasNext,\n    products: resultList\n  };\n};\nconst fetchFirstProductGroupId = async (keywordCollectionId) => {\n  const {\n    data\n  } = await keywordCollectionApi.getKeywordCollection(keywordCollectionId);\n  const [{\n    productGroupId\n  }] = data.productGroups;\n  return productGroupId;\n};\nconst fetchBrandCurationProducts = async (query, options) => {\n  if (!query.brandId) {\n    return {\n      hasNext: false,\n      products: []\n    };\n  }\n  const tagIds = splitToNumberArray(query.brandCurationTagIds);\n  const {\n    products\n  } = await bestApi.getRankedProducts({\n    facetGroupInput: {\n      brandFacetInputs: [{\n        frontBrandNo: query.brandId\n      }],\n      rankingFacetInput: {\n        type: \"POPULARITY\"\n      },\n      periodFacetInput: {\n        type: \"HOURLY\",\n        order: \"DESC\"\n      },\n      stockFacetInputs: [{\n        type: \"IN_STOCK\"\n      }],\n      tagFacetInputs: tagIds.map((tagId) => ({\n        tagId\n      }))\n    },\n    pagination: options\n  });\n  const hasNext = options.page * options.size < BRAND_CURATION_PRODUCTS_MAX_SIZE;\n  return {\n    hasNext,\n    products\n  };\n};\nconst fetchRecommendationProducts = async (query) => {\n  if (!query.recommendationTagIds) {\n    return {\n      hasNext: false,\n      products: []\n    };\n  }\n  if (isCanvas() || isFramerPreview()) {\n    return {\n      hasNext: false,\n      products: MOCK_PRODUCTS\n    };\n  }\n  const tagIds = splitToNumberArray(query.recommendationTagIds).join(\",\");\n  const {\n    data\n  } = await recommendApi.getRecommendedProductsByTagId({\n    limit: RECOMMENDATION_PRODUCTS_MAX_SIZE,\n    tagIds: tagIds || void 0\n  });\n  return {\n    // NOTE(임규민): 개인화 추천 API 는 페이지네이션을 지원하지 않으므로 hasNext 를 false 로 둔다.\n    hasNext: false,\n    products: data.products\n  };\n};\nconst fetchRankingProducts = async (query, userSegment, options) => {\n  if (!query.rankingTagIds) {\n    return {\n      hasNext: false,\n      products: []\n    };\n  }\n  const isTrending = query.rankingType === RankingType.Trending;\n  const hasLargeCategoryId = query.largeCategoryId !== void 0;\n  const hasMiddleCategoryId = query.middleCategoryId !== void 0;\n  const tagIds = splitToNumberArray(query.rankingTagIds);\n  const {\n    products\n  } = await bestApi.getRankedProducts({\n    facetGroupInput: {\n      categoryFacetInputs: hasLargeCategoryId ? [{\n        largeId: query.largeCategoryId,\n        ...hasMiddleCategoryId ? {\n          middleId: query.middleCategoryId\n        } : void 0\n      }] : [],\n      tagFacetInputs: tagIds.map((tagId) => ({\n        tagId\n      })),\n      rankingFacetInput: {\n        type: query.rankingType\n      },\n      periodFacetInput: {\n        type: isTrending ? query.trendingPeriodType : query.popularityPeriodType,\n        order: \"DESC\"\n      }\n    },\n    userSegment: {\n      gender: userSegment.gender ?? \"F\",\n      age: RANKING_PRODUCTS_DEFAULT_AGE\n    },\n    pagination: {\n      ...options,\n      size: RANKING_PRODUCTS_PER_REQUEST\n    }\n  });\n  const hasNext = options.page * options.size < RANKING_PRODUCTS_MAX_SIZE;\n  return {\n    hasNext,\n    products\n  };\n};\nconst fetchCouponCollectionProducts = async (query, options) => {\n  if (!query.couponCollectionId) {\n    return {\n      hasNext: false,\n      products: []\n    };\n  }\n  const {\n    hasNext,\n    resultList\n  } = await brandSaleApi.getCouponCollectionProducts(query.couponCollectionId, {\n    ...options,\n    sort: SortType.BEST\n  });\n  return {\n    hasNext,\n    products: resultList\n  };\n};\nconst fetchPreuserProducts = async (query) => {\n  if (!query.preuserIds) {\n    return {\n      hasNext: false,\n      products: []\n    };\n  }\n  const preuserIds = splitToNumberArray(query.preuserIds);\n  const {\n    products\n  } = await preuserApi.getPreuser(preuserIds);\n  return {\n    hasNext: false,\n    products\n  };\n};\nconst fetchMolocoItems = async (query) => {\n  if (!query.tagId) {\n    return {\n      hasNext: false,\n      products: []\n    };\n  }\n  if (isCanvas() || isFramerPreview()) {\n    const MOCK_TABS = [\"추천\", \"신상품\", \"베스트\"];\n    const allProducts2 = MOCK_TABS.flatMap((tabName) => MOCK_PRODUCTS.map((product) => ({\n      ...product,\n      molocoTab: tabName\n    })));\n    return {\n      hasNext: false,\n      products: allProducts2\n    };\n  }\n  const {\n    categories\n  } = query;\n  const categoryCodes = (categories == null ? void 0 : categories.map((category) => category.categoryId)) || [];\n  const {\n    data\n  } = await displayBffApi.getItems({\n    tagIds: [Number(query.tagId)],\n    inventoryId: query.inventoryId || \"\",\n    pageId: query.pageId || \"\",\n    categoryCodes\n  });\n  const allProducts = data.tabs.flatMap((tab, tabIndex) => tab.items.map((item) => {\n    var _a;\n    return {\n      // 기본 상품 정보 매핑\n      frontBrand: {\n        frontBrandId: item.itemInfo.brandId,\n        nameKor: item.itemInfo.brandName,\n        nameEng: \"\"\n      },\n      productId: item.itemId,\n      productName: item.itemInfo.productName,\n      subjectDescriptions: [],\n      imageUrl: item.itemInfo.thumbnailUrl,\n      consumerPrice: item.itemInfo.originalPrice,\n      lastSalePrice: item.itemInfo.displayPrice,\n      lastSalePercent: item.itemInfo.saleRate,\n      heartCount: item.itemInfo.likeCount,\n      heartOn: item.itemInfo.isLiked,\n      reviewAveragePoint: item.itemInfo.reviewScore,\n      reviewCount: item.itemInfo.reviewCount,\n      isCoupon: false,\n      isFreeShipping: false,\n      isNew: false,\n      isSoldOut: item.itemInfo.isSoldOut,\n      frontCategories: item.itemInfo.extraInfo.categories.map((cat) => ({\n        largeCategoryCode: cat.largeCategoryCode,\n        mediumCategoryCode: cat.mediumCategoryCode,\n        smallCategoryCode: cat.smallCategoryCode\n      })),\n      // 메타데이터: 이 상품이 어느 탭(facet)에서 온 것인지 표시\n      // 컴포넌트에서 query.facetName과 비교하여 필터링에 사용됨\n      molocoTab: ((_a = categories == null ? void 0 : categories[tabIndex]) == null ? void 0 : _a.categoryName) ?? tab.text,\n      // Moloco 트래커 이벤트 데이터 (impression/onClick)\n      itemEvent: item.itemEvent\n    };\n  }));\n  return {\n    hasNext: false,\n    products: allProducts\n  };\n};\nconst fetchRankingCategoryProducts = async (query, options) => {\n  var _a;\n  const categoryIds = (_a = query.categoryIds) == null ? void 0 : _a.map((category) => ({\n    largeId: Number(category.largeCategoryId),\n    ...category.middleCategoryId ? {\n      middleId: Number(category.middleCategoryId)\n    } : void 0\n  }));\n  const hasLargeCategoryId = categoryIds == null ? void 0 : categoryIds.some((category) => category.largeId !== void 0);\n  const tagIds = query.recommendationTagIds ? splitToNumberArray(query.recommendationTagIds) : [];\n  const {\n    products\n  } = await bestApi.getRankedProducts({\n    facetGroupInput: {\n      categoryFacetInputs: hasLargeCategoryId ? categoryIds : [],\n      tagFacetInputs: tagIds.length > 0 ? tagIds.map((tagId) => ({\n        tagId\n      })) : void 0,\n      rankingFacetInput: {\n        type: query.rankingType\n      },\n      periodFacetInput: {\n        type: query.popularityPeriodType,\n        order: \"DESC\"\n      }\n    },\n    userSegment: {\n      gender: query.gender === \"all\" ? void 0 : query.gender,\n      age: query.age === \"all\" ? void 0 : Number(query.age)\n    },\n    pagination: {\n      ...options,\n      size: RANKING_PRODUCTS_PER_REQUEST\n    }\n  });\n  const hasNext = options.page * options.size < RANKING_PRODUCTS_MAX_SIZE;\n  return {\n    hasNext,\n    products\n  };\n};\nconst queryProducts = (query, userSegment, options) => {\n  switch (query.type) {\n    case QueryType.Product:\n      return fetchProducts(query, options);\n    case QueryType.KeywordCollection:\n      return fetchKeywordCollectionProducts(query, options);\n    case QueryType.BrandCuration:\n      return fetchBrandCurationProducts(query, options);\n    case QueryType.Recommendation:\n      return fetchRecommendationProducts(query);\n    case QueryType.Ranking:\n      return fetchRankingProducts(query, userSegment, options);\n    case QueryType.CouponCollection:\n      return fetchCouponCollectionProducts(query, options);\n    case QueryType.Preuser:\n      return fetchPreuserProducts(query);\n    case QueryType.CustomCategory:\n      return fetchRankingCategoryProducts(query, options);\n    case QueryType.Moloco:\n      return fetchMolocoItems(query);\n    default:\n      return {\n        hasNext: false,\n        products: []\n      };\n  }\n};\nconst getKey = (query, options, enabled) => (pageIndex) => {\n  if (!enabled || query === void 0) {\n    return null;\n  }\n  return {\n    key: {\n      query,\n      // 전체 query 사용\n      pagination: {\n        ...options,\n        page: pageIndex\n      }\n    }\n  };\n};\nexport {\n  useMolocoProductsQuery,\n  useProductsQuery\n};\n","import { useSegment } from \"../../../@shared/providers/SegmentProvider/SegmentProvider.js\";\nimport { QueryType } from \"../../types.js\";\nimport \"../../../systems/curations/IntersectionProvider/IntersectionProvider.js\";\nimport { useIntersectionContext } from \"../../../systems/curations/IntersectionProvider/IntersectionProvider.hooks.js\";\nimport \"react\";\nimport \"../../../../node_modules/@firebase/analytics/dist/esm/index.esm2017.js\";\nimport \"../../../../node_modules/firebase/app/dist/esm/index.esm.js\";\nimport { useCurrentUser } from \"../../../../hooks/useCurrentUser.js\";\nimport \"framer\";\nimport \"../../../../node_modules/@29cm/snowplow/dist/esm/core/snowplow.js\";\nimport \"../../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport \"../../../../config/index.js\";\nimport \"../../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport \"../../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../../apis/preuser/PreuserApiService.js\";\nimport \"../../../../node_modules/swr/mutation/dist/index.js\";\nimport \"../../../../hooks/stores/content/content.store.js\";\nimport \"../../../../hooks/stores/dialog/dialog.store.js\";\nimport \"../../../../hooks/stores/global-layout/global-layout.store.js\";\nimport \"../../../../hooks/stores/toast/toast.store.js\";\nimport \"../../../@shared/providers/ThemeProvider/ThemeProvider.js\";\nimport \"../../../@shared/providers/BreakpointProvider/BreakpointProvider.js\";\nimport \"../../../../hooks/stores/bottom-sheet/bottom-sheet.store.js\";\nimport \"react/jsx-runtime\";\nimport \"react-dom\";\nimport \"../../../systems/Dialog/Dialog.module.css.js\";\nimport \"framer-motion\";\nimport \"../../../../containers/DialogContainer/DialogContainer.emitter.js\";\nimport \"../../../../utils/redirectLogin.js\";\nimport \"../../../../utils/event-properties/source.js\";\nimport { useSendProductIds } from \"../../../../hooks/product/useSendProductIds.js\";\nimport \"../../../../constants/snowplow/snowplowSchema.js\";\nimport \"../ProductsElementProvider/ProductsElementProvider.js\";\nimport { useProductsElementContext } from \"../ProductsElementProvider/ProductsElementProvider.hooks.js\";\nimport { useMolocoProductsQuery, useProductsQuery } from \"../ProductsModule.hooks.js\";\nconst useProducts = () => {\n  const user = useCurrentUser();\n  const {\n    isInView\n  } = useIntersectionContext();\n  const {\n    query,\n    size\n  } = useProductsElementContext();\n  const {\n    isVisible\n  } = useSegment();\n  const isMoloco = (query == null ? void 0 : query.type) === QueryType.Moloco;\n  const molocoOptions = {\n    query,\n    size,\n    userSegment: user,\n    enabled: isMoloco && isInView && isVisible\n  };\n  const infiniteOptions = {\n    query,\n    size,\n    userSegment: user,\n    enabled: !isMoloco && isInView && isVisible\n  };\n  const molocoResult = useMolocoProductsQuery(molocoOptions);\n  const infiniteResult = useProductsQuery(infiniteOptions);\n  return isMoloco ? molocoResult : infiniteResult;\n};\nconst useSendProductsElementIds = (query) => {\n  useSendProductIds(getProductIds(query));\n};\nconst getProductIds = (query) => {\n  if (!query) {\n    return \"\";\n  }\n  switch (query.type) {\n    case QueryType.Product:\n      return query.productIds;\n    default:\n      return \"\";\n  }\n};\nexport {\n  useProducts,\n  useSendProductsElementIds\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { Button as Default } from \"../../../../../@shared/Button/Button.js\";\nimport { useProducts } from \"../../ProductsElement.hooks.js\";\nimport \"react\";\nimport \"../../../../../../node_modules/@firebase/analytics/dist/esm/index.esm2017.js\";\nimport \"../../../../../../node_modules/firebase/app/dist/esm/index.esm.js\";\nimport \"../../../../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport \"../../../../../../config/index.js\";\nimport \"../../../../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport \"../../../../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../../../../apis/preuser/PreuserApiService.js\";\nimport \"framer\";\nimport \"../../../../../../node_modules/@29cm/snowplow/dist/esm/core/snowplow.js\";\nimport \"../../../../../../node_modules/swr/mutation/dist/index.js\";\nimport \"../../../../../../hooks/stores/content/content.store.js\";\nimport \"../../../../../../hooks/stores/dialog/dialog.store.js\";\nimport \"../../../../../../hooks/stores/global-layout/global-layout.store.js\";\nimport \"../../../../../../hooks/stores/toast/toast.store.js\";\nimport { useTheme } from \"../../../../../../hooks/useTheme.js\";\nimport \"../../../../../@shared/providers/BreakpointProvider/BreakpointProvider.js\";\nimport \"../../../../../../hooks/stores/bottom-sheet/bottom-sheet.store.js\";\nimport \"react-dom\";\nimport \"../../../../../systems/Dialog/Dialog.module.css.js\";\nimport \"framer-motion\";\nimport \"../../../../../../containers/DialogContainer/DialogContainer.emitter.js\";\nimport \"../../../../../../utils/redirectLogin.js\";\nimport \"../../../../../../utils/event-properties/source.js\";\nconst ExpandButtonElement = ({\n  pagination,\n  style,\n  ...rest\n}) => {\n  const theme = useTheme();\n  const {\n    page,\n    fetchNextPage,\n    hasNext\n  } = useProducts();\n  const {\n    button,\n    gap\n  } = pagination;\n  const text = button.texts[page - 1];\n  if (text === void 0 || !hasNext) {\n    return null;\n  }\n  return /* @__PURE__ */ jsx(\"div\", { ...rest, style: {\n    ...containerStyle,\n    marginTop: gap,\n    ...style\n  }, children: /* @__PURE__ */ jsx(Default, { ...button, theme, onClick: fetchNextPage, children: text }) });\n};\nconst containerStyle = {\n  display: \"flex\",\n  justifyContent: \"center\",\n  width: \"100%\"\n};\nexport {\n  ExpandButtonElement\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { PaginationType } from \"../../../ProductsModule.types.js\";\nimport { ExpandButtonElement } from \"../ExpandButtonElement/ExpandButtonElement.js\";\nconst VerticalPaginationElement = ({\n  pagination,\n  ...rest\n}) => {\n  if (pagination !== void 0) {\n    switch (pagination.type) {\n      case PaginationType.Default:\n        return null;\n      case PaginationType.ExpandButton:\n        return /* @__PURE__ */ jsx(ExpandButtonElement, { ...rest, pagination });\n      case PaginationType.None:\n        return null;\n    }\n  }\n  return null;\n};\nexport {\n  VerticalPaginationElement\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { ScrollDirection } from \"../../ProductsModule.types.js\";\nimport { VerticalPaginationElement } from \"./VerticalPaginationElement/VerticalPaginationElement.js\";\nconst PaginationElement = ({\n  layout,\n  ...rest\n}) => {\n  switch (layout.direction) {\n    case ScrollDirection.Vertical:\n      return /* @__PURE__ */ jsx(VerticalPaginationElement, { ...rest, pagination: layout.verticalPagination });\n    default:\n      return null;\n  }\n};\nexport {\n  PaginationElement\n};\n","import \"../../../../hooks/stores/content/content.store.js\";\nimport \"../../../../utils/event-properties/source.js\";\nimport { isCanvas } from \"../../../../utils/framer/isCanvas.js\";\nimport \"framer\";\nimport \"react\";\nimport { ScrollDirection, PaginationType } from \"../ProductsModule.types.js\";\nimport { PRODUCTS_PER_REQUEST } from \"../ProductsModule.constants.js\";\nconst getScrollMargin = (layout) => {\n  switch (layout.direction) {\n    case ScrollDirection.Vertical:\n      return layout.scrollMargin;\n    case ScrollDirection.Horizontal:\n      return 0;\n  }\n};\nconst isElementCrossed = (element, upper = 0) => {\n  const top = (element == null ? void 0 : element.getBoundingClientRect().top) ?? 0;\n  return top - upper <= 0;\n};\nconst initializeScroll = (element, layout) => {\n  setTimeout(() => {\n    if (layout.direction === ScrollDirection.Vertical && isElementCrossed(element, getScrollMargin(layout))) {\n      element == null ? void 0 : element.scrollIntoView({\n        block: \"start\",\n        inline: \"nearest\"\n      });\n    }\n    if (layout.direction === ScrollDirection.Horizontal) {\n      element == null ? void 0 : element.scrollTo({\n        left: 0\n      });\n    }\n  });\n};\nconst isExpandable = (pagination, page) => {\n  return pagination.button.texts[page - 1] !== void 0;\n};\nconst getDisplayCount = (layout, page) => {\n  if (layout.direction === ScrollDirection.Vertical && layout.verticalPagination !== void 0) {\n    switch (layout.verticalPagination.type) {\n      case PaginationType.ExpandButton:\n        return isExpandable(layout.verticalPagination, page) ? layout.verticalPagination.rowDisplayCount * layout.columnCount * page : void 0;\n      case PaginationType.None:\n        return layout.verticalPagination.rowDisplayCount * layout.columnCount * page;\n      default:\n        return void 0;\n    }\n  }\n};\nconst canFetchOnLastItemView = (layout, page) => {\n  if (isCanvas()) {\n    return false;\n  }\n  if (layout.direction === ScrollDirection.Vertical && layout.verticalPagination !== void 0) {\n    switch (layout.verticalPagination.type) {\n      case PaginationType.Default:\n        return true;\n      case PaginationType.ExpandButton:\n        return !isExpandable(layout.verticalPagination, page);\n      case PaginationType.None:\n        return false;\n      default:\n        return true;\n    }\n  }\n  return true;\n};\nconst getRequestSize = (layout) => {\n  if (layout.direction === ScrollDirection.Horizontal || layout.isResponsive) {\n    return PRODUCTS_PER_REQUEST;\n  }\n  if (layout.verticalPagination.type === PaginationType.Default || layout.verticalPagination.type === PaginationType.None) {\n    return PRODUCTS_PER_REQUEST;\n  }\n  return layout.verticalPagination.rowDisplayCount * layout.columnCount;\n};\nexport {\n  canFetchOnLastItemView,\n  getDisplayCount,\n  getRequestSize,\n  getScrollMargin,\n  initializeScroll\n};\n","import { jsx, jsxs } from \"react/jsx-runtime\";\nimport { useRef, useMemo, useEffect } from \"react\";\nimport { EventTrigger } from \"../../../@shared/EventTrigger/index.js\";\nimport { ProductCardType } from \"../../../@shared/ProductCard/ProductCard.types.js\";\nimport { useSegment } from \"../../../@shared/providers/SegmentProvider/SegmentProvider.js\";\nimport { useRootComponentId } from \"../../hooks.js\";\nimport { QueryType } from \"../../types.js\";\nimport { Products } from \"../../../systems/curations/Products/index.js\";\nimport { createOptionTemplate, getResponsiveWidth } from \"../../../systems/curations/Products/Root.utils.js\";\nimport \"../../../../hooks/stores/content/content.store.js\";\nimport \"../../../../utils/event-properties/source.js\";\nimport { isCanvas } from \"../../../../utils/framer/isCanvas.js\";\nimport \"framer\";\nimport { hideClosestParentByFramerName } from \"../../../../utils/hideParentElement.js\";\nimport { getPadding } from \"../../../../utils/spacing.js\";\nimport { ProductsElementProvider } from \"../ProductsElementProvider/ProductsElementProvider.js\";\nimport { PRODUCTS_PER_REQUEST } from \"../ProductsModule.constants.js\";\nimport { ScrollDirection } from \"../ProductsModule.types.js\";\nimport { PaginationElement } from \"./PaginationElement/PaginationElement.js\";\nimport { useProducts, useSendProductsElementIds } from \"./ProductsElement.hooks.js\";\nimport { getDisplayCount, initializeScroll, getScrollMargin, canFetchOnLastItemView, getRequestSize } from \"./ProductsElement.utils.js\";\nconst ProductsElementInner = ({\n  query,\n  layout\n}) => {\n  const componentId = useRootComponentId(query);\n  const ref = useRef(null);\n  const {\n    isLoading,\n    hasNext,\n    products: _products,\n    page,\n    fetchNextPage\n  } = useProducts();\n  const {\n    isVisible\n  } = useSegment();\n  useSendProductsElementIds(query);\n  const totalProductsLength = _products.length;\n  const loading = isLoading || isCanvas() && totalProductsLength === 0;\n  const displayCount = getDisplayCount(layout, page);\n  const products = useMemo(() => {\n    const filteredProducts = (query == null ? void 0 : query.type) === QueryType.Moloco && query.facetName ? _products.filter((p) => p.molocoTab === query.facetName) : _products;\n    return filteredProducts.slice(0, displayCount).slice(0, isCanvas() ? PRODUCTS_PER_REQUEST : void 0);\n  }, [_products, query, displayCount]);\n  useEffect(() => {\n    initializeScroll(ref.current, layout);\n    window == null ? void 0 : window.dispatchEvent(new Event(\"layout-done\"));\n  }, [query]);\n  useEffect(() => {\n    if (ref.current) {\n      hideClosestParentByFramerName(ref.current, \"광고\", isVisible);\n    }\n  }, [isVisible]);\n  const padding = getPadding(layout);\n  const hasScroll = layout.direction === ScrollDirection.Horizontal && layout.hasScroll;\n  const variant = (query == null ? void 0 : query.type) === QueryType.Preuser ? \"preuser\" : \"default\";\n  if (!isVisible) {\n    window == null ? void 0 : window.dispatchEvent(new Event(\"layout-done\"));\n    return /* @__PURE__ */ jsx(\"div\", { ref });\n  }\n  return /* @__PURE__ */ jsxs(\"div\", { ref, style: {\n    ...containerStyle,\n    paddingTop: padding.top,\n    paddingBottom: padding.bottom,\n    scrollMarginTop: getScrollMargin(layout)\n  }, children: [\n    /* @__PURE__ */ jsx(Products.Root, { loading, padding: {\n      right: padding.right,\n      left: padding.left\n    }, listStyle: hasScroll ? {\n      msOverflowStyle: \"initial\",\n      scrollbarWidth: \"initial\",\n      paddingBottom: \"16px\"\n    } : void 0, options: createOptions(layout), products, hasNext, onLastItemView: canFetchOnLastItemView(layout, page) ? fetchNextPage : void 0, children: ({\n      index\n    }) => /* @__PURE__ */ jsx(EventTrigger.Target, { children: /* @__PURE__ */ jsx(Products.Card, { style: cardStyle, index, componentName: componentId, variant, eventProperties: {\n      tagValue: query == null ? void 0 : query.facetName\n    } }) }) }),\n    /* @__PURE__ */ jsx(PaginationElement, { style: {\n      paddingLeft: padding.left,\n      paddingRight: padding.right\n    }, layout })\n  ] });\n};\nconst ProductsElement = (props) => {\n  return /* @__PURE__ */ jsx(ProductsElementProvider, { query: props.query, size: getRequestSize(props.layout), children: /* @__PURE__ */ jsx(ProductsElementInner, { ...props }) });\n};\nconst containerStyle = {\n  width: \"100%\",\n  display: \"flex\",\n  flexDirection: \"column\"\n};\nconst cardStyle = {\n  paddingBottom: 0\n};\nconst createOptions = (layout) => {\n  switch (layout.direction) {\n    case ScrollDirection.Vertical:\n      return createVerticalOptions(layout);\n    case ScrollDirection.Horizontal:\n      return createHorizontalOptions(layout);\n  }\n};\nconst createVerticalOptions = (layout) => {\n  switch (layout.cardType) {\n    case ProductCardType.CARD:\n    case ProductCardType.CARD_DETAILED:\n      return createOptionTemplate({\n        base: {\n          direction: layout.direction,\n          card: {\n            type: layout.cardType,\n            size: layout.size,\n            hasRank: layout.hasRank,\n            hasName: layout.hasName,\n            hasBrandName: layout.hasBrandName,\n            hasBadges: layout.hasBadges,\n            hasHeart: layout.hasHeart,\n            hasPriceUnit: false\n          },\n          column: {\n            gap: layout.columnGap,\n            width: layout.isResponsive ? void 0 : getResponsiveWidth(layout.columnGap, layout.columnCount),\n            minWidth: layout.isResponsive ? 185 : 0,\n            count: layout.isResponsive ? \"auto\" : layout.columnCount\n          },\n          row: {\n            displayCount: getDisplayCount(layout, 1),\n            gap: layout.rowGap\n          }\n        }\n      });\n    case ProductCardType.BAR:\n      return createOptionTemplate({\n        base: {\n          direction: layout.direction,\n          card: {\n            type: layout.cardType,\n            size: layout.size,\n            hasRank: layout.hasRank,\n            hasName: layout.hasName,\n            hasBrandName: layout.hasBrandName,\n            hasBadges: layout.hasBadges,\n            hasHeart: layout.hasHeart,\n            hasPriceUnit: false\n          },\n          column: {\n            gap: layout.columnGap,\n            width: layout.isResponsive ? void 0 : getResponsiveWidth(layout.columnGap, layout.columnCount),\n            minWidth: layout.isResponsive ? 300 + (layout.hasRank ? 40 : 0) : 0,\n            count: layout.isResponsive ? \"auto\" : layout.columnCount\n          },\n          row: {\n            displayCount: getDisplayCount(layout, 1),\n            gap: layout.rowGap\n          }\n        }\n      });\n  }\n};\nconst createHorizontalOptions = (layout) => {\n  switch (layout.cardType) {\n    case ProductCardType.CARD:\n    case ProductCardType.CARD_DETAILED:\n      return createOptionTemplate({\n        base: {\n          direction: layout.direction,\n          card: {\n            type: layout.cardType,\n            size: layout.size,\n            hasRank: layout.hasRank,\n            hasName: layout.hasName,\n            hasBrandName: layout.hasBrandName,\n            hasBadges: layout.hasBadges,\n            hasHeart: layout.hasHeart,\n            hasPriceUnit: false\n          },\n          column: {\n            gap: layout.columnGap,\n            displayCount: layout.columnDisplayCount,\n            width: getResponsiveWidth(layout.columnGap, layout.columnDisplayCount)\n          },\n          row: {\n            gap: layout.rowGap,\n            count: layout.rowCount\n          }\n        },\n        desktop: {\n          navigator: true\n        }\n      });\n    case ProductCardType.BAR:\n      return createOptionTemplate({\n        base: {\n          direction: layout.direction,\n          card: {\n            type: layout.cardType,\n            size: layout.size,\n            hasRank: layout.hasRank,\n            hasName: layout.hasName,\n            hasBrandName: layout.hasBrandName,\n            hasBadges: layout.hasBadges,\n            hasHeart: layout.hasHeart,\n            hasPriceUnit: false\n          },\n          column: {\n            gap: layout.columnGap,\n            displayCount: layout.columnDisplayCount\n          },\n          row: {\n            gap: layout.rowGap,\n            count: layout.rowCount\n          }\n        },\n        mobile: {\n          column: {\n            width: getResponsiveWidth(layout.columnGap, layout.columnDisplayCount, layout.hasRank ? 44 : 4)\n          }\n        },\n        tablet: {\n          column: {\n            width: getResponsiveWidth(layout.columnGap, layout.columnDisplayCount, layout.hasRank ? 60 : 20)\n          }\n        },\n        desktop: {\n          navigator: true,\n          column: {\n            width: getResponsiveWidth(layout.columnGap, layout.columnDisplayCount)\n          }\n        }\n      });\n  }\n};\nexport {\n  ProductsElement,\n  ProductsElementInner\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { useQueryStore } from \"../../query-store/query.store.js\";\nimport { ProductsElement } from \"../ProductsElement/ProductsElement.js\";\nimport { createKey } from \"../../utils/key.js\";\nconst LinkedProductsModule = ({\n  value,\n  layout\n}) => {\n  const query = useQueryStore((state) => state.queries[value]);\n  return /* @__PURE__ */ jsx(ProductsElement, { query, layout }, createKey(query));\n};\nexport {\n  LinkedProductsModule\n};\n","import { combineObjectPropertyControls } from \"../../../libs/property-controls/helpers.js\";\nimport { QUERY_CONTROL, PREUSER_CONTROLS, RANKING_CONTROLS, RECOMMENDATION_CONTROLS, KEYWORD_COLLECTION_CONTROLS, PRODUCT_CONTROLS } from \"../controls.js\";\nconst MANUAL_PRODUCTS_MODULE_QUERY = {\n  ...QUERY_CONTROL,\n  controls: combineObjectPropertyControls(PRODUCT_CONTROLS, KEYWORD_COLLECTION_CONTROLS, RECOMMENDATION_CONTROLS, RANKING_CONTROLS, PREUSER_CONTROLS)\n};\nexport {\n  MANUAL_PRODUCTS_MODULE_QUERY\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { addPropertyControls, ControlType } from \"framer\";\nimport { ButtonVariant, ButtonSize } from \"../../@shared/Button/Button.types.js\";\nimport { ProductCardType } from \"../../@shared/ProductCard/ProductCard.types.js\";\nimport { SWRErrorBoundary } from \"../../@shared/SWRErrorBoundary/SWRErrorBoundary.js\";\nimport { PREFIX_ICON_OPTIONS, POSTFIX_ICON_OPTIONS } from \"../../systems/Button/Button.constants.js\";\nimport { NoContent } from \"../../systems/curations/NoContent/NoContent.js\";\nimport { SectionLayout } from \"../../systems/curations/SectionLayout/SectionLayout.js\";\nimport { BREAKPOINT_CONTROLS } from \"../../../libs/property-controls/breakpoint.js\";\nimport { COMPONENT_ID_PROPS } from \"../../../libs/property-controls/component-id.js\";\nimport { SEGMENT_CONTROLS } from \"../../../libs/property-controls/segment.js\";\nimport { THEME_CONTROLS } from \"../../../libs/property-controls/theme.js\";\nimport { LinkedProductsModule } from \"./LinkedProductsModule/LinkedProductsModule.js\";\nimport { ProductsElement } from \"./ProductsElement/ProductsElement.js\";\nimport { MANUAL_PRODUCTS_MODULE_QUERY } from \"./ProductsModule.controls.js\";\nimport { ProductsModuleInputType, ScrollDirection, PaginationType } from \"./ProductsModule.types.js\";\nconst ProductsModuleInner = ({\n  input,\n  layout\n}) => {\n  switch (input.type) {\n    case ProductsModuleInputType.Linked:\n      return /* @__PURE__ */ jsx(LinkedProductsModule, { value: input.value, layout });\n    case ProductsModuleInputType.Manual:\n      return /* @__PURE__ */ jsx(ProductsElement, { query: input.query, layout });\n    default:\n      return null;\n  }\n};\nconst ProductsModule = ({\n  theme,\n  breakpoint,\n  componentId,\n  segment,\n  ...rest\n}) => {\n  return /* @__PURE__ */ jsx(SectionLayout, { theme, breakpoint, componentId, segment, children: /* @__PURE__ */ jsx(SWRErrorBoundary, { fallback: (retry) => /* @__PURE__ */ jsx(NoContent, { onClick: retry }), children: /* @__PURE__ */ jsx(ProductsModuleInner, { ...rest }) }) });\n};\naddPropertyControls(ProductsModule, {\n  ...BREAKPOINT_CONTROLS,\n  ...THEME_CONTROLS,\n  ...SEGMENT_CONTROLS,\n  ...COMPONENT_ID_PROPS,\n  input: {\n    type: ControlType.Object,\n    title: \"입력 값\",\n    controls: {\n      type: {\n        type: ControlType.Enum,\n        title: \"유형\",\n        options: [ProductsModuleInputType.Linked, ProductsModuleInputType.Manual],\n        optionTitles: [\"연결\", \"수동\"]\n      },\n      value: {\n        hidden: ({\n          type\n        }) => type !== ProductsModuleInputType.Linked,\n        type: ControlType.String,\n        title: \"출력 값\",\n        defaultValue: \"\"\n      },\n      query: {\n        hidden: ({\n          type\n        }) => type !== ProductsModuleInputType.Manual,\n        ...MANUAL_PRODUCTS_MODULE_QUERY\n      }\n    }\n  },\n  layout: {\n    type: ControlType.Object,\n    title: \"레이아웃\",\n    controls: {\n      direction: {\n        type: ControlType.Enum,\n        title: \"스크롤 방향\",\n        options: [\"horizontal\", \"vertical\"],\n        optionTitles: [\"수평\", \"수직\"]\n      },\n      cardType: {\n        type: ControlType.Enum,\n        title: \"카드 유형\",\n        options: [ProductCardType.CARD, ProductCardType.CARD_DETAILED, ProductCardType.BAR],\n        optionTitles: [\"compact-card\", \"card\", \"horizontal-card\"]\n      },\n      size: {\n        hidden: ({\n          cardType\n        }) => cardType === ProductCardType.CARD || cardType === ProductCardType.CARD_DETAILED,\n        type: ControlType.Enum,\n        title: \"크기\",\n        options: [\"small\", \"medium\"],\n        optionTitles: [\"small\", \"medium\"],\n        defaultValue: \"medium\"\n      },\n      hasRank: {\n        type: ControlType.Boolean,\n        title: \"순위 노출\",\n        defaultValue: false\n      },\n      hasName: {\n        type: ControlType.Boolean,\n        title: \"상품명 노출\",\n        defaultValue: true\n      },\n      hasBrandName: {\n        type: ControlType.Boolean,\n        title: \"브랜드명 노출\",\n        defaultValue: true\n      },\n      hasBadges: {\n        type: ControlType.Boolean,\n        title: \"뱃지 노출\",\n        defaultValue: true\n      },\n      hasHeart: {\n        type: ControlType.Boolean,\n        title: \"좋아요 노출\",\n        defaultValue: true\n      },\n      // 수평\n      rowCount: {\n        hidden: ({\n          direction\n        }) => direction !== ScrollDirection.Horizontal,\n        type: ControlType.Number,\n        title: \"행 개수\",\n        unit: \"개\",\n        defaultValue: 2,\n        min: 1,\n        max: 10\n      },\n      columnDisplayCount: {\n        hidden: ({\n          direction\n        }) => direction !== ScrollDirection.Horizontal,\n        type: ControlType.Number,\n        title: \"노출 열 개수\",\n        unit: \"개\",\n        description: \"뷰포트에 노출될 열 개수를 설정할 수 있습니다.\",\n        defaultValue: 3,\n        min: 1,\n        max: 6\n      },\n      hasScroll: {\n        hidden: ({\n          direction\n        }) => direction !== ScrollDirection.Horizontal,\n        type: ControlType.Boolean,\n        title: \"스크롤 노출\",\n        defaultValue: false\n      },\n      // 수직\n      isResponsive: {\n        hidden: ({\n          direction\n        }) => direction !== ScrollDirection.Vertical,\n        type: ControlType.Boolean,\n        title: \"반응형\",\n        defaultValue: false\n      },\n      columnCount: {\n        hidden: ({\n          direction,\n          isResponsive\n        }) => direction !== ScrollDirection.Vertical || isResponsive === true,\n        type: ControlType.Number,\n        title: \"열 개수\",\n        unit: \"개\",\n        defaultValue: 2,\n        min: 1,\n        max: 6\n      },\n      scrollMargin: {\n        hidden: ({\n          direction\n        }) => direction !== ScrollDirection.Vertical,\n        type: ControlType.Number,\n        title: \"스크롤 마진\",\n        description: \"자동 스크롤 이동 시 위치 보정 값을 설정할 수 있습니다.\",\n        unit: \"px\",\n        defaultValue: 0\n      },\n      verticalPagination: {\n        hidden: ({\n          direction\n        }) => direction !== ScrollDirection.Vertical,\n        type: ControlType.Object,\n        title: \"페이지네이션\",\n        controls: {\n          type: {\n            type: ControlType.Enum,\n            title: \"유형\",\n            options: [PaginationType.Default, PaginationType.ExpandButton, PaginationType.None],\n            optionTitles: [\"기본\", \"더보기 버튼\", \"없음\"]\n          },\n          gap: {\n            hidden: ({\n              type\n            }) => type !== PaginationType.ExpandButton,\n            type: ControlType.Number,\n            title: \"간격\",\n            description: \"상품 UI 와 페이징 UI 간의 간격을 설정할 수 있습니다.\",\n            unit: \"px\",\n            defaultValue: 16,\n            min: 0,\n            max: 50\n          },\n          rowDisplayCount: {\n            hidden: ({\n              type\n            }) => type === PaginationType.Default,\n            type: ControlType.Number,\n            title: \"노출 행 개수\",\n            description: \"(더보기 마다)노출할 행 개수를 설정할 수 있습니다.\",\n            unit: \"개\",\n            min: 1,\n            max: 10,\n            defaultValue: 4\n          },\n          button: {\n            hidden: ({\n              type\n            }) => type !== PaginationType.ExpandButton,\n            type: ControlType.Object,\n            title: \"버튼\",\n            controls: {\n              variant: {\n                type: ControlType.Enum,\n                title: \"변형\",\n                options: [ButtonVariant.PRIMARY, ButtonVariant.SECONDARY, ButtonVariant.TERTIARY],\n                optionTitles: [\"primary\", \"secondary\", \"tertiary\"]\n              },\n              size: {\n                type: ControlType.Enum,\n                title: \"크기\",\n                options: [ButtonSize.LARGE, ButtonSize.MEDIUM, ButtonSize.SMALL],\n                optionTitles: [\"large\", \"medium\", \"small\"],\n                defaultValue: ButtonSize.MEDIUM\n              },\n              fill: {\n                type: ControlType.Boolean,\n                title: \"채우기\",\n                defaultValue: false\n              },\n              prefixIcon: {\n                hidden: ({\n                  postfixIcon\n                }) => Boolean(postfixIcon),\n                type: ControlType.Enum,\n                title: \"좌측 아이콘\",\n                options: [void 0, ...PREFIX_ICON_OPTIONS],\n                optionTitles: [\"선택 안 함\", ...PREFIX_ICON_OPTIONS]\n              },\n              postfixIcon: {\n                hidden: ({\n                  prefixIcon\n                }) => Boolean(prefixIcon),\n                type: ControlType.Enum,\n                title: \"우측 아이콘\",\n                options: [void 0, ...POSTFIX_ICON_OPTIONS],\n                optionTitles: [\"선택 안 함\", ...POSTFIX_ICON_OPTIONS]\n              },\n              fillIcon: {\n                type: ControlType.Boolean,\n                title: \"아이콘 채우기\",\n                defaultValue: false\n              },\n              texts: {\n                type: ControlType.Array,\n                title: \"버튼 타이틀\",\n                defaultValue: [\"첫 번째 버튼\", \"두 번째 버튼\"],\n                control: {\n                  type: ControlType.String\n                }\n              }\n            }\n          }\n        }\n      },\n      // 공통\n      rowGap: {\n        type: ControlType.Number,\n        title: \"행 간격\",\n        unit: \"px\",\n        defaultValue: 16,\n        min: 0,\n        max: 50\n      },\n      columnGap: {\n        type: ControlType.Number,\n        title: \"열 간격\",\n        unit: \"px\",\n        defaultValue: 6,\n        min: 0,\n        max: 50\n      },\n      padding: {\n        type: ControlType.FusedNumber,\n        title: \"패딩\",\n        defaultValue: 0,\n        toggleKey: \"isMixed\",\n        toggleTitles: [\"All\", \"Individual\"],\n        valueKeys: [\"paddingTop\", \"paddingRight\", \"paddingBottom\", \"paddingLeft\"],\n        valueLabels: [\"T\", \"R\", \"B\", \"L\"],\n        min: 0\n      }\n    }\n  }\n});\nexport {\n  ProductsModule\n};\n","import{ProductsModule}from\"https://asset.29cm.co.kr/contents/framer/components/modules/ProductsModule/ProductsModule.js\";ProductsModule.displayName=\"[조립형]Products\";export default ProductsModule;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ProductsModule\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ProductsModule.map","import { createUseStyles } from \"../../../styles/createUseStyle.js\";\nconst createUseStylesForResponsiveSplitView = createUseStyles({\n  [\"split-view\"]: 780,\n  [\"split-view-small\"]: 615,\n  [\"unified-view\"]: 0\n});\nexport {\n  createUseStylesForResponsiveSplitView\n};\n","(function() {\n  \"use strict\";\n  try {\n    if (typeof document != \"undefined\") {\n      var elementStyle = document.createElement(\"style\");\n      elementStyle.appendChild(document.createTextNode(\".hide-scroll-bar {\\n  -ms-overflow-style: none !important; /* Internet Explorer 10+ */\\n  scrollbar-width: none !important; /* Firefox */\\n}\\n\\n.hide-scroll-bar::-webkit-scrollbar {\\n  display: none !important; /* Safari and Chrome */\\n}\"));\n      document.head.appendChild(elementStyle);\n    }\n  } catch (e) {\n    console.error(\"vite-plugin-css-injected-by-js\", e);\n  }\n})();\nconst ResponsiveSplitViewV3_module = {};\nexport {\n  ResponsiveSplitViewV3_module as default\n};\n","import { jsxs, jsx } from \"react/jsx-runtime\";\nimport { withCSS, addPropertyControls, ControlType } from \"framer\";\nimport { useScroll, useSpring, useTransform, motion } from \"framer-motion\";\nimport { useEffect } from \"react\";\nimport \"../../../hooks/stores/content/content.store.js\";\nimport \"../../../hooks/stores/dialog/dialog.store.js\";\nimport { useGlobalLayoutStore } from \"../../../hooks/stores/global-layout/global-layout.store.js\";\nimport \"../../../hooks/stores/toast/toast.store.js\";\nimport { isCanvas } from \"../../../utils/framer/isCanvas.js\";\nimport { isServer } from \"../../../utils/context.js\";\nimport { ShareButton } from \"../ShareButton/ShareButton.js\";\nimport { createUseStylesForResponsiveSplitView } from \"./styles.js\";\nimport { TabBarV2 } from \"../TabBarV2/TabBarV2.js\";\nimport \"./ResponsiveSplitViewV3.module.css.js\";\nimport { isTabView } from \"../../../utils/custom-tab/isTabView.js\";\nimport \"../../../utils/event-properties/source.js\";\nimport { isWebview, isIos } from \"../../../utils/device.js\";\nconst useStyles = createUseStylesForResponsiveSplitView({\n  container: {\n    \"base\": {\n      minHeight: 400,\n      display: \"flex\"\n    },\n    \"unified-view\": {\n      height: \"auto\",\n      maxWidth: 540,\n      flexDirection: \"column\"\n    }\n  },\n  mainContent: {\n    \"split-view\": {\n      width: 540\n    },\n    \"split-view-small\": {\n      flex: 1\n    }\n  },\n  sideContent: {\n    \"base\": {\n      position: \"sticky\",\n      top: 0,\n      backgroundColor: \"#ffffff\",\n      height: \"100vh\",\n      overflow: \"auto\"\n    },\n    \"split-view\": {\n      flex: 1\n    },\n    \"split-view-small\": {\n      width: 240\n    }\n  },\n  progressBarContainer: {\n    \"base\": {\n      position: \"fixed\",\n      top: 0,\n      left: 0,\n      width: \"\",\n      height: 2,\n      zIndex: 20,\n      backgroundColor: \"transparent\"\n    },\n    \"split-view\": {\n      width: 540\n    },\n    \"split-view-small\": {\n      width: \"calc(100% - 240px)\"\n    }\n  },\n  progressBar: {\n    base: {\n      width: \"100%\",\n      height: \"100%\",\n      backgroundColor: \"#FF4800\"\n    }\n  },\n  buttonContainer: {\n    base: {\n      position: \"fixed\",\n      right: \"calc(env(safe-area-inset-right) + 20px)\",\n      bottom: \"calc(env(safe-area-inset-bottom) + 12px)\",\n      left: \"calc(env(safe-area-inset-left) + 20px)\",\n      zIndex: 3e3,\n      display: \"flex\",\n      flexDirection: \"column\",\n      gap: 20\n    }\n  },\n  shareButtonContainer: {\n    \"base\": {\n      position: \"fixed\",\n      bottom: 20,\n      zIndex: 3e3,\n      paddingRight: 20\n    },\n    \"split-view\": {\n      right: \"calc(100% - 540px)\"\n    },\n    \"split-view-small\": {\n      right: 240\n    }\n  }\n});\nconst BASE_INSET_BOTTOM = 12;\nconst SAFE_AREA_INSET_BOTTOM = 35;\nconst COMPONENT_NAME = \"responsive-split-view-v3\";\nconst css = [`\n    .${COMPONENT_NAME}-container > div {\n        width: 100% !important;\n    }\n  `];\nconst ResponsiveSplitViewV3 = withCSS(({\n  style,\n  bigBanner,\n  mainContent,\n  sideContent,\n  bottomContent,\n  isTabBarVisible,\n  tabBar\n}) => {\n  const {\n    breakpoint,\n    styles\n  } = useStyles();\n  const isSplitView = breakpoint !== \"unified-view\";\n  const {\n    dispatchSetGlobalLayout\n  } = useGlobalLayoutStore();\n  const {\n    scrollYProgress\n  } = useScroll();\n  const springScrollYProgress = useSpring(scrollYProgress, {\n    bounce: 0\n  });\n  const progressBarX = useTransform(springScrollYProgress, [0, 1], [\"-100%\", \"0%\"]);\n  const items = [...tabBar.items, ...isSplitView ? [] : [tabBar.sideContentTabItem]];\n  const isTabView$1 = !isServer() && isTabView();\n  const isWebview$1 = !isServer() && isWebview();\n  const isIos$1 = !isServer() && isIos();\n  useEffect(() => {\n    dispatchSetGlobalLayout(\"responsive-split-view\");\n    return () => dispatchSetGlobalLayout(\"default\");\n  }, [dispatchSetGlobalLayout]);\n  useEffect(() => {\n    if (breakpoint === \"split-view\" || breakpoint === \"split-view-small\") {\n      document.documentElement.classList.add(\"hide-scroll-bar\");\n      document.body.classList.add(\"hide-scroll-bar\");\n      return () => {\n        document.documentElement.classList.remove(\"hide-scroll-bar\");\n        document.body.classList.remove(\"hide-scroll-bar\");\n      };\n    }\n  }, [breakpoint]);\n  if (isSplitView) {\n    return /* @__PURE__ */ jsxs(\"div\", { style: {\n      ...styles.container,\n      width: style == null ? void 0 : style.width,\n      // NOTE: 반응형으로 다른 높이를 적용하기 위해 height는 코드에서 관리한다\n      height: isCanvas() ? 900 : void 0\n    }, children: [\n      /* @__PURE__ */ jsxs(\"div\", { className: `${COMPONENT_NAME}-container`, style: styles.mainContent, children: [\n        /* @__PURE__ */ jsx(\"div\", { className: `${COMPONENT_NAME}-container`, children: bigBanner }),\n        isTabBarVisible ? /* @__PURE__ */ jsx(TabBarV2, { ...tabBar, items, useSmallTypography: true }) : null,\n        /* @__PURE__ */ jsx(\"div\", { className: `${COMPONENT_NAME}-container`, children: mainContent })\n      ] }),\n      /* @__PURE__ */ jsx(\"div\", { className: `${COMPONENT_NAME}-container`, style: styles.sideContent, children: sideContent }),\n      isCanvas() ? null : /* @__PURE__ */ jsx(\"div\", { style: styles.progressBarContainer, children: /* @__PURE__ */ jsx(motion.div, { style: {\n        ...styles.progressBar,\n        x: progressBarX\n      } }) }),\n      !isServer() && /* @__PURE__ */ jsx(\"div\", { style: styles.shareButtonContainer, children: /* @__PURE__ */ jsx(ShareButton, {}) })\n    ] });\n  }\n  const getBottom = () => {\n    if (isTabView$1) {\n      return BASE_INSET_BOTTOM;\n    }\n    if (isWebview$1 && isIos$1) {\n      return SAFE_AREA_INSET_BOTTOM + BASE_INSET_BOTTOM;\n    }\n    return `calc(env(safe-area-inset-bottom) + ${BASE_INSET_BOTTOM}px)`;\n  };\n  return /* @__PURE__ */ jsxs(\"div\", { style: {\n    ...styles.container,\n    width: style == null ? void 0 : style.width\n    // NOTE: 반응형으로 다른 높이를 적용하기 위해 height는 코드에서 관리한다\n  }, children: [\n    /* @__PURE__ */ jsx(\"div\", { className: `${COMPONENT_NAME}-container`, children: bigBanner }),\n    isTabBarVisible ? /* @__PURE__ */ jsx(TabBarV2, { ...tabBar, items, useSmallTypography: true }) : null,\n    /* @__PURE__ */ jsx(\"div\", { className: `${COMPONENT_NAME}-container`, children: mainContent }),\n    /* @__PURE__ */ jsx(\"div\", { className: `${COMPONENT_NAME}-container`, id: tabBar.sideContentTabItem.sectionId, children: bottomContent ?? sideContent }),\n    !isServer() && /* @__PURE__ */ jsx(\"div\", { style: {\n      ...styles.buttonContainer,\n      bottom: getBottom()\n    }, children: /* @__PURE__ */ jsx(ShareButton, { style: {\n      alignSelf: \"flex-end\"\n    } }) })\n  ] });\n}, css);\naddPropertyControls(ResponsiveSplitViewV3, {\n  bigBanner: {\n    title: \"빅배너\",\n    type: ControlType.ComponentInstance\n  },\n  mainContent: {\n    title: \"메인 콘텐츠\",\n    type: ControlType.ComponentInstance\n  },\n  sideContent: {\n    title: \"사이드 콘텐츠\",\n    type: ControlType.ComponentInstance\n  },\n  bottomContent: {\n    title: \"바텀 콘텐츠\",\n    description: \"모바일 분기점 최하단에 배치될 콘텐츠를 연결합니다.\\n연결하지 않을 경우 기본 값으로 사이드 콘텐츠가 전달됩니다.\",\n    type: ControlType.ComponentInstance\n  },\n  buttonVisibilityThresholdVh: {\n    title: \"공유하기 버튼 등장 시점\",\n    type: ControlType.Number,\n    displayStepper: true,\n    defaultValue: 100,\n    unit: \"vh\"\n  },\n  isTabBarVisible: {\n    title: \"탭바 유무\",\n    type: ControlType.Boolean,\n    defaultValue: true\n  },\n  tabBar: {\n    hidden: ({\n      isTabBarVisible\n    }) => isTabBarVisible === false,\n    title: \"탭바\",\n    type: ControlType.Object,\n    controls: {\n      theme: {\n        type: ControlType.Enum,\n        title: \"테마\",\n        options: [\"default\", \"negative\"],\n        optionTitles: [\"기본\", \"반전\"],\n        defaultValue: \"default\",\n        displaySegmentedControl: true\n      },\n      fadeInOut: {\n        type: ControlType.Boolean,\n        title: \"페이드\",\n        description: \"활성화 시 탭바가 상단에 붙은 상태로 스크롤되면 배경색의 투명도가 서서히 증감합니다.\",\n        defaultValue: false\n      },\n      sideContentTabItem: {\n        title: \"사이드 콘텐츠 탭\",\n        type: ControlType.Object,\n        controls: {\n          label: {\n            title: \"탭 이름\",\n            type: ControlType.String,\n            defaultValue: \"사이드 콘텐츠\"\n          },\n          sectionId: {\n            title: \"스크롤 섹션 ID\",\n            type: ControlType.String,\n            defaultValue: \"side-content\"\n          }\n        }\n      },\n      items: {\n        title: \"탭\",\n        type: ControlType.Array,\n        control: {\n          type: ControlType.Object,\n          controls: {\n            label: {\n              title: \"탭 이름\",\n              type: ControlType.String,\n              defaultValue: \"탭\"\n            },\n            sectionId: {\n              title: \"스크롤 섹션 ID\",\n              type: ControlType.String\n            }\n          }\n        },\n        defaultValue: [{\n          label: \"Chapter 1\",\n          sectionId: \"chapter1\"\n        }, {\n          label: \"Chapter 2\",\n          sectionId: \"chapter2\"\n        }, {\n          label: \"Chapter 3\",\n          sectionId: \"chapter3\"\n        }]\n      },\n      padding: {\n        type: ControlType.FusedNumber,\n        title: \"Padding\",\n        defaultValue: 0,\n        toggleKey: \"isMixed\",\n        toggleTitles: [\"All\", \"Individual\"],\n        valueKeys: [\"paddingTop\", \"paddingRight\", \"paddingBottom\", \"paddingLeft\"],\n        valueLabels: [\"T\", \"R\", \"B\", \"L\"],\n        min: 0\n      },\n      toggleMaxWidth: {\n        type: ControlType.Boolean,\n        title: \"MaxWidth\",\n        enabledTitle: \"SET\",\n        disabledTitle: \"UNSET\",\n        defaultValue: false\n      },\n      maxWidth: {\n        hidden: ({\n          toggleMaxWidth\n        }) => toggleMaxWidth === false,\n        type: ControlType.Number,\n        defaultValue: 1114,\n        min: 50,\n        unit: \"px\",\n        step: 1,\n        displayStepper: true\n      }\n    }\n  }\n});\nexport {\n  ResponsiveSplitViewV3\n};\n","import{ResponsiveSplitViewV3}from\"https://asset.29cm.co.kr/contents/framer/components/systems/ResponsiveSplitViewV3/ResponsiveSplitViewV3.js\";ResponsiveSplitViewV3.displayName=\"ResponsiveSplitViewV3\";export default ResponsiveSplitViewV3;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ResponsiveSplitViewV3\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ResponsiveSplitViewV3.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef}from\"react\";import{useRef,useEffect}from\"react\";import{useInView}from\"framer-motion\";import{useTrackClickComponent,useTrackViewComponent}from\"https://asset.29cm.co.kr/contents/framer/components/canvas/ComponentEventTracker/ComponentEventTracker.hooks.event.js\";const getComponent=(props,Component)=>Component[\"displayName\"]||props[\"name\"]||props[\"data-framer-name\"];// prettier-ignore\nconst mergeRefs=(...refs)=>{return value=>{refs.forEach(ref=>{if(typeof ref===\"function\"){ref(value);}else if(ref!=null){ref.current=value;}});};};export function withViewEventTracker(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const component=getComponent(props,Component);const containerRef=useRef(null);const isInView=useInView(containerRef);const{trackViewComponent}=useTrackViewComponent();useEffect(()=>{if(!isInView){return;}trackViewComponent(component);},[isInView]);return /*#__PURE__*/_jsx(Component,{...props,ref:mergeRefs(ref,containerRef)});});}export function withClickEventTracker(Component){return props=>{const component=getComponent(props,Component);const{trackClickComponent}=useTrackClickComponent();const handleClick=e=>{if(e.isTriggered){return;}e.isTriggered=true;trackClickComponent(component);};return /*#__PURE__*/_jsx(Component,{...props,onTap:handleClick});};}export function withViewClickEventTracker(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const component=getComponent(props,Component);const containerRef=useRef(null);const isInView=useInView(containerRef);const{trackViewComponent}=useTrackViewComponent();const{trackClickComponent}=useTrackClickComponent();useEffect(()=>{if(!isInView){return;}trackViewComponent(component);},[isInView]);const handleClick=e=>{if(e.isTriggered){return;}e.isTriggered=true;trackClickComponent(component);};return /*#__PURE__*/_jsx(Component,{ref:mergeRefs(ref,containerRef),...props,onTap:handleClick});});}\nexport const __FramerMetadata__ = {\"exports\":{\"withViewClickEventTracker\":{\"type\":\"reactHoc\",\"name\":\"withViewClickEventTracker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withViewEventTracker\":{\"type\":\"reactHoc\",\"name\":\"withViewEventTracker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withClickEventTracker\":{\"type\":\"reactHoc\",\"name\":\"withClickEventTracker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Analytics.map","import { useDeviceInfo } from \"./useDeviceInfo.js\";\nconst useCreateIsomorphicAppSchemeLink = (url) => {\n  const {\n    isWebview\n  } = useDeviceInfo();\n  return isWebview && url ? `app29cm://web/${url}` : url;\n};\nexport {\n  useCreateIsomorphicAppSchemeLink\n};\n","import { isServer } from \"./context.js\";\nconst getAnchorTarget = (url) => {\n  if (isServer()) {\n    return \"_self\";\n  }\n  return normalizeURL(url) === normalizeURL(window.location.href) ? \"_self\" : \"_blank\";\n};\nconst normalizeURL = (url) => {\n  const hasOrigin = !url.startsWith(\"/\");\n  try {\n    const {\n      origin,\n      pathname\n    } = new URL(hasOrigin ? url : `${window.location.origin}${url}`);\n    return `${origin}${pathname}`;\n  } catch (error) {\n    return \"\";\n  }\n};\nexport {\n  getAnchorTarget\n};\n","import { getAnchorTarget } from \"../../../utils/getAnchorTarget.js\";\nconst reshapeProps = (props) => {\n  const {\n    url,\n    onTap,\n    prefixIcon,\n    postfixIcon,\n    fillIcon,\n    ...rest\n  } = props;\n  const disabled = rest.variant === \"disabled\";\n  return {\n    as: url ? \"a\" : \"button\",\n    href: url,\n    target: url ? getAnchorTarget(url) : \"_self\",\n    disabled,\n    onClick: onTap,\n    ...toPropsWithIcon(fillIcon, prefixIcon, postfixIcon),\n    ...rest\n  };\n};\nconst toPropsWithIcon = (fill, prefixIcon, postfixIcon) => {\n  if (!postfixIcon) {\n    return {\n      prefixIcon: toIconOptions(fill, prefixIcon)\n    };\n  }\n  return {\n    postfixIcon: toIconOptions(fill, postfixIcon)\n  };\n};\nconst toIconOptions = (fill, icon) => {\n  if (icon && typeof icon === \"string\") {\n    return {\n      type: icon,\n      fill\n    };\n  }\n  return void 0;\n};\nconst isValidUrl = (url) => {\n  if (!url) {\n    return true;\n  }\n  return url.startsWith(\"https://\");\n};\nexport {\n  isValidUrl,\n  reshapeProps\n};\n","import { jsxs, jsx } from \"react/jsx-runtime\";\nimport { addPropertyControls, ControlType } from \"framer\";\nimport { ButtonVariant, ButtonTheme, ButtonSize, UrlType } from \"../../@shared/Button/Button.types.js\";\nimport { useCreateIsomorphicAppSchemeLink } from \"../../../hooks/useCreateIsomorphicAppSchemeLink.js\";\nimport { isCanvas } from \"../../../utils/framer/isCanvas.js\";\nimport { Button as Default } from \"../../@shared/Button/Button.js\";\nimport { PREFIX_ICON_OPTIONS, POSTFIX_ICON_OPTIONS } from \"./Button.constants.js\";\nimport { reshapeProps, isValidUrl } from \"./Button.utils.js\";\nconst urlWarningStyle = {\n  marginTop: 4,\n  color: \"#dc2626\",\n  fontSize: 11,\n  fontWeight: 500\n};\nconst FramerButton = (props) => {\n  const url = useCreateIsomorphicAppSchemeLink(props.url);\n  const {\n    text,\n    ...rest\n  } = reshapeProps({\n    ...props,\n    url: props.urlType === UrlType.ONELINK ? props.url : url\n  });\n  const showUrlWarning = isCanvas() && !isValidUrl(props.url);\n  if (showUrlWarning) {\n    return /* @__PURE__ */ jsxs(\"div\", { style: {\n      display: \"inline-block\",\n      width: rest.fill ? \"100%\" : \"auto\"\n    }, children: [\n      /* @__PURE__ */ jsx(Default, { ...rest, children: text }),\n      /* @__PURE__ */ jsx(\"div\", { style: urlWarningStyle, children: \"⚠️ URL은 https://로 시작해야 합니다\" })\n    ] });\n  }\n  return /* @__PURE__ */ jsx(Default, { ...rest, children: text });\n};\naddPropertyControls(FramerButton, {\n  variant: {\n    type: ControlType.Enum,\n    title: \"변형\",\n    options: [ButtonVariant.PRIMARY, ButtonVariant.SECONDARY, ButtonVariant.TERTIARY, ButtonVariant.CUSTOM, ButtonVariant.DISABLED],\n    optionTitles: [\"primary\", \"secondary\", \"tertiary\", \"custom\", \"disabled\"]\n  },\n  theme: {\n    type: ControlType.Enum,\n    title: \"테마\",\n    options: [ButtonTheme.LIGHT, ButtonTheme.DARK],\n    optionTitles: [\"light\", \"dark\"],\n    defaultValue: ButtonTheme.LIGHT,\n    displaySegmentedControl: true\n  },\n  backgroundColor: {\n    hidden: ({\n      variant\n    }) => variant !== ButtonVariant.CUSTOM,\n    type: ControlType.Color,\n    title: \"배경 색상\",\n    optional: true\n  },\n  color: {\n    hidden: ({\n      variant\n    }) => variant !== ButtonVariant.CUSTOM,\n    type: ControlType.Color,\n    title: \"텍스트 색상\",\n    optional: true\n  },\n  size: {\n    type: ControlType.Enum,\n    title: \"크기\",\n    options: [ButtonSize.LARGE, ButtonSize.MEDIUM, ButtonSize.SMALL, ButtonSize.X_SMALL],\n    optionTitles: [\"large\", \"medium\", \"small\", \"xSmall\"],\n    defaultValue: ButtonSize.MEDIUM\n  },\n  fill: {\n    type: ControlType.Boolean,\n    title: \"반응형 너비\",\n    defaultValue: false\n  },\n  text: {\n    type: ControlType.String,\n    title: \"텍스트\",\n    defaultValue: \"텍스트\"\n  },\n  prefixIcon: {\n    hidden: ({\n      postfixIcon\n    }) => Boolean(postfixIcon),\n    type: ControlType.Enum,\n    title: \"좌측 아이콘\",\n    options: [void 0, ...PREFIX_ICON_OPTIONS],\n    optionTitles: [\"선택 안 함\", ...PREFIX_ICON_OPTIONS]\n  },\n  postfixIcon: {\n    hidden: ({\n      prefixIcon\n    }) => Boolean(prefixIcon),\n    type: ControlType.Enum,\n    title: \"우측 아이콘\",\n    options: [void 0, ...POSTFIX_ICON_OPTIONS],\n    optionTitles: [\"선택 안 함\", ...POSTFIX_ICON_OPTIONS]\n  },\n  fillIcon: {\n    type: ControlType.Boolean,\n    title: \"아이콘 채우기\",\n    defaultValue: false\n  },\n  url: {\n    hidden: ({\n      variant\n    }) => variant === ButtonVariant.DISABLED,\n    type: ControlType.Link,\n    title: \"URL\",\n    description: \"https://로 시작하는 전체 URL을 입력해주세요.\"\n  },\n  urlType: {\n    type: ControlType.Enum,\n    title: \"URL 타입\",\n    options: [UrlType.DEFAULT, UrlType.ONELINK],\n    optionTitles: [\"기본\", \"OneLink\"],\n    defaultValue: UrlType.DEFAULT,\n    description: \"onelink 타입을 선택하면 deeplink 변환없이 해당 url을 그대로 사용합니다.\"\n  },\n  onTap: {\n    hidden: ({\n      variant\n    }) => variant === ButtonVariant.DISABLED,\n    type: ControlType.EventHandler\n  }\n});\nexport {\n  FramerButton\n};\n","import{FramerButton}from\"https://asset.29cm.co.kr/contents/framer/components/systems/Button/Button.js\";FramerButton.displayName=\"Button\";/**\n * @framerDisableUnlink\n */export default FramerButton;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerButton\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Button.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef}from\"react\";import{useRef,useEffect}from\"react\";import{useInView}from\"framer-motion\";import{useTrackClickComponent,useTrackViewComponent}from\"https://asset.29cm.co.kr/contents/framer/components/canvas/ComponentEventTracker/ComponentEventTracker.hooks.event.js\";import{useTrackClickButtonEvent}from\"https://asset.29cm.co.kr/contents/framer/components/modules/hooks.js\";const getComponent=(props,Component)=>Component[\"displayName\"]||props[\"name\"]||props[\"data-framer-name\"];// prettier-ignore\nconst mergeRefs=(...refs)=>{return value=>{refs.forEach(ref=>{if(typeof ref===\"function\"){ref(value);}else if(ref!=null){ref.current=value;}});};};export function withViewEventTracker(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const component=getComponent(props,Component);const containerRef=useRef(null);const isInView=useInView(containerRef);const{trackViewComponent}=useTrackViewComponent();useEffect(()=>{if(!isInView){return;}trackViewComponent(component);},[isInView]);return /*#__PURE__*/_jsx(Component,{...props,ref:mergeRefs(ref,containerRef)});});}export function withClickEventTracker(Component){return props=>{const component=getComponent(props,Component);const{trackClickComponent}=useTrackClickComponent();const handleClick=()=>{trackClickComponent(component);};return /*#__PURE__*/_jsx(Component,{...props,onTap:handleClick});};}export function withViewClickEventTracker(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const component=getComponent(props,Component);const containerRef=useRef(null);const isInView=useInView(containerRef);const{trackViewComponent}=useTrackViewComponent();const{trackClickComponent}=useTrackClickComponent();useEffect(()=>{if(!isInView){return;}trackViewComponent(component);},[isInView]);const handleClick=()=>{trackClickComponent(component);};return /*#__PURE__*/_jsx(Component,{ref:mergeRefs(ref,containerRef),...props,onTap:handleClick});});}export function withSnowplowClickButtonEventTracker(Component){return props=>{const component=getComponent(props,Component);const trackClickButtonEvent=useTrackClickButtonEvent();const handleClick=e=>{if(e.isTriggered){return;}e.isTriggered=true;trackClickButtonEvent({type:\"more\",name:\"상품 전체보기\"});};return /*#__PURE__*/_jsx(Component,{...props,onTap:handleClick});};}\nexport const __FramerMetadata__ = {\"exports\":{\"withViewEventTracker\":{\"type\":\"reactHoc\",\"name\":\"withViewEventTracker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withViewClickEventTracker\":{\"type\":\"reactHoc\",\"name\":\"withViewClickEventTracker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withSnowplowClickButtonEventTracker\":{\"type\":\"reactHoc\",\"name\":\"withSnowplowClickButtonEventTracker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withClickEventTracker\":{\"type\":\"reactHoc\",\"name\":\"withClickEventTracker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Analytics.map","// Generated by Framer (4eeba22)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,Image,Link,RichText,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCodeBoundaryForOverrides,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Icon from\"https://framerusercontent.com/modules/SG4xUagjjnWfRbTksrvL/1SmWPZhe6a5JiRkDyVjO/Icon.js\";import{withClickEventTracker}from\"https://framerusercontent.com/modules/ldHwa1jNsDFXecpfDtkN/uxOqy6DKPnMhAkzKo1dJ/Analytics.js\";const IconFonts=getFonts(Icon);const MotionAWithClickEventTracker1mbt7vu=withCodeBoundaryForOverrides(motion.a,{nodeId:\"yqbNnZkCS\",override:withClickEventTracker,scopeId:\"nYkCFzCtT\"});const cycleOrder=[\"yqbNnZkCS\",\"JY5bUP4Tk\",\"EI3VV_pR3\",\"c8mJqEcQa\"];const serializationHash=\"framer-6HMgq\";const variantClassNames={c8mJqEcQa:\"framer-v-1i529zs\",EI3VV_pR3:\"framer-v-wf1kni\",JY5bUP4Tk:\"framer-v-1ar90w6\",yqbNnZkCS:\"framer-v-1mbt7vu\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const z5avitlNA=undefined;const HxjH6fVBV=undefined;const JHMSkkqJE=undefined;const afh3E7UT6=undefined;const jAzykGTdR=undefined;const agWRjarQp=undefined;const ybZHECpZi=undefined;const zkLTr3xrS=undefined;const SIF50suak=undefined;const convertFromBoolean=(value,activeLocale)=>{return value?\"0px\":\"16px 0px 16px 16px\";};const numberToPixelString=value=>{if(typeof value!==\"number\")return value;if(!Number.isFinite(value))return undefined;return Math.max(0,value)+\"px\";};const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const isSet=value=>{if(Array.isArray(value))return value.length>0;return value!==undefined&&value!==null&&value!==\"\";};const convertFromBoolean1=(value,activeLocale,{jAzykGTdR})=>{return value?jAzykGTdR:\"0px\";};const toResponsiveImage=value=>{if(typeof value===\"object\"&&value!==null&&typeof value.src===\"string\"){return value;}return typeof value===\"string\"?{src:value}:undefined;};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"MO-Dark\":\"EI3VV_pR3\",\"MO-Light\":\"yqbNnZkCS\",\"PC-Dark\":\"c8mJqEcQa\",\"PC-Light\":\"JY5bUP4Tk\"};const getProps=({_,_1,_2,background,brandNameEng,height,id,subCopy,uRL,visible,whenYes,width,...props})=>{return{...props,afh3E7UT6:_2??props.afh3E7UT6??{alt:\"\",pixelHeight:1082,pixelWidth:1062,src:\"https://framerusercontent.com/images/B6cnZiZxgIh9apeDxUGK0V90mM.png?width=1062&height=1082\",srcSet:\"https://framerusercontent.com/images/B6cnZiZxgIh9apeDxUGK0V90mM.png?scale-down-to=1024&width=1062&height=1082 1005w,https://framerusercontent.com/images/B6cnZiZxgIh9apeDxUGK0V90mM.png?width=1062&height=1082 1062w\"},agWRjarQp:_1??props.agWRjarQp??\"rgb(255, 255, 255)\",HxjH6fVBV:background??props.HxjH6fVBV??\"rgba(244, 244, 244, 0.65)\",jAzykGTdR:whenYes??props.jAzykGTdR??\"0px 0px 0px 0px\",JHMSkkqJE:uRL??props.JHMSkkqJE,SIF50suak:subCopy??props.SIF50suak??\"설명 문구를 입력해 주세요. \",variant:humanReadableVariantMap[props.variant]??props.variant??\"yqbNnZkCS\",ybZHECpZi:brandNameEng??props.ybZHECpZi??\"일반 랜딩\",z5avitlNA:_??props.z5avitlNA??true,zkLTr3xrS:visible??props.zkLTr3xrS??true};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,ybZHECpZi,SIF50suak,HxjH6fVBV,z5avitlNA,JHMSkkqJE,agWRjarQp,afh3E7UT6,zkLTr3xrS,jAzykGTdR,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"yqbNnZkCS\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const padding=numberToPixelString(convertFromBoolean(z5avitlNA,activeLocale));const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const padding1=numberToPixelString(convertFromBoolean1(isSet(afh3E7UT6),activeLocale,{jAzykGTdR}));const visible=isSet(JHMSkkqJE);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{href:JHMSkkqJE,motionChild:true,nodeId:\"yqbNnZkCS\",scopeId:\"nYkCFzCtT\",children:/*#__PURE__*/_jsxs(MotionAWithClickEventTracker1mbt7vu,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-1mbt7vu\",className,classNames)} framer-mj8hux`,\"data-framer-name\":\"MO-Light\",layoutDependency:layoutDependency,layoutId:\"yqbNnZkCS\",ref:refBinding,style:{\"--10ocmuz\":padding,backgroundColor:HxjH6fVBV,borderBottomLeftRadius:3,borderBottomRightRadius:3,borderTopLeftRadius:3,borderTopRightRadius:3,...style},variants:{c8mJqEcQa:{borderBottomLeftRadius:6,borderBottomRightRadius:6,borderTopLeftRadius:6,borderTopRightRadius:6},JY5bUP4Tk:{borderBottomLeftRadius:6,borderBottomRightRadius:6,borderTopLeftRadius:6,borderTopRightRadius:6}},...addPropertyOverrides({c8mJqEcQa:{\"data-framer-name\":\"PC-Dark\"},EI3VV_pR3:{\"data-framer-name\":\"MO-Dark\"},JY5bUP4Tk:{\"data-framer-name\":\"PC-Light\"}},baseVariant,gestureVariant),children:[z5avitlNA!==false&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-1ijiscd\",\"data-framer-name\":\"Background\",layoutDependency:layoutDependency,layoutId:\"p3Av7sZ0r\",style:{\"--1reti8r\":padding1,backgroundColor:agWRjarQp},children:/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fit\",pixelHeight:1082,pixelWidth:1062,sizes:\"72px\",...toResponsiveImage(afh3E7UT6),...{positionX:\"center\",positionY:\"center\"}},className:\"framer-pdol13\",\"data-framer-name\":\"일반랜딩\",layoutDependency:layoutDependency,layoutId:\"k3AJ8pdmY\",...addPropertyOverrides({c8mJqEcQa:{background:{alt:\"\",fit:\"fit\",pixelHeight:1082,pixelWidth:1062,sizes:\"96px\",...toResponsiveImage(afh3E7UT6),...{positionX:\"center\",positionY:\"center\"}}},JY5bUP4Tk:{background:{alt:\"\",fit:\"fit\",pixelHeight:1082,pixelWidth:1062,sizes:\"96px\",...toResponsiveImage(afh3E7UT6),...{positionX:\"center\",positionY:\"center\"}}}},baseVariant,gestureVariant)})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-ftczah\",\"data-framer-name\":\"Desc\",layoutDependency:layoutDependency,layoutId:\"eVNoFCxo3\",children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-11ck7qx\",layoutDependency:layoutDependency,layoutId:\"kvswJoL2X\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgU2VtaUJvbGQ=\",\"--framer-font-family\":'\"Pretendard SemiBold\", \"Pretendard SemiBold Placeholder\", sans-serif',\"--framer-font-weight\":\"600\"},children:\"일반 랜딩\"})}),className:\"framer-1ah2rr8\",fonts:[\"CUSTOM;Pretendard SemiBold\"],layoutDependency:layoutDependency,layoutId:\"nvTSt_Ir8\",style:{\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:ybZHECpZi,variants:{c8mJqEcQa:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\"},EI3VV_pR3:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({c8mJqEcQa:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgU2VtaUJvbGQ=\",\"--framer-font-family\":'\"Pretendard SemiBold\", \"Pretendard SemiBold Placeholder\", sans-serif',\"--framer-font-weight\":\"600\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:\"일반 랜딩\"})})},EI3VV_pR3:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgU2VtaUJvbGQ=\",\"--framer-font-family\":'\"Pretendard SemiBold\", \"Pretendard SemiBold Placeholder\", sans-serif',\"--framer-font-weight\":\"600\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:\"일반 랜딩\"})})}},baseVariant,gestureVariant)}),zkLTr3xrS!==false&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgUmVndWxhcg==\",\"--framer-font-family\":'\"Pretendard Regular\", \"Pretendard Regular Placeholder\", sans-serif',\"--framer-font-size\":\"12px\",\"--framer-letter-spacing\":\"-0.02em\",\"--framer-line-height\":\"1.4em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-de803e8c-12f1-4905-91df-fd4ef45d13d4, rgb(71, 71, 71)))\"},children:\"설명 문구를 입력해 주세요. \"})}),className:\"framer-18r4e7n\",fonts:[\"CUSTOM;Pretendard Regular\"],layoutDependency:layoutDependency,layoutId:\"sOLs8L4Ku\",style:{\"--extracted-r6o4lv\":\"var(--token-de803e8c-12f1-4905-91df-fd4ef45d13d4, rgb(71, 71, 71))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:SIF50suak,variants:{c8mJqEcQa:{\"--extracted-r6o4lv\":\"var(--token-a0534043-0dde-4df4-ae78-dd811455e368, rgb(160, 160, 160))\"},EI3VV_pR3:{\"--extracted-r6o4lv\":\"var(--token-a0534043-0dde-4df4-ae78-dd811455e368, rgb(160, 160, 160))\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({c8mJqEcQa:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgUmVndWxhcg==\",\"--framer-font-family\":'\"Pretendard Regular\", \"Pretendard Regular Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-letter-spacing\":\"-0.02em\",\"--framer-line-height\":\"1.4em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-a0534043-0dde-4df4-ae78-dd811455e368, rgb(160, 160, 160)))\"},children:\"설명 문구를 입력해 주세요. \"})})},EI3VV_pR3:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgUmVndWxhcg==\",\"--framer-font-family\":'\"Pretendard Regular\", \"Pretendard Regular Placeholder\", sans-serif',\"--framer-font-size\":\"12px\",\"--framer-letter-spacing\":\"-0.02em\",\"--framer-line-height\":\"1.4em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-a0534043-0dde-4df4-ae78-dd811455e368, rgb(160, 160, 160)))\"},children:\"설명 문구를 입력해 주세요. \"})})},JY5bUP4Tk:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgUmVndWxhcg==\",\"--framer-font-family\":'\"Pretendard Regular\", \"Pretendard Regular Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-letter-spacing\":\"-0.02em\",\"--framer-line-height\":\"1.4em\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-de803e8c-12f1-4905-91df-fd4ef45d13d4, rgb(71, 71, 71)))\"},children:\"설명 문구를 입력해 주세요. \"})})}},baseVariant,gestureVariant)})]}),visible!==false&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-12tqryc-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"dUrzuUs5y-container\",nodeId:\"dUrzuUs5y\",rendersWithMotion:true,scopeId:\"nYkCFzCtT\",children:/*#__PURE__*/_jsx(Icon,{fill:false,height:\"100%\",id:\"dUrzuUs5y\",layoutId:\"dUrzuUs5y\",size:18,type:\"chevronRight\",weight:\"regular\",width:\"100%\",...addPropertyOverrides({c8mJqEcQa:{color:\"rgb(255, 255, 255)\",size:23,weight:\"bold\"},EI3VV_pR3:{color:\"rgb(255, 255, 255)\"},JY5bUP4Tk:{size:23,weight:\"bold\"}},baseVariant,gestureVariant)})})})]})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-6HMgq.framer-mj8hux, .framer-6HMgq .framer-mj8hux { display: block; }\",\".framer-6HMgq.framer-1mbt7vu { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: flex-start; overflow: hidden; padding: var(--10ocmuz); position: relative; text-decoration: none; width: 439px; will-change: var(--framer-will-change-override, transform); }\",\".framer-6HMgq .framer-1ijiscd { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: var(--1reti8r); position: relative; width: min-content; }\",\".framer-6HMgq .framer-pdol13 { align-content: center; align-items: center; aspect-ratio: 1 / 1; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: var(--framer-aspect-ratio-supported, 72px); justify-content: center; overflow: hidden; padding: 0px; position: relative; width: 72px; will-change: var(--framer-will-change-filter-override, filter); }\",\".framer-6HMgq .framer-ftczah { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; overflow: hidden; padding: 0px 12px 0px 0px; position: relative; width: 1px; }\",\".framer-6HMgq .framer-11ck7qx { align-content: flex-start; align-items: flex-start; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 4px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-6HMgq .framer-1ah2rr8, .framer-6HMgq .framer-18r4e7n { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-6HMgq .framer-12tqryc-container { flex: none; height: auto; position: relative; width: auto; z-index: 1; }\",\".framer-6HMgq.framer-v-1ar90w6.framer-1mbt7vu, .framer-6HMgq.framer-v-1i529zs.framer-1mbt7vu { width: 1080px; }\",\".framer-6HMgq.framer-v-1ar90w6 .framer-pdol13 { height: var(--framer-aspect-ratio-supported, 96px); width: 96px; }\",\".framer-6HMgq.framer-v-1ar90w6 .framer-11ck7qx, .framer-6HMgq.framer-v-1i529zs .framer-11ck7qx { gap: 6px; }\",\".framer-6HMgq.framer-v-1i529zs .framer-pdol13 { width: 96px; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 72\n * @framerIntrinsicWidth 439\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"JY5bUP4Tk\":{\"layout\":[\"fixed\",\"auto\"]},\"EI3VV_pR3\":{\"layout\":[\"fixed\",\"auto\"]},\"c8mJqEcQa\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"ybZHECpZi\":\"brandNameEng\",\"SIF50suak\":\"subCopy\",\"HxjH6fVBV\":\"background\",\"z5avitlNA\":\"_\",\"JHMSkkqJE\":\"uRL\",\"agWRjarQp\":\"_1\",\"afh3E7UT6\":\"_2\",\"zkLTr3xrS\":\"visible\",\"jAzykGTdR\":\"whenYes\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramernYkCFzCtT=withCSS(Component,css,\"framer-6HMgq\");export default FramernYkCFzCtT;FramernYkCFzCtT.displayName=\"[Smart]LandingBanner\";FramernYkCFzCtT.defaultProps={height:72,width:439};addPropertyControls(FramernYkCFzCtT,{variant:{options:[\"yqbNnZkCS\",\"JY5bUP4Tk\",\"EI3VV_pR3\",\"c8mJqEcQa\"],optionTitles:[\"MO-Light\",\"PC-Light\",\"MO-Dark\",\"PC-Dark\"],title:\"Variant\",type:ControlType.Enum},ybZHECpZi:{defaultValue:\"일반 랜딩\",title:\"brandNameEng\",type:ControlType.String},SIF50suak:{defaultValue:\"설명 문구를 입력해 주세요. \",displayTextArea:true,title:\"subCopy\",type:ControlType.String},HxjH6fVBV:{defaultValue:\"rgba(244, 244, 244, 0.65)\",title:\"Background\",type:ControlType.Color},z5avitlNA:{defaultValue:true,title:\"일반랜딩\",type:ControlType.Boolean},JHMSkkqJE:{title:\"URL\",type:ControlType.Link},agWRjarQp:{defaultValue:\"rgb(255, 255, 255)\",title:\"썸네일 배경\",type:ControlType.Color},afh3E7UT6:{__defaultAssetReference:\"data:framer/asset-reference,B6cnZiZxgIh9apeDxUGK0V90mM.png?originalFilename=%C3%A1%C2%84%C2%89%C3%A1%C2%85%C2%B3%C3%A1%C2%84%C2%8F%C3%A1%C2%85%C2%B3%C3%A1%C2%84%C2%85%C3%A1%C2%85%C2%B5%C3%A1%C2%86%C2%AB%C3%A1%C2%84%C2%89%C3%A1%C2%85%C2%A3%C3%A1%C2%86%C2%BA+2025-01-08+%C3%A1%C2%84%C2%8B%C3%A1%C2%85%C2%A9%C3%A1%C2%84%C2%8C%C3%A1%C2%85%C2%A5%C3%A1%C2%86%C2%AB+10.47.54.png&preferredSize=auto\",__vekterDefault:{alt:\"\",assetReference:\"data:framer/asset-reference,B6cnZiZxgIh9apeDxUGK0V90mM.png?originalFilename=%C3%A1%C2%84%C2%89%C3%A1%C2%85%C2%B3%C3%A1%C2%84%C2%8F%C3%A1%C2%85%C2%B3%C3%A1%C2%84%C2%85%C3%A1%C2%85%C2%B5%C3%A1%C2%86%C2%AB%C3%A1%C2%84%C2%89%C3%A1%C2%85%C2%A3%C3%A1%C2%86%C2%BA+2025-01-08+%C3%A1%C2%84%C2%8B%C3%A1%C2%85%C2%A9%C3%A1%C2%84%C2%8C%C3%A1%C2%85%C2%A5%C3%A1%C2%86%C2%AB+10.47.54.png&preferredSize=auto\"},title:\"썸네일 이미지\",type:ControlType.ResponsiveImage},zkLTr3xrS:{defaultValue:true,title:\"Visible\",type:ControlType.Boolean},jAzykGTdR:{defaultValue:\"0px 0px 0px 0px\",title:\"When Yes\",type:ControlType.Padding}});addFonts(FramernYkCFzCtT,[{explicitInter:true,fonts:[{cssFamilyName:\"Pretendard SemiBold\",source:\"custom\",style:\"normal\",uiFamilyName:\"Pretendard\",url:\"https://framerusercontent.com/assets/bUf4UcuhtdSAGwhiC3unbHsuLB0.woff2\",weight:\"600\"},{cssFamilyName:\"Pretendard Regular\",source:\"custom\",style:\"normal\",uiFamilyName:\"Pretendard\",url:\"https://framerusercontent.com/assets/t7lebLYx2xwMs9MrDdMh5EKeA.woff2\",weight:\"400\"}]},...IconFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramernYkCFzCtT\",\"slots\":[],\"annotations\":{\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"JY5bUP4Tk\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"EI3VV_pR3\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"c8mJqEcQa\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerIntrinsicWidth\":\"439\",\"framerColorSyntax\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerContractVersion\":\"1\",\"framerAutoSizeImages\":\"true\",\"framerVariables\":\"{\\\"ybZHECpZi\\\":\\\"brandNameEng\\\",\\\"SIF50suak\\\":\\\"subCopy\\\",\\\"HxjH6fVBV\\\":\\\"background\\\",\\\"z5avitlNA\\\":\\\"_\\\",\\\"JHMSkkqJE\\\":\\\"uRL\\\",\\\"agWRjarQp\\\":\\\"_1\\\",\\\"afh3E7UT6\\\":\\\"_2\\\",\\\"zkLTr3xrS\\\":\\\"visible\\\",\\\"jAzykGTdR\\\":\\\"whenYes\\\"}\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"72\",\"framerComponentViewportWidth\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./nYkCFzCtT.map","function addUniqueItem(t,e){-1===t.indexOf(e)&&t.push(e)}function removeItem(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const clamp=(t,e,n)=>Math.min(Math.max(n,t),e);const t={duration:.3,delay:0,endDelay:0,repeat:0,easing:\"ease\"};const isNumber=t=>\"number\"===typeof t;const isEasingList=t=>Array.isArray(t)&&!isNumber(t[0]);const wrap=(t,e,n)=>{const o=e-t;return((n-t)%o+o)%o+t};function getEasingForSegment(t,e){return isEasingList(t)?t[wrap(0,t.length,e)]:t}const mix=(t,e,n)=>-n*t+n*e+t;const noop=()=>{};const noopReturn=t=>t;const progress=(t,e,n)=>e-t===0?1:(n-t)/(e-t);function fillOffset(t,e){const n=t[t.length-1];for(let o=1;o<=e;o++){const s=progress(0,e,o);t.push(mix(n,1,s))}}function defaultOffset(t){const e=[0];fillOffset(e,t-1);return e}function interpolate(t,e=defaultOffset(t.length),n=noopReturn){const o=t.length;const s=o-e.length;s>0&&fillOffset(e,s);return s=>{let f=0;for(;f<o-2;f++)if(s<e[f+1])break;let r=clamp(0,1,progress(e[f],e[f+1],s));const c=getEasingForSegment(n,f);r=c(r);return mix(t[f],t[f+1],r)}}const isCubicBezier=t=>Array.isArray(t)&&isNumber(t[0]);const isEasingGenerator=t=>\"object\"===typeof t&&Boolean(t.createAnimation);const isFunction=t=>\"function\"===typeof t;const isString=t=>\"string\"===typeof t;const e={ms:t=>1e3*t,s:t=>t/1e3};\n/*\n  Convert velocity into velocity per second\n\n  @param [number]: Unit per frame\n  @param [number]: Frame duration in ms\n*/function velocityPerSecond(t,e){return e?t*(1e3/e):0}export{addUniqueItem,clamp,defaultOffset,t as defaults,fillOffset,getEasingForSegment,interpolate,isCubicBezier,isEasingGenerator,isEasingList,isFunction,isNumber,isString,mix,noop,noopReturn,progress,removeItem,e as time,velocityPerSecond,wrap};\n\n//# sourceMappingURL=index.es.js.map","import{noopReturn as t,clamp as n}from\"@motionone/utils\";const calcBezier=(t,n,e)=>(((1-3*e+3*n)*t+(3*e-6*n))*t+3*n)*t;const e=1e-7;const i=12;function binarySubdivide(t,n,o,r,c){let u;let a;let s=0;do{a=n+(o-n)/2;u=calcBezier(a,r,c)-t;u>0?o=a:n=a}while(Math.abs(u)>e&&++s<i);return a}function cubicBezier(n,e,i,o){if(n===e&&i===o)return t;const getTForX=t=>binarySubdivide(t,0,1,n,i);return t=>0===t||1===t?t:calcBezier(getTForX(t),e,o)}const steps=(t,e=\"end\")=>i=>{i=\"end\"===e?Math.min(i,.999):Math.max(i,.001);const o=i*t;const r=\"end\"===e?Math.floor(o):Math.ceil(o);return n(0,1,r/t)};export{cubicBezier,steps};\n\n//# sourceMappingURL=index.es.js.map","import{noopReturn as t,defaults as i,isEasingGenerator as e,isEasingList as s,interpolate as a}from\"@motionone/utils\";import{cubicBezier as n,steps as r}from\"@motionone/easing\";const o={ease:n(.25,.1,.25,1),\"ease-in\":n(.42,0,1,1),\"ease-in-out\":n(.42,0,.58,1),\"ease-out\":n(0,0,.58,1)};const h=/\\((.*?)\\)/;function getEasingFunction(i){if(\"function\"===typeof i)return i;if(Array.isArray(i))return n(...i);if(o[i])return o[i];if(i.startsWith(\"steps\")){const t=h.exec(i);if(t){const i=t[1].split(\",\");return r(parseFloat(i[0]),i[1].trim())}}return t}class Animation{constructor(n,r=[0,1],{easing:o,duration:h=i.duration,delay:u=i.delay,endDelay:l=i.endDelay,repeat:m=i.repeat,offset:c,direction:p=\"normal\"}={}){this.startTime=null;this.rate=1;this.t=0;this.cancelTimestamp=null;this.easing=t;this.duration=0;this.totalDuration=0;this.repeat=0;this.playState=\"idle\";this.finished=new Promise(((t,i)=>{this.resolve=t;this.reject=i}));o=o||i.easing;if(e(o)){const t=o.createAnimation(r,(()=>\"0\"),true);o=t.easing;void 0!==t.keyframes&&(r=t.keyframes);void 0!==t.duration&&(h=t.duration)}this.repeat=m;this.easing=s(o)?t:getEasingFunction(o);this.updateDuration(h);const d=a(r,c,s(o)?o.map(getEasingFunction):t);this.tick=t=>{var i;u=u;let e=0;e=void 0!==this.pauseTime?this.pauseTime:(t-this.startTime)*this.rate;this.t=e;e/=1e3;e=Math.max(e-u,0);\"finished\"===this.playState&&void 0===this.pauseTime&&(e=this.totalDuration);const s=e/this.duration;let a=Math.floor(s);let r=s%1;!r&&s>=1&&(r=1);1===r&&a--;const o=a%2;(\"reverse\"===p||\"alternate\"===p&&o||\"alternate-reverse\"===p&&!o)&&(r=1-r);const h=e>=this.totalDuration?1:Math.min(r,1);const m=d(this.easing(h));n(m);const c=void 0===this.pauseTime&&(\"finished\"===this.playState||e>=this.totalDuration+l);if(c){this.playState=\"finished\";null===(i=this.resolve)||void 0===i?void 0:i.call(this,m)}else\"idle\"!==this.playState&&(this.frameRequestId=requestAnimationFrame(this.tick))};this.play()}play(){const t=performance.now();this.playState=\"running\";void 0!==this.pauseTime?this.startTime=t-this.pauseTime:this.startTime||(this.startTime=t);this.cancelTimestamp=this.startTime;this.pauseTime=void 0;this.frameRequestId=requestAnimationFrame(this.tick)}pause(){this.playState=\"paused\";this.pauseTime=this.t}finish(){this.playState=\"finished\";this.tick(0)}stop(){var t;this.playState=\"idle\";void 0!==this.frameRequestId&&cancelAnimationFrame(this.frameRequestId);null===(t=this.reject)||void 0===t?void 0:t.call(this,false)}cancel(){this.stop();this.tick(this.cancelTimestamp)}reverse(){this.rate*=-1}commitStyles(){}updateDuration(t){this.duration=t;this.totalDuration=t*(this.repeat+1)}get currentTime(){return this.t}set currentTime(t){void 0!==this.pauseTime||0===this.rate?this.pauseTime=t:this.startTime=performance.now()-t/this.rate}get playbackRate(){return this.rate}set playbackRate(t){this.rate=t}}export{Animation,getEasingFunction};\n\n//# sourceMappingURL=index.es.js.map","var extendStatics=function(e,t){extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])};return extendStatics(e,t)};function __extends(e,t){if(\"function\"!==typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");extendStatics(e,t);function __(){this.constructor=e}e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)}var __assign=function(){__assign=Object.assign||function __assign(e){for(var t,r=1,n=arguments.length;r<n;r++){t=arguments[r];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e};return __assign.apply(this,arguments)};function __rest(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&\"function\"===typeof Object.getOwnPropertySymbols){var o=0;for(n=Object.getOwnPropertySymbols(e);o<n.length;o++)t.indexOf(n[o])<0&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(r[n[o]]=e[n[o]])}return r}function __decorate(e,t,r,n){var o,a=arguments.length,i=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if(\"object\"===typeof Reflect&&\"function\"===typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var c=e.length-1;c>=0;c--)(o=e[c])&&(i=(a<3?o(i):a>3?o(t,r,i):o(t,r))||i);return a>3&&i&&Object.defineProperty(t,r,i),i}function __param(e,t){return function(r,n){t(r,n,e)}}function __metadata(e,t){if(\"object\"===typeof Reflect&&\"function\"===typeof Reflect.metadata)return Reflect.metadata(e,t)}function __awaiter(e,t,r,n){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,o){function fulfilled(e){try{step(n.next(e))}catch(e){o(e)}}function rejected(e){try{step(n.throw(e))}catch(e){o(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())}))}function __generator(e,t){var r,n,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:verb(0),throw:verb(1),return:verb(2)},\"function\"===typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function verb(e){return function(t){return step([e,t])}}function step(a){if(r)throw new TypeError(\"Generator is already executing.\");while(i)try{if(r=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;(n=0,o)&&(a=[2&a[0],o.value]);switch(a[0]){case 0:case 1:o=a;break;case 4:i.label++;return{value:a[1],done:false};case 5:i.label++;n=a[1];a=[0];continue;case 7:a=i.ops.pop();i.trys.pop();continue;default:if(!(o=i.trys,o=o.length>0&&o[o.length-1])&&(6===a[0]||2===a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1];o=a;break}if(o&&i.label<o[2]){i.label=o[2];i.ops.push(a);break}o[2]&&i.ops.pop();i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e];n=0}finally{r=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:true}}}var e=Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!(\"get\"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:true,get:function(){return t[r]}});Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r);e[n]=t[r]};function __exportStar(t,r){for(var n in t)\"default\"===n||Object.prototype.hasOwnProperty.call(r,n)||e(r,t,n)}function __values(e){var t=\"function\"===typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\"number\"===typeof e.length)return{next:function(){e&&n>=e.length&&(e=void 0);return{value:e&&e[n++],done:!e}}};throw new TypeError(t?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function __read(e,t){var r=\"function\"===typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,o,a=r.call(e),i=[];try{while((void 0===t||t-- >0)&&!(n=a.next()).done)i.push(n.value)}catch(e){o={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return i}\n/** @deprecated */function __spread(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(__read(arguments[t]));return e}\n/** @deprecated */function __spreadArrays(){for(var e=0,t=0,r=arguments.length;t<r;t++)e+=arguments[t].length;var n=Array(e),o=0;for(t=0;t<r;t++)for(var a=arguments[t],i=0,c=a.length;i<c;i++,o++)n[o]=a[i];return n}function __spreadArray(e,t,r){if(r||2===arguments.length)for(var n,o=0,a=t.length;o<a;o++)if(n||!(o in t)){n||(n=Array.prototype.slice.call(t,0,o));n[o]=t[o]}return e.concat(n||Array.prototype.slice.call(t))}function __await(e){return this instanceof __await?(this.v=e,this):new __await(e)}function __asyncGenerator(e,t,r){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var n,o=r.apply(e,t||[]),a=[];return n={},verb(\"next\"),verb(\"throw\"),verb(\"return\"),n[Symbol.asyncIterator]=function(){return this},n;function verb(e){o[e]&&(n[e]=function(t){return new Promise((function(r,n){a.push([e,t,r,n])>1||resume(e,t)}))})}function resume(e,t){try{step(o[e](t))}catch(e){settle(a[0][3],e)}}function step(e){e.value instanceof __await?Promise.resolve(e.value.v).then(fulfill,reject):settle(a[0][2],e)}function fulfill(e){resume(\"next\",e)}function reject(e){resume(\"throw\",e)}function settle(e,t){(e(t),a.shift(),a.length)&&resume(a[0][0],a[0][1])}}function __asyncDelegator(e){var t,r;return t={},verb(\"next\"),verb(\"throw\",(function(e){throw e})),verb(\"return\"),t[Symbol.iterator]=function(){return this},t;function verb(n,o){t[n]=e[n]?function(t){return(r=!r)?{value:__await(e[n](t)),done:\"return\"===n}:o?o(t):t}:o}}function __asyncValues(e){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var t,r=e[Symbol.asyncIterator];return r?r.call(e):(e=\"function\"===typeof __values?__values(e):e[Symbol.iterator](),t={},verb(\"next\"),verb(\"throw\"),verb(\"return\"),t[Symbol.asyncIterator]=function(){return this},t);function verb(r){t[r]=e[r]&&function(t){return new Promise((function(n,o){t=e[r](t),settle(n,o,t.done,t.value)}))}}function settle(e,t,r,n){Promise.resolve(n).then((function(t){e({value:t,done:r})}),t)}}function __makeTemplateObject(e,t){Object.defineProperty?Object.defineProperty(e,\"raw\",{value:t}):e.raw=t;return e}var t=Object.create?function(e,t){Object.defineProperty(e,\"default\",{enumerable:true,value:t})}:function(e,t){e.default=t};function __importStar(r){if(r&&r.__esModule)return r;var n={};if(null!=r)for(var o in r)\"default\"!==o&&Object.prototype.hasOwnProperty.call(r,o)&&e(n,r,o);t(n,r);return n}function __importDefault(e){return e&&e.__esModule?e:{default:e}}function __classPrivateFieldGet(e,t,r,n){if(\"a\"===r&&!n)throw new TypeError(\"Private accessor was defined without a getter\");if(\"function\"===typeof t?e!==t||!n:!t.has(e))throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");return\"m\"===r?n:\"a\"===r?n.call(e):n?n.value:t.get(e)}function __classPrivateFieldSet(e,t,r,n,o){if(\"m\"===n)throw new TypeError(\"Private method is not writable\");if(\"a\"===n&&!o)throw new TypeError(\"Private accessor was defined without a setter\");if(\"function\"===typeof t?e!==t||!o:!t.has(e))throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");return\"a\"===n?o.call(e,r):o?o.value=r:t.set(e,r),r}function __classPrivateFieldIn(e,t){if(null===t||\"object\"!==typeof t&&\"function\"!==typeof t)throw new TypeError(\"Cannot use 'in' operator on non-object\");return\"function\"===typeof e?t===e:e.has(t)}export{__assign,__asyncDelegator,__asyncGenerator,__asyncValues,__await,__awaiter,__classPrivateFieldGet,__classPrivateFieldIn,__classPrivateFieldSet,e as __createBinding,__decorate,__exportStar,__extends,__generator,__importDefault,__importStar,__makeTemplateObject,__metadata,__param,__read,__rest,__spread,__spreadArray,__spreadArrays,__values};\n\n//# sourceMappingURL=tslib.es6.js.map","var n={};Object.defineProperty(n,\"__esModule\",{value:true});n.warning=function(){};n.invariant=function(){};const e=n.__esModule,t=n.warning,r=n.invariant;export default n;export{e as __esModule,r as invariant,t as warning};\n\n//# sourceMappingURL=index.js.map","import{velocityPerSecond as e,time as t}from\"@motionone/utils\";const s=5;function calcGeneratorVelocity(t,n,r){const a=Math.max(n-s,0);return e(r-t(a),n-a)}const n={stiffness:100,damping:10,mass:1};const calcDampingRatio=(e=n.stiffness,t=n.damping,s=n.mass)=>t/(2*Math.sqrt(e*s));function hasReachedTarget(e,t,s){return e<t&&s>=t||e>t&&s<=t}const spring=({stiffness:e=n.stiffness,damping:s=n.damping,mass:r=n.mass,from:a=0,to:o=1,velocity:c=0,restSpeed:i=2,restDistance:h=.5}={})=>{c=c?t.s(c):0;const u={done:false,hasReachedTarget:false,current:a,target:o};const d=o-a;const f=Math.sqrt(e/r)/1e3;const l=calcDampingRatio(e,s,r);let g;if(l<1){const e=f*Math.sqrt(1-l*l);g=t=>o-Math.exp(-l*f*t)*((l*f*d-c)/e*Math.sin(e*t)+d*Math.cos(e*t))}else g=e=>o-Math.exp(-f*e)*(d+(f*d-c)*e);return e=>{u.current=g(e);const t=0===e?c:calcGeneratorVelocity(g,e,u.current);const s=Math.abs(t)<=i;const n=Math.abs(o-u.current)<=h;u.done=s&&n;u.hasReachedTarget=hasReachedTarget(a,o,u.current);return u}};const glide=({from:e=0,velocity:s=0,power:n=.8,decay:r=.325,bounceDamping:a,bounceStiffness:o,changeTarget:c,min:i,max:h,restDistance:u=.5,restSpeed:d})=>{r=t.ms(r);const f={hasReachedTarget:false,done:false,current:e,target:e};const isOutOfBounds=e=>void 0!==i&&e<i||void 0!==h&&e>h;const nearestBoundary=e=>void 0===i?h:void 0===h||Math.abs(i-e)<Math.abs(h-e)?i:h;let l=n*s;const g=e+l;const m=void 0===c?g:c(g);f.target=m;m!==g&&(l=m-e);const calcDelta=e=>-l*Math.exp(-e/r);const calcLatest=e=>m+calcDelta(e);const applyFriction=e=>{const t=calcDelta(e);const s=calcLatest(e);f.done=Math.abs(t)<=u;f.current=f.done?m:s};let p;let M;const checkCatchBoundary=e=>{if(isOutOfBounds(f.current)){p=e;M=spring({from:f.current,to:nearestBoundary(f.current),velocity:calcGeneratorVelocity(calcLatest,e,f.current),damping:a,stiffness:o,restDistance:u,restSpeed:d})}};checkCatchBoundary(0);return e=>{let t=false;if(!M&&void 0===p){t=true;applyFriction(e);checkCatchBoundary(e)}if(void 0!==p&&e>p){f.hasReachedTarget=true;return M(e-p)}f.hasReachedTarget=false;!t&&applyFriction(e);return f}};const r=10;const a=1e4;function pregenerateKeyframes(e){let t;let s=r;let n=e(0);const o=[n.current];while(!n.done&&s<a){n=e(s);o.push(n.done?n.target:n.current);void 0===t&&n.hasReachedTarget&&(t=s);s+=r}const c=s-r;1===o.length&&o.push(n.current);return{keyframes:o,duration:c/1e3,overshootDuration:(null!==t&&void 0!==t?t:c)/1e3}}export{calcGeneratorVelocity,glide,pregenerateKeyframes,spring};\n\n//# sourceMappingURL=index.es.js.map","import{MotionValue as e}from\"@motionone/types\";import{noopReturn as t,addUniqueItem as n,isCubicBezier as o,defaults as i,isEasingGenerator as s,isNumber as r,time as a,isEasingList as c,noop as l,removeItem as f,mix as u,getEasingForSegment as d,isString as g,defaultOffset as m,fillOffset as h,progress as p,velocityPerSecond as v,interpolate as y}from\"@motionone/utils\";import{Animation as w,getEasingFunction as E}from\"@motionone/animation\";import{__rest as b}from\"tslib\";import{invariant as S}from\"hey-listen\";import{pregenerateKeyframes as A,calcGeneratorVelocity as O,spring as x,glide as V}from\"@motionone/generators\";const z=new WeakMap;function getAnimationData(e){z.has(e)||z.set(e,{transforms:[],values:new Map});return z.get(e)}function getMotionValue(t,n){t.has(n)||t.set(n,new e);return t.get(n)}const W=[\"\",\"X\",\"Y\",\"Z\"];const L=[\"translate\",\"scale\",\"rotate\",\"skew\"];const T={x:\"translateX\",y:\"translateY\",z:\"translateZ\"};const D={syntax:\"<angle>\",initialValue:\"0deg\",toDefaultUnit:e=>e+\"deg\"};const M={translate:{syntax:\"<length-percentage>\",initialValue:\"0px\",toDefaultUnit:e=>e+\"px\"},rotate:D,scale:{syntax:\"<number>\",initialValue:1,toDefaultUnit:t},skew:D};const k=new Map;const asTransformCssVar=e=>`--motion-${e}`;const B=[\"x\",\"y\",\"z\"];L.forEach((e=>{W.forEach((t=>{B.push(e+t);k.set(asTransformCssVar(e+t),M[e])}))}));const compareTransformOrder=(e,t)=>B.indexOf(e)-B.indexOf(t);const j=new Set(B);const isTransform=e=>j.has(e);const addTransformToElement=(e,t)=>{T[t]&&(t=T[t]);const{transforms:o}=getAnimationData(e);n(o,t);e.style.transform=buildTransformTemplate(o)};const buildTransformTemplate=e=>e.sort(compareTransformOrder).reduce(transformListToString,\"\").trim();const transformListToString=(e,t)=>`${e} ${t}(var(${asTransformCssVar(t)}))`;const isCssVar=e=>e.startsWith(\"--\");const P=new Set;function registerCssVariable(e){if(!P.has(e)){P.add(e);try{const{syntax:t,initialValue:n}=k.has(e)?k.get(e):{};CSS.registerProperty({name:e,inherits:false,syntax:t,initialValue:n})}catch(e){}}}const convertEasing=e=>o(e)?cubicBezierAsString(e):e;const cubicBezierAsString=([e,t,n,o])=>`cubic-bezier(${e}, ${t}, ${n}, ${o})`;const testAnimation=e=>document.createElement(\"div\").animate(e,{duration:.001});const C={cssRegisterProperty:()=>\"undefined\"!==typeof CSS&&Object.hasOwnProperty.call(CSS,\"registerProperty\"),waapi:()=>Object.hasOwnProperty.call(Element.prototype,\"animate\"),partialKeyframes:()=>{try{testAnimation({opacity:[1]})}catch(e){return false}return true},finished:()=>Boolean(testAnimation({opacity:[0,1]}).finished)};const $={};const R={};for(const e in C)R[e]=()=>{void 0===$[e]&&($[e]=C[e]());return $[e]};function hydrateKeyframes(e,t){for(let n=0;n<e.length;n++)null===e[n]&&(e[n]=n?e[n-1]:t());return e}const keyframesList=e=>Array.isArray(e)?e:[e];function getStyleName(e){T[e]&&(e=T[e]);return isTransform(e)?asTransformCssVar(e):e}const H={get:(e,t)=>{t=getStyleName(t);let n=isCssVar(t)?e.style.getPropertyValue(t):getComputedStyle(e)[t];if(!n&&0!==n){const e=k.get(t);e&&(n=e.initialValue)}return n},set:(e,t,n)=>{t=getStyleName(t);isCssVar(t)?e.style.setProperty(t,n):e.style[t]=n}};function stopAnimation(e,t=true){if(e&&\"finished\"!==e.playState)try{if(e.stop)e.stop();else{t&&e.commitStyles();e.cancel()}}catch(e){}}function getDevToolsRecord(){return window.__MOTION_DEV_TOOLS_RECORD}function animateStyle(e,t,n,o={}){const f=getDevToolsRecord();const u=false!==o.record&&f;let d;let{duration:g=i.duration,delay:m=i.delay,endDelay:h=i.endDelay,repeat:p=i.repeat,easing:v=i.easing,direction:y,offset:E,allowWebkitAcceleration:b=false}=o;const S=getAnimationData(e);let A=R.waapi();const O=isTransform(t);O&&addTransformToElement(e,t);const x=getStyleName(t);const V=getMotionValue(S.values,x);const z=k.get(x);stopAnimation(V.animation,!(s(v)&&V.generator)&&false!==o.record);return()=>{const readInitialValue=()=>{var t,n;return null!==(n=null!==(t=H.get(e,x))&&void 0!==t?t:null===z||void 0===z?void 0:z.initialValue)&&void 0!==n?n:0};let i=hydrateKeyframes(keyframesList(n),readInitialValue);if(s(v)){const e=v.createAnimation(i,readInitialValue,O,x,V);v=e.easing;void 0!==e.keyframes&&(i=e.keyframes);void 0!==e.duration&&(g=e.duration)}isCssVar(x)&&(R.cssRegisterProperty()?registerCssVariable(x):A=false);if(A){z&&(i=i.map((e=>r(e)?z.toDefaultUnit(e):e)));1!==i.length||R.partialKeyframes()&&!u||i.unshift(readInitialValue());const t={delay:a.ms(m),duration:a.ms(g),endDelay:a.ms(h),easing:c(v)?void 0:convertEasing(v),direction:y,iterations:p+1,fill:\"both\"};d=e.animate({[x]:i,offset:E,easing:c(v)?v.map(convertEasing):void 0},t);d.finished||(d.finished=new Promise(((e,t)=>{d.onfinish=e;d.oncancel=t})));const n=i[i.length-1];d.finished.then((()=>{H.set(e,x,n);d.cancel()})).catch(l);b||(d.playbackRate=1.000001)}else if(O){i=i.map((e=>\"string\"===typeof e?parseFloat(e):e));1===i.length&&i.unshift(parseFloat(readInitialValue()));const render=t=>{z&&(t=z.toDefaultUnit(t));H.set(e,x,t)};d=new w(render,i,Object.assign(Object.assign({},o),{duration:g,easing:v}))}else{const t=i[i.length-1];H.set(e,x,z&&r(t)?z.toDefaultUnit(t):t)}u&&f(e,t,i,{duration:g,delay:m,easing:v,repeat:p,offset:E},\"motion-one\");V.setAnimation(d);return d}}const getOptions=(e,t)=>e[t]?Object.assign(Object.assign({},e),e[t]):Object.assign({},e);function resolveElements(e,t){var n;if(\"string\"===typeof e)if(t){null!==(n=t[e])&&void 0!==n?n:t[e]=document.querySelectorAll(e);e=t[e]}else e=document.querySelectorAll(e);else e instanceof Element&&(e=[e]);return Array.from(e||[])}const createAnimation=e=>e();const withControls=(e,t,n=i.duration)=>new Proxy({animations:e.map(createAnimation).filter(Boolean),duration:n,options:t},I);const getActiveAnimation=e=>e.animations[0];const I={get:(e,t)=>{const n=getActiveAnimation(e);switch(t){case\"duration\":return e.duration;case\"currentTime\":return a.s((null===n||void 0===n?void 0:n[t])||0);case\"playbackRate\":case\"playState\":return null===n||void 0===n?void 0:n[t];case\"finished\":e.finished||(e.finished=Promise.all(e.animations.map(selectFinished)).catch(l));return e.finished;case\"stop\":return()=>{e.animations.forEach((e=>stopAnimation(e)))};case\"forEachNative\":return t=>{e.animations.forEach((n=>t(n,e)))};default:return\"undefined\"===typeof(null===n||void 0===n?void 0:n[t])?void 0:()=>e.animations.forEach((e=>e[t]()))}},set:(e,t,n)=>{switch(t){case\"currentTime\":n=a.ms(n);case\"currentTime\":case\"playbackRate\":for(let o=0;o<e.animations.length;o++)e.animations[o][t]=n;return true}return false}};const selectFinished=e=>e.finished;function stagger(e=.1,{start:t=0,from:n=0,easing:o}={}){return(i,s)=>{const a=r(n)?n:getFromIndex(n,s);const c=Math.abs(a-i);let l=e*c;if(o){const t=s*e;const n=E(o);l=n(l/t)*t}return t+l}}function getFromIndex(e,t){if(\"first\"===e)return 0;{const n=t-1;return\"last\"===e?n:n/2}}function resolveOption(e,t,n){return\"function\"===typeof e?e(t,n):e}function animate(e,t,n={}){e=resolveElements(e);const o=e.length;const i=[];for(let s=0;s<o;s++){const r=e[s];for(const e in t){const a=getOptions(n,e);a.delay=resolveOption(a.delay,s,o);const c=animateStyle(r,e,t[e],a);i.push(c)}}return withControls(i,n,n.duration)}function calcNextTime(e,t,n,o){var i;return r(t)?t:t.startsWith(\"-\")||t.startsWith(\"+\")?Math.max(0,e+parseFloat(t)):\"<\"===t?n:null!==(i=o.get(t))&&void 0!==i?i:e}function eraseKeyframes(e,t,n){for(let o=0;o<e.length;o++){const i=e[o];if(i.at>t&&i.at<n){f(e,i);o--}}}function addKeyframes(e,t,n,o,i,s){eraseKeyframes(e,i,s);for(let r=0;r<t.length;r++)e.push({value:t[r],at:u(i,s,o[r]),easing:d(n,r)})}function compareByTime(e,t){return e.at===t.at?null===e.value?1:-1:e.at-t.at}function timeline(e,t={}){var n;const o=createAnimationsFromTimeline(e,t);const i=o.map((e=>animateStyle(...e))).filter(Boolean);return withControls(i,t,null===(n=o[0])||void 0===n?void 0:n[3].duration)}function createAnimationsFromTimeline(e,t={}){var{defaultOptions:n={}}=t,o=b(t,[\"defaultOptions\"]);const r=[];const a=new Map;const c={};const l=new Map;let f=0;let u=0;let d=0;for(let t=0;t<e.length;t++){const o=e[t];if(g(o)){l.set(o,u);continue}if(!Array.isArray(o)){l.set(o.name,calcNextTime(u,o.at,f,l));continue}const[r,p,v={}]=o;void 0!==v.at&&(u=calcNextTime(u,v.at,f,l));let y=0;const w=resolveElements(r,c);const E=w.length;for(let e=0;e<E;e++){const t=w[e];const o=getElementSequence(t,a);for(const t in p){const r=getValueSequence(t,o);let a=keyframesList(p[t]);const c=getOptions(v,t);let{duration:l=n.duration||i.duration,easing:f=n.easing||i.easing}=c;if(s(f)){const e=isTransform(t);S(2===a.length||!e,\"spring must be provided 2 keyframes within timeline\");const n=f.createAnimation(a,(()=>\"0\"),e);f=n.easing;void 0!==n.keyframes&&(a=n.keyframes);void 0!==n.duration&&(l=n.duration)}const g=resolveOption(v.delay,e,E)||0;const w=u+g;const b=w+l;let{offset:A=m(a.length)}=c;1===A.length&&0===A[0]&&(A[1]=1);const O=length-a.length;O>0&&h(A,O);1===a.length&&a.unshift(null);addKeyframes(r,a,f,A,w,b);y=Math.max(g+l,y);d=Math.max(b,d)}}f=u;u+=y}a.forEach(((e,t)=>{for(const s in e){const a=e[s];a.sort(compareByTime);const c=[];const l=[];const f=[];for(let e=0;e<a.length;e++){const{at:t,value:n,easing:o}=a[e];c.push(n);l.push(p(0,d,t));f.push(o||i.easing)}if(0!==l[0]){l.unshift(0);c.unshift(c[0]);f.unshift(\"linear\")}if(1!==l[l.length-1]){l.push(1);c.push(null)}r.push([t,s,c,Object.assign(Object.assign(Object.assign({},n),{duration:d,easing:f,offset:l}),o)])}}));return r}function getElementSequence(e,t){!t.has(e)&&t.set(e,{});return t.get(e)}function getValueSequence(e,t){t[e]||(t[e]=[]);return t[e]}function createGeneratorEasing(e){const t=new WeakMap;return(n={})=>{const o=new Map;const getGenerator=(t=0,i=100,s=0,r=false)=>{const a=`${t}-${i}-${s}-${r}`;o.has(a)||o.set(a,e(Object.assign({from:t,to:i,velocity:s,restSpeed:r?.05:2,restDistance:r?.01:.5},n)));return o.get(a)};const getKeyframes=e=>{t.has(e)||t.set(e,A(e));return t.get(e)};return{createAnimation:(e,t,n,o,i)=>{var s,r;let a;const c=e.length;let l=n&&c<=2&&e.every(isNumberOrNull);if(l){const n=e[c-1];const l=1===c?null:e[0];let f=0;let u=0;const d=null===i||void 0===i?void 0:i.generator;if(d){const{animation:t,generatorStartTime:n}=i;const o=(null===t||void 0===t?void 0:t.startTime)||n||0;const r=(null===t||void 0===t?void 0:t.currentTime)||performance.now()-o;const a=d(r).current;u=null!==(s=l)&&void 0!==s?s:a;(1===c||2===c&&null===e[0])&&(f=O((e=>d(e).current),r,a))}else u=null!==(r=l)&&void 0!==r?r:parseFloat(t());const g=getGenerator(u,n,f,null===o||void 0===o?void 0:o.includes(\"scale\"));const m=getKeyframes(g);a=Object.assign(Object.assign({},m),{easing:\"linear\"});if(i){i.generator=g;i.generatorStartTime=performance.now()}}else{const e=getKeyframes(getGenerator(0,100));a={easing:\"ease\",duration:e.overshootDuration}}return a}}}}const isNumberOrNull=e=>\"string\"!==typeof e;const N=createGeneratorEasing(x);const F=createGeneratorEasing(V);const U={any:0,all:1};function inView$1(e,t,{root:n,margin:o,amount:i=\"any\"}={}){if(\"undefined\"===typeof IntersectionObserver)return()=>{};const s=resolveElements(e);const r=new WeakMap;const onIntersectionChange=e=>{e.forEach((e=>{const n=r.get(e.target);if(e.isIntersecting!==Boolean(n))if(e.isIntersecting){const n=t(e);\"function\"===typeof n?r.set(e.target,n):a.unobserve(e.target)}else if(n){n(e);r.delete(e.target)}}))};const a=new IntersectionObserver(onIntersectionChange,{root:n,rootMargin:o,threshold:\"number\"===typeof i?i:U[i]});s.forEach((e=>a.observe(e)));return()=>a.disconnect()}const q=new WeakMap;let K;function getElementSize(e,t){if(t){const{inlineSize:e,blockSize:n}=t[0];return{width:e,height:n}}return e instanceof SVGElement&&\"getBBox\"in e?e.getBBox():{width:e.offsetWidth,height:e.offsetHeight}}function notifyTarget({target:e,contentRect:t,borderBoxSize:n}){var o;null===(o=q.get(e))||void 0===o?void 0:o.forEach((o=>{o({target:e,contentSize:t,get size(){return getElementSize(e,n)}})}))}function notifyAll(e){e.forEach(notifyTarget)}function createResizeObserver(){\"undefined\"!==typeof ResizeObserver&&(K=new ResizeObserver(notifyAll))}function resizeElement(e,t){K||createResizeObserver();const n=resolveElements(e);n.forEach((e=>{let n=q.get(e);if(!n){n=new Set;q.set(e,n)}n.add(t);null===K||void 0===K?void 0:K.observe(e)}));return()=>{n.forEach((e=>{const n=q.get(e);null===n||void 0===n?void 0:n.delete(t);(null===n||void 0===n?void 0:n.size)||(null===K||void 0===K?void 0:K.unobserve(e))}))}}const G=new Set;let _;function createWindowResizeHandler(){_=()=>{const e={width:window.innerWidth,height:window.innerHeight};const t={target:window,size:e,contentSize:e};G.forEach((e=>e(t)))};window.addEventListener(\"resize\",_)}function resizeWindow(e){G.add(e);_||createWindowResizeHandler();return()=>{G.delete(e);!G.size&&_&&(_=void 0)}}function resize(e,t){return\"function\"===typeof e?resizeWindow(e):resizeElement(e,t)}const Z=50;const createAxisInfo=()=>({current:0,offset:[],progress:0,scrollLength:0,targetOffset:0,targetLength:0,containerLength:0,velocity:0});const createScrollInfo=()=>({time:0,x:createAxisInfo(),y:createAxisInfo()});const X={x:{length:\"Width\",position:\"Left\"},y:{length:\"Height\",position:\"Top\"}};function updateAxisInfo(e,t,n,o){const i=n[t];const{length:s,position:r}=X[t];const a=i.current;const c=n.time;i.current=e[\"scroll\"+r];i.scrollLength=e[\"scroll\"+s]-e[\"client\"+s];i.offset.length=0;i.offset[0]=0;i.offset[1]=i.scrollLength;i.progress=p(0,i.scrollLength,i.current);const l=o-c;i.velocity=l>Z?0:v(i.current-a,l)}function updateScrollInfo(e,t,n){updateAxisInfo(e,\"x\",t,n);updateAxisInfo(e,\"y\",t,n);t.time=n}function calcInset(e,t){let n={x:0,y:0};let o=e;while(o&&o!==t)if(o instanceof HTMLElement){n.x+=o.offsetLeft;n.y+=o.offsetTop;o=o.offsetParent}else if(o instanceof SVGGraphicsElement&&\"getBBox\"in o){const{top:e,left:t}=o.getBBox();n.x+=t;n.y+=e;while(o&&\"svg\"!==o.tagName)o=o.parentNode}return n}const Y={Enter:[[0,1],[1,1]],Exit:[[0,0],[1,0]],Any:[[1,0],[0,1]],All:[[0,0],[1,1]]};const J={start:0,center:.5,end:1};function resolveEdge(e,t,n=0){let o=0;void 0!==J[e]&&(e=J[e]);if(g(e)){const t=parseFloat(e);e.endsWith(\"px\")?o=t:e.endsWith(\"%\")?e=t/100:e.endsWith(\"vw\")?o=t/100*document.documentElement.clientWidth:e.endsWith(\"vh\")?o=t/100*document.documentElement.clientHeight:e=t}r(e)&&(o=t*e);return n+o}const Q=[0,0];function resolveOffset(e,t,n,o){let i=Array.isArray(e)?e:Q;let s=0;let a=0;if(r(e))i=[e,e];else if(g(e)){e=e.trim();i=e.includes(\" \")?e.split(\" \"):[e,J[e]?e:\"0\"]}s=resolveEdge(i[0],n,o);a=resolveEdge(i[1],t);return s-a}const ee={x:0,y:0};function resolveOffsets(e,t,n){let{offset:o=Y.All}=n;const{target:i=e,axis:s=\"y\"}=n;const r=\"y\"===s?\"height\":\"width\";const a=i!==e?calcInset(i,e):ee;const c=i===e?{width:e.scrollWidth,height:e.scrollHeight}:{width:i.clientWidth,height:i.clientHeight};const l={width:e.clientWidth,height:e.clientHeight};t[s].offset.length=0;let f=!t[s].interpolate;const u=o.length;for(let e=0;e<u;e++){const n=resolveOffset(o[e],l[r],c[r],a[s]);f||n===t[s].interpolatorOffsets[e]||(f=true);t[s].offset[e]=n}if(f){t[s].interpolate=y(m(u),t[s].offset);t[s].interpolatorOffsets=[...t[s].offset]}t[s].progress=t[s].interpolate(t[s].current)}function measure(e,t=e,n){n.x.targetOffset=0;n.y.targetOffset=0;if(t!==e){let o=t;while(o&&o!=e){n.x.targetOffset+=o.offsetLeft;n.y.targetOffset+=o.offsetTop;o=o.offsetParent}}n.x.targetLength=t===e?t.scrollWidth:t.clientWidth;n.y.targetLength=t===e?t.scrollHeight:t.clientHeight;n.x.containerLength=e.clientWidth;n.y.containerLength=e.clientHeight}function createOnScrollHandler(e,t,n,o={}){const i=o.axis||\"y\";return{measure:()=>measure(e,o.target,n),update:t=>{updateScrollInfo(e,n,t);(o.offset||o.target)&&resolveOffsets(e,n,o)},notify:\"function\"===typeof t?()=>t(n):scrubAnimation(t,n[i])}}function scrubAnimation(e,n){e.pause();e.forEachNative(((e,{easing:n})=>{var o,i;if(e.updateDuration){n||(e.easing=t);e.updateDuration(1)}else{const t={duration:1e3};n||(t.easing=\"linear\");null===(i=null===(o=e.effect)||void 0===o?void 0:o.updateTiming)||void 0===i?void 0:i.call(o,t)}}));return()=>{e.currentTime=n.progress}}const te=new WeakMap;const ne=new WeakMap;const oe=new WeakMap;const getEventTarget=e=>e===document.documentElement?window:e;function scroll(e,t={}){var{container:n=document.documentElement}=t,o=b(t,[\"container\"]);let i=oe.get(n);if(!i){i=new Set;oe.set(n,i)}const s=createScrollInfo();const r=createOnScrollHandler(n,e,s,o);i.add(r);if(!te.has(n)){const listener=()=>{const e=performance.now();for(const e of i)e.measure();for(const t of i)t.update(e);for(const e of i)e.notify()};te.set(n,listener);const e=getEventTarget(n);window.addEventListener(\"resize\",listener,{passive:true});n!==document.documentElement&&ne.set(n,resize(n,listener));e.addEventListener(\"scroll\",listener,{passive:true})}const a=te.get(n);const c=requestAnimationFrame(a);return()=>{var t;\"function\"!==typeof e&&e.stop();cancelAnimationFrame(c);const o=oe.get(n);if(!o)return;o.delete(r);if(o.size)return;const i=te.get(n);te.delete(n);if(i){getEventTarget(n).removeEventListener(\"scroll\",i);null===(t=ne.get(n))||void 0===t?void 0:t();window.removeEventListener(\"resize\",i)}}}function hasChanged(e,t){return typeof e!==typeof t||(Array.isArray(e)&&Array.isArray(t)?!shallowCompare(e,t):e!==t)}function shallowCompare(e,t){const n=t.length;if(n!==e.length)return false;for(let o=0;o<n;o++)if(t[o]!==e[o])return false;return true}function isVariant(e){return\"object\"===typeof e}function resolveVariant(e,t){return isVariant(e)?e:e&&t?t[e]:void 0}let ie;function processScheduledAnimations(){if(!ie)return;const e=ie.sort(compareByDepth).map(fireAnimateUpdates);e.forEach(fireNext);e.forEach(fireNext);ie=void 0}function scheduleAnimation(e){if(ie)n(ie,e);else{ie=[e];requestAnimationFrame(processScheduledAnimations)}}function unscheduleAnimation(e){ie&&f(ie,e)}const compareByDepth=(e,t)=>e.getDepth()-t.getDepth();const fireAnimateUpdates=e=>e.animateUpdates();const fireNext=e=>e.next();const motionEvent=(e,t)=>new CustomEvent(e,{detail:{target:t}});function dispatchPointerEvent(e,t,n){e.dispatchEvent(new CustomEvent(t,{detail:{originalEvent:n}}))}function dispatchViewEvent(e,t,n){e.dispatchEvent(new CustomEvent(t,{detail:{originalEntry:n}}))}const se={isActive:e=>Boolean(e.inView),subscribe:(e,{enable:t,disable:n},{inViewOptions:o={}})=>{const{once:i}=o,s=b(o,[\"once\"]);return inView$1(e,(o=>{t();dispatchViewEvent(e,\"viewenter\",o);if(!i)return t=>{n();dispatchViewEvent(e,\"viewleave\",t)}}),s)}};const mouseEvent=(e,t,n)=>o=>{if(!o.pointerType||\"mouse\"===o.pointerType){n();dispatchPointerEvent(e,t,o)}};const re={isActive:e=>Boolean(e.hover),subscribe:(e,{enable:t,disable:n})=>{const o=mouseEvent(e,\"hoverstart\",t);const i=mouseEvent(e,\"hoverend\",n);e.addEventListener(\"pointerenter\",o);e.addEventListener(\"pointerleave\",i);return()=>{e.removeEventListener(\"pointerenter\",o);e.removeEventListener(\"pointerleave\",i)}}};const ae={isActive:e=>Boolean(e.press),subscribe:(e,{enable:t,disable:n})=>{const onPointerUp=t=>{n();dispatchPointerEvent(e,\"pressend\",t);window.removeEventListener(\"pointerup\",onPointerUp)};const onPointerDown=n=>{t();dispatchPointerEvent(e,\"pressstart\",n);window.addEventListener(\"pointerup\",onPointerUp)};e.addEventListener(\"pointerdown\",onPointerDown);return()=>{e.removeEventListener(\"pointerdown\",onPointerDown);window.removeEventListener(\"pointerup\",onPointerUp)}}};const ce={inView:se,hover:re,press:ae};const le=[\"initial\",\"animate\",...Object.keys(ce),\"exit\"];const fe=new WeakMap;function createMotionState(e={},t){let n;let o=t?t.getDepth()+1:0;const i={initial:true,animate:true};const s={};const r={};for(const n of le)r[n]=\"string\"===typeof e[n]?e[n]:null===t||void 0===t?void 0:t.getContext()[n];const a=false===e.initial?\"animate\":\"initial\";let c=resolveVariant(e[a]||r[a],e.variants)||{},f=b(c,[\"transition\"]);const u=Object.assign({},f);function*animateUpdates(){var t,o;const s=f;f={};const r={};for(const n of le){if(!i[n])continue;const s=resolveVariant(e[n]);if(s)for(const n in s)if(\"transition\"!==n){f[n]=s[n];r[n]=getOptions(null!==(o=null!==(t=s.transition)&&void 0!==t?t:e.transition)&&void 0!==o?o:{},n)}}const a=new Set([...Object.keys(f),...Object.keys(s)]);const c=[];a.forEach((e=>{var t;void 0===f[e]&&(f[e]=u[e]);if(hasChanged(s[e],f[e])){null!==(t=u[e])&&void 0!==t?t:u[e]=H.get(n,e);c.push(animateStyle(n,e,f[e],r[e]))}}));yield;const d=c.map((e=>e())).filter(Boolean);if(!d.length)return;const g=f;n.dispatchEvent(motionEvent(\"motionstart\",g));Promise.all(d.map((e=>e.finished))).then((()=>{n.dispatchEvent(motionEvent(\"motioncomplete\",g))})).catch(l)}const setGesture=(e,t)=>()=>{i[e]=t;scheduleAnimation(d)};const updateGestureSubscriptions=()=>{for(const t in ce){const o=ce[t].isActive(e);const i=s[t];if(o&&!i)s[t]=ce[t].subscribe(n,{enable:setGesture(t,true),disable:setGesture(t,false)},e);else if(!o&&i){i();delete s[t]}}};const d={update:t=>{if(n){e=t;updateGestureSubscriptions();scheduleAnimation(d)}},setActive:(e,t)=>{if(n){i[e]=t;scheduleAnimation(d)}},animateUpdates:animateUpdates,getDepth:()=>o,getTarget:()=>f,getOptions:()=>e,getContext:()=>r,mount:e=>{S(Boolean(e),\"Animation state must be mounted with valid Element\");n=e;fe.set(n,d);updateGestureSubscriptions();return()=>{fe.delete(n);unscheduleAnimation(d);for(const e in s)s[e]()}},isMounted:()=>Boolean(n)};return d}function createStyles(e){const t={};const n=[];for(let o in e){const i=e[o];if(isTransform(o)){T[o]&&(o=T[o]);n.push(o);o=asTransformCssVar(o)}let s=Array.isArray(i)?i[0]:i;const a=k.get(o);a&&(s=r(i)?a.toDefaultUnit(i):i);t[o]=s}n.length&&(t.transform=buildTransformTemplate(n));return t}const camelLetterToPipeLetter=e=>`-${e.toLowerCase()}`;const camelToPipeCase=e=>e.replace(/[A-Z]/g,camelLetterToPipeLetter);function createStyleString(e={}){const t=createStyles(e);let n=\"\";for(const e in t){n+=e.startsWith(\"--\")?e:camelToPipeCase(e);n+=`: ${t[e]}; `}return n}export{Y as ScrollOffset,animate,animateStyle,createMotionState,createStyleString,createStyles,getAnimationData,getStyleName,F as glide,inView$1 as inView,fe as mountedStates,resize,scroll,N as spring,stagger,H as style,timeline,withControls};\n\n//# sourceMappingURL=index.es.js.map","import e from\"react\";const n=e.createContext(!0);function r(){throw new Error(\"A function wrapped in useEffectEvent can't be called during rendering.\")}const t=\"use\"in e?()=>{try{return e.use(n)}catch{return!1}}:()=>!1;function c(n){const c=e.useRef(r);return e.useInsertionEffect((()=>{c.current=n}),[n]),(...e)=>{t()&&r();const n=c.current;return n(...e)}}export{c as useEffectEvent};\n//# sourceMappingURL=index.js.map\n","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{resize}from\"@motionone/dom\";import{ControlType,RenderTarget,addPropertyControls,withCSS}from\"framer\";import{LayoutGroup,animate,frame,mix,motion,useInView,useMotionValue,usePageInView,useTransform,wrap}from\"framer-motion\";import{Children,cloneElement,forwardRef,memo,startTransition,useCallback,useEffect,useLayoutEffect,useRef,useState}from\"react\";import{useEffectEvent}from\"use-effect-event\";const slideshowClassName=\"framer-slideshow\";const slideshowAxisXClassName=\"framer-slideshow-axis-x\";const slideshowAxisYClassName=\"framer-slideshow-axis-y\";const slideshowDirectionMultiplierVariable=\"--framer-dir-multiplier\";const slideshowDirectionMultiplier=`var(${slideshowDirectionMultiplierVariable}, -1)`;function SlideshowWithoutCSS(props){/**\n     * Properties\n     */const{slots=[],startFrom,direction,effectsOptions,autoPlayControl,dragControl,alignment,gap,padding,paddingPerSide,paddingTop,paddingRight,paddingBottom,paddingLeft,itemAmount:visibleItemsCount,fadeOptions,intervalControl,transitionControl,arrowOptions,borderRadius,progressOptions,style}=props;const{effectsOpacity,effectsScale,effectsRotate,effectsPerspective,effectsHover,playOffscreen}=effectsOptions;const{fadeContent,overflow,fadeWidth,fadeInset,fadeAlpha}=fadeOptions;const{showMouseControls,arrowSize,arrowRadius,arrowFill,leftArrow,rightArrow,arrowShouldSpace=true,arrowShouldFadeIn=false,arrowPosition,arrowPadding,arrowGap,arrowPaddingTop,arrowPaddingRight,arrowPaddingBottom,arrowPaddingLeft}=arrowOptions;const{showProgressDots,dotSize,dotsInset,dotsRadius,dotsPadding,dotsGap,dotsFill,dotsBackground,dotsActiveOpacity,dotsOpacity,dotsBlur}=progressOptions;const paddingValue=paddingPerSide?`${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px`:`${padding}px`;/**\n     * Checks\n     */const isCanvas=RenderTarget.current()===RenderTarget.canvas;// Remove empty slots (such as hidden layers)\nconst filteredSlots=slots.filter(Boolean);const totalItemsCount=Children.count(filteredSlots);const hasChildren=totalItemsCount>0;/**\n     * Empty state for Canvas\n     */if(!hasChildren){return /*#__PURE__*/_jsxs(\"section\",{style:placeholderStyles,children:[/*#__PURE__*/_jsx(\"div\",{style:emojiStyles,children:\"⭐️\"}),/*#__PURE__*/_jsx(\"p\",{style:titleStyles,children:\"Connect to Content\"}),/*#__PURE__*/_jsx(\"p\",{style:subtitleStyles,children:\"Add layers or components to make infinite auto-playing slideshows.\"})]});}/**\n     * Refs, State\n     */const scheduleMeasureIfEverythingReady=useCallback(()=>{if(parentRef.current&&firstChildRef.current&&lastChildRef.current){scheduleMeasure();}},[]);const parentRef=useRef(null);const parentRefFn=useCallback(node=>{parentRef.current=node;scheduleMeasureIfEverythingReady();},[scheduleMeasureIfEverythingReady]);const firstChildRef=useRef(null);const firstChildRefFn=useCallback(node=>{firstChildRef.current=node;scheduleMeasureIfEverythingReady();},[scheduleMeasureIfEverythingReady]);const lastChildRef=useRef(null);const lastChildRefFn=useCallback(node=>{lastChildRef.current=node;scheduleMeasureIfEverythingReady();},[scheduleMeasureIfEverythingReady]);const[size,setSize]=useState({parent:null,children:null,item:null,itemWidth:null,itemHeight:null,viewportLength:null});const isHorizontal=direction===\"left\"||direction===\"right\";const writingDirection=useWritingDirection();const rtlDirectionModifier=isHorizontal&&writingDirection===\"rtl\"?-1:1;/* For pausing on hover */const[isHovering,setIsHovering]=useState(false);const[shouldPlayOnHover,setShouldPlayOnHover]=useState(autoPlayControl);/* For cursor updates */const[isMouseDown,setIsMouseDown]=useState(false);/* For SSR / initial render */const isInitialized=size?.item!==null&&size?.parent!==null&&writingDirection!==null;/**\n     * Array for children\n     */// Normally, the user would provide like 10 slides (totalItemsCount == 10) and only show one at a\n// time (visibleItemsCount == 1). In these cases, extraCopyCount == 1, and we only render 3 extra\n// duplicates in the live mode or no duplicates at all in the SSR or on Canvas.\n// However, sometimes, the user might things like\n// - provide totalItemsCount = 5, visibleItemsCount = 3, startFrom = 4 → we need one more duplicate to continue the loop\n//   and render two more slides\n// - or: totalItemsCount = 2, visibleItemsCount = 10 → we need three more duplicates to fill the whole view of the slideshow\n// In these cases, we produce extra copies of the children.\nconst extraCopyCount=Math.ceil((startFrom+visibleItemsCount)/totalItemsCount);let dupedChildren=[];let duplicateBy=extraCopyCount*4;if(isCanvas||!isInitialized){duplicateBy=extraCopyCount;}/**\n     * Measure parent, child, items\n     *//* Calculate the new value to animate to */const[currentItem,setCurrentItem]=useState(startFrom+totalItemsCount);/* Animate whenever currentItem changes */useEffect(()=>{if(!size.item||!writingDirection)return;const computedNewPosition=-1*currentItem*((size.item??0)+gap)*(writingDirection===\"rtl\"?-1:1);if(xOrY.get()!==computedNewPosition){animate(xOrY,computedNewPosition,transitionControl);}},[currentItem,size.item,gap,writingDirection]);const measure=()=>{if(!parentRef.current||!firstChildRef.current||!lastChildRef.current)return;// Calling getWritingDirection() directly because this might be executed before useEffect() in useWritingDirection() runs.\nconst writingDirection=getWritingDirection();const isRTL=isHorizontal&&writingDirection===\"rtl\";const firstChild=isRTL?lastChildRef.current:firstChildRef.current;const lastChild=isRTL?firstChildRef.current:lastChildRef.current;const parentLength=isHorizontal?parentRef.current.offsetWidth:parentRef.current.offsetHeight;const start=firstChild?isHorizontal?firstChild.offsetLeft:firstChild.offsetTop:0;const end=lastChild?isHorizontal?lastChild.offsetLeft+lastChild.offsetWidth:lastChild.offsetTop+lastChild.offsetHeight:0;const childrenLength=end-start+gap;const itemSize=firstChild?isHorizontal?firstChild.offsetWidth:firstChild.offsetHeight:0;const itemWidth=firstChild?firstChild.offsetWidth:0;const itemHeight=firstChild?firstChild.offsetHeight:0;const viewportLength=isHorizontal?Math.max(document.documentElement.clientWidth||0,window.innerWidth||0,parentRef.current.offsetWidth):Math.max(document.documentElement.clientHeight||0,window.innerHeight||0,parentRef.current.offsetHeight);setSize({parent:parentLength,children:childrenLength,item:itemSize,itemWidth,itemHeight,viewportLength});};const scheduleMeasure=useEffectEvent(async()=>{frame.read(measure,false,true);});/* Re-measure when some layout-affecting props change */useLayoutEffect(()=>{scheduleMeasure();},[slots.length,visibleItemsCount,gap,direction,padding,paddingPerSide,paddingTop,paddingRight,paddingBottom,paddingLeft]);/** Re-measure when the parent is resized */useEffect(()=>{const node=parentRef.current;if(!node)return;return resize(node,({contentSize})=>{if(contentSize.width||contentSize.height){scheduleMeasure();}});},[]);/**\n     * Animation, pagination\n     */const childrenSize=isCanvas?0:size?.children;const[isDragging,setIsDragging]=useState(false);/* Check for browser window visibility *//* Otherwise, it will re-play all the item increments */const visibilityRef=useRef(null);const isInView=useInView(visibilityRef);const isVisible=usePageInView()&&isInView;/* The x and y values to start from */const xOrY=useMotionValue(childrenSize);/* Wrapped values for infinite looping *//* Instead of 0 to a negative full duplicated row, we start with an offset */const wrappedXOrY=!isCanvas?useTransform(xOrY,value=>{const resolvedChildrenSize=childrenSize??0;const resolvedValue=value??0;const wrapped=wrap(-resolvedChildrenSize*rtlDirectionModifier,-resolvedChildrenSize*rtlDirectionModifier*2,resolvedValue);return Number.isNaN(wrapped)?0:wrapped;}):0;/* Convert the current item to a wrapping index for dots */const wrappedIndex=wrap(0,totalItemsCount,currentItem);/**\n     * Page item methods\n     * Switching, deltas, autoplaying\n     *//* Page navigation functions */const setDelta=delta=>{startTransition(()=>setCurrentItem(item=>item+delta));};const setPage=index=>{const currentItemWrapped=wrap(0,totalItemsCount,currentItem);const goto=index-currentItemWrapped;startTransition(()=>setCurrentItem(item=>item+goto));};/* Autoplay: schedule one tick at a time whenever currentItem changes */const autoplayStep=(direction===\"right\"||direction===\"bottom\"?-1:1)*rtlDirectionModifier;const canAutoplay=autoPlayControl&&shouldPlayOnHover&&(playOffscreen||isVisible)&&!isCanvas&&totalItemsCount>1&&!isDragging&&isInitialized;useEffect(()=>{if(!canAutoplay)return;const timeoutId=setTimeout(()=>{setDelta(autoplayStep);},intervalControl*1e3);return()=>clearTimeout(timeoutId);},[canAutoplay,autoplayStep,intervalControl,currentItem]);/**\n     * Drag\n     */const handleDragStart=()=>{startTransition(()=>setIsDragging(true));};const handleDragEnd=(event,{offset,velocity})=>{startTransition(()=>setIsDragging(false));const offsetXorY=isHorizontal?offset.x:offset.y;const velocityThreshold=200// Based on testing, can be tweaked or could be 0\n;const velocityXorY=isHorizontal?velocity.x:velocity.y;const isHalfOfNext=offsetXorY<-size.item/2;const isHalfOfPrev=offsetXorY>size.item/2;/* In case you drag more than 1 item left or right */const normalizedOffset=Math.abs(offsetXorY);const itemDelta=Math.round(normalizedOffset/size.item);/* Minimum delta is 1 to initiate a page switch *//* For velocity use only */const itemDeltaFromOne=itemDelta===0?1:itemDelta;/* For quick flicks, even with low offsets */if(velocityXorY>velocityThreshold){setDelta(-itemDeltaFromOne*rtlDirectionModifier);}else if(velocityXorY<-velocityThreshold){setDelta(itemDeltaFromOne*rtlDirectionModifier);}else{/* For dragging over half of the current item with 0 velocity */if(isHalfOfNext){setDelta(itemDelta*rtlDirectionModifier);}if(isHalfOfPrev){setDelta(-itemDelta*rtlDirectionModifier);}}};// Static/canvas layout: translate by a deterministic CSS calc so the starting slide is visible\n// without relying on runtime measurements.\nconst staticStartFrom=Math.max(0,Math.min(startFrom??0,Math.max(0,totalItemsCount-1)));const staticPercentOffset=staticStartFrom*100/visibleItemsCount;const staticPixelOffset=staticStartFrom*gap/visibleItemsCount;/* Create copies of our children to create a perfect loop */let childCounter=0;/**\n     * Sizing\n     * */const columnOrRowValue=`calc(${100/visibleItemsCount}% - ${gap}px + ${gap/visibleItemsCount}px)`;/**\n     * Nested array to create duplicates of the children for infinite looping\n     * These are wrapped around, and start at a full \"page\" worth of offset\n     * as defined above.\n     */for(let index=0;index<duplicateBy;index++){dupedChildren=dupedChildren.concat(Children.map(filteredSlots,(child,childIndex)=>{let ref;if(index===0){if(childIndex===0){ref=firstChildRefFn;}else if(childIndex===filteredSlots.length-1){ref=lastChildRefFn;}}return /*#__PURE__*/_jsx(Slide,{ref:ref,slideKey:index+childIndex+\"lg\",index:index,width:isHorizontal?visibleItemsCount>1?columnOrRowValue:\"100%\":\"100%\",height:!isHorizontal?visibleItemsCount>1?columnOrRowValue:\"100%\":\"100%\",size:size,child:child,numChildren:filteredSlots?.length,wrappedXOrY:wrappedXOrY,childCounter:childCounter++,gap:gap,isCanvas:isCanvas,isInitialized:isInitialized,isHorizontal:isHorizontal,effectsOpacity:effectsOpacity,effectsScale:effectsScale,effectsRotate:effectsRotate,writingDirection:writingDirection,rtlDirectionModifier:rtlDirectionModifier,children:index+childIndex},index+childIndex+\"lg\");}));}/**\n     * Fades with masks\n     */const fadeDirection=isHorizontal?\"to right\":\"to bottom\";const fadeWidthStart=fadeWidth/2;const fadeWidthEnd=100-fadeWidth/2;const fadeInsetStart=clamp(fadeInset,0,fadeWidthStart);const fadeInsetEnd=100-fadeInset;const fadeMask=`linear-gradient(${fadeDirection}, rgba(0, 0, 0, ${fadeAlpha}) ${fadeInsetStart}%, rgba(0, 0, 0, 1) ${fadeWidthStart}%, rgba(0, 0, 0, 1) ${fadeWidthEnd}%, rgba(0, 0, 0, ${fadeAlpha}) ${fadeInsetEnd}%)`;/**\n     * Dots\n     */const dots=[];const dotsBlurStyle={};if(showProgressDots){for(let i=0;i<filteredSlots?.length;i++){dots.push(/*#__PURE__*/_jsx(Dot,{dotStyle:{...dotStyle,width:dotSize,height:dotSize,backgroundColor:dotsFill},buttonStyle:baseButtonStyles,selectedOpacity:dotsActiveOpacity,opacity:dotsOpacity,disabled:!isCanvas&&!isInitialized,onClick:()=>setPage(i),wrappedIndex:isCanvas||!isInitialized?staticStartFrom:wrappedIndex,total:totalItemsCount,index:i,gap:dotsGap,padding:dotsPadding,isHorizontal:isHorizontal},i));}if(dotsBlur>0){dotsBlurStyle.backdropFilter=dotsBlurStyle.WebkitBackdropFilter=`blur(${dotsBlur}px)`;}}const dragProps=isInitialized&&dragControl?{drag:isHorizontal?\"x\":\"y\",onDragStart:handleDragStart,onDragEnd:handleDragEnd,dragDirectionLock:true,values:{x:writingDirection===\"rtl\"?-xOrY:xOrY,y:xOrY},dragMomentum:false}:{};const arrowHasTop=arrowPosition===\"top-left\"||arrowPosition===\"top-mid\"||arrowPosition===\"top-right\";const arrowHasBottom=arrowPosition===\"bottom-left\"||arrowPosition===\"bottom-mid\"||arrowPosition===\"bottom-right\";const arrowHasLeft=arrowPosition===\"top-left\"||arrowPosition===\"bottom-left\";const arrowHasRight=arrowPosition===\"top-right\"||arrowPosition===\"bottom-right\";const arrowHasMid=arrowPosition===\"top-mid\"||arrowPosition===\"bottom-mid\"||arrowPosition===\"auto\";const leftArrowSrc=leftArrow||\"https://framerusercontent.com/images/6tTbkXggWgQCAJ4DO2QEdXXmgM.svg?arrow=left\";const rightArrowSrc=rightArrow||\"https://framerusercontent.com/images/11KSGbIZoRSg4pjdnUoif6MKHI.svg?arrow=right\";return /*#__PURE__*/_jsxs(\"section\",{className:`${slideshowClassName} ${isHorizontal?slideshowAxisXClassName:slideshowAxisYClassName}`,style:{...containerStyle,padding:paddingValue,WebkitMaskImage:fadeContent?fadeMask:undefined,maskImage:fadeContent?fadeMask:undefined,userSelect:\"none\"},onMouseEnter:()=>{setIsHovering(true);if(!effectsHover)setShouldPlayOnHover(false);},onMouseLeave:()=>{setIsHovering(false);if(!effectsHover)setShouldPlayOnHover(true);},onMouseDown:event=>{// Preventdefault fixes the cursor switching to text on drag on safari\nevent.preventDefault();startTransition(()=>setIsMouseDown(true));},onMouseUp:()=>startTransition(()=>setIsMouseDown(false)),ref:visibilityRef,children:[/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",margin:0,padding:\"inherit\",position:\"absolute\",inset:0,overflow:overflow?\"visible\":\"hidden\",borderRadius:borderRadius,userSelect:\"none\",perspective:isCanvas?\"none\":effectsPerspective},children:/*#__PURE__*/_jsx(motion.ul,{ref:parentRefFn,...dragProps,style:{...containerStyle,gap:gap,placeItems:alignment,...isCanvas||!isInitialized?{transform:isHorizontal?`translateX(calc(${slideshowDirectionMultiplier} * (${staticPercentOffset}% + ${staticPixelOffset}px)))`:`translateY(calc(${slideshowDirectionMultiplier} * (${staticPercentOffset}% + ${staticPixelOffset}px)))`}:{x:isHorizontal?wrappedXOrY:0,y:!isHorizontal?wrappedXOrY:0},flexDirection:isHorizontal?\"row\":\"column\",transformStyle:effectsRotate!==0&&!isCanvas?\"preserve-3d\":undefined,cursor:(isCanvas||isInitialized)&&dragControl?isMouseDown?\"grabbing\":\"grab\":\"auto\",userSelect:\"none\",...style},children:dupedChildren})}),/*#__PURE__*/_jsxs(\"fieldset\",{style:{...controlsStyles},\"aria-label\":\"Slideshow pagination controls\",className:\"framer--slideshow-controls\",children:[/*#__PURE__*/_jsxs(motion.div,{style:{position:\"absolute\",display:\"flex\",flexDirection:isHorizontal?\"row\":\"column\",justifyContent:arrowShouldSpace?\"space-between\":\"center\",gap:arrowShouldSpace?\"unset\":arrowGap,opacity:arrowShouldFadeIn||!isCanvas&&!isInitialized?0:1,alignItems:\"center\",inset:arrowPadding,top:arrowShouldSpace?arrowPadding:arrowHasTop?arrowPaddingTop:\"unset\",left:arrowShouldSpace?arrowPadding:arrowHasLeft?arrowPaddingLeft:arrowHasMid?0:\"unset\",right:arrowShouldSpace?arrowPadding:arrowHasRight?arrowPaddingRight:arrowHasMid?0:\"unset\",bottom:arrowShouldSpace?arrowPadding:arrowHasBottom?arrowPaddingBottom:\"unset\"},animate:isCanvas||isInitialized?arrowShouldFadeIn?{opacity:isHovering?1:0}:{opacity:1}:{opacity:0},transition:transitionControl,children:[/*#__PURE__*/_jsx(motion.button,{type:\"button\",style:{...baseButtonStyles,backgroundColor:arrowFill,width:arrowSize,height:arrowSize,borderRadius:arrowRadius,rotate:!isHorizontal?90:0,display:showMouseControls?\"block\":\"none\",pointerEvents:isCanvas||isInitialized?\"auto\":\"none\",cursor:isCanvas||isInitialized?\"pointer\":\"default\"},disabled:!(isCanvas||isInitialized),onClick:()=>setDelta(-1),\"aria-label\":\"Previous\",whileTap:{scale:.9},transition:{duration:.15},children:/*#__PURE__*/_jsx(\"img\",{decoding:\"async\",width:arrowSize,height:arrowSize,src:isHorizontal&&writingDirection===\"rtl\"?rightArrowSrc:leftArrowSrc,alt:\"Back Arrow\"})}),/*#__PURE__*/_jsx(motion.button,{type:\"button\",style:{...baseButtonStyles,backgroundColor:arrowFill,width:arrowSize,height:arrowSize,borderRadius:arrowRadius,rotate:!isHorizontal?90:0,display:showMouseControls?\"block\":\"none\",pointerEvents:isCanvas||isInitialized?\"auto\":\"none\",cursor:isCanvas||isInitialized?\"pointer\":\"default\"},disabled:!(isCanvas||isInitialized),onClick:()=>setDelta(1),\"aria-label\":\"Next\",whileTap:{scale:.9},transition:{duration:.15},children:/*#__PURE__*/_jsx(\"img\",{decoding:\"async\",width:arrowSize,height:arrowSize,src:isHorizontal&&writingDirection===\"rtl\"?leftArrowSrc:rightArrowSrc,alt:\"Next Arrow\"})})]}),dots.length>1?/*#__PURE__*/_jsx(motion.div,{style:{...dotsContainerStyle,left:isHorizontal?\"50%\":dotsInset,top:!isHorizontal?\"50%\":\"unset\",transform:isHorizontal?\"translateX(-50%)\":\"translateY(-50%)\",flexDirection:isHorizontal?\"row\":\"column\",bottom:isHorizontal?dotsInset:\"unset\",borderRadius:dotsRadius,backgroundColor:dotsBackground,userSelect:\"none\",...dotsBlurStyle,// Hard-code opacity to 1 on canvas. In SSR, it will be animated from 0 to 1 in `animate`\nopacity:isCanvas?1:0,pointerEvents:isCanvas||isInitialized?\"auto\":\"none\"},animate:{opacity:isInitialized?1:0},transition:{duration:.35,ease:\"easeOut\"},children:dots}):null]})]});}const Slideshow=withCSS(SlideshowWithoutCSS,[`.${slideshowAxisXClassName} { ${slideshowDirectionMultiplierVariable}: -1; }`,`html[dir=\"rtl\"] .${slideshowAxisXClassName} { ${slideshowDirectionMultiplierVariable}: 1; }`,`.${slideshowAxisYClassName} { ${slideshowDirectionMultiplierVariable}: -1; }`],\"framer-slideshow-component\");/**\n * SLIDESHOW\n * V2.5 (with SSR)\n * By Benjamin, Matt, and Ivan\n *\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 200\n *\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default Slideshow;/* Default Properties */Slideshow.defaultProps={direction:\"left\",dragControl:false,startFrom:0,itemAmount:1,infinity:true,gap:10,padding:10,autoPlayControl:true,effectsOptions:{effectsOpacity:1,effectsScale:1,effectsRotate:0,effectsPerspective:1200,effectsHover:true,playOffscreen:false},transitionControl:{type:\"spring\",stiffness:200,damping:40},fadeOptions:{fadeContent:false,overflow:false,fadeWidth:25,fadeAlpha:0,fadeInset:0},arrowOptions:{showMouseControls:true,arrowShouldFadeIn:false,arrowShouldSpace:true,arrowFill:\"rgba(0,0,0,0.2)\",arrowSize:40},progressOptions:{showProgressDots:true}};/* Property Controls */addPropertyControls(Slideshow,{slots:{type:ControlType.Array,title:\"Content\",control:{type:ControlType.ComponentInstance}},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"left\",\"right\",\"top\",\"bottom\"],optionIcons:[\"direction-left\",\"direction-right\",\"direction-up\",\"direction-down\"],optionTitles:[\"Left\",\"Right\",\"Top\",\"Bottom\"],displaySegmentedControl:true,defaultValue:Slideshow.defaultProps.direction},autoPlayControl:{type:ControlType.Boolean,title:\"Auto Play\",defaultValue:true},intervalControl:{type:ControlType.Number,title:\"Interval\",defaultValue:1.5,min:.5,max:10,step:.1,displayStepper:true,unit:\"s\",hidden:props=>!props.autoPlayControl},dragControl:{type:ControlType.Boolean,title:\"Draggable\",defaultValue:false},startFrom:{type:ControlType.Number,title:\"Current\",min:0,max:10,displayStepper:true,defaultValue:Slideshow.defaultProps.startFrom},effectsOptions:{type:ControlType.Object,title:\"Effects\",controls:{effectsOpacity:{type:ControlType.Number,title:\"Opacity\",defaultValue:Slideshow.defaultProps.effectsOptions.effectsOpacity,min:0,max:1,step:.01,displayStepper:true},effectsScale:{type:ControlType.Number,title:\"Scale\",defaultValue:Slideshow.defaultProps.effectsOptions.effectsScale,min:0,max:1,step:.01,displayStepper:true},effectsPerspective:{type:ControlType.Number,title:\"Perspective\",defaultValue:Slideshow.defaultProps.effectsOptions.effectsPerspective,min:200,max:2e3,step:1},effectsRotate:{type:ControlType.Number,title:\"Rotate\",defaultValue:Slideshow.defaultProps.effectsOptions.effectsRotate,min:-180,max:180,step:1},effectsHover:{type:ControlType.Boolean,title:\"On Hover\",enabledTitle:\"Play\",disabledTitle:\"Pause\",defaultValue:Slideshow.defaultProps.effectsOptions.effectsHover},playOffscreen:{type:ControlType.Boolean,title:\"Offscreen\",enabledTitle:\"Play\",disabledTitle:\"Pause\",defaultValue:Slideshow.defaultProps.effectsOptions.playOffscreen}}},alignment:{type:ControlType.Enum,title:\"Align\",options:[\"flex-start\",\"center\",\"flex-end\"],optionIcons:{direction:{right:[\"align-top\",\"align-middle\",\"align-bottom\"],left:[\"align-top\",\"align-middle\",\"align-bottom\"],top:[\"align-left\",\"align-center\",\"align-right\"],bottom:[\"align-left\",\"align-center\",\"align-right\"]}},defaultValue:\"center\",displaySegmentedControl:true},itemAmount:{type:ControlType.Number,title:\"Items\",min:1,max:10,displayStepper:true,defaultValue:Slideshow.defaultProps.itemAmount},gap:{type:ControlType.Number,title:\"Gap\",min:0},padding:{title:\"Padding\",type:ControlType.FusedNumber,toggleKey:\"paddingPerSide\",toggleTitles:[\"Padding\",\"Padding per side\"],defaultValue:0,valueKeys:[\"paddingTop\",\"paddingRight\",\"paddingBottom\",\"paddingLeft\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0},borderRadius:{type:ControlType.Number,title:\"Radius\",min:0,max:500,displayStepper:true,defaultValue:0},transitionControl:{type:ControlType.Transition,defaultValue:Slideshow.defaultProps.transitionControl,title:\"Transition\"},fadeOptions:{type:ControlType.Object,title:\"Clipping\",controls:{fadeContent:{type:ControlType.Boolean,title:\"Fade\",defaultValue:false},overflow:{type:ControlType.Boolean,title:\"Overflow\",enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:false,hidden(props){return props.fadeContent===true;}},fadeWidth:{type:ControlType.Number,title:\"Width\",defaultValue:25,min:0,max:100,unit:\"%\",hidden(props){return props.fadeContent===false;}},fadeInset:{type:ControlType.Number,title:\"Inset\",defaultValue:0,min:0,max:100,unit:\"%\",hidden(props){return props.fadeContent===false;}},fadeAlpha:{type:ControlType.Number,title:\"Opacity\",defaultValue:0,min:0,max:1,step:.05,hidden(props){return props.fadeContent===false;}}}},arrowOptions:{type:ControlType.Object,title:\"Arrows\",controls:{showMouseControls:{type:ControlType.Boolean,title:\"Show\",defaultValue:Slideshow.defaultProps.arrowOptions.showMouseControls},arrowFill:{type:ControlType.Color,title:\"Fill\",hidden:props=>!props.showMouseControls,defaultValue:Slideshow.defaultProps.arrowOptions.arrowFill},leftArrow:{type:ControlType.Image,title:\"Previous\",hidden:props=>!props.showMouseControls},rightArrow:{type:ControlType.Image,title:\"Next\",hidden:props=>!props.showMouseControls},arrowSize:{type:ControlType.Number,title:\"Size\",min:0,max:200,displayStepper:true,defaultValue:Slideshow.defaultProps.arrowOptions.arrowSize,hidden:props=>!props.showMouseControls},arrowRadius:{type:ControlType.Number,title:\"Radius\",min:0,max:500,defaultValue:40,hidden:props=>!props.showMouseControls},arrowShouldFadeIn:{type:ControlType.Boolean,title:\"Fade In\",defaultValue:false,hidden:props=>!props.showMouseControls},arrowShouldSpace:{type:ControlType.Boolean,title:\"Distance\",enabledTitle:\"Space\",disabledTitle:\"Group\",defaultValue:Slideshow.defaultProps.arrowOptions.arrowShouldSpace,hidden:props=>!props.showMouseControls},arrowPosition:{type:ControlType.Enum,title:\"Position\",options:[\"auto\",\"top-left\",\"top-mid\",\"top-right\",\"bottom-left\",\"bottom-mid\",\"bottom-right\"],optionTitles:[\"Center\",\"Top Left\",\"Top Middle\",\"Top Right\",\"Bottom Left\",\"Bottom Middle\",\"Bottom Right\"],hidden:props=>!props.showMouseControls||props.arrowShouldSpace},arrowPadding:{type:ControlType.Number,title:\"Inset\",min:-100,max:100,defaultValue:20,displayStepper:true,hidden:props=>!props.showMouseControls||!props.arrowShouldSpace},arrowPaddingTop:{type:ControlType.Number,title:\"Top\",min:-500,max:500,defaultValue:0,displayStepper:true,hidden:props=>!props.showMouseControls||props.arrowShouldSpace||props.arrowPosition===\"auto\"||props.arrowPosition===\"bottom-mid\"||props.arrowPosition===\"bottom-left\"||props.arrowPosition===\"bottom-right\"},arrowPaddingBottom:{type:ControlType.Number,title:\"Bottom\",min:-500,max:500,defaultValue:0,displayStepper:true,hidden:props=>!props.showMouseControls||props.arrowShouldSpace||props.arrowPosition===\"auto\"||props.arrowPosition===\"top-mid\"||props.arrowPosition===\"top-left\"||props.arrowPosition===\"top-right\"},arrowPaddingRight:{type:ControlType.Number,title:\"Right\",min:-500,max:500,defaultValue:0,displayStepper:true,hidden:props=>!props.showMouseControls||props.arrowShouldSpace||props.arrowPosition===\"auto\"||props.arrowPosition===\"top-left\"||props.arrowPosition===\"top-mid\"||props.arrowPosition===\"bottom-left\"||props.arrowPosition===\"bottom-mid\"},arrowPaddingLeft:{type:ControlType.Number,title:\"Left\",min:-500,max:500,defaultValue:0,displayStepper:true,hidden:props=>!props.showMouseControls||props.arrowShouldSpace||props.arrowPosition===\"auto\"||props.arrowPosition===\"top-right\"||props.arrowPosition===\"top-mid\"||props.arrowPosition===\"bottom-right\"||props.arrowPosition===\"bottom-mid\"},arrowGap:{type:ControlType.Number,title:\"Gap\",min:0,max:100,defaultValue:10,displayStepper:true,hidden:props=>!props.showMouseControls||props.arrowShouldSpace}}},progressOptions:{type:ControlType.Object,title:\"Dots\",controls:{showProgressDots:{type:ControlType.Boolean,title:\"Show\",defaultValue:false},dotSize:{type:ControlType.Number,title:\"Size\",min:1,max:100,defaultValue:10,displayStepper:true,hidden:props=>!props.showProgressDots||props.showScrollbar},dotsInset:{type:ControlType.Number,title:\"Inset\",min:-100,max:100,defaultValue:10,displayStepper:true,hidden:props=>!props.showProgressDots||props.showScrollbar},dotsGap:{type:ControlType.Number,title:\"Gap\",min:0,max:100,defaultValue:10,displayStepper:true,hidden:props=>!props.showProgressDots||props.showScrollbar},dotsPadding:{type:ControlType.Number,title:\"Padding\",min:0,max:100,defaultValue:10,displayStepper:true,hidden:props=>!props.showProgressDots||props.showScrollbar},dotsFill:{type:ControlType.Color,title:\"Fill\",defaultValue:\"#fff\",hidden:props=>!props.showProgressDots||props.showScrollbar},dotsBackground:{type:ControlType.Color,title:\"Backdrop\",defaultValue:\"rgba(0,0,0,0.2)\",hidden:props=>!props.showProgressDots||props.showScrollbar},dotsRadius:{type:ControlType.Number,title:\"Radius\",min:0,max:200,defaultValue:50,hidden:props=>!props.showProgressDots||props.showScrollbar},dotsOpacity:{type:ControlType.Number,title:\"Opacity\",min:0,max:1,defaultValue:.5,step:.1,displayStepper:true,hidden:props=>!props.showProgressDots||props.showScrollbar},dotsActiveOpacity:{type:ControlType.Number,title:\"Current\",min:0,max:1,defaultValue:1,step:.1,displayStepper:true,hidden:props=>!props.showProgressDots||props.showScrollbar},dotsBlur:{type:ControlType.Number,title:\"Blur\",min:0,max:50,defaultValue:0,step:1,hidden:props=>!props.showProgressDots||props.showScrollbar}}}});/* Placeholder Styles */const containerStyle={display:\"flex\",flexDirection:\"row\",width:\"100%\",height:\"100%\",maxWidth:\"100%\",maxHeight:\"100%\",placeItems:\"center\",margin:0,padding:0,listStyleType:\"none\",textIndent:\"none\"};/* Component Styles */const placeholderStyles={display:\"flex\",width:\"100%\",height:\"100%\",placeContent:\"center\",placeItems:\"center\",flexDirection:\"column\",color:\"#96F\",background:\"rgba(136, 85, 255, 0.1)\",fontSize:11,overflow:\"hidden\",padding:\"20px 20px 30px 20px\"};const emojiStyles={fontSize:32,marginBottom:10};const titleStyles={margin:0,marginBottom:10,fontWeight:600,textAlign:\"center\"};const subtitleStyles={margin:0,opacity:.7,maxWidth:180,lineHeight:1.5,textAlign:\"center\"};/* Control Styles */const baseButtonStyles={border:\"none\",display:\"flex\",placeContent:\"center\",placeItems:\"center\",overflow:\"hidden\",background:\"transparent\",cursor:\"pointer\",margin:0,padding:0};const controlsStyles={display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\",position:\"absolute\",pointerEvents:\"none\",userSelect:\"none\",top:0,left:0,right:0,bottom:0,border:0,padding:0,margin:0};/* Clamp function, used for fadeInset */const clamp=(num,min,max)=>Math.min(Math.max(num,min),max);/* Slide Component */const Slide=/*#__PURE__*/memo(/*#__PURE__*/forwardRef(function Component(props,ref){const{slideKey,width,height,child,size,gap,wrappedXOrY,numChildren,childCounter,isCanvas,isInitialized,effects,effectsOpacity,effectsScale,effectsRotate,isHorizontal,isLast,index,/** \"ltr\" or \"rtl\" */writingDirection,/** -1 in RTL, 1 in LTR */rtlDirectionModifier}=props;const fallbackRef=useRef();const itemSize=size?.item??0;const parentSize=size?.parent??0;/**\n         * Unique offsets + scroll range [0, 1, 1, 0]\n         */const childOffset=(itemSize+gap)*childCounter;const scrollRange=// @ivan: this was picked experimentally when fixing semi-working-but-broken RTL\n// implementation in the existing Carousel code. Don’t ask me why these specific values, I’m\n// finding it hard to fully reason about RTL in carousel :/\n(isHorizontal&&writingDirection===\"rtl\"?[itemSize-gap,0,-parentSize+itemSize-gap,-parentSize-gap]:[-itemSize,0,parentSize-itemSize+gap,parentSize]).map(val=>val-childOffset*rtlDirectionModifier);/**\n         * Effects\n         */const rotateY=!isCanvas&&useTransform(wrappedXOrY,scrollRange,// Why flip the rotateY effect when RTL is enabled?\n//\n// Unlike other effects, rotation is vertically symmetrical. Say the user sets a 60 degree rotation.\n// The carousel will look like this:\n//   ) □ ▣ ▤ (\n// where\n// - □ ▣ ▤ are the three slides visible within the carousel,\n// - ) is an out-of-view slide to the left of the viewport,\n// - and ( is an out-of-view slide to the right of the viewport.\n// With 60° rotation, both out-of-view slides look “turned towards” the viewport,\n// which matters for the animation when the slides switch.\n//\n// If a user sets RTL, all items in the carousel will flip around. The carousel, by default, will now look like this:\n//   ( ▤ ▣ □ )\n// Notice how all slides reversed. The slide that was to the left of the viewport: ) – is now to the right of it!\n// And is now turned away from the viewport! So if we don’t flip the rotateY effect, the animation will look off.\nisHorizontal&&writingDirection===\"rtl\"?[effectsRotate,0,0,-effectsRotate]:[-effectsRotate,0,0,effectsRotate]);const rotateX=!isCanvas&&useTransform(wrappedXOrY,scrollRange,[effectsRotate,0,0,-effectsRotate]);const opacity=!isCanvas&&useTransform(wrappedXOrY,scrollRange,[effectsOpacity,1,1,effectsOpacity]);const scale=!isCanvas&&useTransform(wrappedXOrY,scrollRange,[effectsScale,1,1,effectsScale]);const originXorY=!isCanvas&&useTransform(wrappedXOrY,scrollRange,// Just like above, because in RTL, the items are flipped vertically, RTL needs a separate treatment\nisHorizontal&&writingDirection===\"rtl\"?[0,0,1,1]:[1,1,0,0]);const isVisible=!isCanvas&&useTransform(wrappedXOrY,latest=>{// Min and max swap in LTR vs RTL\nconst min=Math.min(scrollRange[1],scrollRange[2]);const max=Math.max(scrollRange[1],scrollRange[2]);return latest>=min&&latest<=max;});useEffect(()=>{if(!isVisible||!isInitialized)return;function manageVisibility(visible){const node=ref?.current??fallbackRef.current;if(!node)return;// for a11y: Manage tabIndex on focusable descendants & aria-hidden on the parent.\nif(visible){node.querySelectorAll(\"button,a\").forEach(el=>{const orig=el.dataset.origTabIndex;if(orig)el.tabIndex=orig;else el.removeAttribute(\"tabIndex\");});}else{node.querySelectorAll(\"button,a\").forEach(el=>{const orig=el.getAttribute(\"tabIndex\");if(orig)el.dataset.origTabIndex=orig;el.tabIndex=-1;});}node.setAttribute(\"aria-hidden\",!visible);}manageVisibility(isVisible);return isVisible.on(\"change\",visible=>{manageVisibility(visible);});},[isInitialized]);const visibility=isCanvas?\"visible\":useTransform(wrappedXOrY,[scrollRange[0]-size.viewportLength*rtlDirectionModifier,mix(scrollRange[1],scrollRange[2],.5),scrollRange[3]+size.viewportLength*rtlDirectionModifier],[\"hidden\",\"visible\",\"hidden\"]);const key=slideKey+\"child\";return /*#__PURE__*/_jsx(LayoutGroup,{inherit:\"id\",id:key,children:/*#__PURE__*/_jsx(\"li\",{style:{display:\"contents\"},children:/*#__PURE__*/cloneElement(child,{ref:ref??fallbackRef,key,style:{...child.props?.style,flexShrink:0,userSelect:\"none\",width,height,...isInitialized?{opacity,scale,originX:isHorizontal?originXorY:.5,originY:!isHorizontal?originXorY:.5,rotateY:isHorizontal?rotateY:0,rotateX:!isHorizontal?rotateX:0,visibility}:{}},layoutId:child.props.layoutId?child.props.layoutId+\"-original-\"+index:undefined})})});}));const Dot=/*#__PURE__*/memo(function Dot({selectedOpacity,opacity,total,index,wrappedIndex,dotStyle,buttonStyle,gap,padding,isHorizontal,...props}){/* Check active item *//* Go 0—1—2—3—4—5—0 */const isSelected=wrappedIndex===index;const inlinePadding=gap/2;const top=!isHorizontal&&index!==0?inlinePadding:padding;const bottom=!isHorizontal&&index!==total-1?inlinePadding:padding;// Use logical inline padding so RTL/LTR spacing is correct even if this subtree\n// is rendered under a different `direction` than `documentElement.dir`.\nconst inlineStart=isHorizontal?index===0?padding:inlinePadding:padding;const inlineEnd=isHorizontal?index===total-1?padding:inlinePadding:padding;return /*#__PURE__*/_jsx(\"button\",{\"aria-label\":`Scroll to page ${index+1}`,type:\"button\",...props,style:{...buttonStyle,paddingTop:top,paddingBottom:bottom,paddingInlineStart:inlineStart,paddingInlineEnd:inlineEnd},children:/*#__PURE__*/_jsx(motion.div,{style:{...dotStyle},initial:false,animate:{opacity:isSelected?selectedOpacity:opacity},transition:{duration:.3}})});});/* Dot Styles */const dotsContainerStyle={display:\"flex\",placeContent:\"center\",placeItems:\"center\",overflow:\"hidden\",position:\"absolute\",pointerEvents:\"auto\"};const dotStyle={borderRadius:\"50%\",background:\"white\",cursor:\"pointer\",border:\"none\",placeContent:\"center\",placeItems:\"center\",padding:0};function getWritingDirection(){return window?.document?.documentElement?.dir===\"rtl\"?\"rtl\":\"ltr\";}function useWritingDirection(){const[writingDirection,setWritingDirection]=useState(null);// must be done this way to ensure that there isn't a mismatch with SSG\n// which leads to button images not updating for the real writing direction\nuseEffect(()=>{setWritingDirection(getWritingDirection());// Listen for changes to the writing direction. While uncommon on live sites, this can easily happen\n// on the canvas when switching between locales on the same page.\nreturn onWritingDirectionChange(()=>{setWritingDirection(getWritingDirection());});},[]);return writingDirection;}let observer=null;const callbacks=[];function onWritingDirectionChange(callback){callbacks.push(callback);if(!observer){// A single MutationObserver watching a single attribute on a single element should be reasonably fast:\n// https://news.ycombinator.com/item?id=15274833 (note: Paul Irish)\n// https://stackoverflow.com/a/39332340\nobserver=new MutationObserver(()=>callbacks.forEach(callback=>callback()));observer.observe(document.documentElement,{attributeFilter:[\"dir\"]});}// Return a function to unsubscribe from the callback\nreturn()=>{callbacks.splice(callbacks.indexOf(callback),1);if(callbacks.length===0){observer?.disconnect();observer=null;}};}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Slideshow\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"400\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerDisableUnlink\":\"*\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"200\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SlideShow.map","// Generated by Framer (4076eae)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getLoadingLazyAtYPosition,Image,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";const serializationHash=\"framer-5piAC\";const variantClassNames={PC7Wyycv2:\"framer-v-hwjs7a\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const toResponsiveImage=value=>{if(typeof value===\"object\"&&value!==null&&typeof value.src===\"string\"){return value;}return typeof value===\"string\"?{src:value}:undefined;};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const getProps=({height,id,image,text,width,...props})=>{return{...props,HXN6Zu5nO:text??props.HXN6Zu5nO??\"투톤과 자수 로고가 포인트인 탱크 탑\",sC_7XbcVo:image??props.sC_7XbcVo??{pixelHeight:1346,pixelWidth:1500,src:\"https://framerusercontent.com/images/OtH6rFeYBbJOO5ZvnXs6VIgTomE.png?scale-down-to=512&width=1500&height=1346\",srcSet:\"https://framerusercontent.com/images/OtH6rFeYBbJOO5ZvnXs6VIgTomE.png?scale-down-to=512&width=1500&height=1346 512w,https://framerusercontent.com/images/OtH6rFeYBbJOO5ZvnXs6VIgTomE.png?scale-down-to=1024&width=1500&height=1346 1024w,https://framerusercontent.com/images/OtH6rFeYBbJOO5ZvnXs6VIgTomE.png?width=1500&height=1346 1500w\"}};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,sC_7XbcVo,HXN6Zu5nO,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"PC7Wyycv2\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-hwjs7a\",className,classNames),\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"PC7Wyycv2\",ref:refBinding,style:{...style},children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-8etl3i\",layoutDependency:layoutDependency,layoutId:\"zoct21YYf\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgTWVkaXVt\",\"--framer-font-family\":'\"Pretendard Medium\", sans-serif',\"--framer-line-height\":\"1em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-1ab9a1e1-4daa-44f7-96e5-0a1282f4c7a0, rgb(0, 0, 0)))\"},children:\"투톤과 자수 로고가 포인트인 탱크 탑\"})}),className:\"framer-ocskuc\",\"data-framer-name\":\"Name\",fonts:[\"CUSTOM;Pretendard Medium\"],layoutDependency:layoutDependency,layoutId:\"gTi5xKb6A\",style:{\"--extracted-r6o4lv\":\"var(--token-1ab9a1e1-4daa-44f7-96e5-0a1282f4c7a0, rgb(0, 0, 0))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:HXN6Zu5nO,verticalAlignment:\"center\",withExternalLayout:true})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-1xjxsza\",\"data-framer-name\":\"Img\",layoutDependency:layoutDependency,layoutId:\"ERXtYC7eP\",children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-j821vm\",layoutDependency:layoutDependency,layoutId:\"YmnStb_5Q\",children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-16cota\",\"data-framer-name\":\"Img\",layoutDependency:layoutDependency,layoutId:\"bHkiLWJAF\",children:/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fit\",loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+32+(((componentViewport?.height||200)-62-566)/2+80+32)+0+0+0+0+0),pixelHeight:4364,pixelWidth:2768,sizes:componentViewport?.width||\"100vw\",...toResponsiveImage(sC_7XbcVo),...{positionX:\"center\",positionY:\"center\"}},className:\"framer-1ocgysj\",layoutDependency:layoutDependency,layoutId:\"c7HUXFVSI\"})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-10rlwnr\",layoutDependency:layoutDependency,layoutId:\"bpEFlwP45\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgTWVkaXVt\",\"--framer-font-family\":'\"Pretendard Medium\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-1c002536-1128-4670-90cc-c49f54353e26, rgb(196, 196, 196)))\"},children:\"텍스트를 클릭해 디테일을 확인해 보세요.\"})}),className:\"framer-1opvt6g\",\"data-framer-name\":\"Name\",fonts:[\"CUSTOM;Pretendard Medium\"],layoutDependency:layoutDependency,layoutId:\"BW11vAfof\",style:{\"--extracted-r6o4lv\":\"var(--token-1c002536-1128-4670-90cc-c49f54353e26, rgb(196, 196, 196))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"center\",withExternalLayout:true})})]})})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-5piAC.framer-1tqlbz9, .framer-5piAC .framer-1tqlbz9 { display: block; }\",\".framer-5piAC.framer-hwjs7a { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 32px; height: min-content; justify-content: center; overflow: visible; padding: 32px 0px 30px 0px; position: relative; width: 350px; }\",\".framer-5piAC .framer-8etl3i { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-start; overflow: hidden; padding: 0px; position: relative; width: 100%; }\",\".framer-5piAC .framer-ocskuc, .framer-5piAC .framer-1opvt6g { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; z-index: 1; }\",\".framer-5piAC .framer-1xjxsza, .framer-5piAC .framer-j821vm { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-5piAC .framer-16cota { align-content: center; align-items: center; aspect-ratio: 1.1142857142857143 / 1; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: var(--framer-aspect-ratio-supported, 179px); justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-5piAC .framer-1ocgysj { aspect-ratio: 1.1142857142857143 / 1; flex: none; height: var(--framer-aspect-ratio-supported, 179px); overflow: visible; position: relative; width: 100%; }\",\".framer-5piAC .framer-10rlwnr { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 20px 0px 0px 0px; position: relative; width: 100%; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 461\n * @framerIntrinsicWidth 350\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"sC_7XbcVo\":\"image\",\"HXN6Zu5nO\":\"text\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerCVDZd9ntD=withCSS(Component,css,\"framer-5piAC\");export default FramerCVDZd9ntD;FramerCVDZd9ntD.displayName=\"Bottom_renewal\";FramerCVDZd9ntD.defaultProps={height:461,width:350};addPropertyControls(FramerCVDZd9ntD,{sC_7XbcVo:{__defaultAssetReference:\"data:framer/asset-reference,OtH6rFeYBbJOO5ZvnXs6VIgTomE.png?originalFilename=Product1.png&preferredSize=auto\",title:\"Image\",type:ControlType.ResponsiveImage},HXN6Zu5nO:{defaultValue:\"투톤과 자수 로고가 포인트인 탱크 탑\",displayTextArea:true,title:\"Text\",type:ControlType.String}});addFonts(FramerCVDZd9ntD,[{explicitInter:true,fonts:[{family:\"Pretendard Medium\",source:\"custom\",url:\"https://framerusercontent.com/assets/NyvrcWOtGpjHSCCV1IxJY6PjbSc.woff2\"}]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerCVDZd9ntD\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"461\",\"framerVariables\":\"{\\\"sC_7XbcVo\\\":\\\"image\\\",\\\"HXN6Zu5nO\\\":\\\"text\\\"}\",\"framerAutoSizeImages\":\"true\",\"framerImmutableVariables\":\"true\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"350\",\"framerDisplayContentsDiv\":\"false\",\"framerColorSyntax\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CVDZd9ntD.map","import{fontStore}from\"framer\";fontStore.loadFonts([\"CUSTOM;Pretendard Regular\",\"CUSTOM;Pretendard Bold\"]);export const fonts=[{family:\"Pretendard Regular\",source:\"custom\",url:\"https://framerusercontent.com/assets/t7lebLYx2xwMs9MrDdMh5EKeA.woff2\"},{family:\"Pretendard Bold\",source:\"custom\",url:\"https://framerusercontent.com/assets/kPPF2VB983PxMSHOYB4oe11uz5c.woff2\"}];export const css=['.framer-WkTkF .framer-styles-preset-1q3m5kw:not(.rich-text-wrapper), .framer-WkTkF .framer-styles-preset-1q3m5kw.rich-text-wrapper p { --framer-font-family: \"Pretendard Regular\", \"Pretendard Regular Placeholder\", sans-serif; --framer-font-family-bold: \"Pretendard Bold\", \"Pretendard Bold Placeholder\", sans-serif; --framer-font-size: 20px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.6em; --framer-paragraph-spacing: 0px; --framer-text-alignment: left; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-transform: uppercase; }','@media (max-width: 1439px) and (min-width: 1280px) { .framer-WkTkF .framer-styles-preset-1q3m5kw:not(.rich-text-wrapper), .framer-WkTkF .framer-styles-preset-1q3m5kw.rich-text-wrapper p { --framer-font-family: \"Pretendard Regular\", \"Pretendard Regular Placeholder\", sans-serif; --framer-font-family-bold: \"Pretendard Bold\", \"Pretendard Bold Placeholder\", sans-serif; --framer-font-size: 20px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.6em; --framer-paragraph-spacing: 0px; --framer-text-alignment: left; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-transform: uppercase; } }','@media (max-width: 1279px) and (min-width: 0px) { .framer-WkTkF .framer-styles-preset-1q3m5kw:not(.rich-text-wrapper), .framer-WkTkF .framer-styles-preset-1q3m5kw.rich-text-wrapper p { --framer-font-family: \"Pretendard Regular\", \"Pretendard Regular Placeholder\", sans-serif; --framer-font-family-bold: \"Pretendard Bold\", \"Pretendard Bold Placeholder\", sans-serif; --framer-font-size: 18px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.6em; --framer-paragraph-spacing: 0px; --framer-text-alignment: left; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-transform: uppercase; } }'];export const className=\"framer-WkTkF\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (3256e0c)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFontsFromSharedStyle,getLoadingLazyAtYPosition,Image,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle from\"https://framerusercontent.com/modules/x6WhUwq7WjunXYIEMnUA/UfTlpdg7iw2eJDtHEWZm/YwH9CpmUw.js\";const cycleOrder=[\"oniEUFXZf\",\"OrxDfbxXZ\"];const serializationHash=\"framer-W06A7\";const variantClassNames={oniEUFXZf:\"framer-v-1e6hgh6\",OrxDfbxXZ:\"framer-v-1mkmbaj\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const ePlQjOMSl=undefined;const sTsIoEOS4=undefined;const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const toResponsiveImage=value=>{if(typeof value===\"object\"&&value!==null&&typeof value.src===\"string\"){return value;}return typeof value===\"string\"?{src:value}:undefined;};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={L:\"OrxDfbxXZ\",R:\"oniEUFXZf\"};const getProps=({brand,height,id,logo,width,...props})=>{return{...props,ePlQjOMSl:logo??props.ePlQjOMSl??{pixelHeight:945,pixelWidth:1494,src:\"https://framerusercontent.com/images/W0zmyvtBrTfdY0VqJ0JS3BM.png?width=1494&height=945\",srcSet:\"https://framerusercontent.com/images/W0zmyvtBrTfdY0VqJ0JS3BM.png?scale-down-to=512&width=1494&height=945 512w,https://framerusercontent.com/images/W0zmyvtBrTfdY0VqJ0JS3BM.png?scale-down-to=1024&width=1494&height=945 1024w,https://framerusercontent.com/images/W0zmyvtBrTfdY0VqJ0JS3BM.png?width=1494&height=945 1494w\"},sTsIoEOS4:brand??props.sTsIoEOS4??\"마리떼\",variant:humanReadableVariantMap[props.variant]??props.variant??\"oniEUFXZf\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,ePlQjOMSl,sTsIoEOS4,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"oniEUFXZf\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1e6hgh6\",className,classNames),\"data-framer-name\":\"R\",layoutDependency:layoutDependency,layoutId:\"oniEUFXZf\",ref:refBinding,style:{...style},...addPropertyOverrides({OrxDfbxXZ:{\"data-framer-name\":\"L\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-fmjm5l\",\"data-framer-name\":\"Img\",layoutDependency:layoutDependency,layoutId:\"tTZPj1o3R\",style:{backgroundColor:\"var(--token-40ed72d7-ac18-4cbd-a3ed-c1b124801ea0, rgb(255, 255, 255))\",borderBottomLeftRadius:50,borderBottomRightRadius:50,borderTopLeftRadius:50,borderTopRightRadius:50},children:/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fit\",loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+(0+((componentViewport?.height||36)-0-36)/2)+2.5),pixelHeight:945,pixelWidth:1494,sizes:\"30px\",...toResponsiveImage(ePlQjOMSl),...{positionX:\"center\",positionY:\"center\"}},className:\"framer-13l1dxl\",layoutDependency:layoutDependency,layoutId:\"dm1IzKDuq\",style:{borderBottomLeftRadius:50,borderBottomRightRadius:50,borderTopLeftRadius:50,borderTopRightRadius:50}})}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-hq5v7a\",\"data-framer-name\":\"Name\",layoutDependency:layoutDependency,layoutId:\"OD4xXiK88\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1q3m5kw\",\"data-styles-preset\":\"YwH9CpmUw\",children:/*#__PURE__*/_jsx(motion.strong,{children:\"마리떼\"})})}),className:\"framer-w2kr2r\",fonts:[\"Inter\",\"Inter-Bold\"],layoutDependency:layoutDependency,layoutId:\"OI2b1OivP\",style:{\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:sTsIoEOS4,verticalAlignment:\"top\",withExternalLayout:true})})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-W06A7.framer-4a9rnf, .framer-W06A7 .framer-4a9rnf { display: block; }\",\".framer-W06A7.framer-1e6hgh6 { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: 36px; justify-content: flex-end; overflow: hidden; padding: 0px; position: relative; width: 350px; }\",\".framer-W06A7 .framer-fmjm5l { align-content: center; align-items: center; aspect-ratio: 1 / 1; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: var(--framer-aspect-ratio-supported, 35px); justify-content: center; overflow: hidden; padding: 0px; position: relative; width: 35px; will-change: var(--framer-will-change-override, transform); }\",\".framer-W06A7 .framer-13l1dxl { aspect-ratio: 1 / 1; flex: none; height: var(--framer-aspect-ratio-supported, 30px); overflow: hidden; position: relative; width: 30px; will-change: var(--framer-will-change-override, transform); }\",\".framer-W06A7 .framer-hq5v7a { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 5px; height: min-content; justify-content: center; overflow: hidden; padding: 0px; position: relative; width: min-content; }\",\".framer-W06A7 .framer-w2kr2r { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-W06A7.framer-v-1mkmbaj.framer-1e6hgh6 { justify-content: flex-start; }\",...sharedStyle.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 36\n * @framerIntrinsicWidth 350\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"OrxDfbxXZ\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"ePlQjOMSl\":\"logo\",\"sTsIoEOS4\":\"brand\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerH_F9Vvi5z=withCSS(Component,css,\"framer-W06A7\");export default FramerH_F9Vvi5z;FramerH_F9Vvi5z.displayName=\"ID_brand\";FramerH_F9Vvi5z.defaultProps={height:36,width:350};addPropertyControls(FramerH_F9Vvi5z,{variant:{options:[\"oniEUFXZf\",\"OrxDfbxXZ\"],optionTitles:[\"R\",\"L\"],title:\"Variant\",type:ControlType.Enum},ePlQjOMSl:{__defaultAssetReference:\"data:framer/asset-reference,W0zmyvtBrTfdY0VqJ0JS3BM.png?originalFilename=LOGO_M%2BFG_%C3%A1%C2%84%C2%80%C3%A1%C2%85%C2%B3%C3%A1%C2%84%C2%85%C3%A1%C2%85%C2%A2%C3%A1%C2%84%C2%91%C3%A1%C2%85%C2%B5%C3%A1%C2%86%C2%A8%C3%A1%C2%84%C2%85%C3%A1%C2%85%C2%A9%C3%A1%C2%84%C2%80%C3%A1%C2%85%C2%A9.png&preferredSize=auto\",title:\"Logo\",type:ControlType.ResponsiveImage},sTsIoEOS4:{defaultValue:\"마리떼\",displayTextArea:false,title:\"Brand\",type:ControlType.String}});addFonts(FramerH_F9Vvi5z,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/DpPBYI0sL4fYLgAkX8KXOPVt7c.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/4RAEQdEOrcnDkhHiiCbJOw92Lk.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/1K3W8DizY3v4emK8Mb08YHxTbs.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/tUSCtfYVM1I1IchuyCwz9gDdQ.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/VgYFWiwsAC5OYxAycRXXvhze58.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/syRNPWzAMIrcJ3wIlPIP43KjQs.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/GIryZETIX4IFypco5pYZONKhJIo.woff2\",weight:\"700\"}]},...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerH_F9Vvi5z\",\"slots\":[],\"annotations\":{\"framerVariables\":\"{\\\"ePlQjOMSl\\\":\\\"logo\\\",\\\"sTsIoEOS4\\\":\\\"brand\\\"}\",\"framerAutoSizeImages\":\"true\",\"framerIntrinsicWidth\":\"350\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"OrxDfbxXZ\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerImmutableVariables\":\"true\",\"framerContractVersion\":\"1\",\"framerColorSyntax\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicHeight\":\"36\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./H_F9Vvi5z.map","// Generated by Framer (cf240c2)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"CUSTOM;Pretendard Medium\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Pretendard Medium\",source:\"custom\",url:\"https://framerusercontent.com/assets/Zz1SyNcAE05UfirXmAdWGcSx5I.woff2\"}]}];export const css=['.framer-XcRPS .framer-styles-preset-3nsxxv:not(.rich-text-wrapper), .framer-XcRPS .framer-styles-preset-3nsxxv.rich-text-wrapper p { --framer-font-family: \"Pretendard Medium\", \"Pretendard Medium Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 12px; --framer-font-style: normal; --framer-font-weight: 400; --framer-letter-spacing: 0.05em; --framer-line-height: 1.6em; --framer-paragraph-spacing: 20px; --framer-text-alignment: right; --framer-text-color: var(--token-1ab9a1e1-4daa-44f7-96e5-0a1282f4c7a0, #000000); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: uppercase; }'];export const className=\"framer-XcRPS\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (af04cc1)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getFontsFromSharedStyle,getLoadingLazyAtYPosition,Image,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import*as sharedStyle from\"https://framerusercontent.com/modules/4SGr1B6eXJuFbPSQH0Kp/Xzf5Z0M3BM1tzUTImYkd/CzYKAi4nR.js\";const cycleOrder=[\"AWRNBvtRP\",\"MjpXCYWcX\"];const serializationHash=\"framer-xqo1h\";const variantClassNames={AWRNBvtRP:\"framer-v-q4ghov\",MjpXCYWcX:\"framer-v-1d85468\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants===null||variants===void 0?void 0:variants.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const toResponsiveImage=value=>{if(typeof value===\"object\"&&value!==null&&typeof value.src===\"string\"){return value;}return typeof value===\"string\"?{src:value}:undefined;};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value!==null&&value!==void 0?value:config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={Color:\"AWRNBvtRP\",Pattern:\"MjpXCYWcX\"};const getProps=({color,height,id,pattern,text,width,...props})=>{var _ref,_ref1,_humanReadableVariantMap_props_variant,_ref2,_ref3;return{...props,ii_enCgbT:(_ref=text!==null&&text!==void 0?text:props.ii_enCgbT)!==null&&_ref!==void 0?_ref:\"IVORY\",QejgyVsb_:(_ref1=pattern!==null&&pattern!==void 0?pattern:props.QejgyVsb_)!==null&&_ref1!==void 0?_ref1:{src:\"https://framerusercontent.com/images/u1Lmjbn3JhlvfMeyw325D4VKHC0.png\"},variant:(_ref2=(_humanReadableVariantMap_props_variant=humanReadableVariantMap[props.variant])!==null&&_humanReadableVariantMap_props_variant!==void 0?_humanReadableVariantMap_props_variant:props.variant)!==null&&_ref2!==void 0?_ref2:\"AWRNBvtRP\",zbIMNOI6h:(_ref3=color!==null&&color!==void 0?color:props.zbIMNOI6h)!==null&&_ref3!==void 0?_ref3:\"rgb(255, 255, 255)\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,zbIMNOI6h,ii_enCgbT,QejgyVsb_,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"AWRNBvtRP\",variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const ref1=React.useRef(null);const isDisplayed=()=>{if(baseVariant===\"MjpXCYWcX\")return true;return false;};const isDisplayed1=()=>{if(baseVariant===\"MjpXCYWcX\")return false;return true;};const defaultLayoutId=React.useId();const sharedStyleClassNames=[sharedStyle.className];const componentViewport=useComponentViewport();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId!==null&&layoutId!==void 0?layoutId:defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(serializationHash,...sharedStyleClassNames,\"framer-q4ghov\",className,classNames),\"data-framer-name\":\"Color\",layoutDependency:layoutDependency,layoutId:\"AWRNBvtRP\",ref:ref!==null&&ref!==void 0?ref:ref1,style:{...style},...addPropertyOverrides({MjpXCYWcX:{\"data-framer-name\":\"Pattern\"}},baseVariant,gestureVariant),children:[isDisplayed()&&/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",pixelHeight:138,pixelWidth:128,...toResponsiveImage(QejgyVsb_),...{positionX:\"center\",positionY:\"center\"}},className:\"framer-8jt67\",\"data-border\":true,layoutDependency:layoutDependency,layoutId:\"IAsWpj_Do\",style:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"rgb(34, 34, 34)\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",borderBottomLeftRadius:100,borderBottomRightRadius:100,borderTopLeftRadius:100,borderTopRightRadius:100},...addPropertyOverrides({MjpXCYWcX:{background:{alt:\"\",fit:\"fill\",loading:getLoadingLazyAtYPosition(((componentViewport===null||componentViewport===void 0?void 0:componentViewport.y)||0)+(0+(((componentViewport===null||componentViewport===void 0?void 0:componentViewport.height)||20)-0-13)/2)),pixelHeight:138,pixelWidth:128,sizes:\"13px\",...toResponsiveImage(QejgyVsb_),...{positionX:\"center\",positionY:\"center\"}}}},baseVariant,gestureVariant)}),isDisplayed1()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-1t4r275\",\"data-border\":true,layoutDependency:layoutDependency,layoutId:\"BWtQq6bXc\",style:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"var(--token-1ab9a1e1-4daa-44f7-96e5-0a1282f4c7a0, rgb(0, 0, 0))\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",backgroundColor:zbIMNOI6h,borderBottomLeftRadius:100,borderBottomRightRadius:100,borderTopLeftRadius:100,borderTopRightRadius:100}}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-l8oobc\",layoutDependency:layoutDependency,layoutId:\"sGE7aBe6v\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-3nsxxv\",\"data-styles-preset\":\"CzYKAi4nR\",children:\"IVORY\"})}),className:\"framer-mhnvsg\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"fL1cBDwmA\",style:{\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\",\"--framer-paragraph-spacing\":\"0px\"},text:ii_enCgbT,verticalAlignment:\"top\",withExternalLayout:true})})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-xqo1h.framer-fkd3am, .framer-xqo1h .framer-fkd3am { display: block; }\",\".framer-xqo1h.framer-q4ghov { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 3px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-xqo1h .framer-8jt67 { flex: none; height: 13px; overflow: visible; position: relative; width: 13px; }\",\".framer-xqo1h .framer-1t4r275 { aspect-ratio: 1 / 1; flex: none; height: var(--framer-aspect-ratio-supported, 13px); overflow: visible; position: relative; width: 13px; }\",\".framer-xqo1h .framer-l8oobc { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 1px 0px 0px 0px; position: relative; width: min-content; }\",\".framer-xqo1h .framer-mhnvsg { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-xqo1h.framer-q4ghov, .framer-xqo1h .framer-l8oobc { gap: 0px; } .framer-xqo1h.framer-q4ghov > * { margin: 0px; margin-left: calc(3px / 2); margin-right: calc(3px / 2); } .framer-xqo1h.framer-q4ghov > :first-child, .framer-xqo1h .framer-l8oobc > :first-child { margin-left: 0px; } .framer-xqo1h.framer-q4ghov > :last-child, .framer-xqo1h .framer-l8oobc > :last-child { margin-right: 0px; } .framer-xqo1h .framer-l8oobc > * { margin: 0px; margin-left: calc(0px / 2); margin-right: calc(0px / 2); } }\",...sharedStyle.css,'.framer-xqo1h[data-border=\"true\"]::after, .framer-xqo1h [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 20\n * @framerIntrinsicWidth 53.5\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"MjpXCYWcX\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"zbIMNOI6h\":\"color\",\"ii_enCgbT\":\"text\",\"QejgyVsb_\":\"pattern\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramerME4GRE3Jv=withCSS(Component,css,\"framer-xqo1h\");export default FramerME4GRE3Jv;FramerME4GRE3Jv.displayName=\"Color\";FramerME4GRE3Jv.defaultProps={height:20,width:53.5};addPropertyControls(FramerME4GRE3Jv,{variant:{options:[\"AWRNBvtRP\",\"MjpXCYWcX\"],optionTitles:[\"Color\",\"Pattern\"],title:\"Variant\",type:ControlType.Enum},zbIMNOI6h:{defaultValue:\"rgb(255, 255, 255)\",title:\"Color\",type:ControlType.Color},ii_enCgbT:{defaultValue:\"IVORY\",displayTextArea:false,title:\"Text\",type:ControlType.String},QejgyVsb_:{__defaultAssetReference:\"data:framer/asset-reference,u1Lmjbn3JhlvfMeyw325D4VKHC0.png?originalFilename=%C3%A1%C2%84%C2%89%C3%A1%C2%85%C2%B3%C3%A1%C2%84%C2%8F%C3%A1%C2%85%C2%B3%C3%A1%C2%84%C2%85%C3%A1%C2%85%C2%B5%C3%A1%C2%86%C2%AB%C3%A1%C2%84%C2%89%C3%A1%C2%85%C2%A3%C3%A1%C2%86%C2%BA+2024-11-20+%C3%A1%C2%84%C2%8B%C3%A1%C2%85%C2%A9%C3%A1%C2%84%C2%8C%C3%A1%C2%85%C2%A5%C3%A1%C2%86%C2%AB+11.15.39.png&preferredSize=auto\",title:\"Pattern\",type:ControlType.ResponsiveImage}});addFonts(FramerME4GRE3Jv,[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerME4GRE3Jv\",\"slots\":[],\"annotations\":{\"framerVariables\":\"{\\\"zbIMNOI6h\\\":\\\"color\\\",\\\"ii_enCgbT\\\":\\\"text\\\",\\\"QejgyVsb_\\\":\\\"pattern\\\"}\",\"framerContractVersion\":\"1\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"MjpXCYWcX\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerIntrinsicWidth\":\"53.5\",\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicHeight\":\"20\",\"framerImmutableVariables\":\"true\",\"framerDisplayContentsDiv\":\"false\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ME4GRE3Jv.map","// Generated by Framer (9840458)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,CycleVariantState,getLoadingLazyAtYPosition,Image,RichText,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";const cycleOrder=[\"WXGBjcOoc\",\"kTyyRYObY\"];const serializationHash=\"framer-tnxqv\";const variantClassNames={kTyyRYObY:\"framer-v-z582tv\",WXGBjcOoc:\"framer-v-aj4qx6\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={duration:0,type:\"tween\"};const toResponsiveImage=value=>{if(typeof value===\"object\"&&value!==null&&typeof value.src===\"string\"){return value;}return typeof value===\"string\"?{src:value}:undefined;};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Variant 1\":\"WXGBjcOoc\",\"Variant 2\":\"kTyyRYObY\"};const getProps=({height,id,image,unknown,width,...props})=>{return{...props,hwUWMHKAE:unknown??props.hwUWMHKAE??\"전면 히든 스냅 클로저\",quZbomnhD:image??props.quZbomnhD,variant:humanReadableVariantMap[props.variant]??props.variant??\"WXGBjcOoc\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,hwUWMHKAE,quZbomnhD,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"WXGBjcOoc\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTap1ihqjoj=activeVariantCallback(async(...args)=>{setGestureState({isPressed:false});setVariant(CycleVariantState);});const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if(baseVariant===\"kTyyRYObY\")return true;return false;};const isDisplayed1=()=>{if(baseVariant===\"kTyyRYObY\")return false;return true;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-aj4qx6\",className,classNames),\"data-framer-name\":\"Variant 1\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"WXGBjcOoc\",onTap:onTap1ihqjoj,ref:refBinding,style:{backgroundColor:\"rgba(244, 244, 244, 0.8)\",borderBottomLeftRadius:8,borderBottomRightRadius:8,borderTopLeftRadius:8,borderTopRightRadius:8,...style},variants:{kTyyRYObY:{backgroundColor:\"var(--token-1c002536-1128-4670-90cc-c49f54353e26, rgb(196, 196, 196))\",borderBottomLeftRadius:100,borderBottomRightRadius:100,borderTopLeftRadius:100,borderTopRightRadius:100}},...addPropertyOverrides({kTyyRYObY:{\"data-framer-name\":\"Variant 2\"}},baseVariant,gestureVariant),children:[isDisplayed()&&/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",pixelHeight:3577,pixelWidth:2876,...toResponsiveImage(quZbomnhD),...{positionX:\"center\",positionY:\"center\"}},className:\"framer-jgw0kh\",\"data-border\":true,layoutDependency:layoutDependency,layoutId:\"S2vrWV_gV\",style:{\"--border-bottom-width\":\"2px\",\"--border-color\":\"var(--token-7e546ffc-4fc8-4aa4-aab9-8c7c89b3fd58, rgb(244, 244, 244))\",\"--border-left-width\":\"2px\",\"--border-right-width\":\"2px\",\"--border-style\":\"solid\",\"--border-top-width\":\"2px\",borderBottomLeftRadius:100,borderBottomRightRadius:100,borderTopLeftRadius:100,borderTopRightRadius:100},...addPropertyOverrides({kTyyRYObY:{background:{alt:\"\",fit:\"fill\",loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+(10+((componentViewport?.height||150)-20-150)/2)),pixelHeight:3577,pixelWidth:2876,sizes:\"150px\",...toResponsiveImage(quZbomnhD),...{positionX:\"center\",positionY:\"center\"}}}},baseVariant,gestureVariant)}),isDisplayed1()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgTWVkaXVt\",\"--framer-font-family\":'\"Pretendard Medium\", sans-serif',\"--framer-font-size\":\"13px\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-1ab9a1e1-4daa-44f7-96e5-0a1282f4c7a0, rgb(0, 0, 0)))\"},children:\"전면 히든 스냅 클로저\"})}),className:\"framer-sygdfe\",\"data-framer-name\":\"Name\",fonts:[\"CUSTOM;Pretendard Medium\"],layoutDependency:layoutDependency,layoutId:\"Kqc8FEwXh\",style:{\"--extracted-r6o4lv\":\"var(--token-1ab9a1e1-4daa-44f7-96e5-0a1282f4c7a0, rgb(0, 0, 0))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:hwUWMHKAE,verticalAlignment:\"center\",withExternalLayout:true})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-tnxqv.framer-14b5g90, .framer-tnxqv .framer-14b5g90 { display: block; }\",\".framer-tnxqv.framer-aj4qx6 { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 10px; position: relative; width: min-content; }\",\".framer-tnxqv .framer-jgw0kh { flex: none; height: 150px; overflow: visible; position: relative; width: 150px; }\",\".framer-tnxqv .framer-sygdfe { flex: none; height: auto; position: relative; white-space: pre; width: auto; z-index: 1; }\",\".framer-tnxqv.framer-v-z582tv.framer-aj4qx6 { height: 150px; width: 150px; }\",'.framer-tnxqv[data-border=\"true\"]::after, .framer-tnxqv [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 35.5\n * @framerIntrinsicWidth 130.5\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"kTyyRYObY\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"hwUWMHKAE\":\"unknown\",\"quZbomnhD\":\"image\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerUEY1TVOBI=withCSS(Component,css,\"framer-tnxqv\");export default FramerUEY1TVOBI;FramerUEY1TVOBI.displayName=\"Detail\";FramerUEY1TVOBI.defaultProps={height:35.5,width:130.5};addPropertyControls(FramerUEY1TVOBI,{variant:{options:[\"WXGBjcOoc\",\"kTyyRYObY\"],optionTitles:[\"Variant 1\",\"Variant 2\"],title:\"Variant\",type:ControlType.Enum},hwUWMHKAE:{defaultValue:\"전면 히든 스냅 클로저\",displayTextArea:false,title:\"Unknown\",type:ControlType.String},quZbomnhD:{title:\"Image\",type:ControlType.ResponsiveImage}});addFonts(FramerUEY1TVOBI,[{explicitInter:true,fonts:[{family:\"Pretendard Medium\",source:\"custom\",url:\"https://framerusercontent.com/assets/NyvrcWOtGpjHSCCV1IxJY6PjbSc.woff2\"}]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerUEY1TVOBI\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerVariables\":\"{\\\"hwUWMHKAE\\\":\\\"unknown\\\",\\\"quZbomnhD\\\":\\\"image\\\"}\",\"framerIntrinsicWidth\":\"130.5\",\"framerComponentViewportWidth\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerImmutableVariables\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerIntrinsicHeight\":\"35.5\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"kTyyRYObY\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerColorSyntax\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./UEY1TVOBI.map","import { Children, isValidElement, cloneElement } from \"react\";\nconst cloneFramerChildren = (children, props) => {\n  return Children.map(children, (child) => cloneLastDepthChild(child, props));\n};\nconst cloneLastDepthChild = (child, props) => {\n  if (!isValidElement(child)) {\n    return child;\n  }\n  if (!isValidElement(child.props.children)) {\n    return cloneElement(child, props);\n  }\n  return cloneElement(child, {\n    ...child.props,\n    children: cloneLastDepthChild(child.props.children, props)\n  });\n};\nexport {\n  cloneFramerChildren\n};\n","import { useAnalytics } from \"../../../hooks/analytics/useAnalytics.js\";\nimport { createProductEventProperties } from \"../../../utils/event-properties/product.js\";\nconst useTrackClickProductHeart = () => {\n  const {\n    trackFirebase,\n    trackAmplitude\n  } = useAnalytics();\n  const trackClickProductHeartOn = (product) => {\n    const properties = createProductEventProperties(product);\n    trackAmplitude(\"like_item\", properties);\n    trackFirebase(\"like_item\", properties);\n  };\n  const trackClickProductHeartOff = (productNo) => {\n    const properties = {\n      item_no: productNo\n    };\n    trackAmplitude(\"unlike_item\", properties);\n    trackFirebase(\"unlike_item\", properties);\n  };\n  return {\n    trackClickProductHeartOn,\n    trackClickProductHeartOff\n  };\n};\nexport {\n  useTrackClickProductHeart\n};\n","import { useCurrentUser } from \"../../../hooks/useCurrentUser.js\";\nimport { useRedirectLoginDialog } from \"../../../hooks/useRedirectLoginDialog.js\";\nimport { useShowSelectionEntryPoint } from \"../../../hooks/useShowSelectionEntryPoint.js\";\nimport { useTrackClickProductHeart } from \"./ProductHeartProvider.hooks.event.js\";\nimport { productApi } from \"../../../apis/product/ProductApiService.js\";\nimport { isContentOrigin } from \"../../../utils/location.js\";\nimport { useState, useEffect } from \"react\";\nimport \"../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport \"../../../config/index.js\";\nimport { useFetchHeartProductList } from \"../../../hooks/fetchers/useFetchHeartProductList.js\";\nimport \"../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport \"../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../apis/preuser/PreuserApiService.js\";\nconst useProductHeart = (product) => {\n  const {\n    logged\n  } = useCurrentUser();\n  const {\n    showRedirectLoginDialog\n  } = useRedirectLoginDialog();\n  const {\n    showSelectionEntryPoint\n  } = useShowSelectionEntryPoint();\n  const {\n    trackClickProductHeartOn,\n    trackClickProductHeartOff\n  } = useTrackClickProductHeart();\n  const {\n    isHeartOn,\n    handleHeartOn,\n    handleHeartOff\n  } = useUserHeartProductList();\n  const [heartCount, setHeartCount] = useState((product == null ? void 0 : product.heartCount) ?? 0);\n  const handleLikeOn = () => {\n    if (!product) {\n      return;\n    }\n    handleHeartOn(product.productId);\n    setHeartCount((prev) => prev + 1);\n    trackClickProductHeartOn(product);\n    showSelectionEntryPoint(product);\n  };\n  const handleLikeOff = () => {\n    if (!product) {\n      return;\n    }\n    handleHeartOff(product.productId);\n    setHeartCount((prev) => prev - 1);\n    trackClickProductHeartOff(product.productId);\n  };\n  const handleToggleLike = async () => {\n    if (!logged) {\n      showRedirectLoginDialog();\n      return;\n    }\n    if (!product) {\n      return;\n    }\n    const isPrevHeartOff = isHeartOn(product.productId) === \"OFF\";\n    const action = isPrevHeartOff ? \"set\" : \"unset\";\n    try {\n      await productApi.toggleHeart(product.productId, action);\n      if (isPrevHeartOff) {\n        handleLikeOn();\n      } else {\n        handleLikeOff();\n      }\n    } catch (err) {\n      console.error(err);\n    }\n  };\n  useEffect(() => {\n    if (product == null ? void 0 : product.heartCount) {\n      setHeartCount(product.heartCount);\n    }\n  }, [product == null ? void 0 : product.heartCount]);\n  return {\n    heartCount,\n    isHeartOn,\n    handleToggleLike\n  };\n};\nconst useUserHeartProductList = () => {\n  const {\n    heartList,\n    mutate: mutateHeartList\n  } = useFetchHeartProductList({\n    enabled: isContentOrigin()\n  });\n  const isHeartOn = (productNo) => {\n    if (!Array.isArray(heartList)) {\n      return \"OFF\";\n    }\n    return heartList.includes(productNo) ? \"ON\" : \"OFF\";\n  };\n  const handleHeartOn = (productNo) => {\n    mutateHeartList([...heartList, productNo], {\n      revalidate: false\n    });\n  };\n  const handleHeartOff = (productNo) => {\n    mutateHeartList(heartList.filter((heartProductId) => heartProductId != productNo), {\n      revalidate: false\n    });\n  };\n  return {\n    isHeartOn,\n    handleHeartOn,\n    handleHeartOff\n  };\n};\nexport {\n  useProductHeart,\n  useUserHeartProductList\n};\n","import { jsx, Fragment } from \"react/jsx-runtime\";\nimport { formatFramerProduct2Product } from \"../../../apis/framer/FramerApiService.js\";\nimport { useProductHeart } from \"./ProductHeartProvider.hooks.js\";\nconst ProductHeartProvider = ({\n  product,\n  children\n}) => {\n  const convertedProduct = formatFramerProduct2Product(product);\n  const {\n    heartCount,\n    isHeartOn,\n    handleToggleLike\n  } = useProductHeart(convertedProduct);\n  return /* @__PURE__ */ jsx(Fragment, { children: children({\n    heartCount,\n    isHeartOn: isHeartOn(product.itemNo),\n    onHeartClick: handleToggleLike\n  }) });\n};\nexport {\n  ProductHeartProvider\n};\n","import \"../../../hooks/stores/content/content.store.js\";\nimport { isServer } from \"../../../utils/context.js\";\nimport \"../../../utils/event-properties/source.js\";\nimport \"framer\";\nimport \"react\";\nconst DATA_PRODUCT_NO = \"data-product-no\";\nconst readProductNos = () => {\n  if (isServer()) {\n    return [];\n  }\n  const elements = document.querySelectorAll(`[${DATA_PRODUCT_NO}]`);\n  return Array.from(elements).map((element) => {\n    var _a;\n    return Number((_a = element.getAttribute(DATA_PRODUCT_NO)) == null ? void 0 : _a.trim());\n  });\n};\nconst formatProductImage = (imageUrl, alt) => {\n  const isFullUrl = imageUrl.startsWith(\"https://\");\n  const cleanedUrl = imageUrl.split(\"?\")[0];\n  const baseUrl = isFullUrl ? cleanedUrl : `https://img.29cm.co.kr${cleanedUrl}`;\n  const src = `${baseUrl}?q=75`;\n  const srcSet = [`${src}&width=480 480w`, `${src}&width=720 720w`].join(\",\");\n  return {\n    alt: alt ?? \"\",\n    src,\n    srcSet,\n    size: \"max(100vw, 0px)\"\n  };\n};\nexport {\n  formatProductImage,\n  readProductNos\n};\n","import \"../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport \"../../../config/index.js\";\nimport { useFetchProductList } from \"../../../hooks/fetchers/useFetchProductList.js\";\nimport \"../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport { useState, useEffect } from \"react\";\nimport \"../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../apis/preuser/PreuserApiService.js\";\nimport { readProductNos } from \"./ProductProvider.utils.js\";\nconst useProductProvider = (productNo) => {\n  const [productNos, setProductNos] = useState([]);\n  const {\n    productList\n  } = useFetchProductList(productNos);\n  useEffect(() => {\n    setProductNos(readProductNos());\n  }, [productNo]);\n  return productList.find((product) => product.itemNo === productNo);\n};\nexport {\n  useProductProvider\n};\n","import { useCallback } from \"react\";\nimport { useAnalytics } from \"../../../hooks/analytics/useAnalytics.js\";\nimport { useTrackSnowplowEvent } from \"../../../hooks/snowplow/useTrackSnowplowEvent.js\";\nimport { createContentEventProperties } from \"../../../utils/event-properties/content.js\";\nimport { createProductEventProperties } from \"../../../utils/event-properties/product.js\";\nconst useTrackClickProduct = (name, product) => {\n  const {\n    trackFirebase,\n    trackAmplitude\n  } = useAnalytics();\n  const trackClickProduct = () => {\n    if (!product) {\n      return;\n    }\n    const properties = {\n      ...createContentEventProperties(),\n      ...createProductEventProperties(product),\n      is_product_group: \"false\",\n      component: name\n    };\n    trackFirebase(\"click_item_content\", properties);\n    trackAmplitude(\"click_item\", properties);\n  };\n  return {\n    trackClickProduct\n  };\n};\nconst useTrackViewProduct = (name, product) => {\n  const {\n    trackFirebase\n  } = useAnalytics();\n  const trackViewProduct = useCallback(() => {\n    if (!product) {\n      return;\n    }\n    const properties = {\n      ...createContentEventProperties(),\n      ...createProductEventProperties(product),\n      is_product_group: \"false\",\n      component: name\n    };\n    trackFirebase(\"view_item_content\", properties);\n  }, [product]);\n  return {\n    trackViewProduct\n  };\n};\nconst useTrackImpProduct = (name, product) => {\n  const {\n    trackFirebase\n  } = useAnalytics();\n  const trackImpProduct = useCallback(() => {\n    if (!product) {\n      return;\n    }\n    const properties = {\n      ...createContentEventProperties(),\n      ...createProductEventProperties(product),\n      is_product_group: \"false\",\n      component: name\n    };\n    trackFirebase(\"imp_item_content\", properties);\n  }, [product]);\n  return {\n    trackImpProduct\n  };\n};\nconst useTrackSnowplowItem = (product, componentId) => {\n  const trackSnowplowEvent = useTrackSnowplowEvent();\n  const getCommonProperties = () => {\n    if (!product || !componentId) {\n      return null;\n    }\n    const productProperties = {\n      item_no: product.itemNo,\n      item_name: product.itemName,\n      brand_no: product.frontBrandNo,\n      brand_name: product.frontBrandNameKor,\n      large_category_no: product.categoryCodeList[0].largeCategoryCode,\n      large_category_name: \"\",\n      middle_category_no: product.categoryCodeList[0].mediumCategoryCode,\n      middle_category_name: \"\",\n      small_category_no: product.categoryCodeList[0].smallCategoryCode,\n      small_category_name: \"\",\n      price: product.lastSalePrice,\n      discount_rate: product.lastSalePercent,\n      is_soldout: product.isSoldOut,\n      item_position: -1\n    };\n    const sectionProperties = {\n      section_name: componentId,\n      section_title: componentId\n    };\n    return {\n      ...productProperties,\n      ...sectionProperties\n    };\n  };\n  const trackSnowplowImpItem = () => {\n    const properties = getCommonProperties();\n    if (!properties) {\n      return;\n    }\n    trackSnowplowEvent(\"impression_item\", properties);\n  };\n  const trackSnowplowClickItem = () => {\n    const properties = getCommonProperties();\n    if (!properties) {\n      return;\n    }\n    trackSnowplowEvent(\"click_item\", properties);\n  };\n  return {\n    trackSnowplowImpItem,\n    trackSnowplowClickItem\n  };\n};\nexport {\n  useTrackClickProduct,\n  useTrackImpProduct,\n  useTrackSnowplowItem,\n  useTrackViewProduct\n};\n","(function() {\n  \"use strict\";\n  try {\n    if (typeof document != \"undefined\") {\n      var elementStyle = document.createElement(\"style\");\n      elementStyle.appendChild(document.createTextNode(\"._container_d12g1_1 {\\n  display: flex;\\n  justify-content: center;\\n\\n  width: 100%;\\n  height: 100%;\\n  cursor: pointer;\\n}\\n\\n._container_d12g1_1 > :first-child {\\n  width: 100% !important;\\n  height: 100% !important;\\n}\"));\n      document.head.appendChild(elementStyle);\n    }\n  } catch (e) {\n    console.error(\"vite-plugin-css-injected-by-js\", e);\n  }\n})();\nconst container = \"_container_d12g1_1\";\nconst styles = {\n  container\n};\nexport {\n  container,\n  styles as default\n};\n","import { jsx, Fragment } from \"react/jsx-runtime\";\nimport { useInView } from \"framer-motion\";\nimport { useRef, useEffect } from \"react\";\nimport { formatFramerProduct2Product } from \"../../../apis/framer/FramerApiService.js\";\nimport { cloneFramerChildren } from \"../../../utils/cloneFramerChildren.js\";\nimport { conditional } from \"../../../utils/function.js\";\nimport { isContentOrigin } from \"../../../utils/location.js\";\nimport { ProductHeartProvider } from \"./ProductHeartProvider.js\";\nimport { useProductProvider } from \"./ProductProvider.hooks.js\";\nimport { useTrackClickProduct, useTrackViewProduct, useTrackImpProduct, useTrackSnowplowItem } from \"./ProductProvider.hooks.event.js\";\nimport styles from \"./ProductProvider.module.css.js\";\nimport { formatProductImage } from \"./ProductProvider.utils.js\";\nimport { useSendProductIds } from \"../../../hooks/product/useSendProductIds.js\";\nimport \"../../../node_modules/@firebase/analytics/dist/esm/index.esm2017.js\";\nimport \"../../../node_modules/firebase/app/dist/esm/index.esm.js\";\nimport \"../../../node_modules/swr/core/dist/index.js\";\nimport \"../../../apis/user-segment/CategoryFirstOrderApiService.js\";\nimport \"../../../config/index.js\";\nimport \"../../../apis/taste-sharing/TasteSharingApiService.js\";\nimport \"../../../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js\";\nimport \"../../../node_modules/js-cookie/dist/js.cookie.js\";\nimport \"../../../apis/preuser/PreuserApiService.js\";\nimport \"framer\";\nimport \"../../../node_modules/@29cm/snowplow/dist/esm/core/snowplow.js\";\nimport \"../../../node_modules/swr/mutation/dist/index.js\";\nimport \"../../../hooks/stores/content/content.store.js\";\nimport \"../../../hooks/stores/dialog/dialog.store.js\";\nimport \"../../../hooks/stores/global-layout/global-layout.store.js\";\nimport \"../../../hooks/stores/toast/toast.store.js\";\nimport \"../../@shared/providers/ThemeProvider/ThemeProvider.js\";\nimport \"../../@shared/providers/BreakpointProvider/BreakpointProvider.js\";\nimport \"../../../hooks/stores/bottom-sheet/bottom-sheet.store.js\";\nimport \"react-dom\";\nimport \"../../systems/Dialog/Dialog.module.css.js\";\nimport \"../../../containers/DialogContainer/DialogContainer.emitter.js\";\nimport \"../../../utils/redirectLogin.js\";\nimport \"../../../utils/event-properties/source.js\";\nimport \"../../../constants/snowplow/snowplowSchema.js\";\nimport { EventTrigger } from \"../../@shared/EventTrigger/index.js\";\nconst ProductProvider = ({\n  children,\n  fallbackChildren,\n  productNo = \"\",\n  name = \"ProductProvider\",\n  style,\n  componentId\n}) => {\n  const product = useProductProvider(Number(productNo));\n  useSendProductIds(productNo);\n  const convertedProduct = formatFramerProduct2Product(product);\n  const {\n    trackClickProduct\n  } = useTrackClickProduct(name, convertedProduct);\n  const {\n    trackViewProduct\n  } = useTrackViewProduct(name, convertedProduct);\n  const {\n    trackImpProduct\n  } = useTrackImpProduct(name, convertedProduct);\n  const {\n    trackSnowplowImpItem,\n    trackSnowplowClickItem\n  } = useTrackSnowplowItem(product, componentId);\n  const ref = useRef(null);\n  const isInView = useInView(ref, {\n    amount: 0.5\n  });\n  const isAllInView = useInView(ref, {\n    amount: 1\n  });\n  useEffect(() => {\n    conditional(isInView, trackViewProduct)();\n  }, [isInView, trackViewProduct]);\n  useEffect(() => {\n    conditional(isAllInView, trackImpProduct)();\n  }, [isAllInView, trackImpProduct]);\n  const handleClick = () => {\n    conditional(!isInView, trackViewProduct)();\n    conditional(!isAllInView, trackImpProduct)();\n    trackClickProduct();\n    trackSnowplowClickItem();\n  };\n  if (!product) {\n    return /* @__PURE__ */ jsx(\"div\", { className: styles.container, \"data-product-no\": productNo, ref, style, children: isContentOrigin() ? fallbackChildren : children });\n  }\n  return /* @__PURE__ */ jsx(EventTrigger.Root, { types: [\"impression\"], onImpression: trackSnowplowImpItem, children: /* @__PURE__ */ jsx(\"div\", { className: styles.container, \"data-product-no\": productNo, ref, style, children: /* @__PURE__ */ jsx(ProductHeartProvider, { product, children: ({\n    heartCount,\n    isHeartOn,\n    onHeartClick\n  }) => /* @__PURE__ */ jsx(ProductProviderChildren, { product, heartCount, isHeartOn, onHeartClick, onClick: handleClick, children: product.isSoldOut ? fallbackChildren : children }) }) }) });\n};\nconst ProductProviderChildren = ({\n  children,\n  product,\n  heartCount,\n  isHeartOn,\n  onHeartClick,\n  onClick\n}) => {\n  const url = `https://product.29cm.co.kr/catalog/${product.itemNo}`;\n  return /* @__PURE__ */ jsx(Fragment, { children: cloneFramerChildren(children, {\n    ...product,\n    image: formatProductImage(product.imageUrl),\n    url,\n    heartCount,\n    isHeartOn,\n    onHeartClick,\n    onClick\n  }) });\n};\nexport {\n  ProductProvider\n};\n","import { ProductProvider } from \"./ProductProvider.js\";\nexport {\n  ProductProvider\n};\n","import{jsx as _jsx}from\"react/jsx-runtime\";import{ProductProvider as BaseProductProvider}from\"https://asset.29cm.co.kr/contents/framer/components/canvas/ProductProvider/index.js\";import{addPropertyControls,ControlType,useIsOnFramerCanvas}from\"framer\";/**\n * @framerDisableUnlink\n */export default function ProductProvider({children,fallbackChildren,productNo,style}){const isOnFramerCanvas=useIsOnFramerCanvas();if(isOnFramerCanvas){return children;}return /*#__PURE__*/_jsx(BaseProductProvider,{fallbackChildren:fallbackChildren,productNo:productNo,style:style,children:children});}addPropertyControls(ProductProvider,{children:{type:ControlType.ComponentInstance,description:\"컴포넌트\"},fallbackChildren:{type:ControlType.ComponentInstance,description:\"판매 중지 시 컴포넌트\"},productNo:{type:ControlType.String,description:\"상품 번호\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ProductProvider\",\"slots\":[\"children\"],\"annotations\":{\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ProductProvider.map","// Generated by Framer (4076eae)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,Link,RichText,useActiveVariantCallback,useComponentViewport,useLocaleCode,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";const cycleOrder=[\"tmZPnYqSp\",\"r5vxakOI0\",\"DzuKgVHsB\",\"wBIW8KNqw\",\"hJ5dNSmEK\",\"MMoPFJeDD\"];const serializationHash=\"framer-adYne\";const variantClassNames={DzuKgVHsB:\"framer-v-14tykst\",hJ5dNSmEK:\"framer-v-17lq7e6\",MMoPFJeDD:\"framer-v-buj7pz\",r5vxakOI0:\"framer-v-18izill\",tmZPnYqSp:\"framer-v-pjzb09\",wBIW8KNqw:\"framer-v-149rddu\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={duration:0,type:\"tween\"};const numberToPixelString=value=>{if(typeof value!==\"number\")return value;if(!Number.isFinite(value))return undefined;return Math.max(0,value)+\"px\";};const negate=value=>{return!value;};const greaterThan=(a,b)=>{return typeof a===\"number\"&&typeof b===\"number\"?a>b:false;};const numberToString=(value,options={},activeLocale)=>{const fallbackLocale=\"en-US\";const locale=options.locale||activeLocale||fallbackLocale;const{useGrouping,notation,compactDisplay,style,currency,currencyDisplay,unit,unitDisplay,minimumFractionDigits,maximumFractionDigits,minimumIntegerDigits}=options;const formatOptions={useGrouping,notation,compactDisplay,style,currency,currencyDisplay,unit,unitDisplay,minimumFractionDigits,maximumFractionDigits,minimumIntegerDigits};const number=Number(value);try{return number.toLocaleString(locale,formatOptions);}catch{try{return number.toLocaleString(fallbackLocale,formatOptions);}catch{return number.toLocaleString();}}};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={BlackBarType:\"DzuKgVHsB\",CardTypeBlackDefault:\"tmZPnYqSp\",CardTypeBlackLarge:\"hJ5dNSmEK\",CardTypeWhiteDefault:\"r5vxakOI0\",CardTypeWhiteLarge:\"MMoPFJeDD\",WhiteBarType:\"wBIW8KNqw\"};const getProps=({_,brandVisible,frontBrandNameKor,gap,height,id,itemName,itemNameNotVisible,itemTextFieldsVisible,lastSalePercent,lastSalePrice,onclick,priceVisible,url,width,...props})=>{return{...props,DUzXnaN48:itemTextFieldsVisible??props.DUzXnaN48,dwf5CXyT5:onclick??props.dwf5CXyT5,FRytAzSzV:_??props.FRytAzSzV??\"Text fields\",GMyA10nT4:lastSalePercent??props.GMyA10nT4??10,lcpzB9FE2:itemNameNotVisible??props.lcpzB9FE2,MKrmhv4TZ:priceVisible??props.MKrmhv4TZ??true,OmlRyfgK7:brandVisible??props.OmlRyfgK7??true,PRzxhUuxZ:frontBrandNameKor??props.PRzxhUuxZ??\"브랜드 국문명\",t2XNqsk7R:itemName??props.t2XNqsk7R??\"Item Name\",uCC76GLg5:url??props.uCC76GLg5,variant:humanReadableVariantMap[props.variant]??props.variant??\"tmZPnYqSp\",yMuwpeRe3:gap??props.yMuwpeRe3??6,Zb3Fui3ey:lastSalePrice??props.Zb3Fui3ey??1e4};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,OmlRyfgK7,uCC76GLg5,dwf5CXyT5,PRzxhUuxZ,t2XNqsk7R,lcpzB9FE2,DUzXnaN48,FRytAzSzV,GMyA10nT4,Zb3Fui3ey,MKrmhv4TZ,yMuwpeRe3,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"tmZPnYqSp\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTaprq8k1k=activeVariantCallback(async(...args)=>{if(dwf5CXyT5){const res=await dwf5CXyT5(...args);if(res===false)return false;}});const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const visible=negate(lcpzB9FE2);const visible1=greaterThan(GMyA10nT4,0);const activeLocaleCode=useLocaleCode();const textContent=numberToString(GMyA10nT4,{locale:\"\",notation:\"standard\",style:\"unit\",unit:\"percent\",unitDisplay:\"short\"},activeLocaleCode);const textContent1=numberToString(Zb3Fui3ey,{locale:\"\",notation:\"standard\",style:\"decimal\"},activeLocaleCode);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-pjzb09\",className,classNames),\"data-framer-name\":\"CardTypeBlackDefault\",layoutDependency:layoutDependency,layoutId:\"tmZPnYqSp\",ref:refBinding,style:{\"--1xgd4au\":numberToPixelString(yMuwpeRe3),...style},...addPropertyOverrides({DzuKgVHsB:{\"data-framer-name\":\"BlackBarType\"},hJ5dNSmEK:{\"data-framer-name\":\"CardTypeBlackLarge\"},MMoPFJeDD:{\"data-framer-name\":\"CardTypeWhiteLarge\"},r5vxakOI0:{\"data-framer-name\":\"CardTypeWhiteDefault\"},wBIW8KNqw:{\"data-framer-name\":\"WhiteBarType\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(Link,{href:uCC76GLg5,motionChild:true,nodeId:\"viOzIK7oA\",scopeId:\"ZHYRofyzb\",children:/*#__PURE__*/_jsxs(motion.a,{className:\"framer-5lzo2m framer-1vuxq2j\",\"data-framer-name\":\"RequireInfo\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"viOzIK7oA\",onTap:onTaprq8k1k,children:[OmlRyfgK7&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgQm9sZA==\",\"--framer-font-family\":'\"Pretendard Bold\", sans-serif',\"--framer-font-size\":\"11px\"},children:\"던스트\"})}),className:\"framer-1oqiaoc\",\"data-framer-name\":\"BrandName\",fonts:[\"CUSTOM;Pretendard Bold\"],layoutDependency:layoutDependency,layoutId:\"AF9PK6IVq\",text:PRzxhUuxZ,variants:{MMoPFJeDD:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\"},r5vxakOI0:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\"},wBIW8KNqw:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({hJ5dNSmEK:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgQm9sZA==\",\"--framer-font-family\":'\"Pretendard Bold\", \"Pretendard Bold Placeholder\", sans-serif',\"--framer-font-size\":\"14px\"},children:\"브랜드 국문명\"})})},MMoPFJeDD:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgQm9sZA==\",\"--framer-font-family\":'\"Pretendard Bold\", \"Pretendard Bold Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:\"브랜드 국문명\"})})},r5vxakOI0:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgQm9sZA==\",\"--framer-font-family\":'\"Pretendard Bold\", sans-serif',\"--framer-font-size\":\"11px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:\"던스트\"})})},wBIW8KNqw:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgQm9sZA==\",\"--framer-font-family\":'\"Pretendard Bold\", \"Pretendard Bold Placeholder\", sans-serif',\"--framer-font-size\":\"11px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:\"브랜드 국문명\"})})}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-uhsyl2\",layoutDependency:layoutDependency,layoutId:\"z76XZKstf\",children:visible&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgUmVndWxhcg==\",\"--framer-font-family\":'\"Pretendard Regular\", sans-serif',\"--framer-font-size\":\"12px\"},children:\"Preci Ringer Crop T-shirt Pure White\"})}),className:\"framer-15dtn95\",\"data-framer-name\":\"ProductName\",fonts:[\"CUSTOM;Pretendard Regular\"],layoutDependency:layoutDependency,layoutId:\"Pcs52uUHT\",text:t2XNqsk7R,variants:{MMoPFJeDD:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\"},r5vxakOI0:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\"},wBIW8KNqw:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({MMoPFJeDD:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgUmVndWxhcg==\",\"--framer-font-family\":'\"Pretendard Regular\", \"Pretendard Regular Placeholder\", sans-serif',\"--framer-font-size\":\"12px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:\"Item Name\"})})},r5vxakOI0:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgUmVndWxhcg==\",\"--framer-font-family\":'\"Pretendard Regular\", sans-serif',\"--framer-font-size\":\"12px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:\"Preci Ringer Crop T-shirt Pure White\"})})},wBIW8KNqw:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgUmVndWxhcg==\",\"--framer-font-family\":'\"Pretendard Regular\", sans-serif',\"--framer-font-size\":\"12px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:\"Preci Ringer Crop T-shirt Pure White\"})})}},baseVariant,gestureVariant)})}),DUzXnaN48&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgUmVndWxhcg==\",\"--framer-font-family\":'\"Pretendard Regular\", sans-serif',\"--framer-font-size\":\"12px\"},children:\"Preci Ringer Crop T-shirt Pure White\"})}),className:\"framer-199guwc\",\"data-framer-name\":\"수동 입력\",fonts:[\"CUSTOM;Pretendard Regular\"],layoutDependency:layoutDependency,layoutId:\"HkbE46AAX\",text:FRytAzSzV,variants:{r5vxakOI0:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({r5vxakOI0:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgUmVndWxhcg==\",\"--framer-font-family\":'\"Pretendard Regular\", \"Pretendard Regular Placeholder\", sans-serif',\"--framer-font-size\":\"12px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:\"Text fields\"})})}},baseVariant,gestureVariant)})]})}),MKrmhv4TZ&&/*#__PURE__*/_jsxs(motion.div,{className:\"framer-bzoad4\",\"data-framer-name\":\"SalePrice\",layoutDependency:layoutDependency,layoutId:\"U8R30kT8c\",children:[visible1&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.div,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgQm9sZA==\",\"--framer-font-family\":'\"Pretendard Bold\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-text-color\":\"var(--extracted-tcooor, rgb(255, 72, 0))\"},children:\"NaN%\"})}),className:\"framer-1cqf9f9\",\"data-framer-name\":\"LastSalePercent\",fonts:[\"CUSTOM;Pretendard Bold\"],layoutDependency:layoutDependency,layoutId:\"wL1c1ZSxv\",style:{\"--extracted-tcooor\":\"rgb(255, 72, 0)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:textContent,verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({DzuKgVHsB:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.div,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgQm9sZA==\",\"--framer-font-family\":'\"Pretendard Bold\", sans-serif',\"--framer-font-size\":\"13px\",\"--framer-text-color\":\"var(--extracted-tcooor, rgb(255, 72, 0))\"},children:\"NaN%\"})})},hJ5dNSmEK:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.div,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgQm9sZA==\",\"--framer-font-family\":'\"Pretendard Bold\", sans-serif',\"--framer-text-color\":\"var(--extracted-tcooor, rgb(255, 72, 0))\"},children:\"NaN%\"})})},MMoPFJeDD:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.div,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgQm9sZA==\",\"--framer-font-family\":'\"Pretendard Bold\", sans-serif',\"--framer-text-color\":\"var(--extracted-tcooor, rgb(255, 72, 0))\"},children:\"NaN%\"})})},wBIW8KNqw:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.div,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgQm9sZA==\",\"--framer-font-family\":'\"Pretendard Bold\", sans-serif',\"--framer-font-size\":\"13px\",\"--framer-text-color\":\"var(--extracted-tcooor, rgb(255, 72, 0))\"},children:\"NaN%\"})})}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgQm9sZA==\",\"--framer-font-family\":'\"Pretendard Bold\", sans-serif',\"--framer-font-size\":\"14px\"},children:\"NaN\"})}),className:\"framer-jysy8a\",\"data-framer-name\":\"LastSalePrice\",fonts:[\"CUSTOM;Pretendard Bold\"],layoutDependency:layoutDependency,layoutId:\"QvXod6dgT\",text:textContent1,variants:{MMoPFJeDD:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\"},r5vxakOI0:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\"},wBIW8KNqw:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({DzuKgVHsB:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgQm9sZA==\",\"--framer-font-family\":'\"Pretendard Bold\", sans-serif',\"--framer-font-size\":\"13px\"},children:\"NaN\"})})},hJ5dNSmEK:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgQm9sZA==\",\"--framer-font-family\":'\"Pretendard Bold\", sans-serif'},children:\"NaN\"})})},MMoPFJeDD:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgQm9sZA==\",\"--framer-font-family\":'\"Pretendard Bold\", sans-serif',\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:\"NaN\"})})},r5vxakOI0:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgQm9sZA==\",\"--framer-font-family\":'\"Pretendard Bold\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:\"NaN\"})})},wBIW8KNqw:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgQm9sZA==\",\"--framer-font-family\":'\"Pretendard Bold\", sans-serif',\"--framer-font-size\":\"13px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:\"NaN\"})})}},baseVariant,gestureVariant)})]})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-adYne.framer-1vuxq2j, .framer-adYne .framer-1vuxq2j { display: block; }\",\".framer-adYne.framer-pjzb09 { align-content: flex-start; align-items: flex-start; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 5px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 300px; }\",\".framer-adYne .framer-5lzo2m { align-content: center; align-items: center; cursor: pointer; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 2px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; text-decoration: none; width: 100%; }\",\".framer-adYne .framer-1oqiaoc { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-adYne .framer-uhsyl2 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-adYne .framer-15dtn95 { flex: 1 0 0px; height: 15px; overflow: hidden; position: relative; white-space: pre-wrap; width: 1px; word-break: break-word; word-wrap: break-word; }\",\".framer-adYne .framer-199guwc { flex: none; height: 16px; overflow: hidden; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-adYne .framer-bzoad4 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 2px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-adYne .framer-1cqf9f9, .framer-adYne .framer-jysy8a { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-adYne.framer-v-14tykst.framer-pjzb09, .framer-adYne.framer-v-149rddu.framer-pjzb09 { gap: 3px; }\",\".framer-adYne.framer-v-17lq7e6.framer-pjzb09 { gap: var(--1xgd4au); width: min-content; }\",\".framer-adYne.framer-v-17lq7e6 .framer-5lzo2m { align-content: flex-start; align-items: flex-start; width: min-content; }\",\".framer-adYne.framer-v-17lq7e6 .framer-1oqiaoc { white-space: pre; width: auto; }\",\".framer-adYne.framer-v-17lq7e6 .framer-uhsyl2 { align-self: stretch; justify-content: flex-start; width: auto; }\",\".framer-adYne.framer-v-17lq7e6 .framer-15dtn95 { flex: none; white-space: pre; width: auto; }\",\".framer-adYne.framer-v-17lq7e6 .framer-199guwc { width: 200px; }\",\".framer-adYne.framer-v-17lq7e6 .framer-bzoad4 { width: min-content; }\",\".framer-adYne.framer-v-buj7pz.framer-pjzb09 { gap: 6px; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 52\n * @framerIntrinsicWidth 300\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"r5vxakOI0\":{\"layout\":[\"fixed\",\"auto\"]},\"DzuKgVHsB\":{\"layout\":[\"fixed\",\"auto\"]},\"wBIW8KNqw\":{\"layout\":[\"fixed\",\"auto\"]},\"hJ5dNSmEK\":{\"layout\":[\"auto\",\"auto\"]},\"MMoPFJeDD\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"OmlRyfgK7\":\"brandVisible\",\"uCC76GLg5\":\"url\",\"dwf5CXyT5\":\"onclick\",\"PRzxhUuxZ\":\"frontBrandNameKor\",\"t2XNqsk7R\":\"itemName\",\"lcpzB9FE2\":\"itemNameNotVisible\",\"DUzXnaN48\":\"itemTextFieldsVisible\",\"FRytAzSzV\":\"_\",\"GMyA10nT4\":\"lastSalePercent\",\"Zb3Fui3ey\":\"lastSalePrice\",\"MKrmhv4TZ\":\"priceVisible\",\"yMuwpeRe3\":\"gap\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerZHYRofyzb=withCSS(Component,css,\"framer-adYne\");export default FramerZHYRofyzb;FramerZHYRofyzb.displayName=\"ProductInfo\";FramerZHYRofyzb.defaultProps={height:52,width:300};addPropertyControls(FramerZHYRofyzb,{variant:{options:[\"tmZPnYqSp\",\"r5vxakOI0\",\"DzuKgVHsB\",\"wBIW8KNqw\",\"hJ5dNSmEK\",\"MMoPFJeDD\"],optionTitles:[\"CardTypeBlackDefault\",\"CardTypeWhiteDefault\",\"BlackBarType\",\"WhiteBarType\",\"CardTypeBlackLarge\",\"CardTypeWhiteLarge\"],title:\"Variant\",type:ControlType.Enum},OmlRyfgK7:{defaultValue:true,title:\"Brand Visible\",type:ControlType.Boolean},uCC76GLg5:{title:\"url\",type:ControlType.Link},dwf5CXyT5:{title:\"onclick\",type:ControlType.EventHandler},PRzxhUuxZ:{defaultValue:\"브랜드 국문명\",displayTextArea:false,title:\"frontBrandNameKor\",type:ControlType.String},t2XNqsk7R:{defaultValue:\"Item Name\",displayTextArea:false,title:\"itemName\",type:ControlType.String},lcpzB9FE2:{defaultValue:false,title:\"item Name Not Visible\",type:ControlType.Boolean},DUzXnaN48:{defaultValue:false,title:\"Item Text Fields Visible\",type:ControlType.Boolean},FRytAzSzV:{defaultValue:\"Text fields\",displayTextArea:false,title:\"수동 입력\",type:ControlType.String},GMyA10nT4:{defaultValue:10,title:\"lastSalePercent\",type:ControlType.Number,unit:\"%\"},Zb3Fui3ey:{defaultValue:1e4,displayStepper:false,title:\"lastSalePrice\",type:ControlType.Number},MKrmhv4TZ:{defaultValue:true,title:\"PriceVisible\",type:ControlType.Boolean},yMuwpeRe3:{defaultValue:6,min:0,title:\"Gap\",type:ControlType.Number}});addFonts(FramerZHYRofyzb,[{explicitInter:true,fonts:[{family:\"Pretendard Bold\",source:\"custom\",url:\"https://framerusercontent.com/assets/kPPF2VB983PxMSHOYB4oe11uz5c.woff2\"},{family:\"Pretendard Regular\",source:\"custom\",url:\"https://framerusercontent.com/assets/qaw3yIgC8TiP4kMN2BaWGREjykY.woff2\"}]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerZHYRofyzb\",\"slots\":[],\"annotations\":{\"framerColorSyntax\":\"true\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"52\",\"framerDisplayContentsDiv\":\"false\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"r5vxakOI0\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"DzuKgVHsB\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"wBIW8KNqw\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"hJ5dNSmEK\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"MMoPFJeDD\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerIntrinsicWidth\":\"300\",\"framerAutoSizeImages\":\"true\",\"framerVariables\":\"{\\\"OmlRyfgK7\\\":\\\"brandVisible\\\",\\\"uCC76GLg5\\\":\\\"url\\\",\\\"dwf5CXyT5\\\":\\\"onclick\\\",\\\"PRzxhUuxZ\\\":\\\"frontBrandNameKor\\\",\\\"t2XNqsk7R\\\":\\\"itemName\\\",\\\"lcpzB9FE2\\\":\\\"itemNameNotVisible\\\",\\\"DUzXnaN48\\\":\\\"itemTextFieldsVisible\\\",\\\"FRytAzSzV\\\":\\\"_\\\",\\\"GMyA10nT4\\\":\\\"lastSalePercent\\\",\\\"Zb3Fui3ey\\\":\\\"lastSalePrice\\\",\\\"MKrmhv4TZ\\\":\\\"priceVisible\\\",\\\"yMuwpeRe3\\\":\\\"gap\\\"}\",\"framerImmutableVariables\":\"true\",\"framerComponentViewportWidth\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ZHYRofyzb.map","// Generated by Framer (dc53115)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,Link,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Icon from\"https://framerusercontent.com/modules/SG4xUagjjnWfRbTksrvL/1SmWPZhe6a5JiRkDyVjO/Icon.js\";import ProductInfo from\"https://framerusercontent.com/modules/7fsizE0oFarTEkNOXQln/GXm9q2Uyy1TkgjS3skU3/ZHYRofyzb.js\";const ProductInfoFonts=getFonts(ProductInfo);const IconFonts=getFonts(Icon);const serializationHash=\"framer-O9Xi9\";const variantClassNames={oJrTiKo1R:\"framer-v-1n7j3r2\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const getProps=({height,id,lastSalePercent,lastSalePrice,url,visible,width,...props})=>{return{...props,jtObqlx3u:url??props.jtObqlx3u,OJ320Z4W3:visible??props.OJ320Z4W3??true,tcUmjvcWI:lastSalePercent??props.tcUmjvcWI??10,xXmCMe9gO:lastSalePrice??props.xXmCMe9gO??1e4};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,jtObqlx3u,xXmCMe9gO,tcUmjvcWI,OJ320Z4W3,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"oJrTiKo1R\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{href:jtObqlx3u,motionChild:true,nodeId:\"oJrTiKo1R\",scopeId:\"Bg8Xl4khW\",children:/*#__PURE__*/_jsxs(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-1n7j3r2\",className,classNames)} framer-1ob7sz0`,\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"oJrTiKo1R\",ref:refBinding,style:{...style},children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{height:52,y:(componentViewport?.y||0)+(0+((componentViewport?.height||19)-0-52)/2),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1cnk092-container\",layoutDependency:layoutDependency,layoutId:\"zvVsepDXt-container\",nodeId:\"zvVsepDXt\",rendersWithMotion:true,scopeId:\"Bg8Xl4khW\",children:/*#__PURE__*/_jsx(ProductInfo,{DUzXnaN48:false,FRytAzSzV:\"Text fields\",GMyA10nT4:tcUmjvcWI,height:\"100%\",id:\"zvVsepDXt\",layoutId:\"zvVsepDXt\",lcpzB9FE2:true,MKrmhv4TZ:true,OmlRyfgK7:false,PRzxhUuxZ:\"브랜드 국문명\",t2XNqsk7R:\"Item Name\",variant:\"hJ5dNSmEK\",width:\"100%\",yMuwpeRe3:0,Zb3Fui3ey:xXmCMe9gO})})}),OJ320Z4W3&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-5v4017-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"MF8xRPGkM-container\",nodeId:\"MF8xRPGkM\",rendersWithMotion:true,scopeId:\"Bg8Xl4khW\",children:/*#__PURE__*/_jsx(Icon,{fill:false,height:\"100%\",id:\"MF8xRPGkM\",layoutId:\"MF8xRPGkM\",size:15,type:\"chevronRight\",weight:\"bold\",width:\"100%\"})})})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-O9Xi9.framer-1ob7sz0, .framer-O9Xi9 .framer-1ob7sz0 { display: block; }\",\".framer-O9Xi9.framer-1n7j3r2 { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 4px; height: min-content; justify-content: flex-start; overflow: hidden; padding: 0px; position: relative; text-decoration: none; width: min-content; }\",\".framer-O9Xi9 .framer-1cnk092-container, .framer-O9Xi9 .framer-5v4017-container { flex: none; height: auto; position: relative; width: auto; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 19\n * @framerIntrinsicWidth 108\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"jtObqlx3u\":\"url\",\"xXmCMe9gO\":\"lastSalePrice\",\"tcUmjvcWI\":\"lastSalePercent\",\"OJ320Z4W3\":\"visible\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerBg8Xl4khW=withCSS(Component,css,\"framer-O9Xi9\");export default FramerBg8Xl4khW;FramerBg8Xl4khW.displayName=\"Productinfo_children\";FramerBg8Xl4khW.defaultProps={height:19,width:108};addPropertyControls(FramerBg8Xl4khW,{jtObqlx3u:{title:\"url\",type:ControlType.Link},xXmCMe9gO:{defaultValue:1e4,displayStepper:false,title:\"Last Sale Price\",type:ControlType.Number},tcUmjvcWI:{defaultValue:10,title:\"Last Sale Percent\",type:ControlType.Number},OJ320Z4W3:{defaultValue:true,title:\"Visible\",type:ControlType.Boolean}});addFonts(FramerBg8Xl4khW,[{explicitInter:true,fonts:[]},...ProductInfoFonts,...IconFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerBg8Xl4khW\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerVariables\":\"{\\\"jtObqlx3u\\\":\\\"url\\\",\\\"xXmCMe9gO\\\":\\\"lastSalePrice\\\",\\\"tcUmjvcWI\\\":\\\"lastSalePercent\\\",\\\"OJ320Z4W3\\\":\\\"visible\\\"}\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerIntrinsicWidth\":\"108\",\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicHeight\":\"19\",\"framerColorSyntax\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerContractVersion\":\"1\",\"framerAutoSizeImages\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (dc53115)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import ProductProvider from\"https://framerusercontent.com/modules/KbHpzadKlTHZMPIgErtm/rMoN0UNCTkzEGgukeJzI/ProductProvider.js\";import Productinfo_children from\"https://framerusercontent.com/modules/pwTOgCS0rQUSOETdj8OS/T8qrPxVEUR7MaIReUm2B/Bg8Xl4khW.js\";const Productinfo_childrenFonts=getFonts(Productinfo_children);const ProductProviderFonts=getFonts(ProductProvider);const serializationHash=\"framer-geSeI\";const variantClassNames={WqP3TGQRm:\"framer-v-1cjczwz\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const getProps=({height,id,productNo,width,...props})=>{return{...props,gGmom2rf4:productNo??props.gGmom2rf4};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,gGmom2rf4,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"WqP3TGQRm\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1cjczwz\",className,classNames),\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"WqP3TGQRm\",ref:refBinding,style:{...style},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-dvccvb-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"xUAlqHBLp-container\",nodeId:\"xUAlqHBLp\",rendersWithMotion:true,scopeId:\"Yn1eSbhmb\",children:/*#__PURE__*/_jsx(ProductProvider,{fallbackChildren:[/*#__PURE__*/_jsx(ComponentViewportProvider,{height:19,width:\"89px\",children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1n6qbdp-container\",inComponentSlot:true,layoutDependency:layoutDependency,layoutId:\"XQJxWqpL7-container\",nodeId:\"XQJxWqpL7\",rendersWithMotion:true,scopeId:\"Yn1eSbhmb\",children:/*#__PURE__*/_jsx(Productinfo_children,{height:\"100%\",id:\"XQJxWqpL7\",layoutId:\"XQJxWqpL7\",OJ320Z4W3:false,tcUmjvcWI:10,width:\"100%\",xXmCMe9gO:1e4})})})],height:\"100%\",id:\"xUAlqHBLp\",layoutId:\"xUAlqHBLp\",productNo:gGmom2rf4,width:\"100%\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:19,width:\"89px\",children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1n6qbdp-container\",inComponentSlot:true,layoutDependency:layoutDependency,layoutId:\"XQJxWqpL7-container\",nodeId:\"XQJxWqpL7\",rendersWithMotion:true,scopeId:\"Yn1eSbhmb\",children:/*#__PURE__*/_jsx(Productinfo_children,{height:\"100%\",id:\"XQJxWqpL7\",layoutId:\"XQJxWqpL7\",OJ320Z4W3:false,tcUmjvcWI:10,width:\"100%\",xXmCMe9gO:1e4})})})})})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-geSeI.framer-m5k5lj, .framer-geSeI .framer-m5k5lj { display: block; }\",\".framer-geSeI.framer-1cjczwz { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-start; overflow: hidden; padding: 0px; position: relative; width: min-content; }\",\".framer-geSeI .framer-dvccvb-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-geSeI .framer-1n6qbdp-container { height: auto; position: relative; width: auto; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 19\n * @framerIntrinsicWidth 89\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"gGmom2rf4\":\"productNo\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerYn1eSbhmb=withCSS(Component,css,\"framer-geSeI\");export default FramerYn1eSbhmb;FramerYn1eSbhmb.displayName=\"Product 2\";FramerYn1eSbhmb.defaultProps={height:19,width:89};addPropertyControls(FramerYn1eSbhmb,{gGmom2rf4:{defaultValue:\"\",title:\"Product No\",type:ControlType.String}});addFonts(FramerYn1eSbhmb,[{explicitInter:true,fonts:[]},...Productinfo_childrenFonts,...ProductProviderFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerYn1eSbhmb\",\"slots\":[],\"annotations\":{\"framerColorSyntax\":\"true\",\"framerImmutableVariables\":\"true\",\"framerContractVersion\":\"1\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicHeight\":\"19\",\"framerAutoSizeImages\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerVariables\":\"{\\\"gGmom2rf4\\\":\\\"productNo\\\"}\",\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicWidth\":\"89\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (552ec80)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,getLoadingLazyAtYPosition,Image,useComponentViewport,useLocaleInfo,useVariantState,withCSS,withFX}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";const MotionDivWithFX=withFX(motion.div);const serializationHash=\"framer-lKIEX\";const variantClassNames={cPraSQhTN:\"framer-v-ic37sj\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants===null||variants===void 0?void 0:variants.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const animation={opacity:0,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:0,y:20};const transition1={damping:50,delay:.3,mass:1,stiffness:150,type:\"spring\"};const transition2={bounce:.2,delay:0,duration:.4,type:\"spring\"};const toResponsiveImage=value=>{if(typeof value===\"object\"&&value!==null&&typeof value.src===\"string\"){return value;}return typeof value===\"string\"?{src:value}:undefined;};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value!==null&&value!==void 0?value:config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const getProps=({eP,height,id,width,...props})=>{var _ref;return{...props,Y8GN61Ixv:(_ref=eP!==null&&eP!==void 0?eP:props.Y8GN61Ixv)!==null&&_ref!==void 0?_ref:{src:\"https://framerusercontent.com/images/SQ3k3izx0fsRWBmzwXlPRgMBgk.png\"}};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,Y8GN61Ixv,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"cPraSQhTN\",variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const ref1=React.useRef(null);const defaultLayoutId=React.useId();const sharedStyleClassNames=[];const componentViewport=useComponentViewport();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId!==null&&layoutId!==void 0?layoutId:defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition2,children:/*#__PURE__*/_jsx(MotionDivWithFX,{...restProps,...gestureHandlers,__framer__animate:{transition:transition1},__framer__animateOnce:true,__framer__enter:animation,__framer__styleAppearEffectEnabled:true,__framer__threshold:.5,__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,className:cx(serializationHash,...sharedStyleClassNames,\"framer-ic37sj\",className,classNames),\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"cPraSQhTN\",ref:ref!==null&&ref!==void 0?ref:ref1,style:{...style},children:/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fit\",loading:getLoadingLazyAtYPosition(((componentViewport===null||componentViewport===void 0?void 0:componentViewport.y)||0)+0+((((componentViewport===null||componentViewport===void 0?void 0:componentViewport.height)||200)-0-69)/2+0+0)),pixelHeight:339,pixelWidth:1921,sizes:(componentViewport===null||componentViewport===void 0?void 0:componentViewport.width)||\"100vw\",...toResponsiveImage(Y8GN61Ixv),...{positionX:\"center\",positionY:\"center\"}},className:\"framer-1hwczst\",layoutDependency:layoutDependency,layoutId:\"bD82qnqkJ\"})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-lKIEX.framer-1g8cp6s, .framer-lKIEX .framer-1g8cp6s { display: block; }\",\".framer-lKIEX.framer-ic37sj { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: hidden; padding: 0px; position: relative; width: 350px; }\",\".framer-lKIEX .framer-1hwczst { aspect-ratio: 5.6521739130434785 / 1; flex: none; height: var(--framer-aspect-ratio-supported, 35px); overflow: hidden; position: relative; width: 100%; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-lKIEX.framer-ic37sj { gap: 0px; } .framer-lKIEX.framer-ic37sj > * { margin: 0px; margin-bottom: calc(10px / 2); margin-top: calc(10px / 2); } .framer-lKIEX.framer-ic37sj > :first-child { margin-top: 0px; } .framer-lKIEX.framer-ic37sj > :last-child { margin-bottom: 0px; } }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 200\n * @framerIntrinsicWidth 350\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"Y8GN61Ixv\":\"eP\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramerZAcPTC7k1=withCSS(Component,css,\"framer-lKIEX\");export default FramerZAcPTC7k1;FramerZAcPTC7k1.displayName=\"Logo\";FramerZAcPTC7k1.defaultProps={height:200,width:350};addPropertyControls(FramerZAcPTC7k1,{Y8GN61Ixv:{__defaultAssetReference:\"data:framer/asset-reference,SQ3k3izx0fsRWBmzwXlPRgMBgk.png?originalFilename=29edition_Logo%28W%29.png&preferredSize=full\",title:\"EP\",type:ControlType.ResponsiveImage}});addFonts(FramerZAcPTC7k1,[{explicitInter:true,fonts:[]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerZAcPTC7k1\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerVariables\":\"{\\\"Y8GN61Ixv\\\":\\\"eP\\\"}\",\"framerIntrinsicHeight\":\"200\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerComponentViewportWidth\":\"true\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"350\",\"framerDisplayContentsDiv\":\"false\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ZAcPTC7k1.map","// Generated by Framer (1f5f6d9)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"CUSTOM;Pretendard Regular\",\"CUSTOM;Pretendard Bold\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Pretendard Regular\",source:\"custom\",url:\"https://framerusercontent.com/assets/t7lebLYx2xwMs9MrDdMh5EKeA.woff2\"},{family:\"Pretendard Bold\",source:\"custom\",url:\"https://framerusercontent.com/assets/TDgt4wnSbW6ssMiUHMKSTjZfpQ.woff2\"}]}];export const css=['.framer-jyLSy .framer-styles-preset-1mo5epm:not(.rich-text-wrapper), .framer-jyLSy .framer-styles-preset-1mo5epm.rich-text-wrapper p { --framer-font-family: \"Pretendard Regular\", \"Pretendard Regular Placeholder\", sans-serif; --framer-font-family-bold: \"Pretendard Bold\", \"Pretendard Bold Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 18px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.6em; --framer-paragraph-spacing: 0px; --framer-text-alignment: center; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: uppercase; }','@media (max-width: 1439px) and (min-width: 1280px) { .framer-jyLSy .framer-styles-preset-1mo5epm:not(.rich-text-wrapper), .framer-jyLSy .framer-styles-preset-1mo5epm.rich-text-wrapper p { --framer-font-family: \"Pretendard Regular\", \"Pretendard Regular Placeholder\", sans-serif; --framer-font-family-bold: \"Pretendard Bold\", \"Pretendard Bold Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 18px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.6em; --framer-paragraph-spacing: 0px; --framer-text-alignment: center; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: uppercase; } }','@media (max-width: 1279px) and (min-width: 0px) { .framer-jyLSy .framer-styles-preset-1mo5epm:not(.rich-text-wrapper), .framer-jyLSy .framer-styles-preset-1mo5epm.rich-text-wrapper p { --framer-font-family: \"Pretendard Regular\", \"Pretendard Regular Placeholder\", sans-serif; --framer-font-family-bold: \"Pretendard Bold\", \"Pretendard Bold Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.6em; --framer-paragraph-spacing: 0px; --framer-text-alignment: center; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: uppercase; } }'];export const className=\"framer-jyLSy\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (bab6da3)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"CUSTOM;Pretendard Bold\",\"CUSTOM;Pretendard Bold\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Pretendard Bold\",source:\"custom\",url:\"https://framerusercontent.com/assets/TDgt4wnSbW6ssMiUHMKSTjZfpQ.woff2\"}]}];export const css=['.framer-dqAWQ .framer-styles-preset-c93gqk:not(.rich-text-wrapper), .framer-dqAWQ .framer-styles-preset-c93gqk.rich-text-wrapper h6 { --framer-font-family: \"Pretendard Bold\", \"Pretendard Bold Placeholder\", sans-serif; --framer-font-family-bold: \"Pretendard Bold\", \"Pretendard Bold Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 32px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 0px; --framer-text-alignment: center; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: uppercase; }','@media (max-width: 1439px) and (min-width: 1280px) { .framer-dqAWQ .framer-styles-preset-c93gqk:not(.rich-text-wrapper), .framer-dqAWQ .framer-styles-preset-c93gqk.rich-text-wrapper h6 { --framer-font-family: \"Pretendard Bold\", \"Pretendard Bold Placeholder\", sans-serif; --framer-font-family-bold: \"Pretendard Bold\", \"Pretendard Bold Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 32px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 0px; --framer-text-alignment: center; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: uppercase; } }','@media (max-width: 1279px) and (min-width: 0px) { .framer-dqAWQ .framer-styles-preset-c93gqk:not(.rich-text-wrapper), .framer-dqAWQ .framer-styles-preset-c93gqk.rich-text-wrapper h6 { --framer-font-family: \"Pretendard Bold\", \"Pretendard Bold Placeholder\", sans-serif; --framer-font-family-bold: \"Pretendard Bold\", \"Pretendard Bold Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 32px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 0px; --framer-text-alignment: center; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: uppercase; } }'];export const className=\"framer-dqAWQ\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (cf240c2)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"CUSTOM;Pretendard Bold\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Pretendard Bold\",source:\"custom\",url:\"https://framerusercontent.com/assets/TDgt4wnSbW6ssMiUHMKSTjZfpQ.woff2\"}]}];export const css=['.framer-GWKe0 .framer-styles-preset-1ihvht4:not(.rich-text-wrapper), .framer-GWKe0 .framer-styles-preset-1ihvht4.rich-text-wrapper p { --framer-font-family: \"Pretendard Bold\", \"Pretendard Bold Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 24px; --framer-font-style: normal; --framer-font-weight: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: uppercase; }'];export const className=\"framer-GWKe0\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (c56cc2c)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"CUSTOM;Pretendard SemiBold\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Pretendard SemiBold\",source:\"custom\",url:\"https://framerusercontent.com/assets/bUf4UcuhtdSAGwhiC3unbHsuLB0.woff2\"}]}];export const css=['.framer-YHXxI .framer-styles-preset-2je577:not(.rich-text-wrapper), .framer-YHXxI .framer-styles-preset-2je577.rich-text-wrapper p { --framer-font-family: \"Pretendard SemiBold\", \"Pretendard SemiBold Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 40px; --framer-font-style: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-letter-spacing: 0.1em; --framer-line-height: 1.1em; --framer-paragraph-spacing: 0px; --framer-text-alignment: center; --framer-text-color: #000000; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: uppercase; }'];export const className=\"framer-YHXxI\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (1f5f6d9)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"CUSTOM;Pretendard Regular\",\"CUSTOM;Pretendard Bold\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"Pretendard Regular\",source:\"custom\",url:\"https://framerusercontent.com/assets/t7lebLYx2xwMs9MrDdMh5EKeA.woff2\"},{family:\"Pretendard Bold\",source:\"custom\",url:\"https://framerusercontent.com/assets/TDgt4wnSbW6ssMiUHMKSTjZfpQ.woff2\"}]}];export const css=['.framer-OKhRd .framer-styles-preset-norzui:not(.rich-text-wrapper), .framer-OKhRd .framer-styles-preset-norzui.rich-text-wrapper p { --framer-font-family: \"Pretendard Regular\", \"Pretendard Regular Placeholder\", sans-serif; --framer-font-family-bold: \"Pretendard Bold\", \"Pretendard Bold Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.6em; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: #474747; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }','@media (max-width: 1439px) and (min-width: 1280px) { .framer-OKhRd .framer-styles-preset-norzui:not(.rich-text-wrapper), .framer-OKhRd .framer-styles-preset-norzui.rich-text-wrapper p { --framer-font-family: \"Pretendard Regular\", \"Pretendard Regular Placeholder\", sans-serif; --framer-font-family-bold: \"Pretendard Bold\", \"Pretendard Bold Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.6em; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: #474747; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }','@media (max-width: 1279px) and (min-width: 0px) { .framer-OKhRd .framer-styles-preset-norzui:not(.rich-text-wrapper), .framer-OKhRd .framer-styles-preset-norzui.rich-text-wrapper p { --framer-font-family: \"Pretendard Regular\", \"Pretendard Regular Placeholder\", sans-serif; --framer-font-family-bold: \"Pretendard Bold\", \"Pretendard Bold Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 14px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.6em; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: #474747; --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }'];export const className=\"framer-OKhRd\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef}from\"react\";import{useRef,useEffect}from\"react\";import{useInView}from\"framer-motion\";import{useTrackClickComponent,useTrackViewComponent}from\"https://asset.29cm.co.kr/contents/framer/components/canvas/ComponentEventTracker/ComponentEventTracker.hooks.event.js\";const getComponent=(props,Component)=>Component[\"displayName\"]||props[\"name\"]||props[\"data-framer-name\"];// prettier-ignore\nconst mergeRefs=(...refs)=>{return value=>{refs.forEach(ref=>{if(typeof ref===\"function\"){ref(value);}else if(ref!=null){ref.current=value;}});};};export function withViewEventTracker(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const component=getComponent(props,Component);const containerRef=useRef(null);const isInView=useInView(containerRef);const{trackViewComponent}=useTrackViewComponent();useEffect(()=>{if(!isInView){return;}trackViewComponent(component);},[isInView]);return /*#__PURE__*/_jsx(Component,{...props,ref:mergeRefs(ref,containerRef)});});}export function withClickEventTracker(Component){return props=>{const component=getComponent(props,Component);const{trackClickComponent}=useTrackClickComponent();const handleClick=e=>{if(e.isTriggered){return;}e.isTriggered=true;trackClickComponent(component);};return /*#__PURE__*/_jsx(Component,{...props,onTap:handleClick});};}export function withViewClickEventTracker(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const component=getComponent(props,Component);const containerRef=useRef(null);const isInView=useInView(containerRef);const{trackViewComponent}=useTrackViewComponent();const{trackClickComponent}=useTrackClickComponent();useEffect(()=>{if(!isInView){return;}trackViewComponent(component);},[isInView]);const handleClick=e=>{if(e.isTriggered){return;}e.isTriggered=true;trackClickComponent(component);};return /*#__PURE__*/_jsx(Component,{ref:mergeRefs(ref,containerRef),...props,onTap:handleClick});});}\nexport const __FramerMetadata__ = {\"exports\":{\"withClickEventTracker\":{\"type\":\"reactHoc\",\"name\":\"withClickEventTracker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withViewClickEventTracker\":{\"type\":\"reactHoc\",\"name\":\"withViewClickEventTracker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withViewEventTracker\":{\"type\":\"reactHoc\",\"name\":\"withViewEventTracker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Analytics.map","var ScheduleType = /* @__PURE__ */ ((ScheduleType2) => {\n  ScheduleType2[ScheduleType2[\"MANUAL\"] = 0] = \"MANUAL\";\n  ScheduleType2[ScheduleType2[\"REPEAT\"] = 1] = \"REPEAT\";\n  return ScheduleType2;\n})(ScheduleType || {});\nexport {\n  ScheduleType\n};\n","import { useRef, useState, useEffect, useCallback } from \"react\";\nconst useVisibilityAwareInterval = (callback, delay) => {\n  const savedCallback = useRef(callback);\n  const intervalIdRef = useRef(null);\n  const [isVisible, setIsVisible] = useState(false);\n  useEffect(() => {\n    savedCallback.current = callback;\n  }, [callback]);\n  const startInterval = useCallback(() => {\n    if (intervalIdRef.current !== null || delay === null) {\n      return;\n    }\n    intervalIdRef.current = setInterval(() => {\n      savedCallback.current();\n    }, delay);\n  }, [delay]);\n  const stopInterval = useCallback(() => {\n    if (intervalIdRef.current !== null) {\n      clearInterval(intervalIdRef.current);\n      intervalIdRef.current = null;\n    }\n  }, []);\n  useEffect(() => {\n    const handleVisibilityChange = () => {\n      setIsVisible(document.visibilityState === \"visible\");\n    };\n    document.addEventListener(\"visibilitychange\", handleVisibilityChange);\n    return () => {\n      document.removeEventListener(\"visibilitychange\", handleVisibilityChange);\n    };\n  }, []);\n  useEffect(() => {\n    if (delay === null) {\n      stopInterval();\n      return;\n    }\n    if (isVisible) {\n      startInterval();\n    } else {\n      stopInterval();\n    }\n    return () => {\n      stopInterval();\n    };\n  }, [isVisible, delay, startInterval, stopInterval]);\n  useEffect(() => {\n    setIsVisible(document.visibilityState === \"visible\");\n  }, []);\n};\nexport {\n  useVisibilityAwareInterval\n};\n","import { createKRTimeZoneDate } from \"../../../utils/createUTCDate.js\";\nimport { ScheduleType } from \"./Schedulable.types.js\";\nimport { isAbove, composeFramerDateTime } from \"../../../utils/date.js\";\nimport { isWithinInterval } from \"../../../node_modules/date-fns/isWithinInterval.js\";\nimport { differenceInCalendarDays } from \"../../../node_modules/date-fns/differenceInCalendarDays.js\";\nconst findCurrentSchedule = (schedules) => {\n  const now = createKRTimeZoneDate();\n  return schedules.find((schedule, index) => {\n    const {\n      scheduledAt\n    } = schedule;\n    const nextSchedule = schedules[index + 1];\n    const nextScheduledAt = (nextSchedule == null ? void 0 : nextSchedule.scheduledAt) ? nextSchedule.scheduledAt : null;\n    const hasNextSchedule = nextScheduledAt != null;\n    const isLast = !hasNextSchedule && isAbove(now, scheduledAt);\n    const isWithin = hasNextSchedule && isWithinInterval(now, {\n      start: scheduledAt,\n      end: nextScheduledAt\n    });\n    return isLast || isWithin;\n  });\n};\nconst toSchedules = (scheduleType, manualSchedules, repeatSchedules) => {\n  const schedules = [];\n  switch (scheduleType) {\n    case ScheduleType.MANUAL:\n      schedules.push(...convertManualSchedulesToSchedules(manualSchedules));\n      break;\n    case ScheduleType.REPEAT:\n      schedules.push(...convertRepeatSchedulesToSchedules(repeatSchedules));\n      break;\n  }\n  return sortSchedulesAscending(schedules);\n};\nconst convertManualSchedulesToSchedules = (manualSchedules) => {\n  return manualSchedules.map(({\n    scheduledAt,\n    sequence\n  }) => ({\n    scheduledAt: composeFramerDateTime(scheduledAt),\n    sequence\n  }));\n};\nconst convertRepeatSchedulesToSchedules = (repeatSchedules) => {\n  const isMultiple = repeatSchedules.length > 1;\n  return repeatSchedules.flatMap((repeatSchedule, repeatScheduleIndex) => {\n    const {\n      startAt,\n      endAt,\n      repeatAt\n    } = repeatSchedule;\n    const diff = differenceInCalendarDays(endAt, startAt);\n    return Array.from({\n      length: diff + 1\n    }, (_, index) => {\n      const date = createKRTimeZoneDate(startAt);\n      const {\n        hours,\n        minutes,\n        seconds\n      } = repeatAt;\n      date.setDate(date.getDate() + index);\n      date.setHours(hours, minutes, seconds);\n      return {\n        scheduledAt: date,\n        sequence: (isMultiple ? repeatScheduleIndex : index) + 1\n      };\n    });\n  });\n};\nconst sortSchedulesAscending = (schedules) => {\n  return [...schedules].sort((x, y) => x.scheduledAt.getTime() - y.scheduledAt.getTime());\n};\nexport {\n  findCurrentSchedule,\n  toSchedules\n};\n","import { useMemo, useState } from \"react\";\nimport { useVisibilityAwareInterval } from \"../../../hooks/useVisibilityAwareInterval.js\";\nimport { toSchedules, findCurrentSchedule } from \"./Schedulable.utils.js\";\nconst MS_IN_SECOND = 1e3;\nconst useCurrentSchedule = (scheduleType, manualSchedules, repeatSchedules) => {\n  const schedules = useMemo(() => toSchedules(scheduleType, manualSchedules, repeatSchedules), [scheduleType, manualSchedules, repeatSchedules]);\n  const [schedule, setSchedule] = useState(findCurrentSchedule(schedules));\n  const isLastScheduleReached = useMemo(() => {\n    if (schedules.length === 0) {\n      return true;\n    }\n    const lastSchedule = schedules[schedules.length - 1];\n    const now = /* @__PURE__ */ new Date();\n    return lastSchedule && lastSchedule.scheduledAt.getTime() <= now.getTime();\n  }, [schedules]);\n  useVisibilityAwareInterval(() => {\n    const current = findCurrentSchedule(schedules);\n    const isEquals = (schedule == null ? void 0 : schedule.scheduledAt) === (current == null ? void 0 : current.scheduledAt);\n    if (isEquals) {\n      return;\n    }\n    setSchedule(current);\n  }, isLastScheduleReached ? null : MS_IN_SECOND);\n  return schedule;\n};\nexport {\n  useCurrentSchedule\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { withCSS, addPropertyControls, ControlType } from \"framer\";\nimport { ScheduleType } from \"./Schedulable.types.js\";\nimport { useCurrentSchedule } from \"./Schedulable.hooks.js\";\nimport { Placeholder } from \"../../@shared/Placeholder/Placeholder.js\";\nimport { useIsMounted } from \"../../../hooks/useIsMounted.js\";\nconst COMPONENT_NAME = \"schedulable\";\nconst css = [`\n    .${COMPONENT_NAME}-container {\n      width: 100%;\n      height: auto;\n    }\n  `, `\n    .${COMPONENT_NAME}-container > div {\n      width: 100% !important;\n    }\n  `];\nconst Schedulable = withCSS(({\n  scheduleType,\n  schedules,\n  repeatSchedules,\n  components\n}) => {\n  const schedule = useCurrentSchedule(scheduleType, schedules, repeatSchedules);\n  const isMounted = useIsMounted();\n  const hasSequence = (schedule == null ? void 0 : schedule.sequence) !== void 0;\n  if (components.length === 0) {\n    return /* @__PURE__ */ jsx(Placeholder, {});\n  }\n  if (!isMounted) {\n    return null;\n  }\n  return /* @__PURE__ */ jsx(\"div\", { className: `${COMPONENT_NAME}-container`, children: hasSequence ? components[schedule.sequence - 1] : null }, `schedulable-${(schedule == null ? void 0 : schedule.sequence) ?? 0}`);\n}, css);\naddPropertyControls(Schedulable, {\n  scheduleType: {\n    type: ControlType.Enum,\n    title: \"노출 예약 유형\",\n    options: [ScheduleType.MANUAL, ScheduleType.REPEAT],\n    optionTitles: [\"수동\", \"반복\"],\n    displaySegmentedControl: true\n  },\n  schedules: {\n    hidden: ({\n      scheduleType\n    }) => scheduleType !== ScheduleType.MANUAL,\n    title: \"수동 노출 일정 목록\",\n    type: ControlType.Array,\n    control: {\n      title: \"날짜 및 요소 번호\",\n      type: ControlType.Object,\n      controls: {\n        scheduledAt: {\n          title: \"요소 노출 시작일시\",\n          type: ControlType.Object,\n          controls: {\n            date: {\n              type: ControlType.Date,\n              title: \"날짜\",\n              defaultValue: (/* @__PURE__ */ new Date()).toString()\n            },\n            hours: {\n              type: ControlType.Number,\n              title: \"시\",\n              description: \"0 ~ 23시 기준\",\n              defaultValue: 0,\n              min: 0,\n              max: 23,\n              unit: \"시\",\n              step: 1,\n              displayStepper: true\n            },\n            minutes: {\n              type: ControlType.Number,\n              title: \"분\",\n              defaultValue: 0,\n              min: 0,\n              max: 59,\n              unit: \"분\",\n              step: 1,\n              displayStepper: true\n            },\n            seconds: {\n              type: ControlType.Number,\n              title: \"초\",\n              defaultValue: 0,\n              min: 0,\n              max: 59,\n              unit: \"초\",\n              step: 1,\n              displayStepper: true\n            }\n          }\n        },\n        sequence: {\n          title: \"요소 번호\",\n          type: ControlType.Number,\n          defaultValue: 1,\n          unit: \"번째\",\n          min: 1,\n          displayStepper: true\n        }\n      }\n    }\n  },\n  repeatSchedules: {\n    hidden: ({\n      scheduleType\n    }) => scheduleType !== ScheduleType.REPEAT,\n    type: ControlType.Array,\n    title: \"반복 노출 일정 목록\",\n    description: \"하나의 일정만 입력한 경우 - 하나의 일정에 따라 요소들이 반복됩니다.\\nex. 일정 A 에 따라 요소 X, Y 반복\\n\\n여러 일정을 입력한 경우 - 여러 개의 일정에 따라 요소들이 각각 반복됩니다.\\nex. 일정 A 에 요소 X, 일정 B 에 요소 Y 반복\",\n    control: {\n      type: ControlType.Object,\n      title: \"반복 일정\",\n      controls: {\n        startAt: {\n          type: ControlType.Date,\n          title: \"시작일\",\n          description: \"반복 일정이 시작되는 날짜를 입력합니다.\",\n          defaultValue: (/* @__PURE__ */ new Date()).toString()\n        },\n        endAt: {\n          type: ControlType.Date,\n          title: \"종료일\",\n          description: \"반복 일정이 종료되는 날짜를 입력합니다.\",\n          defaultValue: (/* @__PURE__ */ new Date()).toString()\n        },\n        repeatAt: {\n          type: ControlType.Object,\n          title: \"반복 시작 시간\",\n          description: \"일정이 매일 반복되는 시간을 입력합니다.\\nex) 10시 0분 0초 입력 -> 매일 오전 10시에 컴포넌트 변경\",\n          controls: {\n            hours: {\n              type: ControlType.Number,\n              title: \"시\",\n              defaultValue: 0,\n              min: 0,\n              max: 23,\n              unit: \"시\",\n              step: 1,\n              displayStepper: true\n            },\n            minutes: {\n              type: ControlType.Number,\n              title: \"분\",\n              defaultValue: 0,\n              min: 0,\n              max: 59,\n              unit: \"분\",\n              step: 1,\n              displayStepper: true\n            },\n            seconds: {\n              type: ControlType.Number,\n              title: \"초\",\n              defaultValue: 0,\n              min: 0,\n              max: 59,\n              unit: \"초\",\n              step: 1,\n              displayStepper: true\n            }\n          }\n        }\n      }\n    }\n  },\n  components: {\n    title: \"요소 목록\",\n    description: \"최상단부터 1번째로 시작\",\n    type: ControlType.Array,\n    control: {\n      title: \"요소\",\n      type: ControlType.ComponentInstance\n    }\n  }\n});\nexport {\n  Schedulable\n};\n","import{Schedulable}from\"https://asset.29cm.co.kr/contents/framer/components/primitives/Schedulable/Schedulable.js\";Schedulable.displayName=\"Schedulable\";/**\n * @framerDisableUnlink\n */export default Schedulable;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Schedulable\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Schedulable.map","import{Countdown}from\"https://asset.29cm.co.kr/contents/framer/components/systems/Countdown/Countdown.js\";Countdown.displayName=\"Countdown\";/**\n * @framerDisableUnlink\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default Countdown;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Countdown\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerDisableUnlink\":\"* @framerSupportedLayoutWidth auto\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Countdown.map","// Generated by Framer (f21d278)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,RichText,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Schedulable from\"https://framerusercontent.com/modules/bv2yzxT3iEOjAMleVPGP/dz4wxqcgggN2LjmSBWfn/Schedulable.js\";import Countdown from\"https://framerusercontent.com/modules/MYr1AFTnHiOBXB2sbTDs/T8xt0iX6DU3QCLROaNw1/Countdown.js\";const CountdownFonts=getFonts(Countdown);const SchedulableFonts=getFonts(Schedulable);const cycleOrder=[\"InbSkRciy\",\"bGyzOaTLX\",\"cZmw3YLA8\",\"fld32NRlk\"];const serializationHash=\"framer-vMdgZ\";const variantClassNames={bGyzOaTLX:\"framer-v-5l3ake\",cZmw3YLA8:\"framer-v-1m3syqy\",fld32NRlk:\"framer-v-15frcss\",InbSkRciy:\"framer-v-10txde5\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const cvRPfO_oF=undefined;const jq1oSTO8b=undefined;const A65qOvpHN=undefined;const E_bCBBmYS=undefined;const L0bgxUyiY=undefined;const I750mv33P=undefined;const i6ShT9Z79=undefined;const j6wLiMkYg=undefined;const qIYt8wsAH=undefined;const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={\"Mo-Dark\":\"bGyzOaTLX\",\"Mo-Light\":\"InbSkRciy\",\"Web-Dark\":\"fld32NRlk\",\"Web-Light\":\"cZmw3YLA8\"};const Variants=motion.create(React.Fragment);const getProps=({_,_1,_2,_3,_4,_5,_6,_7,_8,height,id,width,...props})=>{return{...props,A65qOvpHN:_??props.A65qOvpHN??\"Ep.30\",cvRPfO_oF:_7??props.cvRPfO_oF??\"rgb(255, 255, 255)\",E_bCBBmYS:_3??props.E_bCBBmYS??true,i6ShT9Z79:_5??props.i6ShT9Z79??true,I750mv33P:_4??props.I750mv33P??\"한겨울 추위를 완벽하게 막아줄 단 하나의 아이템, 헤비 아우터. 패딩부터 퍼, 무스탕까지 최대 57% 혜택으로 겨울 스타일에 자유를 더하세요.\",j6wLiMkYg:_6??props.j6wLiMkYg??\"2025-03-11T00:00:00.000Z\",jq1oSTO8b:_1??props.jq1oSTO8b??true,L0bgxUyiY:_2??props.L0bgxUyiY??\"한겨울에 맞설 헤비 아우터\",qIYt8wsAH:_8??props.qIYt8wsAH??true,variant:humanReadableVariantMap[props.variant]??props.variant??\"InbSkRciy\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,A65qOvpHN,jq1oSTO8b,L0bgxUyiY,E_bCBBmYS,I750mv33P,i6ShT9Z79,j6wLiMkYg,cvRPfO_oF,qIYt8wsAH,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"InbSkRciy\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-10txde5\",className,classNames),\"data-framer-name\":\"Mo-Light\",layoutDependency:layoutDependency,layoutId:\"InbSkRciy\",ref:refBinding,style:{backgroundColor:cvRPfO_oF,...style},...addPropertyOverrides({bGyzOaTLX:{\"data-framer-name\":\"Mo-Dark\"},cZmw3YLA8:{\"data-framer-name\":\"Web-Light\"},fld32NRlk:{\"data-framer-name\":\"Web-Dark\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-ghv9t1\",\"data-framer-name\":\"IntroTxt\",layoutDependency:layoutDependency,layoutId:\"cPMtu9WK2\",children:[jq1oSTO8b!==false&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-19k7mu9\",\"data-framer-name\":\"IntroHeader\",layoutDependency:layoutDependency,layoutId:\"ICr5IlSiM\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h1,{style:{\"--font-selector\":\"Q1VTVE9NVjI7UHJldGVuZGFyZCBCb2xk\",\"--framer-font-family\":'\"Pretendard Bold\", \"Pretendard Bold Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"700\",\"--framer-letter-spacing\":\"0.05em\",\"--framer-line-height\":\"1em\",\"--framer-text-alignment\":\"center\"},children:/*#__PURE__*/_jsx(motion.strong,{children:\"Ep.30\"})})}),className:\"framer-1ysixwg\",fonts:[\"CUSTOMV2;Pretendard Bold\",\"CUSTOMV2;Pretendard Black\"],layoutDependency:layoutDependency,layoutId:\"fGi4M3wF4\",style:{\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:A65qOvpHN,variants:{bGyzOaTLX:{\"--extracted-gdpscs\":\"rgb(255, 255, 255)\"},fld32NRlk:{\"--extracted-gdpscs\":\"rgb(255, 255, 255)\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({bGyzOaTLX:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h1,{style:{\"--font-selector\":\"Q1VTVE9NVjI7UHJldGVuZGFyZCBCb2xk\",\"--framer-font-family\":'\"Pretendard Bold\", \"Pretendard Bold Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"700\",\"--framer-letter-spacing\":\"0.05em\",\"--framer-line-height\":\"1em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-gdpscs, rgb(255, 255, 255))\"},children:/*#__PURE__*/_jsx(motion.strong,{children:\"Ep.30\"})})})},fld32NRlk:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h1,{style:{\"--font-selector\":\"Q1VTVE9NVjI7UHJldGVuZGFyZCBCb2xk\",\"--framer-font-family\":'\"Pretendard Bold\", \"Pretendard Bold Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"700\",\"--framer-letter-spacing\":\"0.05em\",\"--framer-line-height\":\"1em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-gdpscs, rgb(255, 255, 255))\"},children:/*#__PURE__*/_jsx(motion.strong,{children:\"Ep.30\"})})})}},baseVariant,gestureVariant)})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1hfajhs\",\"data-framer-name\":\"IntroDescription\",layoutDependency:layoutDependency,layoutId:\"YvpveF1Ia\",children:[E_bCBBmYS!==false&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NVjI7UHJldGVuZGFyZCBCb2xk\",\"--framer-font-family\":'\"Pretendard Bold\", \"Pretendard Bold Placeholder\", sans-serif',\"--framer-font-size\":\"24px\",\"--framer-font-weight\":\"700\",\"--framer-line-height\":\"1.3em\",\"--framer-text-alignment\":\"center\"},children:/*#__PURE__*/_jsx(motion.strong,{children:\"한겨울에 맞설 헤비 아우터\"})})}),className:\"framer-32cc3l\",fonts:[\"CUSTOMV2;Pretendard Bold\",\"CUSTOMV2;Pretendard Black\"],layoutDependency:layoutDependency,layoutId:\"f7reQ5VUf\",style:{\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:L0bgxUyiY,variants:{bGyzOaTLX:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\"},fld32NRlk:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({bGyzOaTLX:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NVjI7UHJldGVuZGFyZCBCb2xk\",\"--framer-font-family\":'\"Pretendard Bold\", \"Pretendard Bold Placeholder\", sans-serif',\"--framer-font-size\":\"24px\",\"--framer-font-weight\":\"700\",\"--framer-line-height\":\"1.3em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:/*#__PURE__*/_jsx(motion.strong,{children:\"한겨울에 맞설 헤비 아우터\"})})})},cZmw3YLA8:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NVjI7UHJldGVuZGFyZCBCb2xk\",\"--framer-font-family\":'\"Pretendard Bold\", \"Pretendard Bold Placeholder\", sans-serif',\"--framer-font-size\":\"28px\",\"--framer-font-weight\":\"700\",\"--framer-line-height\":\"1.3em\",\"--framer-text-alignment\":\"center\"},children:/*#__PURE__*/_jsx(motion.strong,{children:\"한겨울에 맞설 헤비 아우터\"})})})},fld32NRlk:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NVjI7UHJldGVuZGFyZCBCb2xk\",\"--framer-font-family\":'\"Pretendard Bold\", \"Pretendard Bold Placeholder\", sans-serif',\"--framer-font-size\":\"28px\",\"--framer-font-weight\":\"700\",\"--framer-line-height\":\"1.3em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:/*#__PURE__*/_jsx(motion.strong,{children:\"한겨울에 맞설 헤비 아우터\"})})})}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgUmVndWxhcg==\",\"--framer-font-family\":'\"Pretendard Regular\", \"Pretendard Regular Placeholder\", sans-serif',\"--framer-line-height\":\"1.6em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(0, 0, 0, 0.8))\",\"--framer-text-transform\":\"inherit\"},children:\"한겨울 추위를 완벽하게 막아줄 단 하나의 아이템, 헤비 아우터. 패딩부터 퍼, 무스탕까지 최대 57% 혜택으로 겨울 스타일에 자유를 더하세요.\"})}),className:\"framer-1dlpiuo\",fonts:[\"CUSTOM;Pretendard Regular\"],layoutDependency:layoutDependency,layoutId:\"UK3hlMHoJ\",style:{\"--extracted-r6o4lv\":\"rgba(0, 0, 0, 0.8)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:I750mv33P,variants:{bGyzOaTLX:{\"--extracted-r6o4lv\":\"rgba(255, 255, 255, 0.8)\"},fld32NRlk:{\"--extracted-r6o4lv\":\"rgba(255, 255, 255, 0.8)\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({bGyzOaTLX:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgUmVndWxhcg==\",\"--framer-font-family\":'\"Pretendard Regular\", \"Pretendard Regular Placeholder\", sans-serif',\"--framer-line-height\":\"1.6em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(255, 255, 255, 0.8))\",\"--framer-text-transform\":\"inherit\"},children:\"한겨울 추위를 완벽하게 막아줄 단 하나의 아이템, 헤비 아우터. 패딩부터 퍼, 무스탕까지 최대 57% 혜택으로 겨울 스타일에 자유를 더하세요.\"})})},cZmw3YLA8:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgUmVndWxhcg==\",\"--framer-font-family\":'\"Pretendard Regular\", \"Pretendard Regular Placeholder\", sans-serif',\"--framer-font-size\":\"18px\",\"--framer-line-height\":\"1.6em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(0, 0, 0, 0.8))\",\"--framer-text-transform\":\"inherit\"},children:\"한겨울 추위를 완벽하게 막아줄 단 하나의 아이템, 헤비 아우터. 패딩부터 퍼, 무스탕까지 최대 57% 혜택으로 겨울 스타일에 자유를 더하세요.\"})})},fld32NRlk:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgUmVndWxhcg==\",\"--framer-font-family\":'\"Pretendard Regular\", \"Pretendard Regular Placeholder\", sans-serif',\"--framer-font-size\":\"18px\",\"--framer-line-height\":\"1.6em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(255, 255, 255, 0.8))\",\"--framer-text-transform\":\"inherit\"},children:\"한겨울 추위를 완벽하게 막아줄 단 하나의 아이템, 헤비 아우터. 패딩부터 퍼, 무스탕까지 최대 57% 혜택으로 겨울 스타일에 자유를 더하세요.\"})})}},baseVariant,gestureVariant)})]})]}),i6ShT9Z79!==false&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1e41ywk-container\",\"data-framer-name\":\"SchedulableDatePC\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"s1KkadnSE-container\",name:\"SchedulableDatePC\",nodeId:\"s1KkadnSE\",rendersWithMotion:true,scopeId:\"Tyu7EX3in\",children:/*#__PURE__*/_jsx(Schedulable,{components:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-19k5oez\",\"data-framer-name\":\"ClosePC\",layoutDependency:layoutDependency,layoutId:\"jE4vZfLMe\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h4,{style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgQm9sZA==\",\"--framer-font-family\":'\"Pretendard Bold\", \"Pretendard Bold Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"700\",\"--framer-line-height\":\"1.4em\",\"--framer-text-color\":\"var(--extracted-1eung3n, var(--token-b1ac08ad-7b4b-4c67-863f-b6610ebf6923, rgb(196, 196, 196)))\"},children:\"이벤트 종료\"})}),className:\"framer-njnrdf\",fonts:[\"CUSTOM;Pretendard Bold\"],layoutDependency:layoutDependency,layoutId:\"tNeTnCqFO\",style:{\"--extracted-1eung3n\":\"var(--token-b1ac08ad-7b4b-4c67-863f-b6610ebf6923, rgb(196, 196, 196))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-sshjpi-container\",inComponentSlot:true,isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"CGCD0e4rL-container\",nodeId:\"CGCD0e4rL\",rendersWithMotion:true,scopeId:\"Tyu7EX3in\",children:/*#__PURE__*/_jsx(Countdown,{color:\"var(--token-a0534043-0dde-4df4-ae78-dd811455e368, rgb(160, 160, 160))\",dateDisplayFormat:\"'D'-D\",fontSize:14,height:\"100%\",id:\"CGCD0e4rL\",layoutId:\"CGCD0e4rL\",targetDateString:j6wLiMkYg,targetTimeString:\"23:59:59\",timeDisplayFormat:\"none\",width:\"100%\"})})})]})],height:\"100%\",id:\"s1KkadnSE\",layoutId:\"s1KkadnSE\",name:\"SchedulableDatePC\",repeatSchedules:[],schedules:[{scheduledAt:{date:\"2024-02-23T00:00:00.000Z\",hours:10,minutes:0,seconds:0},sequence:1}],scheduleType:0,width:\"100%\"})})}),qIYt8wsAH!==false&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-1ru61gx\",layoutDependency:layoutDependency,layoutId:\"QObkLMvPI\"})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-vMdgZ.framer-mfh7yw, .framer-vMdgZ .framer-mfh7yw { display: block; }\",\".framer-vMdgZ.framer-10txde5 { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: center; overflow: hidden; padding: 48px 20px 32px 20px; position: relative; width: 335px; }\",\".framer-vMdgZ .framer-ghv9t1 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-vMdgZ .framer-19k7mu9 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 8px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-vMdgZ .framer-1ysixwg { flex: none; height: auto; overflow: visible; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-vMdgZ .framer-1hfajhs { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 8px; height: min-content; justify-content: center; overflow: hidden; padding: 0px; position: relative; width: 100%; }\",\".framer-vMdgZ .framer-32cc3l, .framer-vMdgZ .framer-1dlpiuo { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-vMdgZ .framer-1e41ywk-container, .framer-vMdgZ .framer-sshjpi-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-vMdgZ .framer-19k5oez { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 5px; height: min-content; justify-content: center; overflow: hidden; padding: 0px; position: relative; width: min-content; }\",\".framer-vMdgZ .framer-njnrdf { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-vMdgZ .framer-1ru61gx { flex: none; height: 8px; overflow: hidden; position: relative; width: 100%; }\",\".framer-vMdgZ.framer-v-1m3syqy.framer-10txde5 { padding: 72px 50px 32px 50px; width: 1180px; }\",\".framer-vMdgZ.framer-v-1m3syqy .framer-1ru61gx, .framer-vMdgZ.framer-v-15frcss .framer-1ru61gx { height: 24px; }\",\".framer-vMdgZ.framer-v-15frcss.framer-10txde5 { padding: 72px 20px 32px 20px; width: 1180px; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 285.5\n * @framerIntrinsicWidth 335\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"bGyzOaTLX\":{\"layout\":[\"fixed\",\"auto\"]},\"cZmw3YLA8\":{\"layout\":[\"fixed\",\"auto\"]},\"fld32NRlk\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"A65qOvpHN\":\"_\",\"jq1oSTO8b\":\"_1\",\"L0bgxUyiY\":\"_2\",\"E_bCBBmYS\":\"_3\",\"I750mv33P\":\"_4\",\"i6ShT9Z79\":\"_5\",\"j6wLiMkYg\":\"_6\",\"cvRPfO_oF\":\"_7\",\"qIYt8wsAH\":\"_8\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerTyu7EX3in=withCSS(Component,css,\"framer-vMdgZ\");export default FramerTyu7EX3in;FramerTyu7EX3in.displayName=\"[Smart]Intro\";FramerTyu7EX3in.defaultProps={height:285.5,width:335};addPropertyControls(FramerTyu7EX3in,{variant:{options:[\"InbSkRciy\",\"bGyzOaTLX\",\"cZmw3YLA8\",\"fld32NRlk\"],optionTitles:[\"Mo-Light\",\"Mo-Dark\",\"Web-Light\",\"Web-Dark\"],title:\"Variant\",type:ControlType.Enum},A65qOvpHN:{defaultValue:\"Ep.30\",displayTextArea:false,title:\"에피소드\",type:ControlType.String},jq1oSTO8b:{defaultValue:true,title:\"에피소드 노출\",type:ControlType.Boolean},L0bgxUyiY:{defaultValue:\"한겨울에 맞설 헤비 아우터\",description:\"\",displayTextArea:true,title:\"타이틀\",type:ControlType.String},E_bCBBmYS:{defaultValue:true,title:\"타이틀 노출\",type:ControlType.Boolean},I750mv33P:{defaultValue:\"한겨울 추위를 완벽하게 막아줄 단 하나의 아이템, 헤비 아우터. 패딩부터 퍼, 무스탕까지 최대 57% 혜택으로 겨울 스타일에 자유를 더하세요.\",displayTextArea:true,title:\"텍스트\",type:ControlType.String},i6ShT9Z79:{defaultValue:true,title:\"이벤트 종료일\",type:ControlType.Boolean},j6wLiMkYg:{defaultValue:\"2025-03-11T00:00:00.000Z\",title:\"날짜\",type:ControlType.Date},cvRPfO_oF:{defaultValue:\"rgb(255, 255, 255)\",title:\"배경 컬러\",type:ControlType.Color},qIYt8wsAH:{defaultValue:true,title:\"하단패딩\",type:ControlType.Boolean}});addFonts(FramerTyu7EX3in,[{explicitInter:true,fonts:[{cssFamilyName:\"Pretendard Bold\",source:\"custom\",style:\"normal\",uiFamilyName:\"Pretendard\",url:\"https://framerusercontent.com/assets/TDgt4wnSbW6ssMiUHMKSTjZfpQ.woff2\",weight:\"700\"},{cssFamilyName:\"Pretendard Black\",source:\"custom\",style:\"normal\",uiFamilyName:\"Pretendard\",url:\"https://framerusercontent.com/assets/DBBklf8PDTArSc8lf5VjC8JT1Y.woff2\",weight:\"900\"},{cssFamilyName:\"Pretendard Regular\",source:\"custom\",style:\"normal\",uiFamilyName:\"Pretendard\",url:\"https://framerusercontent.com/assets/t7lebLYx2xwMs9MrDdMh5EKeA.woff2\",weight:\"400\"},{cssFamilyName:\"Pretendard Bold\",source:\"custom\",style:\"normal\",uiFamilyName:\"Pretendard\",url:\"https://framerusercontent.com/assets/TDgt4wnSbW6ssMiUHMKSTjZfpQ.woff2\",weight:\"700\"}]},...CountdownFonts,...SchedulableFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerTyu7EX3in\",\"slots\":[],\"annotations\":{\"framerDisplayContentsDiv\":\"false\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicWidth\":\"335\",\"framerIntrinsicHeight\":\"285.5\",\"framerColorSyntax\":\"true\",\"framerVariables\":\"{\\\"A65qOvpHN\\\":\\\"_\\\",\\\"jq1oSTO8b\\\":\\\"_1\\\",\\\"L0bgxUyiY\\\":\\\"_2\\\",\\\"E_bCBBmYS\\\":\\\"_3\\\",\\\"I750mv33P\\\":\\\"_4\\\",\\\"i6ShT9Z79\\\":\\\"_5\\\",\\\"j6wLiMkYg\\\":\\\"_6\\\",\\\"cvRPfO_oF\\\":\\\"_7\\\",\\\"qIYt8wsAH\\\":\\\"_8\\\"}\",\"framerAutoSizeImages\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerContractVersion\":\"1\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"bGyzOaTLX\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"cZmw3YLA8\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"fld32NRlk\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Tyu7EX3in.map","var BadgeVariant = /* @__PURE__ */ ((BadgeVariant2) => {\n  BadgeVariant2[\"CUSTOM\"] = \"custom\";\n  BadgeVariant2[\"SYSTEM\"] = \"system\";\n  return BadgeVariant2;\n})(BadgeVariant || {});\nvar BadgePriority = /* @__PURE__ */ ((BadgePriority2) => {\n  BadgePriority2[\"PRIMARY\"] = \"primary\";\n  BadgePriority2[\"SECONDARY\"] = \"secondary\";\n  BadgePriority2[\"TERTIARY\"] = \"tertiary\";\n  return BadgePriority2;\n})(BadgePriority || {});\nvar BadgeTone = /* @__PURE__ */ ((BadgeTone2) => {\n  BadgeTone2[\"DEFAULT\"] = \"default\";\n  BadgeTone2[\"INFORMATION\"] = \"information\";\n  BadgeTone2[\"POSITIVE\"] = \"positive\";\n  BadgeTone2[\"NEGATIVE\"] = \"negative\";\n  return BadgeTone2;\n})(BadgeTone || {});\nvar BadgeSize = /* @__PURE__ */ ((BadgeSize2) => {\n  BadgeSize2[\"SMALL\"] = \"small\";\n  BadgeSize2[\"medium\"] = \"medium\";\n  return BadgeSize2;\n})(BadgeSize || {});\nexport {\n  BadgePriority,\n  BadgeSize,\n  BadgeTone,\n  BadgeVariant\n};\n","import { ControlType } from \"framer\";\nimport { BADGE_PREFIX_ICON_OPTIONS } from \"../../components/ruler/Badge/Badge.constants.js\";\nimport { BadgeVariant, BadgePriority, BadgeTone, BadgeSize } from \"../../components/ruler/Badge/Badge.types.js\";\nconst BADGE_CONTROL_ITEMS = {\n  variant: {\n    type: ControlType.Enum,\n    title: \"variant\",\n    options: [BadgeVariant.SYSTEM, BadgeVariant.CUSTOM],\n    defaultValue: BadgeVariant.SYSTEM\n  },\n  priority: {\n    type: ControlType.Enum,\n    title: \"priority\",\n    options: [BadgePriority.PRIMARY, BadgePriority.SECONDARY, BadgePriority.TERTIARY],\n    defaultValue: BadgePriority.PRIMARY\n  },\n  customBackgroundColor: {\n    hidden: ({\n      variant\n    }) => variant !== BadgeVariant.CUSTOM,\n    type: ControlType.Color,\n    title: \"배경 색상\",\n    defaultValue: \"#000000\"\n  },\n  customTextColor: {\n    hidden: ({\n      variant\n    }) => variant !== BadgeVariant.CUSTOM,\n    type: ControlType.Color,\n    title: \"텍스트 색상\",\n    defaultValue: \"#FFFFFF\"\n  },\n  tone: {\n    hidden: ({\n      variant\n    }) => variant === BadgeVariant.CUSTOM,\n    type: ControlType.Enum,\n    title: \"tone\",\n    options: [BadgeTone.DEFAULT, BadgeTone.INFORMATION, BadgeTone.NEGATIVE, BadgeTone.POSITIVE],\n    defaultValue: BadgeTone.DEFAULT\n  },\n  size: {\n    type: ControlType.Enum,\n    title: \"크기\",\n    options: [BadgeSize.SMALL, BadgeSize.medium],\n    defaultValue: BadgeSize.SMALL\n  },\n  isWhite: {\n    hidden: ({\n      variant\n    }) => variant === BadgeVariant.CUSTOM,\n    type: ControlType.Boolean,\n    defaultValue: false,\n    title: \"화이트 속성 여부\"\n  },\n  isBlur: {\n    hidden: ({\n      variant\n    }) => variant === BadgeVariant.CUSTOM,\n    type: ControlType.Boolean,\n    defaultValue: false,\n    title: \"투명도 여부\"\n  },\n  prefixIcon: {\n    type: ControlType.Enum,\n    title: \"좌측 아이콘\",\n    options: [void 0, ...BADGE_PREFIX_ICON_OPTIONS],\n    optionTitles: [\"선택 안 함\", ...BADGE_PREFIX_ICON_OPTIONS],\n    defaultValue: void 0\n  },\n  label: {\n    type: ControlType.String,\n    defaultValue: \"라벨 텍스트\",\n    title: \"라벨\"\n  }\n};\nconst BADGE_CONTROLS = {\n  badge: ControlType.Object,\n  title: \"뱃지\",\n  controls: BADGE_CONTROL_ITEMS\n};\nexport {\n  BADGE_CONTROLS,\n  BADGE_CONTROL_ITEMS\n};\n","import { jsx } from \"react/jsx-runtime\";\nimport { addPropertyControls } from \"framer\";\nimport { Badge } from \"../../ruler/Badge/Badge.js\";\nimport { BADGE_CONTROL_ITEMS } from \"../../../libs/property-controls/badge.js\";\nconst FramerBadge = (props) => {\n  return /* @__PURE__ */ jsx(Badge, { ...props });\n};\naddPropertyControls(FramerBadge, {\n  ...BADGE_CONTROL_ITEMS\n});\nexport {\n  FramerBadge\n};\n","import { FramerBadge } from \"./Badge.js\";\nexport {\n  FramerBadge as Badge\n};\n","/** local */// import { Badge } from \"https://localhost:4173/components/systems/Badge/Badge.js\"\n/** dev */// import { Badge } from \"https://asset.29cm.co.kr/contents/framer/dev/components/systems/Badge/Badge.js\"\n/** production */import{Badge}from\"https://asset.29cm.co.kr/contents/framer/components/systems/Badge/index.js\";/**\n * @framerDisableUnlink\n */export default Badge;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Badge\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./RulerBadge.map","// Generated by Framer (f0648f9)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getLoadingLazyAtYPosition,Image,RichText,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCodeBoundaryForOverrides,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import{withViewEventTracker}from\"https://framerusercontent.com/modules/3INwc4N3YWOdwRyIsr9i/aS8hFjcnZ4Pj8l7tzAz4/Analytics.js\";import Badge from\"https://framerusercontent.com/modules/ujMK2tuF8Uh4yfdgJfeZ/IubTds5GYI6HTrke7tQJ/RulerBadge.js\";const BadgeFonts=getFonts(Badge);const MotionDivWithViewEventTracker1dhhca=withCodeBoundaryForOverrides(motion.div,{nodeId:\"O6Llnkcuo\",override:withViewEventTracker,scopeId:\"A0zOphe2W\"});const cycleOrder=[\"O6Llnkcuo\",\"eqvQYHAjE\",\"Lqtv7PqDJ\",\"kSPA79U8o\"];const serializationHash=\"framer-faEiT\";const variantClassNames={eqvQYHAjE:\"framer-v-lpgz8j\",kSPA79U8o:\"framer-v-10r6t91\",Lqtv7PqDJ:\"framer-v-rk0uy1\",O6Llnkcuo:\"framer-v-1dhhca\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const Z0zANbjM7=undefined;const cMA4tovto=undefined;const CnHqDEilA=undefined;const Z1doqkbqx=undefined;const PXDVAmOVF=undefined;const e2A1LQCmm=undefined;const m0_Vh2Afh=undefined;const Mh8Gt4yyJ=undefined;const V_6v_PCji=undefined;const Kj0RSY_ax=undefined;const F_llb_55A=undefined;const bskTebQWb=undefined;const dwSk3xf84=undefined;const Q7T4GP5lx=undefined;const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const toResponsiveImage=value=>{if(typeof value===\"object\"&&value!==null&&typeof value.src===\"string\"){return value;}return typeof value===\"string\"?{src:value}:undefined;};const matchVariant=(...args)=>{for(const arg of args){if(arg&&typeof arg===\"string\")return arg;}return undefined;};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={\"Mo-Dark\":\"eqvQYHAjE\",\"Mo-Light\":\"O6Llnkcuo\",\"Web-Dark\":\"kSPA79U8o\",\"Web-Light\":\"Lqtv7PqDJ\"};const Variants=motion.create(React.Fragment);const getProps=({_,_1,_10,_11,_12,_13,_2,_3,_4,_5,_6,_7,_8,_9,height,id,width,...props})=>{return{...props,bskTebQWb:_4??props.bskTebQWb??true,cMA4tovto:_9??props.cMA4tovto??true,CnHqDEilA:_??props.CnHqDEilA??true,dwSk3xf84:_5??props.dwSk3xf84??\"사은품  I  20mm eco vintage leather belt - brown당첨 발표일  I  6. 24. (월) \\xb7 공지사항 및 개별 연락재고 소진 시 이벤트 종료\",e2A1LQCmm:_11??props.e2A1LQCmm??\"rgba(255, 255, 255, 0)\",F_llb_55A:_3??props.F_llb_55A??\"프로모션 기간 중 마티스더큐레이터 상품 구매 후 사진 후기를 남겨주세요. 추첨을 통해 컬렉터 셔츠를 증정합니다.\",Kj0RSY_ax:_2??props.Kj0RSY_ax??\"UP TO 30%\",m0_Vh2Afh:_7??props.m0_Vh2Afh,Mh8Gt4yyJ:_12??props.Mh8Gt4yyJ,PXDVAmOVF:_6??props.PXDVAmOVF??true,Q7T4GP5lx:_10??props.Q7T4GP5lx??true,V_6v_PCji:_13??props.V_6v_PCji??\"2명\",variant:humanReadableVariantMap[props.variant]??props.variant??\"O6Llnkcuo\",Z0zANbjM7:_8??props.Z0zANbjM7??\"rgba(255, 255, 255, 0)\",Z1doqkbqx:_1??props.Z1doqkbqx??\"단독 혜택\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,CnHqDEilA,Z1doqkbqx,Kj0RSY_ax,F_llb_55A,bskTebQWb,dwSk3xf84,PXDVAmOVF,m0_Vh2Afh,Z0zANbjM7,cMA4tovto,Q7T4GP5lx,e2A1LQCmm,Mh8Gt4yyJ,V_6v_PCji,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"O6Llnkcuo\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(MotionDivWithViewEventTracker1dhhca,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1dhhca\",className,classNames),\"data-framer-name\":\"Mo-Light\",layoutDependency:layoutDependency,layoutId:\"O6Llnkcuo\",ref:refBinding,style:{backgroundColor:Z0zANbjM7,...style},...addPropertyOverrides({eqvQYHAjE:{\"data-framer-name\":\"Mo-Dark\"},kSPA79U8o:{\"data-framer-name\":\"Web-Dark\"},Lqtv7PqDJ:{\"data-framer-name\":\"Web-Light\"}},baseVariant,gestureVariant),children:[cMA4tovto!==false&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-1228zxn\",\"data-framer-name\":\"디바이더\",layoutDependency:layoutDependency,layoutId:\"L0Zh8iebn\",children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-eps32s\",\"data-framer-name\":\"Divider\",layoutDependency:layoutDependency,layoutId:\"PvTqn15fu\",style:{backgroundColor:\"var(--token-18c079ff-4aba-44dc-bf2b-2e4de8c346e3, rgb(0, 0, 0))\",opacity:.1},variants:{eqvQYHAjE:{backgroundColor:\"var(--token-ae202ad9-015e-4ab6-be9d-b4a417c0b8f1, rgb(255, 255, 255))\",opacity:.3},kSPA79U8o:{backgroundColor:\"var(--token-ae202ad9-015e-4ab6-be9d-b4a417c0b8f1, rgb(255, 255, 255))\",opacity:.3}}})}),CnHqDEilA!==false&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-3xm4f\",\"data-framer-name\":\"타이틀\",layoutDependency:layoutDependency,layoutId:\"yEAS81NnN\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgU2VtaUJvbGQ=\",\"--framer-font-family\":'\"Pretendard SemiBold\", \"Pretendard SemiBold Placeholder\", sans-serif',\"--framer-font-size\":\"24px\",\"--framer-font-weight\":\"600\"},children:\"단독 혜택\"})}),className:\"framer-1v42rsf\",fonts:[\"CUSTOM;Pretendard SemiBold\"],layoutDependency:layoutDependency,layoutId:\"PAVbaRQXx\",style:{\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:Z1doqkbqx,variants:{eqvQYHAjE:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\"},kSPA79U8o:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({eqvQYHAjE:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgU2VtaUJvbGQ=\",\"--framer-font-family\":'\"Pretendard SemiBold\", \"Pretendard SemiBold Placeholder\", sans-serif',\"--framer-font-size\":\"24px\",\"--framer-font-weight\":\"600\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:\"단독 혜택\"})})},kSPA79U8o:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgU2VtaUJvbGQ=\",\"--framer-font-family\":'\"Pretendard SemiBold\", \"Pretendard SemiBold Placeholder\", sans-serif',\"--framer-font-size\":\"32px\",\"--framer-font-weight\":\"600\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:\"단독 혜택\"})})},Lqtv7PqDJ:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgU2VtaUJvbGQ=\",\"--framer-font-family\":'\"Pretendard SemiBold\", \"Pretendard SemiBold Placeholder\", sans-serif',\"--framer-font-size\":\"32px\",\"--framer-font-weight\":\"600\"},children:\"단독 혜택\"})})}},baseVariant,gestureVariant)})}),PXDVAmOVF!==false&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-13vcemo\",\"data-framer-name\":\"이미지\",layoutDependency:layoutDependency,layoutId:\"rJbXxGP_w\",children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-bicfr0\",\"data-framer-name\":\"Image\",layoutDependency:layoutDependency,layoutId:\"SY9xphPAm\",style:{backgroundColor:e2A1LQCmm,borderBottomLeftRadius:3,borderBottomRightRadius:3,borderTopLeftRadius:3,borderTopRightRadius:3},children:/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+0+0+8+0+0),sizes:`max(${componentViewport?.width||\"100vw\"} - 40px, 1px)`,...toResponsiveImage(m0_Vh2Afh)},className:\"framer-1glser5\",layoutDependency:layoutDependency,layoutId:\"nH9LX2vG2\",...addPropertyOverrides({kSPA79U8o:{background:{alt:\"\",fit:\"fill\",loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+0+159.4+8+0+0),sizes:\"383.4514px\",...toResponsiveImage(m0_Vh2Afh)}},Lqtv7PqDJ:{background:{alt:\"\",fit:\"fill\",loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+0+159.4+8+0+0),sizes:\"385px\",...toResponsiveImage(m0_Vh2Afh)}}},baseVariant,gestureVariant),children:Mh8Gt4yyJ!==false&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1h6zona-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"ozFDWxTJy-container\",nodeId:\"ozFDWxTJy\",rendersWithMotion:true,scopeId:\"A0zOphe2W\",children:/*#__PURE__*/_jsx(Badge,{customBackgroundColor:\"rgb(0, 0, 0)\",customTextColor:\"rgb(255, 255, 255)\",height:\"100%\",id:\"ozFDWxTJy\",isBlur:false,isWhite:false,label:V_6v_PCji,layoutId:\"ozFDWxTJy\",prefixIcon:null,priority:\"primary\",size:\"medium\",tone:\"default\",variant:matchVariant(\"system\"),width:\"100%\"})})})})})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-nq6nhg\",\"data-framer-name\":\"텍스트\",layoutDependency:layoutDependency,layoutId:\"PUuWcT7AZ\",children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-if0hec\",\"data-framer-name\":\"이벤트 타이틀\",layoutDependency:layoutDependency,layoutId:\"wVBVEq2vf\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgU2VtaUJvbGQ=\",\"--framer-font-family\":'\"Pretendard SemiBold\", \"Pretendard SemiBold Placeholder\", sans-serif',\"--framer-font-weight\":\"600\",\"--framer-line-height\":\"0.8em\",\"--framer-text-alignment\":\"left\"},children:\"UP TO 30%\"})}),className:\"framer-1hwgrif\",fonts:[\"CUSTOM;Pretendard SemiBold\"],layoutDependency:layoutDependency,layoutId:\"l_TrIfh8T\",style:{\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:Kj0RSY_ax,variants:{eqvQYHAjE:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\"},kSPA79U8o:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({eqvQYHAjE:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgU2VtaUJvbGQ=\",\"--framer-font-family\":'\"Pretendard SemiBold\", \"Pretendard SemiBold Placeholder\", sans-serif',\"--framer-font-weight\":\"600\",\"--framer-line-height\":\"0.8em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:\"UP TO 30%\"})})},kSPA79U8o:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgU2VtaUJvbGQ=\",\"--framer-font-family\":'\"Pretendard SemiBold\", \"Pretendard SemiBold Placeholder\", sans-serif',\"--framer-font-size\":\"18px\",\"--framer-font-weight\":\"600\",\"--framer-line-height\":\"0.8em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:\"UP TO 30%\"})})},Lqtv7PqDJ:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgU2VtaUJvbGQ=\",\"--framer-font-family\":'\"Pretendard SemiBold\", \"Pretendard SemiBold Placeholder\", sans-serif',\"--framer-font-size\":\"18px\",\"--framer-font-weight\":\"600\",\"--framer-line-height\":\"0.8em\",\"--framer-text-alignment\":\"left\"},children:\"UP TO 30%\"})})}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgUmVndWxhcg==\",\"--framer-font-family\":'\"Pretendard Regular\", \"Pretendard Regular Placeholder\", sans-serif',\"--framer-line-height\":\"1.6em\",\"--framer-text-alignment\":\"left\",\"--framer-text-transform\":\"inherit\"},children:\"프로모션 기간 중 마티스더큐레이터 상품 구매 후 사진 후기를 남겨주세요. 추첨을 통해 컬렉터 셔츠를 증정합니다.\"})}),className:\"framer-1q9p9z8\",fonts:[\"CUSTOM;Pretendard Regular\"],layoutDependency:layoutDependency,layoutId:\"rmtCfqm3f\",style:{\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:F_llb_55A,variants:{eqvQYHAjE:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\"},kSPA79U8o:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({eqvQYHAjE:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgUmVndWxhcg==\",\"--framer-font-family\":'\"Pretendard Regular\", \"Pretendard Regular Placeholder\", sans-serif',\"--framer-line-height\":\"1.6em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\",\"--framer-text-transform\":\"inherit\"},children:\"프로모션 기간 중 마티스더큐레이터 상품 구매 후 사진 후기를 남겨주세요. 추첨을 통해 컬렉터 셔츠를 증정합니다.\"})})},kSPA79U8o:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgUmVndWxhcg==\",\"--framer-font-family\":'\"Pretendard Regular\", \"Pretendard Regular Placeholder\", sans-serif',\"--framer-font-size\":\"18px\",\"--framer-line-height\":\"1.6em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\",\"--framer-text-transform\":\"inherit\"},children:\"프로모션 기간 중 마티스더큐레이터 상품 구매 후 사진 후기를 남겨주세요. 추첨을 통해 컬렉터 셔츠를 증정합니다.\"})})},Lqtv7PqDJ:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgUmVndWxhcg==\",\"--framer-font-family\":'\"Pretendard Regular\", \"Pretendard Regular Placeholder\", sans-serif',\"--framer-font-size\":\"18px\",\"--framer-line-height\":\"1.6em\",\"--framer-text-alignment\":\"left\",\"--framer-text-transform\":\"inherit\"},children:\"프로모션 기간 중 마티스더큐레이터 상품 구매 후 사진 후기를 남겨주세요. 추첨을 통해 컬렉터 셔츠를 증정합니다.\"})})}},baseVariant,gestureVariant)})]}),bskTebQWb!==false&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-1dgkr8r\",\"data-framer-name\":\"이벤트 설명\",layoutDependency:layoutDependency,layoutId:\"Vt19dYlkl\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgUmVndWxhcg==\",\"--framer-font-family\":'\"Pretendard Regular\", \"Pretendard Regular Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-line-height\":\"1.6em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(0, 0, 0, 0.56))\"},children:\"사은품  I  20mm eco vintage leather belt - brown당첨 발표일  I  6. 24. (월) \\xb7 공지사항 및 개별 연락재고 소진 시 이벤트 종료\"})}),className:\"framer-nbzv6t\",fonts:[\"CUSTOM;Pretendard Regular\"],layoutDependency:layoutDependency,layoutId:\"wd3prQgI0\",style:{\"--extracted-r6o4lv\":\"rgba(0, 0, 0, 0.56)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:dwSk3xf84,variants:{eqvQYHAjE:{\"--extracted-r6o4lv\":\"rgba(255, 255, 255, 0.56)\"},kSPA79U8o:{\"--extracted-r6o4lv\":\"rgba(244, 244, 244, 0.64)\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({eqvQYHAjE:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgUmVndWxhcg==\",\"--framer-font-family\":'\"Pretendard Regular\", \"Pretendard Regular Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-line-height\":\"1.6em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(255, 255, 255, 0.56))\"},children:\"사은품  I  20mm eco vintage leather belt - brown당첨 발표일  I  6. 24. (월) \\xb7 공지사항 및 개별 연락재고 소진 시 이벤트 종료\"})})},kSPA79U8o:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgUmVndWxhcg==\",\"--framer-font-family\":'\"Pretendard Regular\", \"Pretendard Regular Placeholder\", sans-serif',\"--framer-line-height\":\"1.6em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(244, 244, 244, 0.64))\"},children:\"사은품  I  20mm eco vintage leather belt - brown당첨 발표일  I  6. 24. (월) \\xb7 공지사항 및 개별 연락재고 소진 시 이벤트 종료\"})})},Lqtv7PqDJ:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"Q1VTVE9NO1ByZXRlbmRhcmQgUmVndWxhcg==\",\"--framer-font-family\":'\"Pretendard Regular\", \"Pretendard Regular Placeholder\", sans-serif',\"--framer-line-height\":\"1.6em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(0, 0, 0, 0.56))\"},children:\"사은품  I  20mm eco vintage leather belt - brown당첨 발표일  I  6. 24. (월) \\xb7 공지사항 및 개별 연락재고 소진 시 이벤트 종료\"})})}},baseVariant,gestureVariant)})})]}),Q7T4GP5lx!==false&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-1pk9vvn\",\"data-framer-name\":\"하단패딩\",layoutDependency:layoutDependency,layoutId:\"wj7vmf0Gg\"})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-faEiT.framer-d1xzkw, .framer-faEiT .framer-d1xzkw { display: block; }\",\".framer-faEiT.framer-1dhhca { align-content: flex-start; align-items: flex-start; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: hidden; padding: 0px 20px 0px 20px; position: relative; width: 375px; }\",\".framer-faEiT .framer-1228zxn { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 16px 0px 16px 0px; position: relative; width: 100%; }\",\".framer-faEiT .framer-eps32s { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: 1px; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; z-index: 1; }\",\".framer-faEiT .framer-3xm4f { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 56px 0px 16px 0px; position: relative; width: 100%; }\",\".framer-faEiT .framer-1v42rsf { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-faEiT .framer-13vcemo { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 8px 0px 8px 0px; position: relative; width: 100%; }\",\".framer-faEiT .framer-bicfr0 { align-content: center; align-items: center; aspect-ratio: 1.6461916461916462 / 1; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: var(--framer-aspect-ratio-supported, 121px); justify-content: center; overflow: hidden; padding: 0px; position: relative; width: 100%; will-change: var(--framer-will-change-override, transform); }\",\".framer-faEiT .framer-1glser5 { flex: 1 0 0px; height: 100%; overflow: visible; position: relative; width: 1px; }\",\".framer-faEiT .framer-1h6zona-container { bottom: 10px; flex: none; height: auto; left: 10px; position: absolute; width: auto; z-index: 1; }\",\".framer-faEiT .framer-nq6nhg { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-faEiT .framer-if0hec { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 8px; height: min-content; justify-content: flex-start; overflow: visible; padding: 8px 0px 0px 0px; position: relative; width: 100%; }\",\".framer-faEiT .framer-1hwgrif, .framer-faEiT .framer-1q9p9z8, .framer-faEiT .framer-nbzv6t { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-faEiT .framer-1dgkr8r { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: visible; padding: 8px 0px 0px 0px; position: relative; width: 100%; }\",\".framer-faEiT .framer-1pk9vvn { flex: none; height: 56px; overflow: hidden; position: relative; width: 100%; }\",\".framer-faEiT.framer-v-lpgz8j .framer-1glser5 { order: 0; }\",\".framer-faEiT.framer-v-rk0uy1.framer-1dhhca, .framer-faEiT.framer-v-10r6t91.framer-1dhhca { align-content: unset; align-items: unset; display: grid; grid-auto-rows: min-content; grid-template-columns: repeat(2, minmax(50px, 1fr)); grid-template-rows: repeat(2, min-content); justify-content: start; padding: 0px 50px 0px 50px; width: 1080px; }\",\".framer-faEiT.framer-v-rk0uy1 .framer-1228zxn, .framer-faEiT.framer-v-10r6t91 .framer-1228zxn { align-self: start; grid-column: span 2; justify-self: start; order: 0; }\",\".framer-faEiT.framer-v-rk0uy1 .framer-3xm4f, .framer-faEiT.framer-v-10r6t91 .framer-3xm4f { align-self: start; grid-column: span 2; height: auto; justify-self: start; order: 1; padding: 72px 0px 16px 0px; }\",\".framer-faEiT.framer-v-rk0uy1 .framer-13vcemo, .framer-faEiT.framer-v-10r6t91 .framer-13vcemo { align-content: flex-end; align-items: flex-end; align-self: start; justify-self: start; order: 3; }\",\".framer-faEiT.framer-v-rk0uy1 .framer-bicfr0 { height: var(--framer-aspect-ratio-supported, 298px); width: 385px; }\",\".framer-faEiT.framer-v-rk0uy1 .framer-nq6nhg, .framer-faEiT.framer-v-10r6t91 .framer-nq6nhg { align-self: start; gap: unset; height: 100%; justify-content: space-between; justify-self: start; order: 2; width: 1fr; }\",\".framer-faEiT.framer-v-rk0uy1 .framer-1dgkr8r, .framer-faEiT.framer-v-10r6t91 .framer-1dgkr8r { align-content: flex-start; align-items: flex-start; }\",\".framer-faEiT.framer-v-rk0uy1 .framer-1pk9vvn, .framer-faEiT.framer-v-10r6t91 .framer-1pk9vvn { align-self: start; grid-column: span 2; height: 72px; justify-self: start; order: 4; }\",\".framer-faEiT.framer-v-10r6t91 .framer-bicfr0 { height: var(--framer-aspect-ratio-supported, 233px); width: 383px; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 590\n * @framerIntrinsicWidth 375\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"eqvQYHAjE\":{\"layout\":[\"fixed\",\"auto\"]},\"Lqtv7PqDJ\":{\"layout\":[\"fixed\",\"auto\"]},\"kSPA79U8o\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"CnHqDEilA\":\"_\",\"Z1doqkbqx\":\"_1\",\"Kj0RSY_ax\":\"_2\",\"F_llb_55A\":\"_3\",\"bskTebQWb\":\"_4\",\"dwSk3xf84\":\"_5\",\"PXDVAmOVF\":\"_6\",\"m0_Vh2Afh\":\"_7\",\"Z0zANbjM7\":\"_8\",\"cMA4tovto\":\"_9\",\"Q7T4GP5lx\":\"_10\",\"e2A1LQCmm\":\"_11\",\"Mh8Gt4yyJ\":\"_12\",\"V_6v_PCji\":\"_13\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerA0zOphe2W=withCSS(Component,css,\"framer-faEiT\");export default FramerA0zOphe2W;FramerA0zOphe2W.displayName=\"[Smart]Benefit 2\";FramerA0zOphe2W.defaultProps={height:590,width:375};addPropertyControls(FramerA0zOphe2W,{variant:{options:[\"O6Llnkcuo\",\"eqvQYHAjE\",\"Lqtv7PqDJ\",\"kSPA79U8o\"],optionTitles:[\"Mo-Light\",\"Mo-Dark\",\"Web-Light\",\"Web-Dark\"],title:\"Variant\",type:ControlType.Enum},CnHqDEilA:{defaultValue:true,title:\"이벤트명 노출\",type:ControlType.Boolean},Z1doqkbqx:{defaultValue:\"단독 혜택\",displayTextArea:false,title:\"프로모션 타이틀\",type:ControlType.String},Kj0RSY_ax:{defaultValue:\"UP TO 30%\",displayTextArea:false,title:\"타이틀\",type:ControlType.String},F_llb_55A:{defaultValue:\"프로모션 기간 중 마티스더큐레이터 상품 구매 후 사진 후기를 남겨주세요. 추첨을 통해 컬렉터 셔츠를 증정합니다.\",displayTextArea:true,title:\"텍스트\",type:ControlType.String},bskTebQWb:{defaultValue:true,title:\"설명 노출\",type:ControlType.Boolean},dwSk3xf84:{defaultValue:\"사은품  I  20mm eco vintage leather belt - brown당첨 발표일  I  6. 24. (월) \\xb7 공지사항 및 개별 연락재고 소진 시 이벤트 종료\",displayTextArea:true,title:\"설명 텍스트\",type:ControlType.String},PXDVAmOVF:{defaultValue:true,title:\"이미지 노출\",type:ControlType.Boolean},m0_Vh2Afh:{title:\"이미지\",type:ControlType.ResponsiveImage},Z0zANbjM7:{defaultValue:\"rgba(255, 255, 255, 0)\",title:\"배경컬러\",type:ControlType.Color},cMA4tovto:{defaultValue:true,title:\"디바이더\",type:ControlType.Boolean},Q7T4GP5lx:{defaultValue:true,title:\"하단 패딩\",type:ControlType.Boolean},e2A1LQCmm:{defaultValue:\"rgba(255, 255, 255, 0)\",title:\"누끼 배경 컬러\",type:ControlType.Color},Mh8Gt4yyJ:{defaultValue:false,title:\"라벨 노출\",type:ControlType.Boolean},V_6v_PCji:{defaultValue:\"2명\",title:\"라벨명\",type:ControlType.String}});addFonts(FramerA0zOphe2W,[{explicitInter:true,fonts:[{cssFamilyName:\"Pretendard SemiBold\",source:\"custom\",style:\"normal\",uiFamilyName:\"Pretendard\",url:\"https://framerusercontent.com/assets/bUf4UcuhtdSAGwhiC3unbHsuLB0.woff2\",weight:\"600\"},{cssFamilyName:\"Pretendard Regular\",source:\"custom\",style:\"normal\",uiFamilyName:\"Pretendard\",url:\"https://framerusercontent.com/assets/qaw3yIgC8TiP4kMN2BaWGREjykY.woff2\",weight:\"400\"}]},...BadgeFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerA0zOphe2W\",\"slots\":[],\"annotations\":{\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"eqvQYHAjE\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"Lqtv7PqDJ\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"kSPA79U8o\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerDisplayContentsDiv\":\"false\",\"framerVariables\":\"{\\\"CnHqDEilA\\\":\\\"_\\\",\\\"Z1doqkbqx\\\":\\\"_1\\\",\\\"Kj0RSY_ax\\\":\\\"_2\\\",\\\"F_llb_55A\\\":\\\"_3\\\",\\\"bskTebQWb\\\":\\\"_4\\\",\\\"dwSk3xf84\\\":\\\"_5\\\",\\\"PXDVAmOVF\\\":\\\"_6\\\",\\\"m0_Vh2Afh\\\":\\\"_7\\\",\\\"Z0zANbjM7\\\":\\\"_8\\\",\\\"cMA4tovto\\\":\\\"_9\\\",\\\"Q7T4GP5lx\\\":\\\"_10\\\",\\\"e2A1LQCmm\\\":\\\"_11\\\",\\\"Mh8Gt4yyJ\\\":\\\"_12\\\",\\\"V_6v_PCji\\\":\\\"_13\\\"}\",\"framerIntrinsicWidth\":\"375\",\"framerImmutableVariables\":\"true\",\"framerContractVersion\":\"1\",\"framerColorSyntax\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerIntrinsicHeight\":\"590\",\"framerComponentViewportWidth\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./A0zOphe2W.map"],"x_google_ignoreList":[2,3,4,5,44,45,46,71,72,73,74,75,76,77,78,84,85,86,87,118,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,186,191],"mappings":"u5GAAwC,CAClC,IAAY,CAChB,UAAA,KAEuB,EAAI,MAAO,CAAE,UAAA,EAAW,MAAO,CACpD,MAAO,OACP,OAAQ,OACT,CAAE,MAAO,6BAA8B,QAAS,YAAa,SAA0B,EAAI,OAAQ,CAAE,KAAM,OAAQ,EAAG,qCAAsC,CAAC,CAAE,CAAC,8BCP7J,GAAyB,CAC7B,KAAM,SACN,UAAW,IACX,QAAS,GACT,KAAM,EACP,CACK,GAA0B,CAC9B,MAAO,IACP,WAAY,GACb,CACK,GAAwB,CAC5B,MAAO,GACP,WAAY,GACb,CACK,GAAwB,CAC5B,QAAS,CACP,QAAS,EACV,CACD,KAAM,CACJ,QAAS,EACV,CACD,WAAY,GACb,CACK,GAAgC,CACpC,QAAS,EACV,ICLD,SAASA,GAAM,EAAO,EAAO,EAAK,CAChC,OAAO,GAAI,EAAO,GAAI,EAAO,EAAI,CAAC,CAEpC,SAAS,GAAS,EAAO,EAAO,CAC9B,OAAO,OAAO,GAAU,WAAa,EAAM,EAAM,CAAG,EAEtD,SAAS,GAAQ,EAAW,CAC1B,OAAO,EAAU,MAAM,IAAI,CAAC,GAE9B,SAAS,GAAa,EAAW,CAC/B,OAAO,EAAU,MAAM,IAAI,CAAC,GAE9B,SAAS,GAAgB,EAAM,CAC7B,OAAO,IAAS,IAAM,IAAM,IAE9B,SAAS,GAAc,EAAM,CAC3B,OAAO,IAAS,IAAM,SAAW,QAEnC,SAAS,GAAY,EAAW,CAC9B,MAAO,CAAC,MAAO,SAAS,CAAC,SAAS,GAAQ,EAAU,CAAC,CAAG,IAAM,IAEhE,SAAS,GAAiB,EAAW,CACnC,OAAO,GAAgB,GAAY,EAAU,CAAC,CAEhD,SAAS,GAAkB,EAAW,EAAO,EAAK,CAC5C,IAAQ,IAAK,KACf,EAAM,IAER,IAAM,EAAY,GAAa,EAAU,CACnC,EAAgB,GAAiB,EAAU,CAC3CC,EAAS,GAAc,EAAc,CACvC,EAAoB,IAAkB,IAAM,KAAe,EAAM,MAAQ,SAAW,QAAU,OAAS,IAAc,QAAU,SAAW,MAI9I,OAHI,EAAM,UAAUA,GAAU,EAAM,SAASA,KAC3C,EAAoB,GAAqB,EAAkB,EAEtD,CAAC,EAAmB,GAAqB,EAAkB,CAAC,CAErE,SAAS,GAA8B,EAAW,CAChD,OAAO,EAAU,QAAQ,aAAe,GAAc,GAAqB,GAAW,CAExF,SAAS,GAAqB,EAAW,CACvC,OAAO,EAAU,QAAQ,yBAA2B,GAAS,GAAgB,GAAM,CAErF,SAAS,GAAoB,EAAS,CACpC,MAAO,CACL,IAAK,EACL,MAAO,EACP,OAAQ,EACR,KAAM,EACN,GAAG,EACJ,CAEH,SAAS,GAAiB,EAAS,CACjC,OAAO,OAAO,GAAY,SAA0C,CAClE,IAAK,EACL,MAAO,EACP,OAAQ,EACR,KAAM,EACP,CALoC,GAAoB,EAAQ,CAOnE,SAAS,GAAiB,EAAM,CAC9B,MAAO,CACL,GAAG,EACH,IAAK,EAAK,EACV,KAAM,EAAK,EACX,MAAO,EAAK,EAAI,EAAK,MACrB,OAAQ,EAAK,EAAI,EAAK,OACvB,2CAvFG,GAAQ,CAAC,MAAO,QAAS,SAAU,OAAO,CAC1C,GAAa,CAAC,QAAS,MAAM,CAC7B,GAA6B,GAAM,QAAQ,EAAK,IAAS,EAAI,OAAO,EAAM,EAAO,IAAM,GAAW,GAAI,EAAO,IAAM,GAAW,GAAG,CAAE,EAAE,CAAC,CACtI,GAAM,KAAK,IACX,GAAM,KAAK,IACX,GAAQ,KAAK,MACb,GAAgB,IAAO,CAC3B,EAAG,EACH,EAAG,EACJ,EACK,GAAkB,CACtB,KAAM,QACN,MAAO,OACP,OAAQ,MACR,IAAK,SACN,CACK,GAAuB,CAC3B,MAAO,MACP,IAAK,QACN,IClBD,SAAS,GAA2B,EAAM,EAAW,EAAK,CACxD,GAAI,CACF,YACA,YACE,EACE,EAAW,GAAY,EAAU,CACjC,EAAgB,GAAiB,EAAU,CAC3C,EAAc,GAAc,EAAc,CAC1C,EAAO,GAAQ,EAAU,CACzB,EAAa,IAAa,IAC1B,EAAU,EAAU,EAAI,EAAU,MAAQ,EAAI,EAAS,MAAQ,EAC/D,EAAU,EAAU,EAAI,EAAU,OAAS,EAAI,EAAS,OAAS,EACjE,EAAc,EAAU,GAAe,EAAI,EAAS,GAAe,EACrE,EACJ,OAAQ,EAAR,CACE,IAAK,MACH,EAAS,CACP,EAAG,EACH,EAAG,EAAU,EAAI,EAAS,OAC3B,CACD,MACF,IAAK,SACH,EAAS,CACP,EAAG,EACH,EAAG,EAAU,EAAI,EAAU,OAC5B,CACD,MACF,IAAK,QACH,EAAS,CACP,EAAG,EAAU,EAAI,EAAU,MAC3B,EAAG,EACJ,CACD,MACF,IAAK,OACH,EAAS,CACP,EAAG,EAAU,EAAI,EAAS,MAC1B,EAAG,EACJ,CACD,MACF,QACE,EAAS,CACP,EAAG,EAAU,EACb,EAAG,EAAU,EACd,CAEL,OAAQ,GAAa,EAAU,CAA/B,CACE,IAAK,QACH,EAAO,IAAkB,GAAe,GAAO,EAAa,GAAK,GACjE,MACF,IAAK,MACH,EAAO,IAAkB,GAAe,GAAO,EAAa,GAAK,GACjE,MAEJ,OAAO,EAqFT,eAAe,GAAe,EAAO,EAAS,CAExC,IAAY,IAAK,KACnB,EAAU,EAAE,EAEd,GAAM,CACJ,EAAA,EACA,IACA,SAAA,EACA,QACA,WACA,YACE,EACE,CACJ,WAAW,oBACX,eAAe,WACf,iBAAiB,WACjB,cAAc,GACd,UAAU,GACR,GAAS,EAAS,EAAM,CACtB,EAAgB,GAAiB,EAAQ,CAEzC,EAAU,EAAS,EADN,IAAmB,WAAa,YAAc,WACb,GAC9C,EAAqB,GAAiB,MAAMC,EAAS,gBAAgB,CACzE,QAAmC,MAAOA,EAAS,WAAa,KAAO,IAAK,GAAIA,EAAS,UAAU,EAAQ,GAAqC,GAAQ,EAAU,EAAQ,gBAAkB,MAAOA,EAAS,oBAAsB,KAAO,IAAK,GAAIA,EAAS,mBAAmB,EAAS,SAAS,EAChS,WACA,eACA,WACD,CAAC,CAAC,CACG,EAAO,IAAmB,WAAa,CAC3C,GAAG,EAAM,SACT,EAAA,EACA,IACD,CAAG,EAAM,UACJ,EAAe,MAAOA,EAAS,iBAAmB,KAAO,IAAK,GAAIA,EAAS,gBAAgB,EAAS,SAAS,EAC7G,EAAc,MAAOA,EAAS,WAAa,KAAO,IAAK,GAAIA,EAAS,UAAU,EAAa,GAAI,MAAOA,EAAS,UAAY,KAAO,IAAK,GAAIA,EAAS,SAAS,EAAa,GAG5K,CACF,EAAG,EACH,EAAG,EACJ,CACK,EAAoB,GAAiBA,EAAS,sDAAwD,MAAMA,EAAS,sDAAsD,CAC/K,WACA,OACA,eACA,WACD,CAAC,CAAG,EAAK,CACV,MAAO,CACL,KAAM,EAAmB,IAAM,EAAkB,IAAM,EAAc,KAAO,EAAY,EACxF,QAAS,EAAkB,OAAS,EAAmB,OAAS,EAAc,QAAU,EAAY,EACpG,MAAO,EAAmB,KAAO,EAAkB,KAAO,EAAc,MAAQ,EAAY,EAC5F,OAAQ,EAAkB,MAAQ,EAAmB,MAAQ,EAAc,OAAS,EAAY,EACjG,CAEH,SAAS,GAAiB,EAAW,EAAe,EAAmB,CAErE,OAD2C,EAAY,CAAC,GAAG,EAAkB,OAAQ,GAAc,GAAa,EAAU,GAAK,EAAU,CAAE,GAAG,EAAkB,OAAQ,GAAc,GAAa,EAAU,GAAK,EAAU,CAAC,CAAG,EAAkB,OAAQ,GAAc,GAAQ,EAAU,GAAK,EAAU,EAC/P,OAAQ,GAC5C,EACK,GAAa,EAAU,GAAK,IAAc,EAAgB,GAA8B,EAAU,GAAK,EAAY,IAErH,GACP,CAyFJ,eAAe,GAAqB,EAAO,EAAS,CAClD,GAAM,CACJ,YACA,SAAA,EACA,YACE,EACE,EAAM,MAAOA,EAAS,OAAS,KAAO,IAAK,GAAIA,EAAS,MAAM,EAAS,SAAS,EAChF,EAAO,GAAQ,EAAU,CACzB,EAAY,GAAa,EAAU,CACnC,EAAa,GAAY,EAAU,GAAK,IACxC,EAAgB,CAAC,OAAQ,MAAM,CAAC,SAAS,EAAK,CAAG,GAAK,EACtD,EAAiB,GAAO,EAAa,GAAK,EAC1C,EAAW,GAAS,EAAS,EAAM,CACrC,CACF,WACA,YACA,iBACE,OAAO,GAAa,SAAW,CACjC,SAAU,EACV,UAAW,EACX,cAAe,KAChB,CAAG,CACF,SAAU,EACV,UAAW,EACX,cAAe,KACf,GAAG,EACJ,CAID,OAHI,GAAa,OAAO,GAAkB,WACxC,EAAY,IAAc,MAAQ,EAAgB,GAAK,GAElD,EAAa,CAClB,EAAG,EAAY,EACf,EAAG,EAAW,EACf,CAAG,CACF,EAAG,EAAW,EACd,EAAG,EAAY,EAChB,gCAtU6P,CAwD1PC,GAAkB,MAAO,EAAW,EAAU,IAAW,CAC7D,GAAM,CACJ,YAAY,SACZ,WAAW,WACX,aAAa,EAAE,CACf,SAAA,GACE,EACE,EAAkB,EAAW,OAAO,QAAQ,CAC5C,EAAM,MAAOD,EAAS,OAAS,KAAO,IAAK,GAAIA,EAAS,MAAM,EAAS,EACzE,EAAQ,MAAMA,EAAS,gBAAgB,CACzC,YACA,WACA,WACD,CAAC,CACE,CACF,EAAA,EACA,KACE,GAA2B,EAAO,EAAW,EAAI,CACjD,EAAoB,EACpB,EAAiB,EAAE,CACnB,EAAa,EACjB,IAAK,IAAIE,EAAI,EAAGA,EAAI,EAAgB,OAAQ,IAAK,CAC/C,GAAM,CACJ,OACA,MACE,EAAgBA,GACd,CACJ,EAAG,EACH,EAAG,EACH,OACA,SACE,MAAM,EAAG,CACX,EAAA,EACA,IACA,iBAAkB,EAClB,UAAW,EACX,WACA,iBACA,QACA,SAAA,EACA,SAAU,CACR,YACA,WACD,CACF,CAAC,CACF,EAAI,GAAwBC,EAC5B,EAAI,GAAwB,EAC5B,EAAiB,CACf,GAAG,GACF,GAAO,CACN,GAAG,EAAe,GAClB,GAAG,EACJ,CACF,CACG,GAAS,GAAc,KACzB,IACI,OAAO,GAAU,WACf,EAAM,YACR,EAAoB,EAAM,WAExB,EAAM,QACR,EAAQ,EAAM,QAAU,GAAO,MAAMH,EAAS,gBAAgB,CAC5D,YACA,WACA,WACD,CAAC,CAAG,EAAM,OAEZ,CACC,EAAA,OAEE,GAA2B,EAAO,EAAmB,EAAI,EAE/D,EAAI,IAGR,MAAO,CACL,EAAA,EACA,IACA,UAAW,EACX,WACA,iBACD,EAkEGI,GAAgB,SAAS,EAAS,CAItC,OAHI,IAAY,IAAK,KACnB,EAAU,EAAE,EAEP,CACL,KAAM,gBACN,UACA,MAAM,GAAG,EAAO,CAEd,GAAM,CACJ,QACA,iBACA,YACA,SAAA,EACA,YACE,EACE,CACJ,YAAY,GACZ,YACA,oBAAoB,GACpB,gBAAgB,GAChB,GAAG,GACD,GAAS,EAAS,EAAM,CACtB,EAAe,IAAc,IAAK,IAAK,IAAsB,GAAa,GAAiB,GAAa,KAAM,EAAe,EAAkB,CAAG,EAClJ,EAAW,MAAM,GAAe,EAAO,EAAsB,CAC7D,EAAyC,EAAe,eAAwD,OAAU,EAC1H,EAAmB,EAAa,GACtC,GAAI,GAAoB,KACtB,MAAO,EAAE,CAEX,IAAM,EAAiB,GAAkB,EAAkB,EAAO,MAAOJ,EAAS,OAAS,KAAO,IAAK,GAAIA,EAAS,MAAM,EAAS,SAAS,EAAE,CAC9I,GAAI,IAAc,EAChB,MAAO,CACL,MAAO,CACL,UAAW,EAAa,GACzB,CACF,CAEH,IAAM,EAAmB,CAAC,EAAS,GAAQ,EAAiB,EAAG,EAAS,EAAe,IAAK,EAAS,EAAe,IAAI,CAClH,EAAe,CAAC,GAA8B,EAAe,eAAyD,WAAc,EAAE,CAAE,CAC5I,UAAW,EACX,UAAW,EACZ,CAAC,CACI,EAAgB,EAAa,EAAe,GAClD,GAAI,EACF,MAAO,CACL,KAAM,CACJ,MAAO,EAAe,EACtB,UAAW,EACZ,CACD,MAAO,CACL,UAAW,EACZ,CACF,CAEH,IAAM,EAA8B,EAAa,IAAK,GAAM,CAC1D,IAAM,EAAa,GAAaK,EAAE,UAAU,CAC5C,MAAO,CAACA,EAAE,UAAW,GAAc,EAEjCA,EAAE,UAAU,MAAM,EAAG,EAAE,CAAC,QAAQ,EAAK,IAAM,EAAM,EAAG,EAAE,CAGtDA,EAAE,UAAU,GACXA,EAAE,UAAU,EACf,CAAC,MAAM,EAAG,IAAMC,EAAE,GAAK,EAAE,GAAG,CAOxB,EAN8B,EAA4B,OAAQ,GAAMD,EAAE,GAAG,MACjF,EAGA,GAAaA,EAAE,GAAG,CAAG,EAAI,EAC1B,CAAC,MAAO,GAAM,GAAK,EAAE,CAAC,CACsD,KAA6C,IAAO,EAA4B,GAAG,GAYhK,OAXI,IAAmB,EAWhB,EAAE,CAVA,CACL,KAAM,CACJ,MAAO,EAAe,EACtB,UAAW,EACZ,CACD,MAAO,CACL,UAAW,EACZ,CACF,EAIN,EAwCG,GAAS,SAAS,EAAS,CAI/B,OAHI,IAAY,IAAK,KACnB,EAAU,GAEL,CACL,KAAM,SACN,UACA,MAAM,GAAG,EAAO,CACd,IAA2B,EAC3B,GAAM,CACJ,EAAA,EACA,IACA,YACA,kBACE,EACE,EAAa,MAAM,GAAqB,EAAO,EAAQ,CAI7D,OAHI,IAAwC,EAAe,QAAiD,YAAe,EAAwB,EAAe,QAAU,MAAQ,EAAsB,gBACjM,EAAE,CAEJ,CACL,EAAGF,EAAI,EAAW,EAClB,EAAG,EAAI,EAAW,EAClB,KAAM,CACJ,GAAG,EACH,YACD,CACF,EAEJ,EAEGI,GAAQ,SAAS,EAAS,CAI9B,OAHI,IAAY,IAAK,KACnB,EAAU,EAAE,EAEP,CACL,KAAM,QACN,UACA,MAAM,GAAG,EAAO,CACd,GAAM,CACJ,EAAA,EACA,IACA,aACE,EACE,CACJ,SAAU,EAAgB,GAC1B,UAAW,EAAiB,GAC5B,UAAU,CACR,GAAK,GAAS,CACZ,GAAI,CACF,EAAG,EACH,EAAG,GACD,EACJ,MAAO,CACL,EAAG,EACH,EAAG,EACJ,EAEJ,CACD,GAAG,GACD,GAAS,EAAS,EAAM,CACtB,EAAS,CACb,EAAA,EACA,IACD,CACK,EAAW,MAAM,GAAe,EAAO,EAAsB,CAC7D,EAAY,GAAY,GAAQ,EAAU,CAAC,CAC3C,EAAW,GAAgB,EAAU,CACvC,EAAgB,EAAO,GACvB,EAAiB,EAAO,GAC5B,GAAI,EAAe,CACjB,IAAM,EAAU,IAAa,IAAM,MAAQ,OACrC,EAAU,IAAa,IAAM,SAAW,QACxCC,EAAM,EAAgB,EAAS,GAC/BC,EAAM,EAAgB,EAAS,GACrC,EAAgBC,GAAMF,EAAK,EAAeC,EAAI,CAEhD,GAAI,EAAgB,CAClB,IAAM,EAAU,IAAc,IAAM,MAAQ,OACtC,EAAU,IAAc,IAAM,SAAW,QACzCD,EAAM,EAAiB,EAAS,GAChCC,EAAM,EAAiB,EAAS,GACtC,EAAiBC,GAAMF,EAAK,EAAgBC,EAAI,CAElD,IAAM,EAAgB,EAAQ,GAAG,CAC/B,GAAG,GACF,GAAW,GACX,GAAY,EACd,CAAC,CACF,MAAO,CACL,GAAG,EACH,KAAM,CACJ,EAAG,EAAc,EAAIN,EACrB,EAAG,EAAc,EAAI,EACtB,CACF,EAEJ,KCxaH,SAAS,GAAY,EAAM,CAIzB,OAHI,GAAO,EAAK,EACN,EAAK,UAAY,IAAI,aAAa,CAErC,YAET,SAAS,GAAU,EAAM,CACvB,IAAI,EACJ,OAAQ,GAAQ,OAAS,EAAsB,EAAK,gBAAkB,KAAO,IAAK,GAAI,EAAoB,cAAgB,EAE5H,SAAS,GAAmB,EAAM,CAEhC,QAAgB,GAAO,EAAK,CAAG,EAAK,cAAgB,EAAK,WAAa,EAAO,WAAkC,gBAEjH,SAAS,GAAO,EAAO,CACrB,OAAO,aAAiB,MAAQ,aAAiB,GAAU,EAAM,CAAC,KAEpE,SAAS,GAAU,EAAO,CACxB,OAAO,aAAiB,SAAW,aAAiB,GAAU,EAAM,CAAC,QAEvE,SAAS,GAAc,EAAO,CAC5B,OAAO,aAAiB,aAAe,aAAiB,GAAU,EAAM,CAAC,YAE3E,SAAS,GAAa,EAAO,CAI3B,OAHI,OAAO,WAAe,IACjB,GAEF,aAAiB,YAAc,aAAiB,GAAU,EAAM,CAAC,WAE1E,SAAS,GAAkB,EAAS,CAClC,GAAM,CACJ,WACA,YACA,YACA,WACEQ,GAAiB,EAAQ,CAC7B,MAAO,kCAAkC,KAAK,EAAW,EAAY,EAAU,EAAI,CAAC,CAAC,SAAU,WAAW,CAAC,SAAS,EAAQ,CAE9H,SAAS,GAAe,EAAS,CAC/B,MAAO,CAAC,QAAS,KAAM,KAAK,CAAC,SAAS,GAAY,EAAQ,CAAC,CAE7D,SAAS,GAAkB,EAAS,CAClC,IAAM,EAAS,IAAU,CACnBC,EAAMD,GAAiB,EAAQ,CACrC,OAAOC,EAAI,YAAc,QAAUA,EAAI,cAAgB,SAAWA,EAAI,cAAgBA,EAAI,gBAAkB,SAAW,KAAU,CAAC,IAAWA,EAAI,eAAiBA,EAAI,iBAAmB,OAAS,KAAU,CAAC,IAAWA,EAAI,OAASA,EAAI,SAAW,OAAS,KAAU,CAAC,YAAa,cAAe,SAAS,CAAC,KAAM,IAAWA,EAAI,YAAc,IAAI,SAAS,EAAM,CAAC,EAAI,CAAC,QAAS,SAAU,SAAU,UAAU,CAAC,KAAM,IAAWA,EAAI,SAAW,IAAI,SAAS,EAAM,CAAC,CAExc,SAAS,GAAmB,EAAS,CACnC,IAAI,EAAc,GAAc,EAAQ,CACxC,KAAO,GAAc,EAAY,EAAI,CAAC,GAAsB,EAAY,EACtE,GAAI,GAAkB,EAAY,CAChC,OAAO,OAEP,EAAc,GAAc,EAAY,CAG5C,OAAO,KAET,SAAS,IAAW,CAGlB,OAFI,OAAO,IAAQ,KAAe,CAAC,IAAI,SAC9B,GACF,IAAI,SAAS,0BAA2B,OAAO,CAExD,SAAS,GAAsB,EAAM,CACnC,MAAO,CAAC,OAAQ,OAAQ,YAAY,CAAC,SAAS,GAAY,EAAK,CAAC,CAElE,SAASD,GAAiB,EAAS,CACjC,OAAO,GAAU,EAAQ,CAAC,iBAAiB,EAAQ,CAErD,SAAS,GAAc,EAAS,CAO9B,OANI,GAAU,EAAQ,CACb,CACL,WAAY,EAAQ,WACpB,UAAW,EAAQ,UACpB,CAEI,CACL,WAAY,EAAQ,YACpB,UAAW,EAAQ,YACpB,CAEH,SAAS,GAAc,EAAM,CAC3B,GAAI,GAAY,EAAK,GAAK,OACxB,OAAO,EAET,IAAM,EAEJ,EAAK,cACL,EAAK,YACL,GAAa,EAAK,EAAI,EAAK,MAC3B,GAAmB,EAAK,CAE1B,OAAO,GAAa,EAAO,CAAG,EAAO,KAAO,EAE9C,SAAS,GAA2B,EAAM,CACxC,IAAM,EAAa,GAAc,EAAK,CAOtC,OANI,GAAsB,EAAW,CAC5B,EAAK,cAAgB,EAAK,cAAc,KAAO,EAAK,KAEzD,GAAc,EAAW,EAAI,GAAkB,EAAW,CACrD,EAEF,GAA2B,EAAW,CAE/C,SAAS,GAAqB,EAAM,EAAM,EAAiB,CAErD,IAAS,IAAK,KAChB,EAAO,EAAE,EAEP,IAAoB,IAAK,KAC3B,EAAkB,IAEpB,IAAM,EAAqB,GAA2B,EAAK,CACrD,EAAS,IAAgD,EAAK,eAAuD,KACrH,EAAM,GAAU,EAAmB,CAIzC,OAHI,EACK,EAAK,OAAO,EAAK,EAAI,gBAAkB,EAAE,CAAE,GAAkB,EAAmB,CAAG,EAAqB,EAAE,CAAE,EAAI,cAAgB,EAAkB,GAAqB,EAAI,aAAa,CAAG,EAAE,CAAC,CAEhM,EAAK,OAAO,EAAoB,GAAqB,EAAoB,EAAE,CAAE,EAAgB,CAAC,uBCjHvG,SAAS,GAAiB,EAAS,CACjC,IAAME,EAAMC,GAAiB,EAAQ,CACjC,EAAQ,WAAWD,EAAI,MAAM,EAAI,EACjC,EAAS,WAAWA,EAAI,OAAO,EAAI,EACjC,EAAY,GAAc,EAAQ,CAClC,EAAc,EAAY,EAAQ,YAAc,EAChD,EAAe,EAAY,EAAQ,aAAe,EAClD,EAAiB,GAAM,EAAM,GAAK,GAAe,GAAM,EAAO,GAAK,EAKzE,OAJI,IACF,EAAQ,EACR,EAAS,GAEJ,CACL,QACA,SACA,EAAG,EACJ,CAEH,SAAS,GAAc,EAAS,CAC9B,OAAQ,GAAU,EAAQ,CAA4B,EAAzB,EAAQ,eAEvC,SAAS,GAAS,EAAS,CACzB,IAAM,EAAa,GAAc,EAAQ,CACzC,GAAI,CAAC,GAAc,EAAW,CAC5B,OAAO,GAAa,EAAE,CAExB,IAAM,EAAO,EAAW,uBAAuB,CACzC,CACJ,QACA,SACA,EAAA,GACE,GAAiB,EAAW,CAC5BE,GAAKC,EAAI,GAAM,EAAK,MAAM,CAAG,EAAK,OAAS,EAC3C,GAAKA,EAAI,GAAM,EAAK,OAAO,CAAG,EAAK,QAAU,EAOjD,OANI,CAACD,GAAK,CAAC,OAAO,SAASA,EAAE,IAC3B,EAAI,IAEF,CAAC,GAAK,CAAC,OAAO,SAAS,EAAE,IAC3B,EAAI,GAEC,CACL,EAAA,EACA,IACD,CAGH,SAAS,GAAiB,EAAS,CACjC,IAAM,EAAM,GAAU,EAAQ,CAI9B,MAHI,CAAC,IAAU,EAAI,CAAC,EAAI,eACf,GAEF,CACL,EAAG,EAAI,eAAe,WACtB,EAAG,EAAI,eAAe,UACvB,CAEH,SAAS,GAAuB,EAAS,EAAS,EAAsB,CAOtE,OANI,IAAY,IAAK,KACnB,EAAU,IAER,CAAC,GAAwB,GAAW,IAAyB,GAAU,EAAQ,CAC1E,GAEF,EAET,SAAS,GAAsB,EAAS,EAAc,EAAiB,EAAc,CAC/E,IAAiB,IAAK,KACxB,EAAe,IAEb,IAAoB,IAAK,KAC3B,EAAkB,IAEpB,IAAM,EAAa,EAAQ,uBAAuB,CAC5C,EAAa,GAAc,EAAQ,CACrC,EAAQ,GAAa,EAAE,CACvB,IACE,EACE,GAAU,EAAa,GACzB,EAAQ,GAAS,EAAa,EAGhC,EAAQ,GAAS,EAAQ,EAG7B,IAAM,EAAgB,GAAuB,EAAY,EAAiB,EAAa,CAAG,GAAiB,EAAW,CAAG,GAAa,EAAE,CACpIA,GAAK,EAAW,KAAO,EAAc,GAAK,EAAM,EAChD,GAAK,EAAW,IAAM,EAAc,GAAK,EAAM,EAC/C,EAAQ,EAAW,MAAQ,EAAM,EACjC,EAAS,EAAW,OAAS,EAAM,EACvC,GAAI,EAAY,CACd,IAAM,EAAM,GAAU,EAAW,CAC3B,EAAY,GAAgB,GAAU,EAAa,CAAG,GAAU,EAAa,CAAG,EAClF,EAAa,EACb,EAAgB,EAAW,aAC/B,KAAO,GAAiB,GAAgB,IAAc,GAAY,CAChE,IAAM,EAAc,GAAS,EAAc,CACrC,EAAa,EAAc,uBAAuB,CAClDF,EAAMC,GAAiB,EAAc,CACrC,EAAO,EAAW,MAAQ,EAAc,WAAa,WAAWD,EAAI,YAAY,EAAI,EAAY,EAChG,EAAM,EAAW,KAAO,EAAc,UAAY,WAAWA,EAAI,WAAW,EAAI,EAAY,EAClG,GAAK,EAAY,EACjB,GAAK,EAAY,EACjB,GAAS,EAAY,EACrB,GAAU,EAAY,EACtB,GAAK,EACL,GAAK,EACL,EAAa,GAAU,EAAc,CACrC,EAAgB,EAAW,cAG/B,OAAO,GAAiB,CACtB,QACA,SACA,EAAA,EACA,IACD,CAAC,CAGJ,SAAS,GAAW,EAAU,CAC5B,OAAO,GAAkB,KAAM,GAAa,CAC1C,GAAI,CACF,OAAO,EAAS,QAAQ,EAAS,MACvB,CACV,MAAO,KAET,CAEJ,SAAS,GAAsD,EAAM,CACnE,GAAI,CACF,WACA,OACA,eACA,YACE,EACE,EAAU,IAAa,QACvB,EAAkB,GAAmB,EAAa,CAClD,EAAW,EAAW,GAAW,EAAS,SAAS,CAAG,GAC5D,GAAI,IAAiB,GAAmB,GAAY,EAClD,OAAO,EAET,IAAIK,EAAS,CACX,WAAY,EACZ,UAAW,EACZ,CACG,EAAQ,GAAa,EAAE,CACrB,EAAU,GAAa,EAAE,CACzB,EAA0B,GAAc,EAAa,CAC3D,IAAI,GAA2B,CAAC,GAA2B,CAAC,MACtD,GAAY,EAAa,GAAK,QAAU,GAAkB,EAAgB,IAC5E,EAAS,GAAc,EAAa,EAElC,GAAc,EAAa,EAAE,CAC/B,IAAM,EAAa,GAAsB,EAAa,CACtD,EAAQ,GAAS,EAAa,CAC9B,EAAQ,EAAI,EAAW,EAAI,EAAa,WACxC,EAAQ,EAAI,EAAW,EAAI,EAAa,UAG5C,MAAO,CACL,MAAO,EAAK,MAAQ,EAAM,EAC1B,OAAQ,EAAK,OAAS,EAAM,EAC5B,EAAG,EAAK,EAAI,EAAM,EAAIA,EAAO,WAAa,EAAM,EAAI,EAAQ,EAC5D,EAAG,EAAK,EAAI,EAAM,EAAIA,EAAO,UAAY,EAAM,EAAI,EAAQ,EAC5D,CAEH,SAAS,GAAe,EAAS,CAC/B,OAAO,MAAM,KAAK,EAAQ,gBAAgB,CAAC,CAE7C,SAAS,GAAoB,EAAS,CACpC,OAAO,GAAsB,GAAmB,EAAQ,CAAC,CAAC,KAAO,GAAc,EAAQ,CAAC,WAE1F,SAAS,GAAgB,EAAS,CAChC,IAAM,EAAO,GAAmB,EAAQ,CAClCA,EAAS,GAAc,EAAQ,CAC/B,EAAO,EAAQ,cAAc,KAC7B,EAAQ,GAAI,EAAK,YAAa,EAAK,YAAa,EAAK,YAAa,EAAK,YAAY,CACnF,EAAS,GAAI,EAAK,aAAc,EAAK,aAAc,EAAK,aAAc,EAAK,aAAa,CAC1FH,EAAI,CAACG,EAAO,WAAa,GAAoB,EAAQ,CACnD,EAAI,CAACA,EAAO,UAIlB,OAHIJ,GAAiB,EAAK,CAAC,YAAc,QACvC,GAAK,GAAI,EAAK,YAAa,EAAK,YAAY,CAAG,GAE1C,CACL,QACA,SACA,EAAA,EACA,IACD,CAEH,SAAS,GAAgB,EAAS,EAAU,CAC1C,IAAM,EAAM,GAAU,EAAQ,CACxB,EAAO,GAAmB,EAAQ,CAClC,EAAiB,EAAI,eACvB,EAAQ,EAAK,YACb,EAAS,EAAK,aACdC,EAAI,EACJ,EAAI,EACR,GAAI,EAAgB,CAClB,EAAQ,EAAe,MACvB,EAAS,EAAe,OACxB,IAAM,EAAsB,IAAU,EAClC,CAAC,GAAuB,GAAuB,IAAa,WAC9D,EAAI,EAAe,WACnB,EAAI,EAAe,WAGvB,MAAO,CACL,QACA,SACA,EAAA,EACA,IACD,CAEH,SAAS,GAA2B,EAAS,EAAU,CACrD,IAAM,EAAa,GAAsB,EAAS,GAAM,IAAa,QAAQ,CACvE,EAAM,EAAW,IAAM,EAAQ,UAC/B,EAAO,EAAW,KAAO,EAAQ,WACjC,EAAQ,GAAc,EAAQ,CAAG,GAAS,EAAQ,CAAG,GAAa,EAAE,CAK1E,MAAO,CACL,MALY,EAAQ,YAAc,EAAM,EAMxC,OALa,EAAQ,aAAe,EAAM,EAM1C,EALQ,EAAO,EAAM,EAMrB,EALQ,EAAM,EAAM,EAMrB,CAEH,SAAS,GAAkC,EAAS,EAAkB,EAAU,CAC9E,IAAI,EACJ,GAAI,IAAqB,WACvB,EAAO,GAAgB,EAAS,EAAS,SAChC,IAAqB,WAC9B,EAAO,GAAgB,GAAmB,EAAQ,CAAC,SAC1C,GAAU,EAAiB,CACpC,EAAO,GAA2B,EAAkB,EAAS,KACxD,CACL,IAAM,EAAgB,GAAiB,EAAQ,CAC/C,EAAO,CACL,GAAG,EACH,EAAG,EAAiB,EAAI,EAAc,EACtC,EAAG,EAAiB,EAAI,EAAc,EACvC,CAEH,OAAO,GAAiB,EAAK,CAE/B,SAAS,GAAyB,EAAS,EAAU,CACnD,IAAM,EAAa,GAAc,EAAQ,CAIzC,OAHI,IAAe,GAAY,CAAC,GAAU,EAAW,EAAI,GAAsB,EAAW,CACjF,GAEFD,GAAiB,EAAW,CAAC,WAAa,SAAW,GAAyB,EAAY,EAAS,CAE5G,SAAS,GAA4B,EAAS,EAAO,CACnD,IAAM,EAAeK,EAAM,IAAI,EAAQ,CACvC,GAAI,EACF,OAAO,EAET,IAAI,EAAS,GAAqB,EAAS,EAAE,CAAE,GAAM,CAAC,OAAQ,GAAO,GAAU,EAAG,EAAI,GAAY,EAAG,GAAK,OAAO,CAC7G,EAAsC,KACpC,EAAiBL,GAAiB,EAAQ,CAAC,WAAa,QAC1D,EAAc,EAAiB,GAAc,EAAQ,CAAG,EAC5D,KAAO,GAAU,EAAY,EAAI,CAAC,GAAsB,EAAY,EAAE,CACpE,IAAM,EAAgBA,GAAiB,EAAY,CAC7C,EAA0B,GAAkB,EAAY,CAC1D,CAAC,GAA2B,EAAc,WAAa,UACzD,EAAsC,OAEV,EAAiB,CAAC,GAA2B,CAAC,EAAsC,CAAC,GAA2B,EAAc,WAAa,UAAc,GAAuC,CAAC,WAAY,QAAQ,CAAC,SAAS,EAAoC,SAAS,EAAI,GAAkB,EAAY,EAAI,CAAC,GAA2B,GAAyB,EAAS,EAAY,EAExZ,EAAS,EAAO,OAAQ,GAAa,IAAa,EAAY,CAE9D,EAAsC,EAExC,EAAc,GAAc,EAAY,CAG1C,OADA,EAAM,IAAI,EAAS,EAAO,CACnB,EAET,SAAS,GAAgB,EAAM,CAC7B,GAAI,CACF,UACA,WACA,eACA,YACE,EAEE,EAAoB,CAAC,GADM,IAAa,oBAAsB,GAA4B,EAAS,KAAK,GAAG,CAAG,EAAE,CAAC,OAAO,EAAS,CAC/E,EAAa,CAC/D,EAAwB,EAAkB,GAC1C,EAAe,EAAkB,QAAQ,EAAS,IAAqB,CAC3E,IAAM,EAAO,GAAkC,EAAS,EAAkB,EAAS,CAKnF,MAJA,GAAQ,IAAM,GAAI,EAAK,IAAK,EAAQ,IAAI,CACxC,EAAQ,MAAQ,GAAI,EAAK,MAAO,EAAQ,MAAM,CAC9C,EAAQ,OAAS,GAAI,EAAK,OAAQ,EAAQ,OAAO,CACjD,EAAQ,KAAO,GAAI,EAAK,KAAM,EAAQ,KAAK,CACpC,GACN,GAAkC,EAAS,EAAuB,EAAS,CAAC,CAC/E,MAAO,CACL,MAAO,EAAa,MAAQ,EAAa,KACzC,OAAQ,EAAa,OAAS,EAAa,IAC3C,EAAG,EAAa,KAChB,EAAG,EAAa,IACjB,CAEH,SAAS,GAAc,EAAS,CAC9B,GAAM,CACJ,QACA,UACE,GAAiB,EAAQ,CAC7B,MAAO,CACL,QACA,SACD,CAEH,SAAS,GAA8B,EAAS,EAAc,EAAU,CACtE,IAAM,EAA0B,GAAc,EAAa,CACrD,EAAkB,GAAmB,EAAa,CAClD,EAAU,IAAa,QACvB,EAAO,GAAsB,EAAS,GAAM,EAAS,EAAa,CACpEI,EAAS,CACX,WAAY,EACZ,UAAW,EACZ,CACK,EAAU,GAAa,EAAE,CAC/B,GAAI,GAA2B,CAAC,GAA2B,CAAC,EAI1D,IAHI,GAAY,EAAa,GAAK,QAAU,GAAkB,EAAgB,IAC5E,EAAS,GAAc,EAAa,EAElC,EAAyB,CAC3B,IAAM,EAAa,GAAsB,EAAc,GAAM,EAAS,EAAa,CACnF,EAAQ,EAAI,EAAW,EAAI,EAAa,WACxC,EAAQ,EAAI,EAAW,EAAI,EAAa,eAC/B,IACT,EAAQ,EAAI,GAAoB,EAAgB,EAKpD,MAAO,CACL,EAHQ,EAAK,KAAOA,EAAO,WAAa,EAAQ,EAIhD,EAHQ,EAAK,IAAMA,EAAO,UAAY,EAAQ,EAI9C,MAAO,EAAK,MACZ,OAAQ,EAAK,OACd,CAEH,SAAS,GAAoB,EAAS,EAAU,CAO9C,MANI,CAAC,GAAc,EAAQ,EAAIJ,GAAiB,EAAQ,CAAC,WAAa,QAC7D,KAEL,EACK,EAAS,EAAQ,CAEnB,EAAQ,aAEjB,SAAS,GAAgB,EAAS,EAAU,CAC1C,IAAMM,EAAS,GAAU,EAAQ,CACjC,GAAI,CAAC,GAAc,EAAQ,EAAI,GAAW,EAAQ,CAChD,OAAOA,EAET,IAAI,EAAe,GAAoB,EAAS,EAAS,CACzD,KAAO,GAAgB,GAAe,EAAa,EAAIN,GAAiB,EAAa,CAAC,WAAa,UACjG,EAAe,GAAoB,EAAc,EAAS,CAK5D,OAHI,IAAiB,GAAY,EAAa,GAAK,QAAU,GAAY,EAAa,GAAK,QAAUA,GAAiB,EAAa,CAAC,WAAa,UAAY,CAAC,GAAkB,EAAa,EACpLM,EAEF,GAAgB,GAAmB,EAAQ,EAAIA,EAcxD,SAAS,GAAM,EAAS,CACtB,OAAON,GAAiB,EAAQ,CAAC,YAAc,8CAlY8F,KAEvC,KAC0M,CA8C5S,GAA4B,GAAa,EAAE,CAwE3C,GAAoB,CAAC,gBAAiB,SAAS,CA4P/C,GAAkB,eAAe,EAAM,CAC3C,IAAM,EAAoB,KAAK,iBAAmB,GAC5C,EAAkB,KAAK,cAC7B,MAAO,CACL,UAAW,GAA8B,EAAK,UAAW,MAAM,EAAkB,EAAK,SAAS,CAAE,EAAK,SAAS,CAC/G,SAAU,CACR,EAAG,EACH,EAAG,EACH,GAAG,MAAM,EAAgB,EAAK,SAAS,CACxC,CACF,EAKG,GAAW,CACf,yDACA,sBACA,mBACA,mBACA,mBACA,kBACA,iBACA,YACA,aACA,SACD,CACK,GAAgB,GAChB,GAAQ,GACR,IAAmB,EAAW,EAAU,IAAY,CACxD,IAAMK,EAAwB,IAAI,IAC5B,EAAgB,CACpB,YACA,GAAG,EACJ,CACK,EAAoB,CACxB,GAAG,EAAc,SACjB,GAAIA,EACL,CACD,OAAO,GAAkB,EAAW,EAAU,CAC5C,GAAG,EACH,SAAU,EACX,CAAC,sBC/Z2B,KACkF,KAC7B,CAC9E,OAAmC,CACvC,IAAM,EAAsBE,EAAO,KAAK,CAClC,EAAqBA,EAAO,KAAK,CAgBvC,MAAO,CACL,sBACA,qBACA,wBAlB8B,MAAO,EAAS,EAAE,GAAK,CACrD,GAAI,CAAC,EAAoB,SAAW,CAAC,EAAmB,QACtD,OAEF,GAAM,CACJ,EAAA,EACA,KACE,MAAM,GAAgB,EAAoB,QAAS,EAAmB,QAAS,CACjF,WAAY,CAAC,GAAc,EAAO,cAAc,CAAE,GAAO,EAAO,OAAO,CAAE,GAAM,EAAO,MAAM,CAAC,CAC9F,CAAC,CACF,OAAO,OAAO,EAAmB,QAAQ,MAAO,CAC9C,KAAM,GAAGC,EAAE,IACX,IAAK,GAAG,EAAE,IACX,CAAC,EAMH,sBCzB+B,CAC5B,IAAmB,EAAK,IAAY,CACxC,MAAgB,CACd,IAAM,EAAY,GAAU,CACtB,CAAC,EAAI,SAAW,EAAI,QAAQ,SAAS,EAAM,OAAO,EAGtD,GAAS,EAIX,OAFA,SAAS,iBAAiB,YAAa,EAAS,CAChD,SAAS,iBAAiB,aAAc,EAAS,KACpC,CACX,SAAS,oBAAoB,YAAa,EAAS,CACnD,SAAS,oBAAoB,aAAc,EAAS,GAErD,CAAC,EAAK,EAAQ,CAAC,uBCf6F,CAC3G,OAAwC,CAC5C,GAAM,CACJ,uBACE,IAAwB,CAI5B,MAAO,CACL,iCAJyC,CACzC,EAAoB,YAAY,EAIjC,4BCViD,KACsC,KACtB,KACkB,KACzB,IAC7C,IAC0B,CACpC,GAAiB,GACjB,GAAwB,GACxB,GAAyB,GAAoB,CACjD,GAAM,CAAC,EAAU,GAAeC,EAAS,EAAgB,CACnD,EAAeC,EAAO,KAAK,CAC3B,CACJ,sBACA,qBACA,2BACE,IAA4B,CAC1B,EAAkB,EAAU,EAAc,CAC9C,OAAQ,EACR,KAAM,GACP,CAAC,CACI,CACJ,gCACE,IAAiC,CAkCrC,OAjCA,MAAgB,CACT,IAAU,EAGf,EAAY,EAAgB,EAC3B,CAAC,EAAgB,CAAC,CACrB,MAAgB,CACT,GAGL,EAAwB,CACtB,OAAQ,GACR,MAAO,CACL,QAAS,GACV,CACD,cAAe,CACb,kBAAmB,CAAC,MAAO,SAAS,CACrC,CACF,CAAC,EACD,CAAC,EAAS,CAAC,CACd,GAAgB,MAAoB,CAC7B,GAGA,GAGL,EAAY,GAAM,EAClB,CAKK,CACL,WACA,eACA,sBACA,qBACA,yBATiC,CACjC,GAA8B,CAC9B,EAAa,GAAS,CAAC,EAAK,EAQ7B,gCC/DF,UAAW,CAEV,GAAI,CACF,GAAI,OAAO,SAAY,IAAa,CAClC,IAAI,EAAe,SAAS,cAAc,QAAQ,CAClD,EAAa,YAAY,SAAS,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAA6+B,CAAC,CAC/hC,SAAS,KAAK,YAAY,EAAa,QAElCC,EAAG,CACV,QAAQ,MAAM,iCAAkCA,EAAE,KAElD,CACE,GAAmB,4BACnB,GAAY,qBACZ,GAAiB,2BACjB,GAAmB,6BACnBC,GAAS,CACb,oBACA,aACA,kBACA,oBACD,qBCrBoC,CAC/B,GAAqB,CACzB,YAAa,CACX,KAAM,EAAY,OAClB,MAAO,UACP,YAAa;iBACb,aAAc,GACf,CACF,wBCR6C,IACY,IACF,KACG,KACE,KACc,KACqF,KAC1F,KACd,KAC6B,KACd,KACU,IAClE,KAC8D,KACX,IACZ,KACc,KACmB,IACrD,KACmD,IACtB,KACsB,KAC1B,KACP,KACoB,KACd,IACF,KACF,KACc,KAChB,KACY,KACU,KACR,IAC/C,IACqB,KACgC,KAC/B,IACU,KAC6B,KACzB,CACjD,IAAsB,CAC1B,YACA,SAAU,EACV,cACA,QACA,iBACI,CACJ,GAAM,CACJ,WACA,eACA,sBACA,qBACA,wBACE,GAAsB,EAAgB,CAC1C,GAAkB,EAAU,CAC5B,GAAM,CACJ,eACE,GAAoB,CAAC,OAAO,EAAU,CAAC,CAAC,CAItC,EAAU,GAHM,EAAY,MAAM,CACtC,YACI,IAAW,OAAO,EAAU,CAAC,CACuB,CACpD,EAAW,IAAU,EAAI,IAAiB,CAIhD,MAHI,CAAC,GAAW,CAAC,EACR,KAEc,EAAK,MAAO,CAAE,IAAK,EAAc,QAAO,SAAU,CACvD,EAAI,MAAO,CAAE,UAAWC,GAAO,iBAAkB,QAAS,EAAsB,SAA0B,EAAI,EAAO,OAAQ,CAAE,UAAWA,GAAO,UAAW,IAAK,EAAqB,mBAAoB,EAAa,WAAY,GAAyB,SAAU,GAAuB,SAA0B,EAAI,GAAU,EAAE,CAAC,CAAE,CAAC,CAAE,CAAC,CAC9U,EAAI,EAAO,IAAK,CAAE,UAAWA,GAAO,eAAgB,IAAK,EAAoB,SAA0B,EAAI,GAAiB,CAAE,SAAU,EAA2B,EAAI,EAAO,IAAK,CAAE,GAAG,GAAuB,QAAS,IAAU,CAAG,IAAK,GAAI,GAA+B,SAA0B,EAAI,MAAO,CAAE,UAAWA,GAAO,iBAAkB,QAAO,SAAU,EAA0B,EAAI,GAAa,CAAE,UAAS,KAAM,EAAgB,IAAK,KAAM,QAAS,gBAAiB,CACxe,UACA,eAAgB,GAChB,cAAe,EAChB,CAAE,UAAW,GAAO,gBAAiB,GAAO,SAAU,GAAO,aAAc,GAAO,UAAW,MAAO,MAAO,CAC1G,SAAU,SACX,CAAE,cAAiB,GACjB,eAAkB,GAClB,CAAC,CAAmB,EAAI,GAAU,CAAE,YAAW,WAAU,CAAC,CAAE,CAAC,CAAE,CAAC,CAAG,KAAM,CAAC,CAAE,CAAC,CACjF,CAAE,CAAC,EAEA,IAAY,CAChB,YACA,cAEK,EAGA,EAGE,6EAFE,yEAHA,KAOX,EAAoB,GAAoB,CACtC,SAAU,CACR,MAAO,WACP,KAAM,EAAY,QAClB,aAAc,GACf,CACD,UAAW,CACT,MAAO,QACP,KAAM,EAAY,OAClB,YAAa,YACb,YAAa,SACd,CACD,YAAa,CACX,MAAO,UACP,KAAM,EAAY,KAClB,wBAAyB,GACzB,QAAS,CAAC,OAAQ,QAAQ,CAC1B,aAAc,CAAC,MAAO,MAAM,CAC5B,aAAc,OACf,CACD,GAAG,GACJ,CAAC,sBChHmI,CACrI,GAAmB,YAAY,oBAIb,gCCLd,GAAY,OAAO,eACnB,IAAmB,EAAK,EAAK,IAAU,KAAO,EAAM,GAAU,EAAK,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,QAAO,CAAC,CAAG,EAAI,GAAO,EACtJ,IAAiB,EAAK,EAAK,KAC7B,GAAgB,EAAK,OAAO,GAAQ,SAAsB,EAAX,EAAM,GAAU,EAAM,CAC9D,GAEH,GAAN,KAAmB,CACjB,YAAY,EAAK,CACf,GAAc,KAAM,MAAM,CAC1B,KAAK,IAAM,IAAI,IAAI,EAAI,CAEzB,IAAI,EAAM,EAAO,CACf,KAAK,IAAI,aAAa,IAAI,EAAM,EAAM,CAExC,WAAW,EAAS,CAElB,OADA,KAAK,IAAI,IAAK,GAAG,IAAU,CACpB,KAET,UAAU,EAAQ,CAEhB,OADA,KAAK,IAAI,SAAUC,EAAO,CACnB,KAET,SAAS,EAAO,CAEd,OADA,KAAK,IAAI,QAAS,GAAG,IAAQ,CACtB,KAET,QAAS,CACP,OAAO,KAAK,IAAI,KAElB,UAAU,GAAG,EAAQ,CAOnB,OANe,MAAM,KAAK,IAAI,IAAI,EAAO,CAAC,CACrB,IAAK,GAAU,CAClC,IAAM,EAAM,IAAI,IAAI,KAAK,IAAI,CAE7B,OADA,EAAI,aAAa,IAAI,QAAS,GAAG,EAAQ,IAAI,CACtC,GAAG,EAAI,KAAK,GAAG,EAAM,IAC5B,CACW,KAAK,IAAI,GAGpB,GAAgB,GAAQ,IAAI,GAAa,EAAI,wBCvCL,KACmB,CAC3D,GAAiB,CAAC,IAAK,KAAM,KAAK,CAClC,IAAkB,CACtB,QACA,QACA,OACA,YACI,CACJ,GAAI,CAAC,EACH,OAEF,IAAM,EAAY,GAAa,EAAO,CAAC,UAAU,OAAO,CAAC,WAAW,GAAG,CACjE,EAAQ,GAAa,EAAO,CAAC,WAAW,GAAG,CACjD,OAAuB,EAAK,UAAW,CAAE,SAAU,CACjC,EAAI,SAAU,CAAE,OAAQ,EAAU,UAAU,GAAG,GAAe,CAAE,IAAK,EAAU,QAAQ,CAAE,QAAO,CAAC,CACjG,EAAI,MAAO,CAAE,QAAO,QAAS,EAAO,OAAS,QAAS,MAAO,QAAS,OAAQ,EAAM,UAAU,GAAG,GAAe,CAAE,IAAK,EAAQ,IAAK,EAAQ,CAAC,CAC9J,CAAE,CAAC,sBCjBoC,IACuB,KACN,KACA,CACrD,OAA2B,CAC/B,IAAM,EAAWC,EAAO,KAAK,CACvB,EAAW,EAAU,EAAS,CAC9B,EAAgB,IAAmB,CACnC,CAAC,EAAiB,GAAsBC,EAAS,GAAK,CACtD,CAAC,EAAmB,GAAwBA,EAAS,GAAM,CA8BjE,OA1BA,GAAkB,kBAHeC,EAAa,GAAY,CACxD,EAAmB,EAAQ,MAAM,UAAU,GAAK,OAAO,EACtD,EAAE,CAAC,CACwD,CAC9D,MAAgB,CACV,GAAY,CAAC,GACf,EAAqB,GAAK,EAE3B,CAAC,EAAU,EAAkB,CAAC,CACjC,MAAgB,CACd,IAAI,EACC,KAAS,QAGd,IAAI,SAAS,kBAAoB,SAAU,CACzC,EAAS,QAAQ,OAAO,CACxB,OAEF,GAAI,CAAC,EAAiB,CACpB,EAAS,QAAQ,OAAO,CACxB,OAEE,GACD,EAAK,EAAS,UAAY,MAAgB,EAAG,MAAM,CAAC,UAAY,GAC/D,CAEF,EAAS,QAAQ,OAAO,GAEzB,CAAC,EAAU,EAAe,EAAgB,CAAC,CACvC,CACL,WACA,WACA,oBACD,sBC3CCC,IAA+B,IACjC,EAAY,EAAY,QAAa,GAAK,UAC1C,EAAY,EAAY,OAAY,GAAK,SACzC,EAAY,EAAY,OAAY,GAAK,SAClC,IACNA,IAAc,EAAE,CAAC,CAChB,IAA8B,IAChC,EAAW,EAAW,MAAW,GAAK,QACtC,EAAW,EAAW,MAAW,GAAK,QAC/B,IACN,IAAa,EAAE,CAAC,2BCV2B,IACJ,IACX,KACiD,KACX,IACZ,KACc,IAClC,IAC6B,KACsB,KAC1B,KACP,IACvC,KAC2D,KACd,IACF,KACF,KACc,KAChB,KACY,KACU,KACR,IAClD,IACwB,KACgC,KACE,KACjC,IACU,KACC,KACA,CACjD,IAAuB,CAC3B,SACA,aACA,SACA,QACA,aACA,WACI,CACJ,GAAM,CACJ,YACE,IAAoB,CAClB,EAAQ,GAAQ,CACpB,MAAO,GAAwB,GAC/B,EAAG,GACJ,CAAC,CACF,OAAuB,EAAI,MAAO,CAAE,MAAO,CACzC,SAAU,WACV,GAAG,EACJ,CAAE,SAA0B,EAAK,QAAS,CAAE,IAAK,EAAU,YAAa,GAAM,MAAO,GAAM,KAAM,GAAM,QAAS,OAAQ,MAAO,CAC9H,MAAO,OACP,OAAQ,OACR,UAAW,QACX,SAAU,SACV,gBAAiB,OAAO,EAAO,GAC/B,mBAAoB,SACpB,eAAgB,QACjB,CAAE,OAAQ,GAAG,EAAO,GAAG,IAAS,SAAU,CACzC,GAA8B,EAAI,SAAU,CAAE,KAAM,aAAc,IAAK,EAAY,QAAO,CAAC,CAC3E,EAAI,SAAU,CAAE,KAAM,YAAa,IAAK,EAAQ,QAAO,CAAC,CACzE,CAAE,CAAC,CAAE,CAAC,EAEH,IAAkB,CACtB,QACA,OACA,GAAG,KACC,CACJ,IAAM,EAAMC,EAAO,KAAK,CAClB,EAAW,EAAU,EAAK,CAC9B,OAAQ,YACR,KAAM,GACP,CAAC,CAIF,OAHI,GAAQ,CAAC,EACY,EAAI,MAAO,CAAE,MAAK,QAAO,CAAC,CAE5B,EAAI,GAAqB,CAAE,QAAO,GAAG,EAAM,CAAC,EAE/D,GAA0B,EAC7BC,GAAW,SAAU,IAAK,IAC1BA,GAAW,QAAS,MACpBA,GAAW,QAAS,KACtB,iCChFuC,IACkB,IAC7B,KACuC,KACA,KACH,CAC3D,GAAYC,GAAM,CACtB,QACA,aACA,OACA,OACA,SACA,aACA,SACA,iBAEI,IAAS,GAAU,MACE,EAAI,GAAgB,CAAE,MAAO,CAClD,GAAG,EACH,GAAG,GACJ,CAAE,MAAO,GAAkB,GAAa,OAAM,OAAQ,EAAa,CAAC,CAEhD,EAAI,GAAgB,CAAE,MAAO,CAClD,GAAG,EACH,GAAG,GACJ,CAAE,aAAY,OAAM,MAAO,GAAkB,GAAa,SAAQ,aAAY,SAAQ,CAAC,CACxF,CACI,GAAoB,EACvBC,GAAW,SAAU,uBACrBA,GAAW,QAAS,sBACpBA,GAAW,QAAS,IAAK,GAC3B,CACK,GAAa,CACjB,MAAO,OACP,OAAQ,OACR,QAAS,QACT,UAAW,QACX,eAAgB,UAChB,WAAY,cACZ,OAAQ,EACR,QAAS,OACV,CACK,IAAW,CACf,UACI,IAAS,GAAU,MACnB,IAAW,CACf,UACI,IAAS,GAAU,MACzB,EAAoB,GAAW,CAC7B,WAAY,CACV,KAAM,EAAY,KAClB,MAAO,MACP,QAAS,CAACA,GAAW,QAASA,GAAW,OAAQA,GAAW,OAAO,CACnE,aAAc,CAAC,KAAM,SAAU,SAAS,CACxC,wBAAyB,GAC1B,CACD,KAAM,CACJ,KAAM,EAAY,KAClB,MAAO,SACP,QAAS,CAAC,GAAU,MAAO,GAAU,MAAM,CAC3C,aAAc,CAAC,QAAS,QAAQ,CAChC,aAAc,GAAU,MACxB,wBAAyB,GAC1B,CACD,KAAM,CACJ,KAAM,EAAY,QAClB,MAAO,QACP,YAAa,oCACb,aAAc,GACf,CACD,OAAQ,CACN,OAAQ,GACR,KAAM,EAAY,OAClB,MAAO,MACP,YAAa,wDACd,CACD,WAAY,CACV,OAAQ,GACR,KAAM,EAAY,OAClB,MAAO,gBACP,YAAa,0BACd,CACD,OAAQ,CACN,OAAQ,GACR,KAAM,EAAY,OAClB,MAAO,eACP,YAAa,yBACd,CACD,YAAa,CACX,OAAQ,GACR,KAAM,EAAY,OAClB,MAAO,SACP,YAAa,sCACd,CACF,CAAC,sBC9FwG,CAE1G,GAAU,YAAY,eAEJ,oBCJd,IAAwC,IAC1C,EAAqB,EAAqB,OAAY,GAAK,SAC3D,EAAqB,EAAqB,OAAY,GAAK,SAC3D,EAAqB,EAAqB,KAAU,GAAK,OAClD,IACN,IAAuB,EAAE,CAAC,wBCLkC,KACiC,CAC1F,GAAkD,sCAClD,GAA6B,GAC1B,GAAO,EAAW,CAAC,GAAiD,EAAS,CAAG,SAAY,GAAsB,mCAAmC,OAAO,EAAS,CAAC,CAAC,2BCJxI,IAC6B,KACe,KACgB,KACA,IAC3C,KACc,KAC+B,IACjE,IAC6B,KACsB,KAC1B,KACP,IACI,IACL,KACU,KACc,CACxE,GAAiBC,EAAc,IAAK,GAAE,CACtC,IAAmB,CACvB,WACA,UAAU,EAAE,IACR,CAEJ,IAAM,EAAsB,EAAQ,OAAQ,GAAQ,EAAI,OAAS,0BAA0B,GAAwB,IAA0B,QACvI,EAAuB,EAAQ,OAAQ,GAAQ,EAAI,OAAS,yBAAyB,GAAwB,IAA0B,SACvI,CAAC,GAAmBC,EAAS,EAAQ,CACrC,CACJ,SACA,OAAQ,GACNC,IAAgB,CACd,CACJ,KAAM,EACN,UAAW,GACT,GAAyB,EAAO,CAC9B,CACJ,KAAM,EACN,UAAW,GACT,GAA2B,GAAU,EAAU,EAAU,IAAK,GAAE,CAC9D,CACJ,KAAM,EACN,UAAW,GACT,GAA0B,GAAU,EAAW,EAAW,IAAK,GAAE,CAC/D,EAAgBC,MAAc,CAElC,IAAM,EAAU,EACV,EAAQ,CAAC,EACT,EAAqB,GAAmD,MAA6B,cAAiB,GACtH,EAAoC,GAA2E,MAA6B,aAAgB,GAC5J,EAAmC,GAAyE,MAA6B,aAAgB,GA+B/J,MAAO,CACL,QAAS,GAAwB,GAAoC,EACrE,UACA,QACA,aACA,4BACA,2BACA,UAAW,IAAU,EAAI,IAAiB,OApCtC,EAAgB,SAAW,GAG3B,EAAgB,KAAM,GAAQ,EAAI,OAAS,GAAG,CACzC,GAEF,EAAgB,MAAO,GAAQ,CACpC,OAAQ,EAAI,KAAZ,CACE,IAAK,QACH,OAAO,EACT,IAAK,QACH,OAAO,EACT,IAAK,WACH,OAAQ,EAAgB,EAAP,GACnB,IAAK,0BACH,OAAQ,EAAgB,EAAP,GACnB,IAAK,yBACH,OAAQ,EAAgB,EAAP,GACnB,IAAK,SAIH,OAHK,EAAI,OAGD,EAAgB,IAAe,MAAQ,IAAe,EAAI,OAAjD,GAFR,GAIX,QACE,MAAO,KAEX,GASuD,CAC1D,EACA,CAAC,EAAQ,EAAY,EAAiB,EAAsB,EAAiB,EAA6B,EAA4B,EAAkC,EAAgC,CAAC,CAC5M,OAAuB,EAAI,GAAe,SAAU,CAAE,MAAO,CAC3D,GAAG,EACH,SAAU,EACX,CAAE,WAAU,CAAC,EAEV,OAAmB,CACvB,IAAM,EAAUC,EAAW,GAAe,CAC1C,GAAI,IAAY,IAAK,GACnB,MAAU,MAAM,mDAAmD,CAErE,OAAO,0BCnG+B,IACE,IACI,CACxC,GAAsBC,EAAc,CACxC,SAAU,GACX,CAAC,CACI,IAAwB,CAC5B,WACA,GAAG,KACC,CACJ,IAAM,EAAMC,EAAO,KAAK,CAClB,EAAW,EAAU,EAAK,EAAK,CACrC,OAAuB,EAAI,GAAoB,SAAU,CAAE,MAAO,CAChE,WACD,CAAE,SAA0B,EAAI,MAAO,CAAE,MAAK,MAAO,CACpD,MAAO,OACR,CAAE,WAAU,CAAC,CAAE,CAAC,sBChBgB,KAC6B,CAC1D,OACGC,EAAW,GAAoB,yBCH4B,CAC9DC,GAAe,CACnB,QAAS,EAAE,CACZ,CACK,GAAgB,GAAQ,IAAS,CACrC,GAAGA,GACH,kBAAmB,EAAK,IAAU,EAAK,IAAU,CAC/C,QAAS,CACP,GAAG,EAAK,SACP,GAAM,EACR,CACF,EAAE,CACJ,EAAE,kBCZG,GAAsB,GAAY,CACtC,GAAM,CACJ,cAAc,EACd,cAAc,GACZ,GAAW,EAAE,CACjB,OAAO,EAAc,6BCLiB,IACuB,IACiC,KACtB,CACpE,GAAuBC,EAAc,KAAK,CAC1CC,GAAOC,GAAY,CACvB,WACA,QACA,eACA,QACA,kBAAkB,EAClB,mBAAmB,EACnB,gBACA,GAAG,GACF,IAAQ,CACT,IAAM,EAAOC,EAAuB,IAAI,IAAM,CACxC,EAAUA,EAAO,KAAK,CACtB,CAAC,GAAc,EAAK,QAAQ,MAAM,CAClC,CAAC,EAAc,GAAmBC,EAAS,GAAgB,GAAS,EAAW,CAC/E,EAAQ,GAAe,EAAE,CACzB,GAAW,EAAU,EAAS,KAAS,CAC3C,IAAM,EAAO,EAAK,QAAQ,IAAI,EAAS,CACvC,GAAI,IAAS,IAAK,GAChB,OAGF,IAAM,EAAS,CAACC,GAAM,EADJ,GAAmB,EAAQ,QAAQ,CACjB,EAAK,WAAa,EAAgB,CAClE,EACF,GAAQ,EAAO,EAAQ,CACrB,KAAM,SACN,UAAW,IACX,QAAS,GACV,CAAC,CAEF,EAAM,IAAI,EAAO,EAGf,EAAQ,GAAS,CACrB,IAA+C,EAAK,CACpD,EAAgB,EAAK,CACrB,EAAQ,EAAK,EAEf,MAAsB,CAChB,GACF,EAAQ,EAAc,GAAM,EAE7B,EAAE,CAAC,CACN,MAAgB,CACV,GACF,EAAK,EAAM,EAEZ,CAAC,EAAM,CAAC,CACX,IAAM,EAAU,CACd,OACA,UACA,eACA,QACA,kBACA,mBACA,OACD,CACD,OAAuB,EAAI,GAAqB,SAAU,CAAE,MAAO,EAAS,SAA0B,EAAI,MAAO,CAAE,MAAK,GAAG,EAAM,MAAO,CACtI,GAAG,EACH,GAAGC,GACJ,CAAE,WAAU,CAAC,CAAE,CAAC,EACjB,CACIA,GAAiB,CACrB,QAAS,OACT,cAAe,SAChB,qBCrEkC,KACc,CAC3C,OAAgC,CACpC,IAAM,EAAUC,EAAW,GAAqB,CAChD,GAAI,CAAC,EACH,MAAU,MAAM,qDAAqD,CAEvE,OAAO,gCCP+B,IACkD,KAChC,IACF,KACkB,CACpE,GAAWC,GAAY,CAC3B,QACA,QAAQ,QACR,GAAG,GACF,IAAQ,CACT,GAAM,CACJ,WACE,IAAyB,CAEvB,EAAU,EADE,IAAkB,CACI,CAAC,IAAM,EAAE,CAAE,CAAC,EAAG,EAAE,CAAC,CACpD,CAAC,EAAQ,GAAaC,EAAS,GAAK,CAQ1C,OAPA,MAAgB,CACd,IAAMC,EAAY,EAAQ,QACtBA,IAAc,MAGlB,EAAUA,EAAU,aAAeA,EAAU,YAAY,EACxD,EAAE,CAAC,CACiB,EAAI,EAAO,IAAK,CAAE,MAAK,GAAG,EAAO,MAAO,CAC7D,GAAG,GACH,GAAG,GAAqB,GACxB,QAAS,EAAS,EAAI,EACtB,GAAG,EACJ,CAAE,CAAC,EACJ,CACI,OAAyB,CAC7B,GAAM,CACJ,QACA,WACE,IAAyB,CACvB,EAAY,GAAe,EAAE,CAInC,OAHA,GAAoB,EAAO,SAAW,GAAW,CAC/C,EAAU,IAAI,CAAC,EAAS,GAAmB,EAAQ,QAAQ,CAAC,EAC5D,CACK,GAEH,GAAgB,CACpB,SAAU,WACV,OAAQ,EACR,MAAO,aACP,cAAe,OACf,MAAO,GACR,CACK,GAAuB,CAC3B,MAAO,CACL,WAAY,6DACb,CACD,KAAM,CACJ,WAAY,6DACb,CACF,kBCvDK,IAAW,EAAO,IACf,EAAM,QAAQ,EAAM,IAAS,KAAK,IAAI,EAAO,EAAO,CAAG,KAAK,IAAI,EAAO,EAAO,CAAG,EAAO,EAAM,EAAE,oCCDjE,IACiC,IACxC,IACsB,KACH,KACsB,KACZ,KACJ,CACpDC,GAAiB,YACjB,GAAkB,GAClBC,GAAM,CAAC;OACND,GAAe;;;IAGlB,CACEE,GAAO,EAAQC,GAAY,CAC/B,WACA,QACA,MAAM,EACN,UAAU,GACV,GAAG,GACF,IAAQ,CACT,GAAM,CACJ,UACA,OACA,QACA,kBACA,oBACE,IAAyB,CACvB,CAAC,EAAa,GAAkBC,EAAS,CAC7C,KAAM,EACN,MAAO,EACR,CAAC,CACI,MAA0B,CAC9B,GAAI,CAAC,EAAQ,QACX,OAGF,IAAM,EAAU,CADE,GAAmB,EAAQ,QAAQ,CAErD,EAAgB,GACV,EAAK,OAAS,EACT,EAEF,CACL,KAAM,EACN,MAAO,EACR,CACD,EAEE,MACG,MAAM,KAAK,EAAK,QAAQ,QAAQ,CAAC,CAAC,IAAK,GAAY,EAAQ,WAAW,CAEzE,GAAiB,EAAG,CACxB,cACI,CACJ,IAAM,EAAe,EAAM,KAAK,CAAG,EAAS,EAAI,EAC1C,EAAW,GAAQ,GAAsB,CAAE,CAAC,EAAa,CAG/D,GAAQ,EADO,CAACC,GAAM,EADJ,GAAmB,EAAQ,QAAQ,CACjB,EAAW,EAAgB,CACxC,CACrB,KAAM,SACN,UAAW,IACX,QAAS,GACV,CAAC,EAkBJ,OAhBA,MAAsB,CACpB,GAAmB,EAClB,EAAE,CAAC,CACN,MAAgB,CACd,IAAMC,EAAY,EAAQ,QAC1B,GAAI,CAACA,EACH,OAEF,IAAM,EAAiB,IAAI,mBAAqB,CAC9C,GAAmB,EACnB,CAEF,OADA,EAAe,QAAQA,EAAU,KACpB,CACX,EAAe,YAAY,GAE5B,EAAE,CAAC,CACiB,EAAI,MAAO,CAAE,IAAKC,GAAU,CAAC,EAAK,EAAQ,CAAC,CAAE,UAAW,GAAGP,GAAe,YAAa,MAAO,CACnH,GAAGQ,GACH,GAAG,EACJ,CAAE,GAAG,EAAM,SAA0B,EAAI,EAAO,IAAK,CAAE,MAAO,CAC7D,GAAG,GACH,EAAG,EACH,MACA,YAAa,EACb,aAAc,EACf,CAAE,KAAM,IAAK,YAAa,GAAK,gBAAiB,EAAa,gBAAiB,GAAO,UAAW,EAAe,UAAW,CACzH,cAAe,OAChB,CAAE,WAAU,CAAC,CAAE,CAAC,EACjB,CAAEP,GAAI,CACFO,GAAiB,CACrB,SAAU,WACV,OAAQ,EACR,MAAO,OACP,SAAU,SACV,gBAAiB,OACjB,eAAgB,OAChB,OAAQ,OACT,CACK,GAAY,CAChB,QAAS,cACT,SAAU,OACX,sBC1GyD,CACpDC,IAAS,CACb,WACA,WACI,CACJ,GAAM,CACJ,gBACE,IAAyB,CAE7B,OADkB,IAAU,EACT,EAAW,6BCTQ,IACL,KACuB,KACI,KACN,KACE,CACpD,GAAUC,GAAY,CAC1B,WACA,QACA,QACA,UACA,GAAG,GACF,IAAQ,CACT,GAAM,CACJ,OACA,eACA,QACE,IAAyB,CACvB,EAAY,IAAU,EACtB,EAAY,GAAc,GAAY,CAC1C,EAAK,QAAQ,IAAI,EAAU,EAAQ,EAE/B,EAAe,GAAM,CACzB,IAAmCC,EAAE,CACrC,EAAK,EAAM,CACX,GAAW,QAAQ,EAErB,OAAuB,EAAI,MAAO,CAAE,IAAKC,GAAU,CAAC,EAAK,EAAS,EAAM,CAAC,CAAC,CAAE,MAAO,CACjF,GAAGC,GACH,GAAG,EACJ,CAAE,GAAG,EAAM,QAAS,EAAa,SAAUC,GAAW,EAAS,CAAG,EAAS,EAAU,CAAG,EAAU,CAAC,EACpG,CACID,GAAiB,CACrB,SAAU,WACV,QAAS,OACT,KAAM,WACN,WAAY,SACZ,eAAgB,SAChB,OAAQ,UACR,gBAAiB,QAClB,sBCxCwC,KACR,KACE,KACF,KACM,CACjC,GAAgB,CACpB,KAAA,GACA,KAAA,GACA,WACA,MAAA,GACA,YACD,qBCXkC,KACyB,CACtD,OACGE,EAAW,GAAkB,sBCH4C,KACoC,CAChH,OAAsB,CAC1B,GAAM,CACJ,cACE,IAAsB,CAC1B,OAAO,oBCNL,IAA+B,IACjC,EAAY,QAAa,UACzB,EAAY,OAAY,SACxB,EAAY,OAAY,SACjB,IACN,IAAc,EAAE,CAAC,2BCLoB,IACU,KACsB,KACQ,KACX,IACZ,KACc,IAClC,IAC6B,KACsB,KAC1B,KACP,IACvC,KAC2D,KACd,IACF,KACF,KACc,KAChB,KACY,KACA,KACE,IAClD,IACwB,IACpB,KACoD,KAC/B,IACU,KACQ,CACxD,GAAcC,EAAc,KAAK,CACjCC,GAAOC,GAAY,CACvB,WACA,UAAU,GACV,eACA,QACA,kBACA,mBACA,iBACC,IAAQ,CAET,IAAM,EAAc,GADD,IAAe,EAElC,OAAuB,EAAI,GAAY,SAAU,CAAE,MAAO,CACxD,UACD,CAAE,SAA0B,EAAI,GAAc,KAAM,CAAE,MAAK,eAAc,QAAO,gBAAiB,GAAmB,EAAa,iBAAkB,GAAoB,EAAa,gBAAe,WAAU,CAAC,CAAE,CAAC,EAClN,CACI,GAA0B,EAC7B,GAAW,SAAU,GACrB,GAAW,QAAS,IACpB,GAAW,QAAS,GACtB,qBCjDkC,KACe,CAC5C,OACGC,EAAW,GAAa,sBCHuC,KAC+B,CACjG,OAAiB,CACrB,GAAM,CACJ,SACE,IAAiB,CACrB,OAAO,uBCN0B,KACK,CAClC,OAAuB,CAC3B,IAAM,EAAUC,EAAW,GAAY,CACvC,GAAI,CAAC,EACH,MAAU,MAAM,4CAA4C,CAE9D,OAAO,mCCPqC,IACD,KAC2B,KACQ,KACX,IACZ,KACc,IAClC,IAC6B,KACsB,KAC1B,KACP,IACvC,KAC2D,KACd,IACF,KACF,KACc,KAChB,KACE,KACU,KACE,IAClD,IACwB,IACpB,KACoD,KAC/B,IACU,KACQ,KACb,CAC3C,GAAW,EACX,GAAwB,EACxB,IAAQ,CACZ,QACA,WACA,QACC,IAAQ,CACT,IAAM,EAAa,IAAe,CAC5B,EAAQ,IAAU,CAClB,CACJ,WACE,IAAgB,CACd,EAAU,GAAW,EAAK,SAAW,EACrC,EAAuB,CAAC,GAAW,IAAe,GAAW,OACnE,OAAuB,EAAK,MAAO,CAAE,MAAO,CAC1C,GAAGC,GACH,GAAG,EACJ,CAAE,SAAU,CACK,EAAK,GAAc,KAAM,CAAE,MAAK,IAAK,GAAU,SAAU,CACvE,EAAK,KAAK,EAAM,IAEE,EAAIC,EAAU,CAAE,SAAU,EAAS,CACjD,QACA,UACA,OACD,CAAC,CAAE,CAAE,EAAM,CACZ,CACF,EAAU,MAAM,KAAK,CACnB,OAAQ,GACT,CAAC,CAAC,KAAK,EAAG,IAEO,EAAIA,EAAU,CAAE,SAAU,EAAS,CACjD,QACA,UACD,CAAC,CAAE,CAAE,EAAM,CACZ,CAAG,KACN,CAAE,CAAC,CACJ,EAAuC,EAAI,GAAc,SAAU,CAAE,QAAO,CAAC,CAAG,KACjF,CAAE,CAAC,EAEAC,GAAUC,EAAW,GAAK,CAC1BH,GAAiB,CACrB,SAAU,WACV,MAAO,OACP,aAAc,GACd,SAAU,SACX,yBC5E2E,CACtEI,GAAI,GAAE,CACV,KAAM,iHACP,CAAC,CAAEC,GAAI,GAAE,CACR,MAAO,CACL,KAAM,CAACD,IAAG,CAAE,iFAAiF,CAC7F,MAAO,gBACR,CACD,SAAU,CACR,OAAQ,CACN,KAAM,EAAE,CACR,MAAO,EAAE,CACV,CACD,MAAO,CACL,MAAO,CACL,MAAO,wDACR,CACD,KAAM,EAAE,CACT,CACD,SAAU,CACR,KAAM,CACJ,KAAM,0DACN,MAAO,yDACP,KAAM,gBACP,CACF,CACF,CACD,iBAAkB,CAChB,CACE,OAAQ,GACR,SAAU,GACV,MAAO,QACP,MAAO,CACL,KAAM,6EACN,MAAO,uEACR,CACF,CACD,CACE,OAAQ,GACR,SAAU,GACV,MAAO,OACP,MAAO,CACL,KAAM,wDACN,MAAO,gBACR,CACF,CACD,CACE,OAAQ,GACR,SAAU,GACV,MAAO,QACP,MAAO,CACL,KAAM,6BACN,MAAO,0EACR,CACF,CACD,CACE,OAAQ,GACR,SAAU,GACV,MAAO,OACP,MAAO,CACL,KAAM,mCACN,MAAO,sBACR,CACF,CACF,CACD,gBAAiB,CACf,SAAU,GACX,CACF,CAAC,sBCpE0E,IAC/B,CACvCE,GAAK,GAAM,CACf,GAAM,CAAE,SAAUC,EAAG,QAASC,EAAG,UAAWC,EAAK,QAASC,GAAMC,EAGhE,MAAO,CACL,YAJqEC,MAAkB,CACvF,CAACL,GAAKC,GAAKA,GAAG,EACb,CAACD,EAAGC,EAAE,CAAC,CAGR,UAHcK,MAAcC,GAAEP,EAAI,GAAKG,EAAGD,EAAI,CAAE,CAACF,EAAGG,EAAE,CAAC,CAIxD,0BCTiG,KACrB,IAC5C,KACa,KACL,CACrCK,GAAI,GAAE,CACV,OAAQC,GACT,CAAC,CAAE,GAAIC,GACL,CAAE,UAAWC,EAAG,OAAQC,EAAI,GAAO,MAAO,EAAK,QAAS,SAAUC,EAAG,QAASC,EAAG,SAAU,EAAK,QAASC,EAAG,GAAGC,GAAK,IAAM,CACzH,GAAM,CAAE,KAAM,EAAI,MAAOC,GAAMT,GAAE,CAAE,OAAQI,EAAG,MAAO,EAAI,SAAUC,EAAG,CAAC,CAAE,CAAE,YAAaK,EAAG,UAAW,GAAMC,GAAE,CAAE,SAAUN,EAAG,QAASC,EAAG,QAASC,EAAG,UAAWJ,EAAG,CAAC,CACpK,OAAuB,GAAE,IACvB,SACA,CACE,GAAGK,EACH,IAAKI,EACL,UAAW,EAAG,CAAE,UAAW,EAAG,CAAC,CAC/B,QAASF,EACT,SAAUL,EACV,SAA0B,GAAE,IAAI,OAAQ,CAAE,UAAWI,GAAG,CAAE,SAAU,EAAK,CAAC,CAC3E,CACF,EAEJ,wBCtBuC,IACL,KACgB,CAC7C,GAAcI,GAAY,CAC9B,QAAQ,SACP,IACsB,EAAI,GAAU,CAAE,MAAK,MAAO,CACjD,MAAO,GACP,OAAQ,OACR,aAAc,GACd,GAAGC,GAAiB,GACrB,CAAE,CAAC,CACJ,CACIA,GAAmB,CACvB,MAAO,CACL,gBAAiB,UAClB,CACD,KAAM,CACJ,gBAAiB,UAClB,CACF,qBCpBuC,IACL,KACqC,KACQ,KACX,IACZ,KACc,IAClC,IAC6B,KACsB,KAC1B,KACP,IACvC,KAC2D,KACd,IACF,KACF,KACc,KAChB,KACE,KACoB,KACR,IAClD,IACwB,IACpB,KACoD,KAC/B,KACwE,IAC9D,KACL,KACyB,CACpEC,GAAOC,GAAY,CACvB,WACA,QACA,WACC,IAAQ,CACT,GAAM,CACJ,WACE,IAAgB,CACd,EAAQ,IAAU,CAIxB,OAHI,EACqB,EAAI,GAAa,CAAE,QAAO,CAAC,CAE7B,EAAI,GAAc,QAAS,CAAE,MAAK,QAAO,UAAS,SAAW,GAA2B,EAAI,GAAG,CAAE,SAAQ,QAAO,UAAW,oBAAqB,WAAU,CAAC,CAAE,CAAC,EACrL,qBC5CsC,IACP,KACgB,CAC3C,IAAU,CACd,WACA,UACI,CACJ,GAAM,CACJ,WACE,IAAgB,CACd,EAAU,GAAW,EAAK,SAAW,EAO3C,OANI,EACK,EAAS,CACd,MAAO,EACP,UACD,CAAC,CAEG,EAAK,KAAK,EAAM,IAEL,EAAIC,EAAU,CAAE,SAAU,EAAS,CACjD,QACA,UACA,OACD,CAAC,CAAE,CAAE,EAAM,CACZ,sBCxBoC,KACgC,KACvB,CAC3C,IAAS,CACb,WACA,WACI,CACJ,GAAM,CACJ,WACE,IAAgB,CAIpB,OAHI,EACK,EAEc,EAAI,GAAc,MAAO,CAAE,QAAO,WAAU,CAAC,uBCbrC,KACW,KACX,KACI,KACF,CAC7B,GAAO,CACX,KAAA,GACA,KAAMC,GACN,KAAA,GACA,UACA,SACD,sBCX2D,KAC2B,IACvC,IAChC,IACD,CACT,OAAmC,CACvC,GAAM,CACJ,iBACA,iBACE,IAAc,CAUlB,MAAO,CACL,yBAV+B,EAAW,EAAQ,EAAE,GAAK,CACzD,IAAM,EAAa,CACjB,GAAG,IAA8B,CACjC,YACA,GAAG,EACJ,CACD,EAAe,yBAA0B,EAAW,CACpD,EAAc,yBAA0B,EAAW,EAIpD,yBCrBqC,IACF,KAC+B,CAC/D,GAAuBC,EAAc,CACzC,YAAa,GACd,CAAC,CACI,IAAyB,CAC7B,WACA,iBACI,CACJ,IAAM,EAAM,GAAkB,EAAY,CAC1C,OAAuB,EAAI,GAAqB,SAAU,CAAE,MAAO,CACjE,cACD,CAAE,SAA0B,EAAI,MAAO,CAAE,MAAK,MAAO,CACpD,MAAO,OACR,CAAE,WAAU,CAAC,CAAE,CAAC,oBCfyC,KAC2B,IACvC,IAChC,IACD,mBCJ8D,8BCAvB,IACZ,KAC0D,KAClC,KACoC,KAGE,CAClG,OACYC,EAAW,GAAqB,CAG5C,GAAwB,kBACxB,OAAuB,CAC3B,GAAM,CACJ,eACE,IAAyB,CAC7B,OAAO,GAAe,IAsBlB,GAAqB,GAAgB,CACzC,GAAM,CACJ,2BACE,IAA4B,CAC1B,EAAMC,EAAO,KAAK,CAClB,EAAW,EAAU,EAAK,CAC9B,OAAQ,GACT,CAAC,CAOF,OANA,MAAgB,CACT,GAGL,EAAwB,EAAY,EACnC,CAAC,EAAa,EAAS,CAAC,CACpB,2BCrD2D,KACoB,CAClF,GAAe,CACnB,YAAa,EAAE,CAChB,CACK,GAAiB,GAAO,GAAuB,IAAS,CAC5D,GAAG,GACH,uBAAwB,EAAK,IAAW,EAAK,IAAU,CACrD,YAAa,CACX,GAAG,EAAK,aACP,GAAMC,EACR,CACF,EAAE,CACJ,EAAE,CAAC,2BCb8B,KACyE,KAC9B,KACS,KACtB,KACiB,KACI,CAC/E,GAAsB,GAAU,CACpC,IAAM,EAAc,IAAgB,CAEpC,OADa,GAAgB,GAAU,EAAM,YAAa,GAA+B,YAAe,IAAK,GAAU,EAClF,aAAgB,GAEjD,IAAoB,EAAO,IAAW,CAC1C,IAAM,EAAc,IAAgB,CAC9B,EAAU,IAAY,CACtB,EAAwB,GAAgB,GAAU,EAAM,sBAAsB,CAC9E,CACJ,SAAS,IACP,GAAS,EAAE,CACf,MAAgB,CACT,GAGA,GAGL,EAAsB,EAAQ,CAC5B,cACA,QAAS,EAAQ,SAClB,CAAC,EACD,CAAC,EAAQ,EAAQ,EAAa,EAAQ,CAAC,EAEtC,GAA4B,GAAU,CAC1C,IAAM,EAAqB,IAAuB,CAC5C,EAAc,GAAmB,EAAM,CAgB7C,OAf+B,CAC7B,OACA,iBAAiB,GACjB,OAAO,MACH,CACJ,EAAmB,eAAgB,CAEjC,aAAc,EACd,cAAe,EACf,SAAU,GACV,gBAAiB,EACjB,UAAW,EACX,YAAa,EACd,CAAC,iCChDsC,KACO,KACkB,CAC/D,GAAiB,GAAa,CAClC,IAAM,EAAME,EAAO,KAAK,CAClB,EAAmBA,EAAO,GAAM,CAChC,EAAkB,GAAc,EAAS,CAY/C,OADA,GAAuB,SAVFC,MAAkB,CACrC,GAAI,EAAI,UAAY,KAClB,OAEF,IAAM,EAAe,GAAgB,EAAI,QAAQ,CAC7C,IAAiB,EAAiB,SACpC,EAAgB,QAAQ,EAAa,CAEvC,EAAiB,QAAU,GAC1B,EAAE,CAAC,CACwC,CACvC,GAEH,GAAmB,GAAY,CACnC,GAAM,CACJ,gBACE,EACE,EAAM,GAAqB,EAAQ,CACnC,EAAS,EAAM,EACf,EAAsB,EAAO,SAAW,GAAO,GAAU,EAAO,QAAU,EAAO,YAEvF,OAD4B,GAAO,EAAO,SAAW,EAAO,QAAU,EAAO,aAAe,GAC9D,GAE1B,GAAwB,GACrB,KAAK,MAAM,EAAQ,uBAAuB,CAAC,IAAM,EAAO,QAAQ,wBC/BjC,IACkB,KACM,IACR,IACL,IACnC,KAC8C,CACxD,GAAsBC,EAAc,CACxC,sBAAyB,GACzB,iCAAoC,GACpC,oCAAuC,GAEvC,MAAO,EAAE,CACT,aAAc,IAAK,GACpB,CAAC,CACIC,GAAOC,GAAY,CACvB,WACA,UAAA,EACA,QACA,QACA,gBACC,IAAQ,CACT,IAAM,EAAoBC,EAAO,GAAM,CACjC,EAA+BA,EAAO,GAAK,CAC3C,EAAkB,EAAM,SAAS,aAAa,CAC9C,MAA4B,CAC5B,EAA6B,SAC/B,KAA8C,CAEhD,EAAkB,QAAU,GAC5B,EAA6B,QAAU,IAEnC,MAA4B,CAChC,EAAkB,QAAU,GAC5B,EAA6B,QAAU,IAEnC,EAAe,GAAe,GAAiB,CAC9C,IAGD,EACF,GAAqB,CAErB,GAAqB,GAEvB,CACF,OAAuB,EAAI,GAAoB,SAAU,CAAE,MAAO,CAChE,sBAAyB,EAAkB,QAC3C,iCAAoC,EAA6B,QACjE,gCAAkC,GAAS,EAA6B,QAAU,EAClF,QACA,eACD,CAAE,SAA0B,EAAI,MAAO,CAAE,IAAKC,GAAU,CAAC,EAAc,EAAI,CAAC,CAAE,UAAA,EAAW,MAAO,CAC/F,MAAO,OACP,GAAG,EACJ,CAAE,WAAU,CAAC,CAAE,CAAC,EACjB,qBCxDiC,KACa,CAC1C,OAA+BC,EAAW,GAAoB,qBCF5B,IACL,KACsB,CACnD,GAASC,GAAY,CACzB,WACA,UACA,GAAG,GACF,IAAQ,CACT,GAAM,CACJ,oBACA,+BACA,kCACA,QACA,gBACE,IAAwB,CACtB,EAAe,GAAM,CACzB,IAAmCC,EAAE,CACG,EAAM,SAAS,aAAa,EAAI,CAAC,GAAmB,EAAI,GAA8B,GAE5H,KAA8C,CAC9C,EAAgC,GAAM,GAG1C,OAAuB,EAAI,MAAO,CAAE,MAAK,GAAG,EAAM,QAAS,EAAa,WAAU,CAAC,EACnF,sBCxB+B,KACI,CAC/B,GAAe,CACnB,KAAA,GACA,UACD,qBCLK,GAAmB,GAChB,EAAM,QAAU,GAAG,EAAM,WAAW,KAAK,EAAM,aAAa,KAAK,EAAM,cAAc,KAAK,EAAM,YAAY,IAAM,GAAG,EAAM,QAAQ,IAEtI,GAAc,IACX,CACL,IAAK,EAAM,QAAU,EAAM,WAAa,EAAM,QAC9C,MAAO,EAAM,QAAU,EAAM,aAAe,EAAM,QAClD,OAAQ,EAAM,QAAU,EAAM,cAAgB,EAAM,QACpD,KAAM,EAAM,QAAU,EAAM,YAAc,EAAM,QACjD,6BCTqC,IACG,KACsB,KACD,KACY,KACN,KACZ,KACiC,CACrF,IAAe,CACnB,UAAU,GACV,eAAe,EACf,OAAQ,EACR,SACA,YACI,CACJ,IAAM,EAAmB,GAAe,GAAU,EAAM,iBAAiB,CACnE,EAASC,MAAc,GAAsB,EAAS,EAAO,CAAE,CAAC,EAAS,EAAO,CAAC,CACjF,EAAe,EAAO,GACtB,CACJ,aACE,IAAY,CACV,EAAwB,GAAyB,GAA6C,MAAM,CACpG,GAAe,EAAO,EAAO,SAAa,CAC9C,EAAsB,CACpB,KAAM,MACN,eAAgB,EAAQ,EACxB,OACD,CAAC,EAEE,EAAqB,GAAU,CACnC,GAAI,CAAC,EACH,OAGF,IAAM,EAAQ,EADA,OAAO,EAAM,EAE3B,EAAiB,EAAQ,EAAM,MAAM,EAEvC,MAAgB,CACd,GAAiC,cAAc,IAAI,YAAY,cAAc,CAAC,CACzE,GAGA,GAGL,EAAiB,EAAQ,EAAa,MAAM,EAC3C,CAAC,EAAQ,EAAa,CAAC,CAC1B,GAAiB,GAA6C,MAAO,EAAO,CAC5E,IAAM,EAAU,GAAW,EAAO,CAKlC,MAJI,CAAC,GAAW,EAAO,SAAW,GAAK,CAAC,GACtC,GAAiC,cAAc,IAAI,YAAY,cAAc,CAAC,CACvE,MAEc,EAAI,GAAK,KAAM,CAAE,UAAS,aAAc,EAAG,MAAO,EAAc,gBAAiB,EAAQ,KAAM,iBAAkB,EAAQ,MAAO,cAAe,EAAmB,SAA0B,EAAI,GAAK,KAAM,CAAE,MAAO,CACzO,OAAQ,EACR,WAAY,EAAQ,IACpB,cAAe,EAAQ,OACvB,WAAY,EACb,CAAE,KAAM,EAAQ,UAAW,CAC1B,OACA,WACoB,EAAI,GAAa,OAAQ,CAAE,QAAS,EAAY,EAAO,GAA6B,MAAM,CAAE,SAA0B,EAAI,GAAK,KAAM,CAAE,MAAO,EAAO,SAAU,GAA6B,MAAO,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,CAAC,EAE/N,IAAyB,EAAQ,IAC9B,EAAO,KAAK,EAAO,KAAW,CACnC,GAAG,EACH,MAAO,CACL,GAAG,EAAM,MACT,UAAW,EAAM,MACjB,KAAM,CAAC,GAAG,EAAM,MAAM,MAAQ,EAAE,CAAE,QAAQ,IAAQ,CAClD,OAAQ,EAAM,MAAM,aAAe,IAAK,GACxC,WAAY,EAAM,MAAM,YAAc,EACvC,CACF,EAAE,4BCzEyC,KACqB,IACvB,CACtC,GAAN,cAA6B,EAAW,CACtC,aAAc,CACZ,OAAO,CACP,KAAK,WAAW,GAAI,IAAI,OAAO,CAC/B,KAAK,cAAc,GAAe,CAEpC,MAAM,kBAAkB,EAAS,CAC/B,OAAO,KAAK,KAAK,eAAgB,EAAQ,CAAC,KAAM,IAAU,CACxD,SAAU,GAAmB,EAAK,KAAK,SAAS,CAChD,WAAY,EAAK,KAAK,WACvB,EAAE,CAEL,MAAM,iBAAiB,EAAS,CAC9B,OAAO,KAAK,KAAK,0BAA2B,EAAQ,GAGlD,GAAU,IAAI,GACd,GAAsB,GAAa,EAAS,IAAK,IAE9C,CACL,GAAG,EACH,WAAY,CACV,aAAc,EAAQ,aACtB,QAAS,EAAQ,kBACjB,QAAS,EAAQ,kBAClB,CACD,UAAW,EAAQ,OACnB,YAAa,EAAQ,SACrB,SAAU,EAAQ,WAAW,SAC7B,QAAS,GACT,gBAAuB,EAAQ,mBAAyC,IAAK,IAAc,CACzF,kBAAmB,EAAS,kBAC5B,kBAAmB,EAAS,kBAC5B,mBAAoB,EAAS,mBAC7B,mBAAoB,EAAS,mBAC7B,kBAAmB,EAAS,kBAC5B,kBAAmB,EAAS,kBAC7B,EAAE,CACJ,EACD,wBC1C0C,KACuB,KACrB,CACxC,GAAN,cAAsC,EAAW,CAC/C,aAAc,CACZ,OAAO,CACP,KAAK,cAAc,GAAe,CAEpC,MAAM,kBAAkB,CACtB,OACA,iBACC,CACD,OAAO,KAAK,IAAI,GAAG,GAAI,IAAI,QAAQ,mEAAoE,CACrG,OACA,gBACD,CAAC,GAGA,GAAmB,IAAI,8BClBsC,KACrB,IACF,CACtC,GAAN,cAAkC,EAAW,CAC3C,aAAc,CACZ,OAAO,CACP,KAAK,WAAW,GAAI,IAAI,QAAQ,CAChC,KAAK,cAAc,GAAe,CAIpC,kBAAkB,EAAkB,CAClC,OAAO,KAAK,IAAI,8DAA8D,IAAmB,CAInG,cAAc,EAAa,CACzB,OAAO,KAAK,IAAI,wDAAwD,IAAc,CAGxF,yBAAyB,EAAmB,EAAM,CAChD,OAAO,KAAK,IAAI,+DAA+D,IAAqB,CAClG,OACD,CAAC,CAGJ,MAAM,4BAA4B,EAAoB,EAAQ,CAC5D,OAAO,KAAK,IAAI,+DAA+D,EAAmB,WAAY,EAAO,CAAC,KAAM,IACnH,CACL,GAAG,EAAI,KACP,WAAYC,GAAe,EAAI,KAAK,WAAW,CAChD,EACD,GAGA,GAAe,IAAI,GACnBA,GAAkB,GAAa,EAAS,IAAK,IAE1C,CACL,GAAG,EACH,WAAY,CACV,aAAc,EAAQ,WAAW,GACjC,QAAS,EAAQ,WAAW,QAC5B,QAAS,EAAQ,WAAW,QAC7B,CACD,SAAU,EAAQ,SAAS,OAC3B,eAAgB,EAAQ,aACxB,MAAO,EAAQ,YACf,UAAW,EAAQ,QACnB,gBAAuB,EAAQ,iBAAuC,IAAK,IAAc,CACvF,kBAAmB,EAAS,WAAa,EACzC,kBAAmB,EAAS,WAAa,GACzC,mBAAoB,EAAS,YAAc,EAC3C,mBAAoB,EAAS,YAAc,GAC3C,kBAAmB,EAAS,WAAa,EACzC,kBAAmB,EAAS,WAAa,GAC1C,EAAE,CACJ,EACD,+BC1D4C,KACqB,IACT,CACpD,GAAmC,GACnC,GAAN,cAAmC,EAAW,CAC5C,aAAc,CACZ,OAAO,CACP,KAAK,cAAc,GAAe,CAEpC,MAAM,cAAc,EAAc,EAAa,EAAW,CACxD,IAAM,EAAU,EAAY,GAAa,YAAY,IAAI,QAAU,GAAI,IAAI,QAC3E,OAAO,KAAK,IAAI,GAAG,EAAQ,8BAA8B,EAAa,+CAA+C,OAAO,EAAY,GAAG,CAE7I,MAAM,eAAe,EAAe,CAClC,OAAO,KAAK,IAAI,GAAG,GAAI,IAAI,QAAQ,sDAAuD,CACxF,cAAe,EAAc,KAAK,IAAI,CACvC,CAAC,CAEJ,MAAM,sBAAsB,CAC1B,eACA,iBACA,OACA,aACC,CACD,IAAM,EAAU,EAAY,GAAa,YAAY,IAAI,QAAU,GAAI,IAAI,QAC3E,OAAO,KAAK,IAAI,GAAG,EAAQ,+DAA+D,EAAa,kBAAkB,EAAe,WAAY,CAClJ,OACA,KAAM,EACN,KAAM,GACP,CAAC,CAAC,KAAM,GAASC,GAAe,EAAK,KAAK,WAAW,CAAC,GAGrDA,GAAkB,GAAa,EAAS,IAAK,IAE1C,CACL,WAAY,CACV,aAAc,EAAQ,WAAW,GACjC,QAAS,EAAQ,WAAW,QAC5B,QAAS,EAAQ,WAAW,QAC7B,CACD,UAAW,EAAQ,UACnB,YAAa,EAAQ,YACrB,oBAAqB,EAAQ,oBAC7B,SAAU,EAAQ,SAClB,cAAe,EAAQ,cACvB,cAAe,EAAQ,cACvB,gBAAiB,EAAQ,gBACzB,WAAY,EAAQ,WACpB,QAAS,EAAQ,QACjB,YAAa,EAAQ,YACrB,mBAAoB,EAAQ,mBAC5B,SAAU,EAAQ,SAAS,OAC3B,eAAgB,EAAQ,aACxB,MAAO,EAAQ,YACf,UAAW,EAAQ,QACnB,gBAAuB,EAAQ,iBAAuC,IAAK,IAAc,CACvF,kBAAmB,EAAS,WAAa,EACzC,kBAAmB,EAAS,WAAa,GACzC,mBAAoB,EAAS,YAAc,EAC3C,mBAAoB,EAAS,YAAc,GAC3C,kBAAmB,EAAS,WAAa,EACzC,kBAAmB,EAAS,WAAa,GAC1C,EAAE,CACJ,EACD,CACI,GAAgB,IAAI,2BCjEoB,KACqB,IACvB,CACtC,GAAN,cAA0C,EAAW,CACnD,aAAc,CACZ,OAAO,CACP,KAAK,cAAc,GAAe,CAEpC,MAAM,qBAAqB,EAAc,CACvC,OAAO,KAAK,IAAI,GAAG,GAAI,IAAI,QAAQ,+DAA+D,IAAe,CAEnH,MAAM,sBAAsB,CAC1B,eACA,iBACA,OACA,OACA,QACC,CACD,OAAO,KAAK,IAAI,GAAG,GAAI,IAAI,QAAQ,+DAA+D,EAAa,kBAAkB,EAAe,WAAY,CAC1J,OACA,OACA,OACD,CAAC,CAAC,KAAM,IAAU,CACjB,GAAG,EAAK,KACR,WAAY,EAAK,KAAK,WAAW,IAAK,IAE7B,CACL,WAAY,CACV,aAAc,EAAQ,WAAW,GACjC,QAAS,EAAQ,WAAW,QAC5B,QAAS,EAAQ,WAAW,QAC7B,CACD,UAAW,EAAQ,UACnB,YAAa,EAAQ,YACrB,oBAAqB,EAAQ,oBAC7B,SAAU,EAAQ,SAClB,cAAe,EAAQ,cACvB,cAAe,EAAQ,cACvB,gBAAiB,EAAQ,gBACzB,WAAY,EAAQ,WACpB,QAAS,EAAQ,QACjB,YAAa,EAAQ,YACrB,mBAAoB,EAAQ,mBAC5B,SAAU,EAAQ,SAAS,OAC3B,eAAgB,EAAQ,aACxB,MAAO,EAAQ,YACf,UAAW,EAAQ,QACnB,gBAAuB,EAAQ,iBAAuC,IAAK,IAAc,CACvF,kBAAmB,EAAS,WAAa,EACzC,kBAAmB,EAAS,WAAa,GACzC,mBAAoB,EAAS,YAAc,EAC3C,mBAAoB,EAAS,YAAc,GAC3C,kBAAmB,EAAS,WAAa,EACzC,kBAAmB,EAAS,WAAa,GAC1C,EAAE,CACJ,EACD,CACH,EAAE,GAGD,GAAuB,IAAI,MC3DjC,SAAS,GAAW,EAAU,EAAW,CACvC,IAAM,EAAY,GAAO,EAAS,CAC5B,EAAa,GAAO,EAAU,CAC9B,EAAO,EAAU,SAAS,CAAG,EAAW,SAAS,CAMrD,OALE,EAAO,EACF,GACE,EAAO,EACT,EAEA,qBAV0B,qBCA/B,GAAuB,CAC3B,iBAAkB,CAChB,IAAK,QACL,MAAO,gBACR,CACD,SAAU,CACR,IAAK,KACL,MAAO,aACR,CACD,YAAa,MACb,iBAAkB,CAChB,IAAK,QACL,MAAO,gBACR,CACD,SAAU,CACR,IAAK,KACL,MAAO,aACR,CACD,YAAa,CACX,IAAK,QACL,MAAO,gBACR,CACD,OAAQ,CACN,IAAK,MACL,MAAO,cACR,CACD,MAAO,CACL,IAAK,KACL,MAAO,aACR,CACD,YAAa,CACX,IAAK,OACL,MAAO,eACR,CACD,OAAQ,CACN,IAAK,KACL,MAAO,aACR,CACD,aAAc,CACZ,IAAK,QACL,MAAO,gBACR,CACD,QAAS,CACP,IAAK,MACL,MAAO,cACR,CACD,YAAa,CACX,IAAK,OACL,MAAO,eACR,CACD,OAAQ,CACN,IAAK,KACL,MAAO,aACR,CACD,WAAY,CACV,IAAK,QACL,MAAO,gBACR,CACD,aAAc,CACZ,IAAK,QACL,MAAO,gBACR,CACF,CACK,IAAkB,EAAO,EAAO,IAAY,CAChD,IAAI,EACE,EAAa,GAAqB,GAexC,MAdA,CAKE,EALE,OAAO,GAAe,SACf,EACA,IAAU,EACV,EAAW,IAEX,EAAW,MAAM,QAAQ,YAAa,EAAM,UAAU,CAAC,CAE9D,GAAmC,UACjC,EAAQ,YAAc,EAAQ,WAAa,EACtC,EAAS,KAET,EAAS,KAGb,wBChF2D,CAmB9D,GAAa,CACjB,KAAM,GAAkB,CACtB,QApBgB,CAClB,KAAM,gBACN,KAAM,WACN,OAAQ,UACR,MAAO,UACR,CAgBG,aAAc,OACf,CAAC,CACF,KAAM,GAAkB,CACtB,QAlBgB,CAClB,KAAM,oBACN,KAAM,cACN,OAAQ,WACR,MAAO,QACR,CAcG,aAAc,OACf,CAAC,CACF,SAAU,GAAkB,CAC1B,QAhBoB,CACtB,KAAM,oBACN,KAAM,oBACN,OAAQ,oBACR,MAAO,oBACR,CAYG,aAAc,OACf,CAAC,CACH,qBChCK,GAAuB,CAC3B,SAAU,cACV,UAAW,SACX,MAAO,SACP,SAAU,SACV,SAAU,cACV,MAAO,IACR,CACK,IAAkB,EAAO,EAAO,EAAW,IAAa,GAAqB,6CCRnB,CAC1D,GAAY,CAChB,OAAQ,CAAC,KAAM,KAAK,CACpB,YAAa,CAAC,KAAM,KAAK,CACzB,KAAM,CAAC,MAAO,KAAK,CACpB,CACK,GAAgB,CACpB,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAI,CAC5B,YAAa,CAAC,KAAM,KAAM,KAAM,KAAK,CACrC,KAAM,CAAC,MAAO,MAAO,MAAO,MAAM,CACnC,CACK,GAAc,CAClB,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAK,CACvE,YAAa,CACX,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACD,CACD,KAAM,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACD,CACF,CACK,GAAY,CAChB,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAI,CAC3C,MAAO,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAI,CAC1C,YAAa,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAI,CAChD,KAAM,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAM,CACxD,CACK,GAAkB,CACtB,OAAQ,CACN,GAAI,KACJ,GAAI,KACJ,SAAU,KACV,KAAM,KACN,QAAS,KACT,UAAW,KACX,QAAS,KACT,MAAO,IACR,CACD,YAAa,CACX,GAAI,KACJ,GAAI,KACJ,SAAU,KACV,KAAM,KACN,QAAS,KACT,UAAW,KACX,QAAS,KACT,MAAO,IACR,CACD,KAAM,CACJ,GAAI,KACJ,GAAI,KACJ,SAAU,KACV,KAAM,KACN,QAAS,KACT,UAAW,KACX,QAAS,KACT,MAAO,IACR,CACF,CACK,GAA4B,CAChC,OAAQ,CACN,GAAI,KACJ,GAAI,KACJ,SAAU,KACV,KAAM,KACN,QAAS,KACT,UAAW,KACX,QAAS,KACT,MAAO,IACR,CACD,YAAa,CACX,GAAI,KACJ,GAAI,KACJ,SAAU,KACV,KAAM,KACN,QAAS,KACT,UAAW,KACX,QAAS,KACT,MAAO,IACR,CACD,KAAM,CACJ,GAAI,KACJ,GAAI,KACJ,SAAU,KACV,KAAM,KACN,QAAS,KACT,UAAW,KACX,QAAS,KACT,MAAO,IACR,CACF,CACK,IAAiB,EAAa,IAAY,CAC9C,IAAM,EAAS,OAAO,EAAY,CAElC,OADa,OAAO,GAAmC,KAAK,CAC5D,CACE,IAAK,SACL,IAAK,SACH,OAAO,OAAO,EAAO,CACvB,IAAK,OACH,OAAO,EAAS,IAClB,QACE,OAAO,EAAS,OAGhB,GAAW,CACf,iBACA,IAAK,GAAgB,CACnB,OAAQ,GACR,aAAc,OACf,CAAC,CACF,QAAS,GAAgB,CACvB,OAAQ,GACR,aAAc,OACd,iBAAmB,GAAY,EAAU,EAC1C,CAAC,CACF,MAAO,GAAgB,CACrB,OAAQ,GACR,aAAc,OACf,CAAC,CACF,IAAK,GAAgB,CACnB,OAAQ,GACR,aAAc,OACf,CAAC,CACF,UAAW,GAAgB,CACzB,OAAQ,GACR,aAAc,OACd,iBAAkB,GAClB,uBAAwB,OACzB,CAAC,CACH,sBCtJyD,KACc,CAgElE,GAAQ,CACZ,cAAe,GAAoB,CACjC,aAjE8B,iBAkE9B,aAjE8B,OAkE9B,cAAgB,GAAU,SAAS,EAAO,GAAG,CAC9C,CAAC,CACF,IAAK,GAAa,CAChB,cApEqB,CACvB,OAAQ,6DACR,YAAa,6DACb,KAAM,aACP,CAiEG,kBAAmB,OACnB,cAjEqB,CACvB,IAAK,CAAC,aAAc,YAAY,CACjC,CAgEG,kBAAmB,MACpB,CAAC,CACF,QAAS,GAAa,CACpB,cAlEyB,CAC3B,OAAQ,WACR,YAAa,YACb,KAAM,eACP,CA+DG,kBAAmB,OACnB,cA/DyB,CAC3B,IAAK,CAAC,KAAM,KAAM,KAAM,KAAK,CAC9B,CA8DG,kBAAmB,MACnB,cAAgB,GAAU,EAAQ,EACnC,CAAC,CACF,MAAO,GAAa,CAClB,cAjEuB,CACzB,OAAQ,wBACR,YAAa,0BACb,KAAM,0BACP,CA8DG,kBAAmB,OACnB,cA9DuB,CACzB,IAAK,CACH,QACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACD,CACF,CAgDG,kBAAmB,MACpB,CAAC,CACF,IAAK,GAAa,CAChB,cAlDqB,CACvB,OAAQ,aACR,MAAO,aACP,YAAa,aACb,KAAM,eACP,CA8CG,kBAAmB,OACnB,cA9CqB,CACvB,IAAK,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAK,CAChD,CA6CG,kBAAmB,MACpB,CAAC,CACF,UAAW,GAAa,CACtB,cA/C2B,CAC7B,IAAK,gCACN,CA8CG,kBAAmB,MACnB,cA9C2B,CAC7B,IAAK,CACH,GAAI,YACJ,GAAI,YACJ,SAAU,OACV,KAAM,OACN,QAAS,OACT,UAAW,OACX,QAAS,OACT,MAAO,MACR,CACF,CAoCG,kBAAmB,MACpB,CAAC,CACH,sBCtG4D,KACR,KACQ,KACZ,KACN,CACrC,GAAK,CACT,KAAM,KACN,kBACA,cACA,kBACA,YACA,SACA,QAAS,CACP,aAAc,EACd,sBAAuB,EACxB,CACF,ICfD,SAAS,GAAiB,EAAM,EAAU,CACxC,IAAM,EAAO,CAAC,GAAO,EAAK,CACpB,CAAC,EAAW,GAAW,CAC3B,CAAC,GAAO,EAAS,MAAM,CACvB,CAAC,GAAO,EAAS,IAAI,CACtB,CAAC,MAAM,EAAG,IAAMC,EAAI,EAAE,CACvB,OAAO,GAAQ,GAAa,GAAQ,qBAPD,sBCAwC,KAED,KACU,KACf,CAIjE,GAAkB,GAEf,GADU,EAAS,EAAI,CACN,aAAc,CACpC,OAAQ,GACT,CAAC,kCCZsD,KACI,KACM,KACY,KAClB,KACE,KACA,CAC1D,GAAyB,GAAa,CAC1C,GAAM,CACJ,OACA,QACA,UACA,WACE,EACJ,GAAI,CAAC,EACH,OAEF,IAAM,EAAS,GAAqB,EAAK,CAEzC,OADA,EAAO,SAAS,EAAO,EAAS,EAAQ,CACjC,GAYH,IAAW,EAAM,IAAkB,GAAQ,EAAM,EAAc,EAAI,GAAQ,EAAM,EAAc,CAC/F,IAAkB,EAAO,IACtB,CAAC,GAAG,EAAM,CAAC,MAAM,EAAG,IAAM,GAAW,EAASC,EAAE,CAAE,EAAS,EAAE,CAAC,CAAC,CAElE,IAA2B,EAAM,EAAmB,IAAoB,CAC5E,IAAM,EAAM,IAAsB,CAC5B,EAAe,EAAK,WAAW,EAAM,IAAU,CACnD,IAAM,EAAW,EAAK,EAAQ,GACxB,EAAY,EAAkB,EAAK,CACnC,EAAU,EAAgB,EAAM,EAAS,CACzC,EAAQ,EAAS,EAAU,UAAU,CAAC,CACtC,EAAM,EAAU,EAAS,EAAQ,UAAU,CAAC,CAAG,IAAK,GACpD,EAAW,EAAM,GAAiB,EAAK,CAC3C,QACA,MACD,CAAC,CAAG,GACC,EAAa,GAAS,EAAK,EAAM,CAEvC,OAAO,GAAY,GADJ,IAAa,IAAK,IAEjC,CACF,OAAO,IAAiB,GAAK,IAAK,GAAI,GAElC,IAAqB,EAAS,IAAU,CAC5C,IAAM,EAAM,IAAsB,CAYlC,OAXkB,GAAiB,EAAK,CACtC,MAAO,EACP,IAAK,EACN,CAAC,CAEO,UAEU,GAAS,EAAK,EAAQ,CAEhC,WAEF,mCClEL,GAA8B,IAChC,EAAW,QAAa,UACxB,EAAW,kBAAuB,qBAClC,EAAW,mBAAwB,sBACnC,EAAW,cAAmB,iBAC9B,EAAW,eAAoB,iBAC/B,EAAW,QAAa,UACxB,EAAW,iBAAsB,oBACjC,EAAW,YAAiB,eAC5B,EAAW,OAAY,SACvB,EAAW,QAAa,UACxB,EAAW,eAAoB,kBAC/B,EAAW,OAAY,SAChB,IACN,GAAa,EAAE,CAAC,CACf,IAAgC,IAClC,EAAa,WAAgB,aAC7B,EAAa,SAAc,WACpB,IACN,IAAe,EAAE,CAAC,CACjB,IAAyC,IAC3C,EAAsB,SAAc,WACpC,EAAsB,OAAY,SAClC,EAAsB,MAAW,QAC1B,IACN,IAAwB,EAAE,CAAC,CAC1B,IAAuC,IACzC,EAAoB,OAAY,SACzB,IACN,IAAsB,EAAE,CAAC,CACxB,IAAiC,IACnC,EAAc,EAAc,MAAW,GAAK,QAC5C,EAAc,EAAc,OAAY,GAAK,SACtC,IACN,IAAgB,EAAE,CAAC,8CClCqB,CACrC,GAA6B,GAC7B,IAA0B,EAAQ,IAAsB,CAC5D,IAAM,EAAM,EAAO,QAChB,EAAM,IAAS,CACd,GAAM,CACJ,QAAQ,EACR,WAAW,EAAE,EACX,EAAK,EAAK,UAAY,EAAE,CAI5B,OAHI,EAAkB,SAAS,SAAS,EAAK,QAAQ,CAC5C,EAEF,CACL,GAAG,GACF,EAAK,SAAU,CACd,GAAI,EAAK,QACT,KAAM,EAAK,UACX,MAAO,EAAQ,EAAK,MACpB,SAAU,GAAuB,EAAU,EAAM,EAAkB,UAAU,CAC9E,CACF,EAGH,EAAE,CACH,CACD,OAAO,OAAO,OAAO,EAAI,EAErB,IAA0B,EAAY,EAAO,IAC7C,CAAC,EAAM,UAAY,CAAC,EAAM,YAAc,EAAyB,SAAS,EAAM,SAAS,CACpF,EAEG,EAAW,UAAW,GAAa,EAAS,KAAO,EAAM,SAAS,GAAK,GACzD,CAAC,GAAG,EAAY,CACxC,GAAI,EAAM,SACV,KAAM,EAAM,WACZ,SAAU,EAAM,QACjB,CAAC,CAJW,EAMT,GAA+B,GAC5B,EAAO,QAAQ,CACpB,QAAQ,KACJ,GAAS,GAA2B,CAEtC,IAAiB,EAAQ,EAAS,IAAW,CACjD,IAAM,EAAiB,GAAkB,EAAO,CAChD,MAAO,CAAC,GAAG,EAAO,CAAC,MAAM,EAAG,IAE1B,EAAQ,EAAG,EAAO,CAAG,EAAQC,EAAG,EAAO,EACvC,EAAQA,EAAG,EAAe,CAAG,EAAQ,EAAG,EAAe,CACvD,EAEE,GAAqB,GAClB,IAAW,IAAM,IAAM,IAE1B,IAA2B,EAAO,IAC/B,OAAO,EAAM,KAAK,SAAS,IAAW,IAAM,KAAO,KAAK,CAAC,CAE5D,IAA+B,EAAO,IACnC,OAAO,EAAM,SAAW,EAAO,CAElC,IAA8B,EAAQ,IAAY,CACtD,GAAM,CACJ,eACA,SACA,qBACE,EACE,EAAa,GAAc,GAA4B,GAAuB,EAAQ,EAAkB,CAAC,CAAE,GAAyB,EAAO,CACjJ,OAAQ,EAAR,CACE,KAAK,GAAa,MAChB,OAAO,EACT,KAAK,GAAa,OAChB,OAAO,EAAW,QAAS,GAAa,EAAS,UAAY,EAAE,CAAC,8BCvEI,KACtB,KAG+B,KACf,CAC9D,GAAY,IACZ,GAAgB,CAAC,OAAQ,SAAS,CAClC,GAAuB,GAAqB,CAChD,IAAM,EAAmC,EAAiB,KAAM,GAAU,EAAM,MAAM,SAAS,GAAU,CAAC,CAC1G,GAAI,IAAqC,IAAK,GAC5C,MAAO,UAET,IAAM,EAAoB,EAAiC,MAAM,MAAM,GAAU,CAAC,GAIlF,OAHK,GAAc,SAAS,EAAkB,CAGvC,EAFE,cCdX,SAAS,GAAQ,EAAM,EAAQ,CAC7B,OAAO,GAAQ,EAAM,CAAC,EAAO,oBAFQ,ICCvC,SAAS,GAAU,EAAM,EAAQ,CAC/B,OAAO,GAAU,EAAM,CAAC,EAAO,oBAFU,ICG3C,SAAS,GAAI,EAAM,EAAU,CAC3B,GAAM,CACJ,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,GACR,EAEE,EAAkB,GADE,GAAU,EAAM,EAAS,EAAQ,GAAG,CACX,EAAO,EAAQ,EAAE,CAG9D,GADe,GADA,EAAU,EAAQ,IACO,IACf,IAE/B,OADkB,GAAc,EAAM,EAAgB,SAAS,CAAG,EAAQ,oBAlBrC,KACI,KACQ,ICAnD,SAAS,GAAU,EAAM,EAAS,CAChC,IAAM,EAAQ,GAAO,EAAK,CAC1B,GAAI,MAAM,EAAM,SAAS,CAAC,CACxB,MAAU,WAAW,qBAAqB,CAE5C,IAAMC,EAAU,GAAmC,QAAW,WACxD,EAAkB,GAAmC,gBAAmB,WAC1E,EAAS,GACT,EAAW,GACT,EAAgBA,IAAW,WAAa,IAAM,GAC9C,EAAgBA,IAAW,WAAa,IAAM,GACpD,GAAI,IAAmB,OAAQ,CAC7B,IAAM,EAAM,GAAgB,EAAM,SAAS,CAAE,EAAE,CACzC,EAAQ,GAAgB,EAAM,UAAU,CAAG,EAAG,EAAE,CAEtD,EAAS,GADI,GAAgB,EAAM,aAAa,CAAE,EAAE,GACjC,IAAgB,IAAQ,IAAgB,IAE7D,GAAI,IAAmB,OAAQ,CAC7B,IAAMC,EAAS,EAAM,mBAAmB,CACxC,GAAIA,IAAW,EAAG,CAChB,IAAM,EAAiB,KAAK,IAAIA,EAAO,CACjC,EAAa,GAAgB,KAAK,MAAM,EAAiB,GAAG,CAAE,EAAE,CAChE,EAAe,GAAgB,EAAiB,GAAI,EAAE,CAE5D,EAAW,GADEA,EAAS,EAAI,IAAM,MACX,EAAW,GAAG,SAEnC,EAAW,IAEb,IAAM,EAAO,GAAgB,EAAM,UAAU,CAAE,EAAE,CAC3C,EAAS,GAAgB,EAAM,YAAY,CAAE,EAAE,CAC/C,EAAS,GAAgB,EAAM,YAAY,CAAE,EAAE,CAC/C,EAAY,IAAW,GAAK,GAAK,IACjC,EAAO,CAAC,EAAM,EAAQ,EAAO,CAAC,KAAK,EAAc,CACvD,EAAS,GAAG,IAAS,IAAY,IAAO,IAE1C,OAAO,qBArC4B,KACuB,4BCDc,KACX,KACY,KACe,CACpF,GAAc,QACd,GAAoB,GAAQ,EAAI,QAAQ,GAAa,GAAG,CAAC,MAAM,CAC/D,IAAwB,EAAM,IAAiB,EAAK,KAAK,EAAM,IAAU,CAC7E,IAAM,EAAY,EAAK,EAAQ,GACzB,EAAU,GAAU,GAAqB,GAAiB,EAAK,MAAM,CAAC,CAAC,CACvE,EAAQ,EAEZ,GAAU,GAAI,GAAqB,GAAiB,EAAU,MAAM,CAAC,CAAE,CACrE,QAAS,EACV,CAAC,CAAC,CACD,EACJ,MAAO,CACL,GAAG,EACH,MAAO,GAAe,EAAQ,CAC9B,UACA,QACD,EACD,4BCrB2E,KACtB,KACgB,KACqB,KACN,KACQ,CACxF,GAAsB,GACtB,GAA4B,GAAkB,CAClD,IAAM,EAAM,IAAsB,CAC5B,EAAe,EAAc,WAAW,EAAW,IAAU,CAEjE,IAAM,EADe,EAAc,EAAQ,KACV,IAAK,GAChC,EAAQ,IAAI,KAAK,EAAU,eAAe,CAC1C,EAAM,IAAI,KAAK,EAAU,aAAa,CACtC,EAAW,GAAW,GAAiB,EAAK,CAChD,QACA,MACD,CAAC,CACIC,EAAS,CAAC,GAAW,GAAQ,EAAK,EAAM,CAC9C,OAAO,GAAYA,GACnB,CACF,OAAO,IAAiB,GAAK,IAAK,GAAI,GAElC,IAAsB,CAC1B,iBACA,kBACI,CACJ,IAAM,EAAiB,GAAO,EAAgB,aAAc,CAC1D,OAAQ,GACT,CAAC,CAQF,OAPK,GAGQ,GAAkB,EAAc,EAAe,CACjD,GACF,GAAG,EAAe,KAEpB,oCCrCkH,KACZ,KAC9B,KAC0D,KAC5D,CACzE,GAAgB,UAChB,GAAmB,IACnB,GAAgC,GAAW,EAAO,IAAK,GAAU,CACrE,GAAM,CAAC,EAAQ,GAAS,EAAM,MAAM,QAAQ,GAAe,GAAG,CAAC,MAAM,CAAC,MAAM,GAAiB,CAC7F,MAAO,CACL,GAAG,EACH,MAAO,EAAM,MAAM,SAAS,GAAc,CAAG,EAAQ,EAAM,MAC3D,SACD,EACD,CACI,IAAkC,EAAO,IAAgB,CAC7D,GAAM,CACJ,eACA,gBAAgB,EAAE,EAChB,EACE,EAAO,GAAoB,EAAc,CAC/C,GAAI,IAAS,OAAQ,CACnB,IAAM,EAAS,GAAe,GAAqB,EAAe,GAAgB,GAAG,CAAG,GAAMC,EAAE,QAAQ,CAClG,EAAe,GAAwB,EAAS,GAAMA,EAAE,QAAU,GAAMA,EAAE,MAAM,CACtF,MAAO,CACL,OAAQ,EAAO,KAAK,EAAO,KAAW,CACpC,MAAO,EAAM,MACb,MAAO,CACL,GAAG,EACH,qBAAsB,CACpB,GAAI,EAAM,eACV,QACA,KAAM,EAAM,KACZ,QAAS,EAAM,QACf,MAAO,EAAM,MACd,CACF,CACF,EAAE,CACH,eACD,CAEH,GAAI,IAAS,SAAU,CACrB,IAAM,EAAS,EAAY,QAAU,IAErC,MAAO,CACL,OAFa,GAAc,GAA6B,EAAc,CAAE,GAA6B,EAAO,CAE7F,KAAK,EAAO,KAAW,CACpC,MAAO,EAAM,MACb,MAAO,CACL,GAAG,EACH,qBAAsB,CACpB,GAAI,EAAM,eACV,KAAM,EAAM,KACZ,QACD,CACF,CACF,EAAE,CACJ,CAEH,MAAO,CACL,OAAQ,EAAc,KAAK,EAAO,KAAW,CAC3C,MAAO,EAAM,MACb,MAAO,CACL,GAAG,EACH,qBAAsB,CACpB,GAAI,EAAM,eACV,QACA,KAAM,EAAM,KACb,CACF,CACF,EAAE,CACJ,EAEG,GAAiC,GAAU,CAC/C,GAAM,CACJ,aAAa,EAAE,EACb,EAYJ,MAAO,CACL,OAZa,EAAW,KAAK,EAAW,KAAW,CACnD,MAAO,GAAmB,EAAU,CACpC,MAAO,CACL,GAAG,EACH,YAAa,EAAU,YACvB,QACA,eAAgB,EAAU,eAC1B,aAAc,EAAU,aACzB,CACF,EAAE,CAID,aAHmB,GAAyB,EAAW,CAIxD,2CC1F+D,KACH,KAC4B,KACZ,KACE,KACuB,KAC4B,KACnD,KACP,KACP,KACJ,KACuC,CAChG,GAAmB,mBACnB,GAAgB,GAAY,CAChC,GAAM,CACJ,QAAS,EAAW,GACpB,QACA,eACE,EACE,EAAU,GAAY,IAAU,IAAK,GACrC,CACJ,OACA,YACA,GAAG,GACD,GAAO,EAAU,CAAC,GAAkB,EAAM,CAAG,SAAY,GAAU,EAAO,EAAY,CAAC,CACrF,CACJ,SAAS,EAAE,CACX,gBACE,GAAQ,EAAE,CACR,EAAU,EAAO,OAAS,EAChC,MAAO,CACL,UAAW,GAAa,CAAC,GAAW,CAAC,EACrC,KAAM,EACN,eACA,GAAG,EACJ,EAEG,GAA6B,MAAO,EAAO,IAAgB,CAC/D,GAAI,CAAC,EAAM,oBACT,MAAO,CACL,OAAQ,EAAE,CACX,CAEH,GAAM,CACJ,QACE,MAAM,GAAqB,qBAAqB,OAAO,EAAM,oBAAoB,CAAC,CAChF,CACJ,QACA,cACA,eACA,iBACE,EACJ,OAAO,GAA+B,CACpC,GAAG,EACH,QACA,YAAa,GAAe,IAAK,GACjC,aAAc,GAAgB,IAAK,GACnC,SAAU,EAAK,UAAY,IAAK,GAChC,gBACD,CAAE,EAAY,EAEX,GAA8B,KAAO,IAAU,CACnD,GAAI,CAAC,EAAM,qBACT,MAAO,CACL,OAAQ,EAAE,CACX,CAEH,GAAM,CACJ,QACE,MAAM,GAAc,eAAe,GAAmB,EAAM,qBAAqB,CAAC,CAChF,EAAc,GAAe,EAAO,GAAMC,EAAE,eAAe,CAC3D,EAAe,GAAwB,EAAc,GAAY,EAAQ,gBAAiB,EAAG,IAAS,GAA6B,eAAe,CACxJ,MAAO,CACL,OAAQ,EAAY,IAAK,GAAe,CACtC,GAAM,CACJ,eACA,QACA,cACA,iBACA,eACA,mBACA,YACE,EACE,CAAC,GAAqB,EAC5B,MAAO,CACL,MAAO,GAAe,EAAe,CACrC,MAAO,CAEL,KAAM,EAAU,kBAChB,oBAAqB,GAAG,IACxB,QACA,YAAa,GAAe,IAAK,GACjC,aAAc,GAAgB,IAAK,GACnC,SAAU,GAAY,IAAK,GAC3B,cAAe,EAAiB,IAAK,IAAW,CAC9C,eAAgB,EAAM,yBACtB,MAAO,EAAM,MACb,KAAM,EAAM,KACb,EAAE,CACH,qBAAsB,CACpB,GAAI,EAAkB,yBACtB,KAAM,EAAkB,KACxB,MAAO,EACR,CACF,CACF,EACD,CACF,eACD,EAEG,GAAyB,KAAO,IAAU,CAC9C,GAAI,CAAC,EAAM,cACT,MAAO,CACL,OAAQ,EAAE,CACX,CAEH,IAAM,EAAgB,GAAmB,EAAM,cAAc,CAAC,KAAK,IAAI,CACjE,CACJ,QACE,MAAM,GAAiB,kBAAkB,CAC3C,KAAM,EAAM,UACZ,gBACD,CAAC,CAQF,MAAO,CACL,OARa,EAAK,YAAY,IAAK,IAAW,CAC9C,MAAO,EAAM,QACb,MAAO,CACL,GAAG,EACH,QAAS,EAAM,aAChB,CACF,EAAE,CAGF,EAEG,GAAmB,MAAO,EAAO,IAAgB,CACrD,GAAI,CAAC,EAAM,cACT,MAAO,CACL,OAAQ,EAAE,CACX,CAEH,IAAM,EAAS,GAAmB,EAAM,cAAc,CAChD,CACJ,QACE,MAAM,GAAQ,iBAAiB,CACjC,gBAAiB,CACf,eAAgB,EAAO,IAAK,IAAW,CACrC,QACD,EAAE,CACJ,CACF,CAAC,CACI,EAAS,EAAY,QAAU,IAS/B,EARa,GAA2B,EAAK,cAAc,OAAQ,CACvE,aAAc,EAAM,aACpB,SACA,kBAAmB,CACjB,SAAU,GAAmB,EAAM,wBAAwB,CAC3D,UAAW,GAAmB,EAAM,yBAAyB,CAC9D,CACF,CAAC,CACwB,IAAK,GAAa,CAC1C,IAAM,EAAqB,EACxB,GAAa,OAAQ,CACpB,gBAAiB,EAAS,GAC3B,EACA,GAAa,QAAS,CACrB,gBAAiB,EAAS,SAC1B,iBAAkB,EAAS,GAC5B,CACF,CACD,MAAO,CACL,MAAO,EAAS,KAChB,MAAO,CACL,GAAG,EACH,GAAG,EAAmB,EAAM,cAC5B,gBAAiB,EAAS,UAAY,EAAE,CACzC,CACF,EACD,CACI,EAAc,CAClB,MAAO,KACP,QACD,CAED,MAAO,CACL,OAFiB,EAAM,cAAgB,GAAY,SAE9B,CAAC,EAAa,GAAG,EAAO,CAAG,EACjD,EAEG,GAA4B,KAAO,IAAU,CACjD,GAAI,CAAC,EAAM,iBACT,MAAO,CACL,OAAQ,EAAE,CACX,CAEH,GAAM,CACJ,QACE,MAAM,GAAa,kBAAkB,OAAO,EAAM,iBAAiB,CAAC,CAClE,CACJ,QACA,cACA,iBACE,EACJ,OAAO,GAA8B,CACnC,GAAG,EACH,QACA,YAAa,GAAe,IAAK,GACjC,WAAY,EACb,CAAC,EAEE,IAAa,EAAO,IAAgB,CACxC,GAAI,CAAC,EACH,MAAO,CACL,OAAQ,EAAE,CACX,CAEH,OAAQ,EAAM,KAAd,CACE,KAAK,EAAU,kBACb,OAAO,GAA2B,EAAO,EAAY,CACvD,KAAK,EAAU,mBACb,OAAO,GAA4B,EAAM,CAC3C,KAAK,EAAU,cACb,OAAO,GAAuB,EAAM,CACtC,KAAK,EAAU,QACb,OAAO,GAAiB,EAAO,EAAY,CAC7C,KAAK,EAAU,iBACb,OAAO,GAA0B,EAAM,CACzC,QACE,MAAO,CACL,OAAQ,EAAE,CACX,uBCpOiC,KACmD,KACV,KACsC,IACxG,KACiE,KACX,KACA,IACrD,KAC2D,IAClB,KACc,IAClC,IAC6B,KACsB,KAC1B,KACP,KACM,IACF,KACF,KACc,KAChB,KACY,KACU,KACR,IAClD,IACmC,IAC/B,KACoD,KAC/B,IACU,KACM,KACN,CAChD,IAAkB,CACtB,QACA,SACA,YACI,CACJ,GAAM,CACJ,YACE,IAAwB,CACtB,CACJ,aACE,IAAY,CAEV,CACJ,YACA,OACA,gBACE,GAAa,CACf,QACA,YAPW,IAAgB,CAQ3B,QAAS,GAAY,EACtB,CAAC,CACF,OAAuB,EAAI,GAAa,CAAE,QAAS,EAAW,eAAc,OAAQ,EAAM,SAAQ,SAAQ,CAAC,sBCtDrE,KACiE,IAC1F,KAC2E,KACH,IAChE,KACyD,KACX,IACO,KACL,IAClC,IAC6B,KACsB,KAC1B,KACP,IACvC,KAC2D,IAChB,IACL,KACoC,KAChC,KACD,KACc,KAChB,KACyC,CAC1F,IAAiB,CACrB,WACA,QAAQ,QACR,aAAa,SACb,cACA,sBACA,aAEuB,EAAI,GAAe,CAAE,QAAO,SAA0B,EAAI,GAAoB,CAAE,aAAY,SAA0B,EAAI,GAAsB,CAAE,KAAM,GAAM,OAAQ,YAAa,GAAG,EAAqB,SAA0B,EAAI,GAAuB,CAAE,cAAa,SAA0B,EAAI,GAAW,CAAE,MAAO,CACtV,kBAAmB,GACnB,kBAAmB,GACnB,sBAAuB,GACvB,gBAAiB,EAClB,CAAE,SAA0B,EAAI,GAAiB,CAAE,UAAS,WAAU,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,CAAC,qBCtCjD,IACC,IACgC,CACnE,IAAoB,CACxB,WACA,WACA,kBAAkB,EAClB,qBAAqB,EAAI,OACrB,CACJ,IAAM,EAAgBC,EAAuB,IAAI,IAAM,CACjD,CAAC,EAAS,GAAcC,EAAS,GAAM,CAE7C,OAAuB,EAAI,GAAW,CAAE,MAAO,CAK7C,cAAe,EAAQ,EAAK,EAAS,EAAY,CAC/C,gBACI,CACA,EAAa,IAGb,GAAc,GAChB,EAAc,QAAQ,IAAI,EAAI,CAEhC,eAAiB,CACf,EAAW,CACT,aACD,CAAC,EACD,EAAmB,GAExB,SAAU,EAAQ,IAAQ,CACnB,EAAc,QAAQ,IAAI,EAAI,GAGnC,EAAc,QAAQ,OAAO,EAAI,CACjC,EAAW,GAAK,GAEnB,CAAE,SAAU,EAAU,QA5BH,EAAW,GAAM,CA4B6B,CAAG,EAAU,CAAC,sBCvC7C,KACmB,CAClD,GAAsB,CAC1B,WAAY,CACV,KAAM,EAAY,KAClB,MAAO,MACP,QAAS,CAAC,GAAW,QAAS,GAAW,OAAQ,GAAW,OAAO,CACnE,aAAc,CAAC,KAAM,SAAU,SAAS,CACxC,wBAAyB,GAC1B,CACF,kBCVG,IAA0B,IAC5B,EAAO,MAAW,QAClB,EAAO,KAAU,OACV,IACN,IAAS,EAAE,CAAC,qBCJsB,KACS,CACxC,GAAiB,CACrB,MAAO,CACL,KAAM,EAAY,KAClB,MAAO,KACP,YAAa,qCACb,QAAS,CAAC,GAAM,MAAO,GAAM,KAAK,CAClC,aAAc,CAAC,QAAS,OAAO,CAC/B,aAAc,GAAM,MACpB,wBAAyB,GAC1B,CACF,wBCZoC,KACY,CAC3C,IAAiC,GAAG,IACjC,EAAS,QAAQ,GAAQ,CAAC,QAAQ,EAAM,IAAS,CACtD,GAAM,CAAC,EAAK,GAAY,EAClB,EAAS,CACb,GAAG,EACJ,CACK,EAAW,EAAO,IAAQ,EAAE,CAKlC,OAJI,EAAS,OAAS,EAAY,MAAQ,EAAS,OAAS,EAAY,MACtE,EAAO,GAAO,GAA4B,EAAU,EAAS,CACtD,EAAO,GAET,EAAO,CACZ,GAAG,GACF,GAAM,EACR,EACA,EAAE,CAAC,CAEF,IAA+B,EAAU,KACtC,CACL,GAAG,EACH,QAAS,CAAC,GAAG,EAAS,QAAS,GAAG,EAAS,QAAQ,CACnD,aAAc,CAAC,GAAG,EAAS,cAAgB,EAAE,CAAE,GAAG,EAAS,cAAgB,EAAE,CAAC,CAC/E,4BCxBC,IAA+B,IACjC,EAAY,EAAY,OAAY,GAAK,SACzC,EAAY,EAAY,QAAa,GAAK,UAC1C,EAAY,EAAY,OAAY,GAAK,SAClC,IACN,IAAc,EAAE,CAAC,CAMhB,IAAiC,IACnC,EAAc,WAAgB,aAC9B,EAAc,YAAiB,cACxB,IACN,IAAgB,EAAE,CAAC,CAClB,IAAqC,IACvC,EAAkB,MAAW,QAC7B,EAAkB,IAAS,MAC3B,EAAkB,KAAU,OACrB,IACN,IAAoB,EAAE,CAAC,CACtB,IAA6B,IAC/B,EAAU,QAAa,UACvB,EAAU,KAAU,OACb,IACN,IAAY,EAAE,CAAC,qBC1Bd,IAA0C,IAC5C,EAAuB,EAAuB,OAAY,GAAK,SAC/D,EAAuB,EAAuB,OAAY,GAAK,SAC/D,EAAuB,EAAuB,KAAU,GAAK,OACtD,IACN,IAAyB,EAAE,CAAC,CAC3B,IAAqC,IACvC,EAAkB,EAAkB,OAAY,GAAK,SACrD,EAAkB,EAAkB,MAAW,GAAK,QAC7C,IACN,IAAoB,EAAE,CAAC,gDCVW,KACqB,KACc,KACoC,CACtG,GAAmB,CACvB,KAAM,CACJ,KAAM,EAAY,KAClB,MAAO,KACP,QAAS,CAAC,EAAU,QAAQ,CAC5B,aAAc,CAAC,KAAK,CACrB,CACD,WAAY,CACV,QAAS,CACP,UACI,IAAS,EAAU,QACzB,KAAM,EAAY,OAClB,MAAO,QACP,YAAa,oBACb,aAAc,GACf,CACF,CACK,GAA8B,CAClC,KAAM,CACJ,KAAM,EAAY,KAClB,MAAO,KACP,QAAS,CAAC,EAAU,kBAAkB,CACtC,aAAc,CAAC,UAAU,CAC1B,CACD,oBAAqB,CACnB,QAAS,CACP,UACI,IAAS,EAAU,kBACzB,KAAM,EAAY,OAClB,MAAO,aACP,YAAa,SACb,aAAc,GACf,CACF,CACK,GAA+B,CACnC,KAAM,CACJ,KAAM,EAAY,KAClB,MAAO,KACP,QAAS,CAAC,EAAU,mBAAmB,CACvC,aAAc,CAAC,aAAa,CAC7B,CACD,qBAAsB,CACpB,QAAS,CACP,UACI,IAAS,EAAU,mBACzB,KAAM,EAAY,OAClB,MAAO,aACP,YAAa,oBACb,aAAc,GACd,YAAa,oBACd,CACF,CACK,GAA0B,CAC9B,KAAM,CACJ,KAAM,EAAY,KAClB,MAAO,KACP,QAAS,CAAC,EAAU,cAAc,CAClC,aAAc,CAAC,WAAW,CAC3B,CACD,cAAe,CACb,QAAS,CACP,UACI,IAAS,EAAU,cACzB,KAAM,EAAY,OAClB,MAAO,YACP,YAAa,oBACb,aAAc,GACf,CACD,UAAW,CACT,QAAS,CACP,UACI,IAAS,EAAU,cACzB,KAAM,EAAY,OAClB,MAAO,KACP,YAAa,2BACb,KAAM,IACN,aAAc,GACd,IAAK,EACL,eAAgB,GACjB,CACD,oBAAqB,CACnB,QAAS,CACP,UACI,IAAS,EAAU,cACzB,KAAM,EAAY,OAClB,MAAO,QACP,YAAa;mBACb,aAAc,GACf,CACF,CACK,GAA0B,CAC9B,KAAM,CACJ,KAAM,EAAY,KAClB,MAAO,KACP,QAAS,CAAC,EAAU,eAAe,CACnC,aAAc,CAAC,SAAS,CACzB,CACD,qBAAsB,CACpB,QAAS,CACP,UACI,IAAS,EAAU,eACzB,KAAM,EAAY,OAClB,MAAO,QACP,YAAa;mBACb,aAAc,GACf,CACF,CACK,GAAmB,CACvB,KAAM,CACJ,KAAM,EAAY,KAClB,MAAO,KACP,QAAS,CAAC,EAAU,QAAQ,CAC5B,aAAc,CAAC,KAAK,CACrB,CACD,YAAa,CACX,QAAS,CACP,UACI,IAAS,EAAU,QACzB,KAAM,EAAY,KAClB,MAAO,QACP,QAAS,CAAC,GAAY,WAAY,GAAY,SAAS,CACvD,aAAc,CAAC,KAAM,MAAM,CAC5B,CACD,qBAAsB,CACpB,QAAS,CACP,OACA,iBACI,IAAS,EAAU,SAAW,IAAgB,GAAY,WAChE,KAAM,EAAY,KAClB,MAAO,KACP,QAAS,CAAC,GAAqB,SAAU,GAAqB,OAAQ,GAAqB,MAAM,CACjG,aAAc,CAAC,MAAO,MAAO,KAAK,CACnC,CACD,mBAAoB,CAClB,QAAS,CACP,OACA,iBACI,IAAS,EAAU,SAAW,IAAgB,GAAY,SAChE,KAAM,EAAY,KAClB,MAAO,KACP,QAAS,CAAC,GAAmB,OAAO,CACpC,aAAc,CAAC,MAAM,CACtB,CACD,cAAe,CACb,QAAS,CACP,UACI,IAAS,EAAU,QACzB,KAAM,EAAY,OAClB,MAAO,QACP,YAAa;mBACb,aAAc,GACf,CACD,aAAc,CACZ,QAAS,CACP,UACI,IAAS,EAAU,QACzB,KAAM,EAAY,KAClB,MAAO,UACP,QAAS,CAAC,GAAa,MAAO,GAAa,OAAO,CAClD,aAAc,CAAC,QAAS,QAAQ,CAChC,aAAc,GAAa,MAC5B,CACD,wBAAyB,CACvB,QAAS,CACP,UACI,IAAS,EAAU,QACzB,MAAO,cACP,KAAM,EAAY,OAClB,YAAa;mBACb,aAAc,GACd,YAAa,0CACd,CACD,yBAA0B,CACxB,QAAS,CACP,UACI,IAAS,EAAU,QACzB,KAAM,EAAY,OAClB,MAAO,cACP,YAAa;mBACb,aAAc,GACd,YAAa,0CACd,CACF,CACK,GAA6B,CACjC,KAAM,CACJ,KAAM,EAAY,KAClB,MAAO,KACP,QAAS,CAAC,EAAU,iBAAiB,CACrC,aAAc,CAAC,YAAY,CAC5B,CACD,iBAAkB,CAChB,QAAS,CACP,UACI,IAAS,EAAU,iBACzB,KAAM,EAAY,OAClB,MAAO,eACP,YAAa,SACb,aAAc,GACf,CACF,CAGS,EAAY,KAER,EAAU,YAOd,EAAY,OAIhB,GAAkB,CACtB,KAAM,CACJ,KAAM,EAAY,KAClB,MAAO,KACP,QAAS,CAAC,EAAU,OAAO,CAC3B,aAAc,CAAC,KAAK,CACrB,CACD,WAAY,CACV,KAAM,EAAY,KAClB,MAAO,QACP,YAAa,wCACb,QAAS,CAAC,GAAW,OAAQ,GAAW,QAAS,GAAW,OAAO,CACnE,aAAc,CAAC,KAAM,MAAO,KAAK,CAClC,CACD,iBAAkB,CAChB,OAAS,GAAU,EAAM,aAAe,GAAW,OACnD,KAAM,EAAY,KAClB,MAAO,WACP,QAAS,CAAC,GAAiB,OAAQ,GAAiB,MAAM,CAC1D,aAAc,CAAC,KAAM,MAAM,CAC5B,CACD,UAAW,CACT,OAAS,GAAU,EAAM,aAAe,GAAW,QAAU,EAAM,mBAAqB,GAAiB,OACzG,KAAM,EAAY,OAClB,MAAO,QACP,YAAa;sDACd,CACD,mBAAoB,CAClB,OAAS,GAAU,EAAM,aAAe,GAAW,QAAU,EAAM,mBAAqB,GAAiB,MACzG,KAAM,EAAY,MAClB,MAAO,QACP,QAAS,CACP,KAAM,EAAY,OAClB,SAAU,CACR,eAAgB,CACd,KAAM,EAAY,MAClB,MAAO,WACP,YAAa;8BACb,QAAS,CACP,KAAM,EAAY,OAClB,MAAO,WACR,CACF,CACD,eAAgB,CACd,KAAM,EAAY,OAClB,MAAO,QACP,SAAU,CACR,QAAS,CACP,KAAM,EAAY,KAClB,MAAO,MACR,CACD,MAAO,CACL,KAAM,EAAY,KAClB,MAAO,MACR,CACF,CACF,CACD,SAAU,CACR,KAAM,EAAY,OAClB,MAAO,QACP,YAAa,yCACb,SAAU,CACR,MAAO,CACL,KAAM,EAAY,OAClB,MAAO,IACP,aAAc,EACd,IAAK,EACL,IAAK,GACL,KAAM,IACN,KAAM,EACN,eAAgB,GACjB,CACD,QAAS,CACP,KAAM,EAAY,OAClB,MAAO,IACP,aAAc,EACd,IAAK,EACL,IAAK,GACL,KAAM,IACN,KAAM,EACN,eAAgB,GACjB,CACD,QAAS,CACP,KAAM,EAAY,OAClB,MAAO,IACP,aAAc,EACd,IAAK,EACL,IAAK,GACL,KAAM,IACN,KAAM,EACN,eAAgB,GACjB,CACF,CACF,CACF,CACF,CACF,CACF,CACK,GAAmB,CACvB,KAAM,CACJ,KAAM,EAAY,KAClB,MAAO,KACP,QAAS,CAAC,EAAU,QAAQ,CAC5B,aAAc,CAAC,MAAM,CACtB,CACD,WAAY,CACV,KAAM,EAAY,OAClB,QAAS,CACP,UACI,IAAS,EAAU,QACzB,MAAO,SACP,YAAa,oBACb,aAAc,GACf,CACF,CACK,GAAgB,CACpB,KAAM,EAAY,OAClB,MAAO,KACP,SAAU,EAAE,CACb,CAGS,EAAY,KAER,EAAU,eAOd,EAAY,OAQZ,EAAY,KAER,EAAU,OAOd,EAAY,OAOZ,EAAY,OAQZ,EAAY,OAQZ,EAAY,MAIV,EAAY,OAGR,EAAY,OAIZ,EAAY,+BCjZ+D,KACiI,CACtN,GAAyB,CAC7B,GAAG,GACH,SAAU,GAA8B,GAA6B,GAA8B,GAAyB,GAAkB,GAA2B,CAC1K,CACK,GAA2B,CAC/B,GAAG,GACH,SAAU,GAA8B,GAAkB,GAAwB,CACnF,+BCT0C,KAC4D,CACjG,IAA4B,EAAO,IACnC,EAAM,gBAAkB,IAAK,GACxB,CACL,OAAQ,EAAE,CACX,CAEI,GAA+B,EAAO,EAAY,CAErD,GAA2B,GAC3B,EAAM,aAAe,IAAK,GACrB,CACL,OAAQ,EAAE,CACX,CAEI,GAA8B,EAAM,CAEvC,GAAkB,GAAU,CAChC,GAAI,EAAM,kBAAoB,IAAK,GACjC,MAAO,CACL,OAAQ,EAAE,CACX,CAEH,GAAM,CACJ,mBACE,EACE,EAAS,EAAgB,IAAK,IAAc,CAChD,MAAO,EAAS,KAChB,MAAO,CACL,GAAG,EACH,iBAAkB,EAAS,GAC5B,CACF,EAAE,CAKH,MAAO,CACL,OAAQ,CALU,CAClB,MAAO,KACP,QACD,CAEuB,GAAG,EAAO,CACjC,EAEG,IAAW,EAAO,IAAgB,CACtC,GAAI,CAAC,EACH,MAAO,CACL,OAAQ,EAAE,CACX,CAEH,OAAQ,EAAM,KAAd,CACE,KAAK,EAAU,kBACb,OAAO,GAAyB,EAAO,EAAY,CACrD,KAAK,EAAU,iBACb,OAAO,GAAwB,EAAM,CACvC,KAAK,EAAU,QACb,OAAO,GAAe,EAAM,CAC9B,QACE,MAAO,CACL,OAAQ,EAAE,CACX,iCC1DiC,CAClC,GAAa,IAEH,GAA+B,OAA4B,KAAK,IAAI,EAAK,IAAK,GAExF,GAAoB,gBACpB,GAAuB,GAAU,CACrC,GAAI,EAAM,OAAS,EAAU,OAC3B,OAAO,EAET,IAAM,EAAc,EACpB,MAAO,CACL,KAAM,EAAY,KAClB,MAAO,EAAY,MACnB,YAAa,EAAY,YACzB,OAAQ,EAAY,OAIrB,EAEG,GAAmB,GAChB,CAAC,GAAmB,GAAoB,EAAM,CAAC,qBCtBhB,KACyB,KACL,IACjB,KACqC,KACX,KACA,IACrD,KAC2D,IAClB,KACc,IAClC,IAC6B,KACsB,KAC1B,KACP,KACM,IACF,KACF,KACc,KAChB,KACY,KACU,KACR,IAClD,IACmC,IAC/B,KACoD,KACY,KAC3C,IACU,KACA,KACP,CACzC,IAAoB,CACxB,QACA,SACA,YACI,CACJ,IAAM,EAAO,IAAgB,CACvB,CAAC,EAAO,GAAoB,GAAe,GAAU,CAAC,EAAM,QAAQ,GAAQ,EAAM,iBAAiB,CAAE,GAAU,CAC/G,CACJ,SACA,gBACEC,MAAc,GAAQ,EAAO,EAAK,CAAE,CAAC,EAAO,EAAK,CAAC,CAOtD,OANA,MAAgB,CACV,EAAO,OAAS,GAAK,CAAC,GAG1B,EAAiB,EAAQ,EAAM,EAC9B,CAAC,EAAO,EAAO,OAAO,CAAC,CACH,EAAI,GAAa,CAAE,OAAQ,EAAQ,SAAQ,eAAc,SAAQ,CAAE,GAAU,EAAM,CAAC,sBClDxE,CAC/B,GAAmB,CACvB,QAAS,CACP,MAAO,OACP,KAAM,EAAY,MAClB,YAAa,+BACb,QAAS,CACP,KAAM,EAAY,OAClB,SAAU,CACR,KAAM,CACJ,KAAM,EAAY,KAClB,MAAO,KACP,QAAS,CAAC,QAAS,QAAS,WAAY,0BAA2B,yBAA0B,SAAS,CACtG,aAAc,CAAC,MAAO,OAAQ,SAAU,cAAe,cAAe,KAAK,CAC3E,aAAc,GACf,CACD,QAAS,CACP,QAAS,CACP,UACI,IAAS,0BACf,KAAM,EAAY,OAClB,MAAO,QACP,aAAc,GACf,CACD,SAAU,CACR,QAAS,CACP,UACI,IAAS,yBACf,KAAM,EAAY,OAClB,MAAO,QACP,aAAc,GACf,CACD,OAAQ,CACN,QAAS,CACP,UACI,IAAS,SACf,KAAM,EAAY,KAClB,MAAO,KACP,YAAa,4CACb,QAAS,CAAC,IAAK,IAAI,CACnB,aAAc,CAAC,KAAM,KAAK,CAC1B,aAAc,IACf,CACF,CACF,CACF,CACF,wBC9CuC,IACkB,KACE,KACQ,KACmB,KACD,KACF,KACV,KACW,KAC1B,KACiC,KAClB,KACI,CACxE,IAAmB,CACvB,QACA,SACA,YACI,CACJ,OAAQ,EAAM,KAAd,CACE,KAAK,GAAoB,OACvB,OAAuB,EAAI,GAAkB,CAAE,MAAO,EAAM,MAAO,SAAQ,SAAQ,CAAC,CACtF,KAAK,GAAoB,KACvB,OAAuB,EAAI,GAAgB,CAAE,MAAO,EAAM,MAAO,SAAQ,SAAQ,CAAC,CACpF,KAAK,GAAoB,OACvB,OAAuB,EAAI,GAAa,CAAE,OAAQ,EAAM,OAAQ,SAAQ,SAAQ,CAAC,CACnF,QACE,OAAO,OAGP,IAAc,CAClB,QACA,aACA,cACA,UACA,GAAG,KAEoB,EAAI,GAAe,CAAE,QAAO,aAAY,cAAa,UAAS,SAA0B,EAAI,GAAkB,CAAE,SAA0B,EAAI,GAAiB,CAAE,GAAG,EAAM,CAAC,CAAE,CAAC,CAAE,CAAC,CAE1M,EAAoB,GAAY,CAC9B,GAAG,GACH,GAAG,GACH,GAAG,GACH,YAAa,CACX,QAAS,CACP,WACK,GAA+B,OAAU,GAAoB,OACpE,GAAG,GAAmB,YACvB,CACD,MAAO,CACL,KAAM,EAAY,OAClB,MAAO,OACP,SAAU,CACR,KAAM,CACJ,KAAM,EAAY,KAClB,MAAO,KACP,QAAS,CAAC,GAAoB,OAAQ,GAAoB,KAAM,GAAoB,OAAO,CAC3F,aAAc,CAAC,KAAM,KAAM,KAAK,CACjC,CACD,MAAO,CACL,QAAS,CACP,UACI,IAAS,GAAoB,OACnC,KAAM,EAAY,OAClB,MAAO,OACP,aAAc,GACf,CACD,OAAQ,CACN,QAAS,CACP,UACI,IAAS,GAAoB,OACnC,KAAM,EAAY,MAClB,MAAO,UACP,QAAS,CACP,KAAM,EAAY,OAClB,MAAO,OACP,SAAU,CACR,MAAO,CACL,KAAM,EAAY,OAClB,MAAO,KACP,aAAc,MACf,CACD,MAAO,GACR,CACF,CACD,aAAc,CAAC,CACb,MAAO,MACR,CAAC,CACH,CACD,MAAO,CACL,QAAS,CACP,UACI,IAAS,GAAoB,KACnC,GAAG,GACJ,CACF,CACF,CACD,OAAQ,CACN,KAAM,EAAY,OAClB,MAAO,OACR,CACD,OAAQ,CACN,KAAM,EAAY,OAClB,MAAO,OACP,SAAU,CACR,QAAS,CACP,KAAM,EAAY,YAClB,MAAO,KACP,aAAc,EACd,UAAW,UACX,aAAc,CAAC,MAAO,aAAa,CACnC,UAAW,CAAC,aAAc,eAAgB,gBAAiB,cAAc,CACzE,YAAa,CAAC,IAAK,IAAK,IAAK,IAAI,CACjC,IAAK,EACN,CACF,CACF,CACF,CAAC,sBCpH2G,IAAW,YAAY,eAA2B,MCE/J,SAASC,GAAS,EAAM,CAAC,GAAK,CAAC,QAAM,SAAO,UAAQ,WAAS,cAAY,aAAW,KAAG,WAAS,GAAG,GAAM,EAAM,OAAO,EAQnH,SAAgB,GAAM,EAAM,CAAgC,OAAoB,EAAK,GAAU,CAAC,GAApDA,GAAS,EAAM,CAAiD,CAAC,CAAE,SAAS,GAAoB,EAAS,CAAC,IAAM,EAA4B,IAAgC,CAAO,EAAeC,EAAO,GAAM,CAAO,EAAaA,EAAO,GAAM,CAAO,EAAYC,EAAY,GAAa,CAAC,GAAG,CAAC,EAAS,QAAQ,OAAO,IAAM,GAAa,IAAc,EAAE,KAAK,GAAa,EAAS,QAAQ,SAAe,EAAa,KAAK,IAAI,EAAS,QAAQ,YAAY,EAAY,CAAC,GAAM,EAAS,QAAQ,SAAS,GAAG,CAAC,IAAc,EAAS,QAAQ,YAAY,IAAe,EAAE,CAAC,CAEja,MAAM,CAAC,KAFsaA,MAAgB,CAAC,IAAM,EAAM,EAAS,QAAY,IAAa,EAAM,QAAQ,OACtjB,EAAhH,EAAM,YAAY,GAAG,EAAM,WAAW,CAAC,EAAM,QAAQ,CAAC,EAAM,OAAO,EAAM,YAAY,EAAM,oBAAiC,GAAO,CAAC,EAAe,SAAS,IAA6B,EAAe,QAAQ,GAAK,EAAa,QAAQ,GAAK,EAAM,MAAM,CAAC,MAAM,GAAG,GAAG,CACxR,YAAY,EAAe,QAAQ,GAAM,IAAI,EAAE,CAAC,CAAwJ,MAA3IA,MAAgB,CAAI,CAAC,EAAS,SAAS,EAAe,UAAe,EAAS,QAAQ,OAAO,CAAC,EAAa,QAAQ,KAAQ,EAAE,CAAC,CAAmB,cAAY,UAAU,EAAa,CAAE,SAAS,GAAoB,CAAC,cAAY,QAAM,OAAK,cAAY,YAAU,CAAC,GAAK,CAAC,GAAoBC,MAAa,EAAY,CAAM,CAAC,EAAsB,GAA0BA,EAAS,GAAM,CAAI,IAAc,GAAoB,CAAC,GAAuB,EAAyB,GAAK,CAAE,IAAM,EAE7hB,GAAoB,GAAO,GAAM,GAAa,CAAC,GAQ/C,CAAC,EAA0B,EAA2H,MAAlH,CAA2F,EAAxF,EAAsB,cAAsB,EAA4B,WAAyB,cAAqB,EAgDoU,SAAS,GAAsB,EAAM,CAAC,OAAO,EAAM,OAAO,EAAE,CAAC,aAAa,CAAC,EAAM,MAAM,EAAE,CAAE,SAAgB,GAAU,EAAM,CAA0E,OAA5D,EAAM,MAAM,2CAA2C,EAAE,EAAE,EAAe,IAAI,GAAsB,CAAC,KAAK,IAAI,kCAtE7qB,IAAgG,IAAmD,KAAwN,IAChV,EAAmB,SAAS,EAAc,CAAC,EAAc,KAAQ,OAAO,EAAc,QAAW,UAAU,EAAc,MAAS,QAAQ,EAAc,KAAQ,OAAO,EAAc,UAAa,eAAgB,AAAgB,KAAc,EAAE,CAAE,EAAc,SAAS,EAAQ,CAAC,EAAQ,MAAS,SAAS,EAAQ,IAAO,QAAS,AAAU,KAAQ,EAAE,CAAE,CAAO,GAAa,uEAqBzQ,GAAuB,EAAK,SAAoB,EAAM,CAAC,GAAK,CACzO,UAAQ,MAAM,SAAO,UAAQ,GAAG,gBAAc,GAAM,WAAS,GAAM,UAAQ,GAAK,OAAK,GAAK,QAAM,GAAK,cAAY,GAAK,iBAAe,GAAM,YAAU,QAAQ,kBAAgB,gBAAgB,SAAO,EAAE,SAAO,GAAG,UAAU,EAAc,EAAE,SAAO,QAAQ,EAAY,SAAA,EAAS,WAAS,UAAQ,SAAO,QAAM,WAAQ,eAAa,eAAa,eAAY,cAAW,EAAY,EAASF,GAAQ,CAAO,GAAS,IAAoB,CAAO,EAAiBA,EAAO,KAAK,CAAO,EAAgBA,EAAO,KAAK,CAAO,GAAW,GAAe,CAAO,GAAa,IAAiB,CAAO,GAAiB,IAAY,KAAe,GAAa,OAAa,GAAa,GAAU,EAAM,CAGvpB,EAAiB,GAAiB,cAAc,GAAoB,CAAC,cAAY,QAAM,OAAK,cAAY,WAAS,CAAC,CAAO,EAAa,GAAiB,GAAK,EAAU,EAAS,CAAO,GAAkB,GAAiB,GAAM,EAAU,EAAS,CAAC,OAAO,MAAM,KAAK,GAAK,CAAC,CAC3Q,GAAU,IAAgB,IAAI,KAAK,EAAmB,CAAC,QAAK,SAAM,eAAY,cAAW,GAAoB,EAAS,CAC5H,MAAc,CAAI,IAA2B,IAAmB,gBAAwB,EAAY,IAAM,CAAM,IAAO,GAAG,CAAC,EAAiB,EAAY,CAAC,CACzJ,MAAc,CAAI,KACf,GAAc,GAAa,IAAmB,eAAc,IAAM,CAAI,IAAmB,eAAqB,IAAO,GAAG,CAAC,EAAiB,EAAa,EAAY,CAAC,CAAC,MAAc,CAAI,CAAC,IAAY,GAAQ,GAAe,IAAW,CAAC,EAAS,UACnP,EAAS,QAAQ,YAAY,MAAM,CAAC,EAAc,EAAO,GAAU,CAAC,CAO7D,IAAM,EAAoCA,EAAO,GAAM,CAE9D,MAAc,CAAC,GAAG,CAAC,EAAoC,QAAQ,CAAC,EAAoC,QAAQ,GAAK,OAAwF,KAAzD,EAAcG,EAAS,CAACA,EAAS,KAAK,EAAEA,GAAU,GAAG,MAKlL,KAOlB,IAAW,GAAG,IAAI,EAAG,CAAC,GAAU,EAAQ,EAAOA,EAAS,CAAC,CAC1D,MAAc,CAAK,KAAcA,EAAS,CAAQ,OAAOA,EAAS,GAAG,SAAS,GAAO,GAAY,EAAM,CAAC,EAAG,CAACA,EAAS,CAAC,CACtH,OAAe,CAAI,EAAiB,UAAU,MAAe,EAAS,UACnE,CAAC,GAAiB,GAAM,CAAC,EAAiB,UAAQ,IAAM,EAAI,CAC/D,OAAc,CAAI,EAAS,UAAS,EAAgB,QAAQ,EAAS,QAAQ,MAAM,EAAiB,QAAQ,EAAS,QAAQ,OAAO,IAAO,GAAI,CAAC,IAAM,EAAIC,MAAY,CAStK,GAAG,IAAU,MAAM,OAAO,EAAO,GAAS,GAAG,IAAU,SAAS,OAAO,EAAQ,IAAW,CAAC,EAAQ,EAAQ,EAAO,GAAU,CAAC,CAIN,OAHvH,MAAc,CAAI,IAAU,EAAS,SAAS,IAAmB,YAAY,eAAe,IAAM,CAAC,GAAG,EAAI,EAAE,CAAC,CAC7G,MAAc,CAAI,EAAS,SAAS,CAAC,IAAM,EAAS,QAAQ,QAAQ,GAAQ,GAAG,MAAM,CAAC,EAAO,CAAC,CAE6C,EAAK,QAAQ,CAAC,WAAQ,eAAa,eAAa,eAAY,aAAc,MAAS,OAAK,IAAI,EAAS,SAAS,GAAG,IAAWC,EAAE,CAAC,QAAQ,GAAG,IAAUA,EAAE,CAAC,OAAO,GAAG,IAASA,EAAE,CAAC,QAAQ,GAAG,IAAQA,EAAE,CAAC,SAAS,GAAU,SAAS,IAAmB,YAAY,GAAa,IAAmB,eAAe,EAAa,QAAQ,GAAU,QAAQ,OAAO,IAAkB,CAAC,EAAO,WAAW,IAAmB,YAAY,CAAC,GAAkB,OAC7jB,WAAW,OAAO,GAAe,CAAC,GAAS,IAAS,GAAa,sEAAsE,GAAe,EAAO,EAAO,IAAA,GAAU,iBAFxJ,CAAC,IAAM,EAAM,EAAS,QAAY,IAAgB,EAAM,YAAY,IAAI,GAAU,GAAE,IAAa,IAAW,GAAG,IAAI,EACzI,GAAU,SAAS,IAAmB,YAAY,GAAa,IAAmB,eAAe,IAAa,IAAM,GAC4F,WAAS,MAAM,GAAiB,GAAK,EAAM,YAAY,EAAY,MAAM,CAAC,OAAS,GAAQ,UAAU,OAAO,MAAM,OAAO,OAAO,OAAO,gBAAa,QAAQ,QAAkB,YAA0B,kBAAgB,eAAe,UAAU,CAAC,CAAC,EAAG,CAAC,GAAM,YAAY,QAAuQ,GAAiB,CAAC,QAAQ,OAAO,UAAU,aAAa,OAAO,CAAC,EAAoB,GAAM,CAAC,QAAQ,CAAC,KAAK,EAAY,KAAK,wBAAwB,GAAK,MAAM,SAAS,QAAQ,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,MAAM,aAAa,uEAAuE,OAAO,EAAM,CAAC,OAAO,EAAM,UAAU,UAAW,CAAC,QAAQ,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,iBAAiB,CAAC,MAAM,OAAO,CAAC,OAAO,EAAM,CAAC,OAAO,EAAM,UAAU,OAAQ,CAAC,QAAQ,CAAC,KAAK,EAAY,QAAQ,MAAM,UAAU,aAAa,MAAM,cAAc,KAAK,CAAC,GAAG,GAAoB,cAAc,CAAC,KAAK,EAAY,QAAQ,MAAM,SAAS,aAAa,MAAM,cAAc,KAAK,CAAC,OAAO,CAAC,KAAK,EAAY,MAAM,MAAM,QAAQ,QAAQ,CAAC,mBAAiB,CAAC,EAAc,YAAY,wHAAwH,CAAC,gBAAgB,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,gBAAgB,CAAC,UAAU,CAAC,MAAM,aAAa,KAAK,EAAY,OAAO,IAAI,EAAE,IAAI,IAAI,KAAK,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,EAAY,QAAQ,MAAM,OAAO,aAAa,MAAM,cAAc,KAAK,CAAC,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,MAAM,QAAQ,GAAiB,aAAa,GAAiB,IAAI,GAAU,CAAC,CAMz+D,SAAS,CAAC,KAAK,EAAY,QAAQ,MAAM,WAAW,aAAa,OAAO,cAAc,OAAO,aAAa,GAAM,CAAC,MAAM,CAAC,KAAK,EAAY,QAAQ,MAAM,QAAQ,aAAa,MAAM,cAAc,KAAK,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,WAAS,EAAM,aAAa,GAAG,CAAC,MAAM,CAAC,KAAK,EAAY,aAAa,CAAC,SAAS,CAAC,KAAK,EAAY,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAY,aAAa,CAAC,OAAO,CAAC,KAAK,EAAY,aAAa,CAAC,GAAG,GAAc,CAAC,8BC5E3b,KACsC,KACR,KACgB,KACF,KACZ,KACF,KACA,KACE,KACA,KACF,KACM,CACzD,GAAmB,CACvB,SACA,QACA,WACA,SACA,QACA,QACA,SACD,CACK,GAAoB,CACxB,QACA,gBACA,YACA,eACA,SACD,CACK,GAAsB,OAAO,KAAK,GAAiB,CACnD,GAAuB,OAAO,KAAK,GAAkB,4DC7Bb,KACP,IACxB,KAC8D,KACX,IACZ,KACc,IAClC,IAC6B,KACsB,KAC1B,KACP,IACpC,KACwD,KACd,IACF,KACF,KACc,KAChB,KACE,KACU,KACE,IAC/C,IACgC,IAC5B,KACiD,KAC/B,IACU,KACK,KACG,CACrD,IAAiB,CACrB,WACA,WAAW,GACX,QACA,eACA,aACA,mBACA,oBACA,mBACI,CACJ,IAAM,EAAa,IAAe,CAC5B,EAAQ,IAAU,CAClB,EAA4B,OAAO,GAAiB,SAAW,CAAC,EAAa,CAAG,EACtF,OAAuB,EAAI,MAAO,CAAE,MAAO,CACzC,GAAGC,GACH,GAAG,GAA2B,GAC/B,CAAE,SAA0B,EAAK,MAAO,CAAE,MAAO,CAChD,GAAGC,GACH,GAAG,GAAoB,GACvB,GAAGC,GAAyB,GAC7B,CAAE,SAAU,CACK,EAAI,GAAM,CAAE,KAAM,EAAU,KAAM,EAAU,OAAQ,QAAS,MAAOC,GAAiB,GAAQ,CAAC,CAC9F,EAAK,MAAO,CAAE,MAAO,GAAc,SAAU,CAC3C,EAAI,OAAQ,CAAE,MAAO,CACnC,GAAG,GACH,GAAG,GAAkB,GACtB,CAAE,SAAU,EAAO,CAAC,CACL,EAAI,MAAO,CAAE,MAAO,CAClC,GAAG,GACH,GAAG,GAAwB,GAC5B,CAAE,SAAU,EAA0B,KAAK,EAAa,IAEvC,EAAI,OAAQ,CAAE,SAAU,EAAa,CAAE,EAAM,CAC7D,CAAE,CAAC,CACN,CAAE,CAAC,CACY,EAAI,GAAS,CAAE,GAAG,GAAY,EAAkB,EAAkB,CAAE,QAAS,SAAU,KAAM,SAAU,gBAAiB,GAAmB,GAAO,gBAAiB,MAAO,GAAmB,GAAO,MAAO,QAAS,EAAe,SAAU,EAAY,CAAC,CAC3Q,CAAE,CAAC,CAAE,CAAC,EAEH,IAAe,EAAY,IAC1B,EAKE,CACL,cACD,CANQ,CACL,aACD,CAMCH,GAAiB,CACrB,MAAO,OACP,cAAe,GAChB,CACK,GAA6B,CACjC,QAAS,CACP,YAAa,EACb,aAAc,EACf,CACD,OAAQ,CACN,YAAa,GACb,aAAc,GACf,CACD,OAAQ,CACN,YAAa,GACb,aAAc,GACf,CACF,CACKC,GAAe,CACnB,MAAO,OACP,SAAU,KACV,QAAS,OACT,cAAe,SACf,eAAgB,SAChB,WAAY,SACZ,IAAK,EACL,aAAc,MACf,CACK,GAAsB,CAC1B,MAAO,CACL,gBAAiB,UAClB,CACD,KAAM,CACJ,gBAAiB,UAClB,CACF,CACKC,GAA2B,CAC/B,QAAS,CACP,QAAS,YACV,CACD,OAAQ,CACN,QAAS,YACV,CACD,OAAQ,CACN,QAAS,YACV,CACF,CACKC,GAAmB,CACvB,MAAO,UACP,KAAM,UACP,CACK,GAAqB,CACzB,MAAO,CACL,gBAAiB,UACjB,MAAO,UACR,CACD,KAAM,CACJ,gBAAiB,UACjB,MAAO,UACR,CACF,CACK,GAAe,CACnB,QAAS,OACT,cAAe,SACf,WAAY,SACZ,IAAK,MACL,UAAW,SACX,cAAe,MAChB,CACK,GAAa,CACjB,GAAG,GAAW,GAAI,IAAI,CACvB,CACK,GAAoB,CACxB,MAAO,CACL,MAAO,UACR,CACD,KAAM,CACJ,MAAO,UACR,CACF,CACK,GAAmB,CACvB,QAAS,OACT,cAAe,SACf,WAAY,WACZ,GAAG,GAAW,GAAI,IAAI,CACvB,CACK,GAA0B,CAC9B,MAAO,CACL,MAAO,UACR,CACD,KAAM,CACJ,MAAO,UACR,CACF,qBC3KuC,KACwC,CAC1E,IAAa,CACjB,aAEuB,EAAI,GAAe,CAAE,SAAU,QAAS,SAAU,GAAI,MAAO,WAAY,aAAc;mBAC5F,WAAY,OAAQ,iBAAkB,OAAQ,cAAe,EAAS,CAAC,iCCNnD,IACL,CAC7B,IAAQ,CACZ,KACA,WACA,QACA,MACA,SACA,GAAG,GACF,IAEsB,EADP,GAAM,MACc,CAAE,GAAG,EAAM,MAAK,MAAO,CACzD,QAAS,OACT,OAAQ,GAA2B,IACnC,UAAW,GAAiC,IAC5C,aAAc,GAA2B,MACzC,gBAAiB,GAAiC,MAClD,GAAI,GAAiC,QAAW,IAAK,GAA4D,IAAK,GAA7D,GAAkB,EAAO,MAAO,EAAO,UAAY,EAAE,CAC9G,GAAI,GAA2B,QAAW,IAAK,GAAwD,IAAK,GAAzD,GAAoB,EAAI,MAAO,EAAI,UAAY,EAAE,CACpG,GAAG,EACJ,CAAE,WAAU,CAAC,CAEV,GAAW,GACX,OAAO,GAAU,SACZ,GAAG,EAAM,IAEX,EAAM,SAAS,KAAK,CAAG,EAAQ,GAAG,EAAM,IAE3C,IAAqB,EAAO,KAAc,CAE9C,oBAAqB,UAAU,IAAU,OAAS,YAAc,EAAM,WAAW,GAAQ,EAAS,CAAC,SACnG,aAAc,MACf,EACK,IAAuB,EAAO,KAAc,CAEhD,iBAAkB,UAAU,IAAU,OAAS,YAAc,EAAM,WAAW,GAAQ,EAAS,CAAC,UAChG,aAAc,cACd,aAAc,SACf,EACKC,GAAUC,EAAW,GAAK,qBCvCG,KACS,CACtC,OAA2B,CAC/B,IAAM,EAAUC,EAAW,GAAgB,CAC3C,GAAI,CAAC,EACH,MAAU,MAAM,gDAAgD,CAElE,OAAO,0BCP+B,CAClC,IAAa,CACjB,QACA,OACA,QACA,GAAG,KACC,CACJ,IAAM,EAAY,GAAQ,GACpB,EAAW,EAAY,GAAK,GAClC,OAAuB,EAAI,MAAO,CAAE,GAAG,EAAM,MAAO,CAClD,GAAGC,GACH,GAAG,GAAQ,CACT,MAAO,EACP,OAAQ,EACT,CACD,GAAG,EACJ,CAAE,SAA0B,EAAI,MAAO,CAAE,MAAO,6BAA8B,MAAO,EAAU,OAAQ,EAAW,QAAS,YAAa,KAAM,OAAQ,SAA0B,EAAI,OAAQ,CAAE,EAAG,kBAAmB,OAAQ,EAAO,YAAa,IAAK,cAAe,QAAS,eAAgB,QAAS,CAAC,CAAE,CAAC,CAAE,CAAC,EAE1SA,GAAiB,CACrB,MAAO,GACP,OAAQ,GACR,QAAS,OACT,WAAY,SACZ,eAAgB,SACjB,sDCxB6C,IACkB,KACG,KACiB,KACJ,KACX,IACZ,KACc,IAClC,IAC6B,KACsB,KAC1B,KACP,IACvC,KAC2D,KACd,IACF,KACF,KACc,KAChB,KACE,KACU,KACE,IAClD,IACwB,IACpB,KACoD,KAC/B,IACU,KACW,KACZ,KACC,CAChD,GAAiB,GACjB,GAAiBC,GAAY,CACjC,QACA,UAAA,EACA,WACA,UACA,aAAa,GACb,UACA,mBACC,IAAQ,CACT,IAAM,EAAa,IAAe,CAC5B,EAAQ,IAAU,CAClB,CACJ,UACA,kBACE,IAAoB,CAClB,EAAUC,EAAO,KAAK,CACtB,EAAcA,EAAO,GAAM,CAC3B,CACJ,OACA,MACA,SACA,aACE,EACE,CACJ,OAAO,EAAgB,MACrB,GAAQ,EAAE,CACR,CAAC,EAAa,GAAkBC,EAAS,GAAM,CAC/C,CAAC,EAAS,IAAcA,EAAS,EAAe,CAChD,EAAS,GAAiC,KAAQ,EAElD,EADY,IAAS,EAAgB,KACN,IAAe,UAC9C,EAAwB,GAAc,EACtC,EAAY,GAAc,CAC9B,GAAI,EAAY,SAAW,EACzB,OAEF,IAAMC,EAAY,EAAQ,QAC1B,GAAIA,IAAc,KAChB,OAEF,IAAM,EAAW,GAAkBA,EAAW,EAAO,EAAU,CACzD,EAAyB,EAAW,KAAK,KAAKA,EAAU,YAAcA,EAAU,YAAY,CAC5F,EAAyB,EAAW,EAC1C,GAAW,GAA0B,EAAe,CACpD,EAAe,EAAuB,CACtC,EAAY,QAAU,GACtB,EAAU,OAAO,CACf,SAAU,SACV,KAAM,EACP,CAAC,CACF,eAAiB,CACf,EAAY,QAAU,IACrB,IAAI,EAEH,OAA4B,CAC5B,GACF,EAAS,WAAW,EAGlB,OAAwB,CACxB,GACF,EAAS,OAAO,EAapB,OAVA,MAAgB,CACd,GAAI,EACF,OAEF,IAAMA,EAAY,EAAQ,QACtBA,IAAc,MAGlB,GAAWA,EAAU,YAAcA,EAAU,aAAe,EAAe,EAC1E,CAAC,EAAQ,CAAC,CACU,EAAK,MAAO,CAAE,MAAO,CAC1C,GAAGC,GACH,GAAG,EACJ,CAAE,SAAU,CACX,EAAwC,EAAI,GAAW,CAAE,MAAO,CAC9D,GAAG,GACH,GAAG,GACH,GAAG,IAAoB,IAAK,IAAK,CAC/B,KAAM,IAAI,EAAgB,IAC3B,CACF,CAAE,MAAO,EAAc,GAAiB,GAAS,GAAyB,GAAQ,QAAS,GAAqB,CAAC,CAAG,KACrG,EAAIC,GAAS,CAAE,IAAKC,GAAU,CAAC,EAAK,EAAQ,CAAC,CAAE,MAAO,CACpE,GAAGC,GACH,GAAG,GACH,GAAGC,GAAyB,GAC5B,UAAW,EAAY,SAAW,SAClC,UAAW,SACX,eAAgB,EAAkB,cAAgB,OAClD,qBAAsB,EAAkB,cAAgB,OACxD,GAAG,EAAU,CACX,QAAS,GAAG,EAAQ,KAAO,EAAE,KAAK,EAAQ,OAAS,EAAE,KAAK,EAAQ,QAAU,EAAE,KAAK,EAAQ,MAAQ,EAAE,IACrG,kBAAmB,EAAQ,MAAQ,EACnC,mBAAoB,EAAQ,OAAS,EACtC,CAAG,IAAK,GACT,GAAGC,EACJ,CAAE,MAAK,SAAQ,WAAU,CAAC,CAC3B,EAAwC,EAAI,GAAW,CAAE,MAAO,CAC9D,GAAG,GACH,GAAG,GACH,GAAG,IAAoB,IAAK,IAAK,CAC/B,MAAO,IAAI,EAAgB,IAC5B,CACF,CAAE,MAAO,EAAU,GAAiB,GAAS,GAAyB,GAAQ,QAAS,GAAiB,CAAC,CAAG,KAC9G,CAAE,CAAC,EACJ,CACI,IAAqB,EAAW,EAAO,IAAc,CACzD,IAAMC,EAASP,EAAU,YAAc,EACvC,OAAO,KAAK,KAAKA,EAAU,YAAc,IAAc,WAAa,CAACO,EAASA,GAAQ,EAElFN,GAAiB,CACrB,SAAU,WACV,MAAO,OACR,CACK,GAAmB,CACvB,MAAO,OACP,KAAM,OACP,CACK,GAA2B,CAC/B,MAAO,UACP,KAAM,UACP,CACK,GAAqB,CACzB,SAAU,WACV,IAAK,MACL,OAAQ,UACT,CACK,GAAqB,CACzB,KAAM,IAAI,GAAe,IACzB,UAAW,kCACZ,CACK,GAAsB,CAC1B,MAAO,IAAI,GAAe,IAC1B,UAAW,mBACZ,CACKG,GAAoB,CACxB,QAAS,EACT,OAAQ,EACT,CACK,GAAe,CACnB,QAAS,SACT,gBAAiB,OACjB,eAAgB,OACjB,CACKC,GAA2B,CAC/B,OAAQ,CACN,QAAS,SACT,kBAAmB,GACnB,mBAAoB,GACrB,CACD,OAAQ,CACN,QAAS,SACT,kBAAmB,GACnB,mBAAoB,GACrB,CACD,QAAS,CACP,QAAS,EACV,CACF,kBClMK,IAAU,EAAM,IAAU,EAAK,OAAS,IAAM,KCApD,SAASG,IAAO,yCCAwB,KACqC,IAC1D,KACoB,KACc,KACA,KACS,CACxD,IAAQ,CACZ,WACA,QACA,iBAAiBC,MACb,CACJ,GAAM,CACJ,WACA,kBACE,IAAoB,CAIxB,OAHI,GAAO,EAAU,EAAM,EAAI,EACN,EAAI,GAAc,CAAE,MAAO,GAAW,OAAQ,QAAS,OAAQ,EAAgB,WAAU,CAAC,CAE5F,EAAI,MAAO,CAAE,MAAO,GAAW,WAAU,CAAC,EAE7D,GAAY,CAChB,gBAAiB,QACjB,UAAW,aACZ,oCCxBuC,IACL,KACgC,KACA,KACC,KACI,KACxB,IACW,IACL,KACU,IAChD,KACoE,8BAIhF,GAAgB,GAAc,qBAAsB,CACtD,UAAW,EAAG;;;;;;;;;;;;;IAcf,CAAC,CACI,GAAe,GAAUC,GAAY,CACzC,QACA,WACA,UACA,WACC,IAAQ,CACT,IAAM,EAAa,IAAe,CAC5B,CACJ,MACA,SACA,QACE,EACE,CACJ,OAAO,EAAgB,MACrB,GAAQ,EAAE,CACR,EAAgB,GAAiC,QAAW,OAC5D,EAAyB,GAAgB,IAAU,EAAI,IAAe,SAC5E,OAAuB,EAAIC,GAAS,CAAE,MAAK,UAAW,EAAe,GAAW,UAAY,IAAK,GAAG,MAAO,CACzG,GAAG,GACH,GAAG,GAAyB,GAC5B,GAAG,EAAyB,GAAyB,GAAQ,IAAK,GAClE,GAAG,EAAU,CACX,QAAS,GAAG,EAAQ,KAAO,EAAE,KAAK,EAAQ,OAAS,EAAE,KAAK,EAAQ,QAAU,EAAE,KAAK,EAAQ,MAAQ,EAAE,IACtG,CAAG,IAAK,GACT,GAAG,EACJ,CAAE,MAAK,SAAQ,iBAAkB,EAAM,WAAU,CAAC,EACnD,CAAC,CACG,GAAoB,CACxB,QAAS,EACT,OAAQ,EACT,CACK,GAA2B,EAC9B,EAAgB,MAAO,CACtB,oBAAqB,gCACtB,EACA,EAAgB,eAAgB,CAC/B,oBAAqB,gCACtB,EACA,EAAgB,KAAM,CACrB,oBAAqB,gCACtB,CACF,CACK,GAA2B,CAC/B,OAAQ,CACN,QAAS,SACV,CACD,OAAQ,CACN,QAAS,SACV,CACD,QAAS,CACP,QAAS,EACV,CACF,8BCnF6C,IACI,KACuC,KACT,KACX,IACZ,KACc,IAClC,IAC6B,KACsB,KAC1B,KACP,IACvC,KAC2D,KACd,IACF,KACF,KACc,KAChB,KACY,KACA,KACE,IAClD,IACwB,IACpB,KACoD,KAC/B,IACU,KACD,KACpB,KACgB,KACiB,CAC5D,GAAkBC,EAAc,KAAK,CACrC,GAAOC,GAAY,CACvB,QACA,UAAA,EACA,UACA,kBACA,WACA,SAAU,EACV,UAAU,GACV,QAAS,EACT,QAAS,EAAiB,GAC1B,kBACC,IAAQ,CACT,IAAM,EAAa,IAAe,CAC5B,CACJ,YACA,gBACA,kBACE,IAAsB,CACpB,EAAU,EAAkB,GAC5B,CACJ,YAAY,aACZ,OAAO,EAAE,CACT,MACA,UACE,EACE,EAAY,GAA2B,QAAW,OAAS,EAAK,GAA2B,OAAU,EACrG,EAAe,GAAiC,QAAW,OAAS,EAAK,GAAiC,OAAU,EACpH,EAAeC,GAAgB,EAAQ,CACvC,EAAW,GAAM,EAAW,EAAW,EAAY,CACnD,EAAa,EAAe,EAAS,QAAU,EAC/C,GAAU,GAAW,EAAS,SAAW,EACzCC,EAAO,IAAc,aAAe,GAAiB,GACrD,MAA2B,CAC3B,GAGJ,KAAkD,EAEpD,OAAuB,EAAI,GAAgB,SAAU,CAAE,MAAO,CAC5D,OACA,WACA,WACA,iBACA,YACA,UAAW,EACX,WAAY,EACb,CAAE,SAA0B,EAAKA,EAAM,CAAE,MAAK,QAAO,UAAA,EAAW,UAAS,aAAY,UAAS,kBAAiB,SAAU,CACxH,EAAS,KAAK,EAAS,IAA0B,EAAI,GAAM,CAAE,QAAO,eAAgB,EAAoB,SAAU,EAAS,CACzH,QACA,UACA,WACD,CAAC,CAAE,CAAE,EAAQ,UAAU,CAAC,CACzB,GAAU,MAAM,KAAK,CACnB,OAAQ,EACT,EAAG,EAAG,IAA0B,EAAI,GAAM,CAAE,QAAO,SAAU,EAAS,CACrE,QACA,WACD,CAAC,CAAE,CAAE,EAAM,CAAC,CAAG,KACjB,CAAE,CAAC,CAAE,CAAC,EACP,CACID,GAAmB,GAAY,CACnC,GAAM,CACJ,YACA,SACA,OACE,EACE,CACJ,aAAc,EAAqB,EACnC,MAAO,EAAc,GACnB,GAAU,EAAE,CACV,CACJ,aAAc,EAAkB,EAChC,MAAO,EAAW,GAChB,GAAO,EAAE,CACP,EAAY,IAAa,OACzB,EAAe,IAAgB,OAOrC,OANI,IAAc,aACT,GAAsB,EAAY,EAAI,GAE3C,IAAc,YAAc,EACvBE,GAEF,GAAmB,EAAe,EAAI,IAEzC,IAAS,EAAM,IACZ,EAAQ,EAAI,EAAK,MAAM,EAAG,EAAM,CAAG,mBCtHtC,GAAe,GACZ,OAAO,YAAYC,EAAQ,sBCDI,CACpC,GAAiB,UAAW,CAC9B,GAAI,CACF,IAAI,EAAO,GAAU,OAAQ,iBAAiB,CAE9C,OADA,EAAK,EAAE,CAAE,GAAI,EAAE,CAAC,CACT,OACG,KAEX,ICPH,SAAS,GAAgB,EAAQ,EAAK,EAAO,CACvC,GAAO,aAAe,GACxB,GAAe,EAAQ,EAAK,CAC1B,aAAgB,GAChB,WAAc,GACd,MAAS,EACT,SAAY,GACb,CAAC,CAEF,EAAO,GAAO,qBAVgC,ICElD,SAAS,GAAiB,EAAQ,EAAK,EAAO,EACxC,IAAU,IAAK,IAAK,CAAC,GAAG,EAAO,GAAM,EAAM,EAAI,IAAU,IAAK,IAAK,EAAE,KAAO,KAC9E,GAAgB,EAAQ,EAAK,EAAM,oBAJa,KAC3B,ICDzB,SAAS,GAAc,EAAW,CAChC,OAAO,SAAS,EAAQ,EAAU,EAAU,CAE1C,IADA,IAAI,EAAQ,GAAI,EAAW,OAAO,EAAO,CAAE,EAAQ,EAAS,EAAO,CAAEE,EAAS,EAAM,OAC7E,KAAU,CACf,IAAI,EAAM,EAAM,EAAYA,EAAS,EAAE,GACvC,GAAI,EAAS,EAAS,GAAM,EAAK,EAAS,GAAK,GAC7C,MAGJ,OAAO,wCCTqC,CAC5C,GAAU,IAAe,ICI7B,SAAS,GAAY,EAAQ,EAAQ,CACnC,GAAI,EACF,OAAO,EAAO,OAAO,CAEvB,IAAIC,EAAS,EAAO,OAAQ,EAAS,GAAc,GAAYA,EAAO,CAAG,IAAI,EAAO,YAAYA,EAAO,CAEvG,OADA,EAAO,KAAK,EAAO,CACZ,iCAXqB,CAC1B,GAAc,OAAO,SAAW,UAAY,SAAW,CAAC,QAAQ,UAAY,QAC5E,GAAa,IAAe,OAAO,QAAU,UAAY,QAAU,CAAC,OAAO,UAAY,OAEvF,GADgB,IAAc,GAAW,UAAY,GAC5B,GAAK,OAAS,IAAK,GAAG,GAAc,GAAS,GAAO,YAAc,IAAK,MCHpG,SAAS,GAAiB,EAAa,CACrC,IAAI,EAAS,IAAI,EAAY,YAAY,EAAY,WAAW,CAEhE,OADA,IAAI,GAAW,EAAO,CAAC,IAAI,IAAI,GAAW,EAAY,CAAC,CAChD,qBAJiC,ICC1C,SAAS,GAAgB,EAAY,EAAQ,CAC3C,IAAI,EAAS,EAAS,GAAiB,EAAW,OAAO,CAAG,EAAW,OACvE,OAAO,IAAI,EAAW,YAAY,EAAQ,EAAW,WAAY,EAAW,OAAO,oBAH/B,ICAtD,SAAS,GAAU,EAAQ,EAAO,CAChC,IAAI,EAAQ,GAAIC,EAAS,EAAO,OAEhC,IADA,AAAU,IAAQ,MAAMA,EAAO,CACxB,EAAE,EAAQA,GACf,EAAM,GAAS,EAAO,GAExB,OAAO,0CCN4B,CACjC,GAAe,OAAO,OACtB,GAA6B,UAAW,CAC1C,SAAS,GAAS,EAElB,OAAO,SAAS,EAAO,CACrB,GAAI,CAAC,GAAS,EAAM,CAClB,MAAO,EAAE,CAEX,GAAI,GACF,OAAO,GAAa,EAAM,CAE5B,EAAO,UAAY,EACnB,IAAI,EAAS,IAAI,EAEjB,MADA,GAAO,UAAY,IAAK,GACjB,KAER,sBCjBiC,CAE9B,GADa,GAAQ,OAAO,eAAgB,OAAO,ICEzD,SAAS,GAAgB,EAAQ,CAC/B,OAAO,OAAO,EAAO,aAAe,YAAc,CAAC,GAAY,EAAO,CAAG,GAAWC,GAAa,EAAO,CAAC,CAAG,EAAE,oBAJtE,KACI,KACF,ICA5C,SAAS,GAAkB,EAAO,CAChC,OAAO,GAAa,EAAM,EAAI,GAAY,EAAM,oBAHP,KACE,ICO7C,SAAS,GAAc,EAAO,CAC5B,GAAI,CAAC,GAAa,EAAM,EAAI,GAAW,EAAM,EAAIC,GAC/C,MAAO,GAET,IAAI,EAAQC,GAAa,EAAM,CAC/B,GAAI,IAAU,KACZ,MAAO,GAET,IAAI,EAAOC,GAAe,KAAK,EAAO,cAAc,EAAI,EAAM,YAC9D,OAAO,OAAO,GAAQ,YAAc,aAAgB,GAAQ,GAAa,KAAK,EAAK,EAAI,wCAjB/C,KACI,KACD,CACzCF,GAAY,kBACZ,GAAY,SAAS,UAAW,GAAc,OAAO,UACrD,GAAe,GAAU,SACzBE,GAAiB,GAAY,eAC7B,GAAmB,GAAa,KAAK,OAAO,ICPhD,SAAS,GAAQ,EAAQ,EAAK,CACxB,SAAQ,eAAiB,OAAO,EAAO,IAAS,aAGhD,GAAO,YAGX,OAAO,EAAO,sBCHhB,SAAS,GAAY,EAAQ,EAAK,EAAO,CACvC,IAAI,EAAW,EAAO,IAClB,EAAEC,GAAe,KAAK,EAAQ,EAAI,EAAI,GAAG,EAAU,EAAM,GAAK,IAAU,IAAK,IAAK,EAAE,KAAO,KAC7F,GAAgB,EAAQ,EAAK,EAAM,uBAPa,KAC3B,CAErBA,GADc,OAAO,UACQ,kBCDjC,SAAS,GAAW,EAAQ,EAAO,EAAQ,EAAY,CACrD,IAAI,EAAQ,CAAC,EACb,AAAW,IAAS,EAAE,CAEtB,IADA,IAAI,EAAQ,GAAIC,EAAS,EAAM,OACxB,EAAE,EAAQA,GAAQ,CACvB,IAAI,EAAM,EAAM,GACZ,EAAW,EAAa,EAAW,EAAO,GAAM,EAAO,GAAM,EAAK,EAAQ,EAAO,CAAG,IAAK,GACzF,IAAa,IAAK,KACpB,EAAW,EAAO,IAEhB,EACF,GAAgB,EAAQ,EAAK,EAAS,CAEtC,GAAY,EAAQ,EAAK,EAAS,CAGtC,OAAO,qBAlBmC,KACQ,ICDpD,SAAS,GAAa,EAAQ,CAC5B,IAAI,EAAS,EAAE,CACf,GAAI,GAAU,KACZ,IAAK,IAAI,KAAO,OAAO,EAAO,CAC5B,EAAO,KAAK,EAAI,CAGpB,OAAO,qBCFT,SAAS,GAAW,EAAQ,CAC1B,GAAI,CAAC,GAAS,EAAO,CACnB,OAAO,GAAa,EAAO,CAE7B,IAAI,EAAU,GAAY,EAAO,CAAE,EAAS,EAAE,CAC9C,IAAK,IAAI,KAAO,EACR,GAAO,gBAAkB,GAAW,CAACC,GAAe,KAAK,EAAQ,EAAI,GACzE,EAAO,KAAK,EAAI,CAGpB,OAAO,wBAf4B,KACO,KACE,CAE1CA,GADc,OAAO,UACQ,kBCDjC,SAAS,GAAO,EAAQ,CACtB,OAAO,GAAY,EAAO,CAAG,GAAc,EAAQ,GAAK,CAAG,GAAW,EAAO,oBAJ/B,KACN,KACC,ICA3C,SAAS,GAAc,EAAO,CAC5B,OAAO,GAAW,EAAO,GAAO,EAAM,CAAC,oBAHC,KACT,ICcjC,SAAS,GAAc,EAAQ,EAAQ,EAAK,EAAU,EAAW,EAAY,EAAO,CAClF,IAAI,EAAW,GAAQ,EAAQ,EAAI,CAAE,EAAW,GAAQ,EAAQ,EAAI,CAAE,EAAU,EAAM,IAAI,EAAS,CACnG,GAAI,EAAS,CACX,GAAiB,EAAQ,EAAK,EAAQ,CACtC,OAEF,IAAI,EAAW,EAAa,EAAW,EAAU,EAAU,EAAM,GAAI,EAAQ,EAAQ,EAAM,CAAG,IAAK,GAC/F,EAAW,IAAa,IAAK,GACjC,GAAI,EAAU,CACZ,IAAI,EAAQ,GAAQ,EAAS,CAAE,EAAS,CAAC,GAAS,GAAS,EAAS,CAAE,EAAU,CAAC,GAAS,CAAC,GAAU,GAAa,EAAS,CAC3H,EAAW,EACP,GAAS,GAAU,EACjB,GAAQ,EAAS,CACnB,EAAW,EACF,GAAkB,EAAS,CACpC,EAAW,GAAU,EAAS,CACrB,GACT,EAAW,GACX,EAAW,GAAY,EAAU,GAAK,EAC7B,GACT,EAAW,GACX,EAAW,GAAgB,EAAU,GAAK,EAE1C,EAAW,EAAE,CAEN,GAAc,EAAS,EAAI,GAAY,EAAS,EACzD,EAAW,EACP,GAAY,EAAS,CACvB,EAAW,GAAc,EAAS,EACzB,CAAC,GAAS,EAAS,EAAIC,GAAW,EAAS,IACpD,EAAW,GAAgB,EAAS,GAGtC,EAAW,GAGX,IACF,EAAM,IAAI,EAAU,EAAS,CAC7B,EAAU,EAAU,EAAU,EAAU,EAAY,EAAM,CAC1D,EAAM,OAAU,EAAS,EAE3B,GAAiB,EAAQ,EAAK,EAAS,oBAxDa,KACV,KACQ,KACZ,KACY,KACT,KACR,KACoB,KAClB,KACI,KACJ,KACU,KACF,KACT,KACW,ICP/C,SAAS,GAAU,EAAQ,EAAQ,EAAU,EAAY,EAAO,CAC1D,IAAW,GAGf,GAAQ,EAAQ,SAAS,EAAU,EAAK,CAEtC,GADA,AAAU,IAAQ,IAAI,GAClB,GAAS,EAAS,CACpB,GAAc,EAAQ,EAAQ,EAAK,EAAU,GAAW,EAAY,EAAM,KACrE,CACL,IAAI,EAAW,EAAa,EAAW,GAAQ,EAAQ,EAAI,CAAE,EAAU,EAAM,GAAI,EAAQ,EAAQ,EAAM,CAAG,IAAK,GAC3G,IAAa,IAAK,KACpB,EAAW,GAEb,GAAiB,EAAQ,EAAK,EAAS,GAExC,GAAO,oBAtBoB,KACsB,KAClB,KACY,KACX,KACJ,KACG,ICNpC,SAAS,GAAS,EAAO,CACvB,OAAO,qBCDT,SAAS,GAAM,EAAM,EAAS,EAAM,CAClC,OAAQ,EAAK,OAAb,CACE,IAAK,GACH,OAAO,EAAK,KAAK,EAAQ,CAC3B,IAAK,GACH,OAAO,EAAK,KAAK,EAAS,EAAK,GAAG,CACpC,IAAK,GACH,OAAO,EAAK,KAAK,EAAS,EAAK,GAAI,EAAK,GAAG,CAC7C,IAAK,GACH,OAAO,EAAK,KAAK,EAAS,EAAK,GAAI,EAAK,GAAI,EAAK,GAAG,CAExD,OAAO,EAAK,MAAM,EAAS,EAAK,oBCTlC,SAAS,GAAS,EAAM,EAAO,EAAW,CAExC,MADA,GAAQ,GAAU,IAAU,IAAK,GAAI,EAAK,OAAS,EAAI,EAAO,EAAE,CACzD,UAAW,CAEhB,IADA,IAAI,EAAO,UAAW,EAAQ,GAAIC,EAAS,GAAU,EAAK,OAAS,EAAO,EAAE,CAAE,EAAQ,MAAMA,EAAO,CAC5F,EAAE,EAAQA,GACf,EAAM,GAAS,EAAK,EAAQ,GAE9B,EAAQ,GAER,IADA,IAAI,EAAY,MAAM,EAAQ,EAAE,CACzB,EAAE,EAAQ,GACf,EAAU,GAAS,EAAK,GAG1B,MADA,GAAU,GAAS,EAAU,EAAM,CAC5B,GAAM,EAAM,KAAM,EAAU,wBAfP,CAC5B,GAAY,KAAK,OCDrB,SAAS,GAAS,EAAO,CACvB,OAAO,UAAW,CAChB,OAAO,wCCF0B,KACa,KACb,CAS/B,GARiB,GAA4B,SAAS,EAAM,EAAQ,CACxE,OAAO,GAAe,EAAM,WAAY,CACtC,aAAgB,GAChB,WAAc,GACd,MAAS,GAAS,EAAO,CACzB,SAAY,GACb,CAAC,EANoC,MCDxC,SAAS,GAAS,EAAM,CACtB,IAAI,EAAQ,EAAG,EAAa,EAC5B,OAAO,UAAW,CAChB,IAAI,EAAQ,IAAW,CAAE,EAAY,IAAY,EAAQ,GAEzD,GADA,EAAa,EACT,EAAY,MACV,EAAE,GAAS,GACb,OAAO,UAAU,QAGnB,EAAQ,EAEV,OAAO,EAAK,MAAM,IAAK,GAAG,UAAU,0BAdpC,GAAY,IAAK,GAAW,GAC5B,GAAY,KAAK,yBCD+B,KACd,CAClC,GAAc,GAASC,GAAgB,ICC3C,SAAS,GAAS,EAAM,EAAO,CAC7B,OAAO,GAAY,GAAS,EAAM,EAAO,GAAS,CAAE,EAAO,GAAG,oBAJ3B,KACC,KACM,ICE5C,SAAS,GAAe,EAAO,EAAO,EAAQ,CAC5C,GAAI,CAAC,GAAS,EAAO,CACnB,MAAO,GAET,IAAI,EAAO,OAAO,EAIlB,OAHI,GAAQ,SAAW,GAAY,EAAO,EAAI,GAAQ,EAAO,EAAO,OAAO,CAAG,GAAQ,UAAY,KAAS,GAClG,GAAG,EAAO,GAAQ,EAAM,CAE1B,sBAZgB,KACkB,KACP,KACC,ICDrC,SAAS,GAAe,EAAU,CAChC,OAAO,GAAS,SAAS,EAAQ,EAAS,CACxC,IAAI,EAAQ,GAAIC,EAAS,EAAQ,OAAQ,EAAaA,EAAS,EAAI,EAAQA,EAAS,GAAK,IAAK,GAAG,EAAQA,EAAS,EAAI,EAAQ,GAAK,IAAK,GAOxI,IANA,EAAa,EAAS,OAAS,GAAK,OAAO,GAAc,YAAc,IAAU,GAAc,IAAK,GAChG,GAAS,GAAe,EAAQ,GAAI,EAAQ,GAAI,EAAM,GACxD,EAAaA,EAAS,EAAI,IAAK,GAAI,EACnC,EAAS,GAEX,EAAS,OAAO,EAAO,CAChB,EAAE,EAAQA,GAAQ,CACvB,IAAI,EAAS,EAAQ,GACjB,GACF,EAAS,EAAQ,EAAQ,EAAO,EAAW,CAG/C,OAAO,GACP,oBAlBkC,KACY,sBCDV,KACU,CAC9C,GAAQ,GAAe,SAAS,EAAQ,EAAQ,EAAU,CAC5D,GAAU,EAAQ,EAAQ,EAAS,EACnC,ICJF,SAAS,GAAU,EAAO,EAAU,CAElC,IADA,IAAI,EAAQ,GAAIC,EAAS,GAAS,KAAO,EAAI,EAAM,OAC5C,EAAE,EAAQA,GACX,EAAS,EAAM,GAAQ,EAAO,EAAM,GAAK,KAI/C,OAAO,qBCLT,SAAS,GAAW,EAAQ,EAAQ,CAClC,OAAO,GAAU,GAAW,EAAQ,GAAK,EAAO,CAAE,EAAO,oBAHjB,KACb,ICC7B,SAAS,GAAa,EAAQ,EAAQ,CACpC,OAAO,GAAU,GAAW,EAAQ,GAAO,EAAO,CAAE,EAAO,oBAHnB,KACT,ICCjC,SAAS,GAAY,EAAQ,EAAQ,CACnC,OAAO,GAAW,EAAQ,GAAW,EAAO,CAAE,EAAO,oBAHb,KACA,sBCDF,KACM,KACJ,KACH,CAEnC,GADmB,OAAO,sBACqB,SAAS,EAAQ,CAElE,IADA,IAAI,EAAS,EAAE,CACR,GACL,GAAU,EAAQ,GAAW,EAAO,CAAC,CACrC,EAASC,GAAa,EAAO,CAE/B,OAAO,GAN8B,MCHvC,SAAS,GAAc,EAAQ,EAAQ,CACrC,OAAO,GAAW,EAAQ,GAAa,EAAO,CAAE,EAAO,oBAHf,KACI,ICE9C,SAAS,GAAa,EAAQ,CAC5B,OAAO,GAAe,EAAQ,GAAQ,GAAa,oBAJH,KACJ,KACb,ICAjC,SAAS,GAAe,EAAO,CAC7B,IAAIC,EAAS,EAAM,OAAQ,EAAS,IAAI,EAAM,YAAYA,EAAO,CAKjE,OAJIA,GAAU,OAAO,EAAM,IAAM,UAAY,GAAe,KAAK,EAAO,QAAQ,GAC9E,EAAO,MAAQ,EAAM,MACrB,EAAO,MAAQ,EAAM,OAEhB,oBAPL,GADc,OAAO,UACQ,kBCAjC,SAAS,GAAc,EAAU,EAAQ,CACvC,IAAI,EAAS,EAAS,GAAiB,EAAS,OAAO,CAAG,EAAS,OACnE,OAAO,IAAI,EAAS,YAAY,EAAQ,EAAS,WAAY,EAAS,WAAW,oBAH7B,ICCtD,SAAS,GAAY,EAAQ,CAC3B,IAAI,EAAS,IAAI,EAAO,YAAY,EAAO,OAAQ,GAAQ,KAAK,EAAO,CAAC,CAExE,MADA,GAAO,UAAY,EAAO,UACnB,oBAJL,GAAU,UCEd,SAAS,GAAY,EAAQ,CAC3B,OAAO,GAAgB,OAAO,GAAc,KAAK,EAAO,CAAC,CAAG,EAAE,0BAH5B,CAChC,GAAc,GAAW,GAAS,UAAY,IAAK,GAAG,GAAgB,GAAc,GAAY,QAAU,IAAK,MCMnH,SAAS,GAAe,EAAQ,EAAK,EAAQ,CAC3C,IAAI,EAAO,EAAO,YAClB,OAAQ,EAAR,CACE,KAAKC,GACH,OAAO,GAAiB,EAAO,CACjC,KAAKC,GACL,KAAKC,GACH,OAAO,IAAI,EAAK,CAAC,EAAO,CAC1B,KAAKC,GACH,OAAO,GAAc,EAAQ,EAAO,CACtC,KAAKC,GACL,KAAKC,GACL,KAAKC,GACL,KAAKC,GACL,KAAKC,GACL,KAAKC,GACL,KAAKC,GACL,KAAKC,GACL,KAAKC,GACH,OAAO,GAAgB,EAAQ,EAAO,CACxC,KAAKC,GACH,OAAO,IAAI,EACb,KAAKC,GACL,KAAKC,GACH,OAAO,IAAI,EAAK,EAAO,CACzB,KAAKC,GACH,OAAO,GAAY,EAAO,CAC5B,KAAKC,GACH,OAAO,IAAI,EACb,KAAKC,GACH,OAAO,GAAY,EAAO,8EArCsB,KACN,KACJ,KACA,KACQ,CAChDjB,GAAU,mBAAoBC,GAAU,gBAAiBW,GAAS,eAAgBC,GAAY,kBAAmBE,GAAY,kBAAmBC,GAAS,eAAgBF,GAAY,kBAAmBG,GAAY,kBACpNlB,GAAiB,uBAAwBG,GAAc,oBAAqBC,GAAa,wBAAyBC,GAAa,wBAAyBC,GAAU,qBAAsBC,GAAW,sBAAuBC,GAAW,sBAAuBC,GAAW,sBAAuBC,GAAkB,6BAA8BC,GAAY,uBAAwBC,GAAY,0BCHlY,SAAS,GAAU,EAAO,CACxB,OAAO,GAAa,EAAM,EAAIO,GAAO,EAAM,EAAIC,yBAJf,KACW,CACzCA,GAAS,uCCF2B,KACA,KACF,CAClC,GAAY,IAAY,GAAS,MACjC,GAAQ,GAAY,GAAU,GAAU,CAAG,MCD/C,SAAS,GAAU,EAAO,CACxB,OAAO,GAAa,EAAM,EAAIC,GAAO,EAAM,EAAIC,yBAJf,KACW,CACzCA,GAAS,uCCF2B,KACA,KACF,CAClC,GAAY,IAAY,GAAS,MACjCC,GAAQ,GAAY,GAAU,GAAU,CAAG,MCwB/C,SAAS,GAAU,EAAO,EAAS,EAAY,EAAK,EAAQ,EAAO,CACjE,IAAI,EAAQ,EAAS,EAAUC,GAAiB,EAAS,EAAU,GAAiB,EAAS,EAAUC,GAIvG,GAHI,IACF,EAAS,EAAS,EAAW,EAAO,EAAK,EAAQ,EAAM,CAAG,EAAW,EAAM,EAEzE,IAAW,IAAK,GAClB,OAAO,EAET,GAAI,CAAC,GAAS,EAAM,CAClB,OAAO,EAET,IAAI,EAAQ,GAAQ,EAAM,CAC1B,GAAI,EAEF,IADA,EAAS,GAAe,EAAM,CAC1B,CAAC,EACH,OAAO,GAAU,EAAO,EAAO,KAE5B,CACL,IAAI,EAAMC,GAAO,EAAM,CAAE,EAAS,GAAO,IAAW,GAAO,GAC3D,GAAI,GAAS,EAAM,CACjB,OAAO,GAAY,EAAO,EAAO,CAEnC,GAAI,GAAO,IAAa,GAAO,IAAW,GAAU,CAAC,EAEnD,IADA,EAAS,GAAU,EAAS,EAAE,CAAG,GAAgB,EAAM,CACnD,CAAC,EACH,OAAO,EAAS,GAAc,EAAO,GAAa,EAAQ,EAAM,CAAC,CAAG,GAAY,EAAO,GAAW,EAAQ,EAAM,CAAC,KAE9G,CACL,GAAI,CAAC,EAAc,GACjB,OAAO,EAAS,EAAQ,EAAE,CAE5B,EAAS,GAAe,EAAO,EAAK,EAAO,EAG/C,AAAU,IAAQ,IAAI,GACtB,IAAI,EAAU,EAAM,IAAI,EAAM,CAC9B,GAAI,EACF,OAAO,EAET,EAAM,IAAI,EAAO,EAAO,CACpBC,GAAM,EAAM,CACd,EAAM,QAAQ,SAAS,EAAU,CAC/B,EAAO,IAAI,GAAU,EAAU,EAAS,EAAY,EAAU,EAAO,EAAM,CAAC,EAC5E,CACO,GAAM,EAAM,EACrB,EAAM,QAAQ,SAAS,EAAU,EAAM,CACrC,EAAO,IAAI,EAAM,GAAU,EAAU,EAAS,EAAY,EAAM,EAAO,EAAM,CAAC,EAC9E,CAGJ,IAAI,EAAQ,EAAQ,IAAK,IADV,EAAS,EAAS,GAAe,GAAa,EAAS,GAAS,IACzC,EAAM,CAQ5C,OAPA,GAAU,GAAS,EAAO,SAAS,EAAU,EAAM,CAC7C,IACF,EAAO,EACP,EAAW,EAAM,IAEnB,GAAY,EAAQ,EAAM,GAAU,EAAU,EAAS,EAAY,EAAM,EAAO,EAAM,CAAC,EACvF,CACK,8GAtFuB,KACQ,KACI,KACF,KACI,KACF,KACJ,KACI,KACI,KACN,KACI,KACZ,KACgB,KACA,KACE,KACjB,KACE,KACN,KACM,KACN,KACF,KACI,CAC7BH,GAAkB,EAAG,GAAkB,EAAGC,GAAqB,EAC/D,GAAU,qBAAsB,GAAW,iBAAkB,GAAU,mBAAoB,GAAU,gBAAiB,GAAW,iBAAkB,GAAU,oBAAqB,GAAS,6BAA8B,GAAS,eAAgB,GAAY,kBAAmB,GAAY,kBAAmB,GAAY,kBAAmB,GAAS,eAAgB,GAAY,kBAAmB,GAAY,kBAAmB,GAAa,mBACnb,GAAiB,uBAAwB,GAAc,oBAAqB,GAAa,wBAAyB,GAAa,wBAAyB,GAAU,qBAAsB,GAAW,sBAAuB,GAAW,sBAAuB,GAAW,sBAAuB,GAAkB,6BAA8B,GAAY,uBAAwB,GAAY,uBAC9X,EAAgB,EAAE,CACtB,EAAc,IAAW,EAAc,IAAY,EAAc,IAAkB,EAAc,IAAe,EAAc,IAAW,EAAc,IAAW,EAAc,IAAc,EAAc,IAAc,EAAc,IAAW,EAAc,IAAY,EAAc,IAAY,EAAc,IAAU,EAAc,IAAa,EAAc,IAAa,EAAc,IAAa,EAAc,IAAU,EAAc,IAAa,EAAc,IAAa,EAAc,IAAY,EAAc,IAAmB,EAAc,IAAa,EAAc,IAAa,GAC/kB,EAAc,IAAY,EAAc,IAAW,EAAc,IAAc,MCzB/E,SAAS,GAAU,EAAO,CACxB,OAAO,GAAU,EAAO,GAAkB,GAAmB,0BAHvB,CACpC,GAAkB,EAAG,GAAqB,0BCDC,KACR,KACgB,KACQ,CACzD,IAAa,EAAO,EAAE,CAAE,EAAS,EAAE,GAChC,GAAM,GAAU,EAAK,CAAE,EAAO,CAEjC,GAAgB,GAAW,CAC/B,GAAM,CACJ,OACA,GAAG,GACD,EACJ,OAAO,GAAY,GAAQ,EAAK,CAAC,KAAK,CAAC,EAAMG,KAAW,CAAC,EAAM,GAAU,EAAMA,EAAM,CAAC,CAAC,CAAC,2CCZ5C,IACX,KACmC,KACnB,KACW,CACxD,GAAsBC,GAAY,CACtC,QACA,OAAO,EAAgB,KACvB,QAAQ,QACR,OAAO,SACP,UAAU,GACV,eAAe,GACf,YAAY,GACZ,GAAG,GACF,IAAQ,CACT,IAAMC,EAAS,GAAa,GAAM,GAClC,OAAuB,EAAK,MAAO,CAAE,MAAK,GAAG,EAAM,MAAO,CACxD,GAAGC,GACH,GAAGD,GAAiC,UACpC,GAAG,EACJ,CAAE,SAAU,CACK,EAAI,GAAU,CAAE,MAAO,CACrC,GAAGA,GAAiC,MACpC,GAAG,GAAiB,GACpB,aAAc,EACf,CAAE,CAAC,CACY,EAAK,MAAO,CAAE,MAAO,GAAc,SAAU,CAC3D,EAA+B,EAAI,GAAU,CAAE,MAAO,CACpD,GAAGA,GAAiC,UACpC,GAAG,GAAiB,GACpB,aAAc,EACf,CAAE,CAAC,CAAG,KACP,EAA0B,EAAI,GAAU,CAAE,MAAO,CAC/C,GAAGA,GAAiC,KACpC,GAAG,GAAiB,GACpB,aAAc,EACf,CAAE,CAAC,CAAG,KACS,EAAI,GAAU,CAAE,MAAO,CACrC,GAAGA,GAAiC,MACpC,GAAG,GAAiB,GACpB,aAAc,EACf,CAAE,CAAC,CACJ,EAA4B,EAAI,GAAU,CAAE,MAAO,CACjD,GAAGA,GAAiC,MACpC,GAAG,GAAiB,GACpB,aAAc,EACf,CAAE,CAAC,CAAG,KACR,CAAE,CAAC,CACL,CAAE,CAAC,EACJ,CACI,GAAmB,CACvB,MAAO,CACL,gBAAiB,UAClB,CACD,KAAM,CACJ,gBAAiB,UAClB,CACF,CACKC,GAAiB,CACrB,QAAS,OACT,IAAK,OACL,MAAO,OACP,OAAQ,SACT,CACK,GAAe,CACnB,KAAM,IACN,QAAS,OACT,cAAe,SAChB,CACK,GAAY,GAAa,CAC7B,KAAM,CACJ,UAAW,CACT,cAAe,MACf,WAAY,SACZ,IAAK,EACN,CACD,UAAW,CACT,MAAO,MACP,OAAQ,GACT,CACD,KAAM,CACJ,MAAO,MACP,OAAQ,GACR,UAAW,EACZ,CACD,MAAO,CACL,MAAO,MACP,OAAQ,GACR,UAAW,EACZ,CACD,MAAO,CACL,MAAO,MACP,OAAQ,GACR,UAAW,EACZ,CACF,CACD,MAAO,CACL,MAAO,CACL,MAAO,GACP,OAAQ,GACT,CACF,CACD,OAAQ,CACN,MAAO,CACL,MAAO,GACP,OAAQ,GACT,CACF,CACF,CAAC,CACI,GAAa,GAAa,CAC9B,KAAM,CACJ,UAAW,CACT,cAAe,SACf,IAAK,GACL,cAAe,GAChB,CACD,MAAO,CACL,MAAO,OACP,YAAa,QACd,CACD,UAAW,CACT,MAAO,MACP,OAAQ,MACT,CACD,KAAM,CACJ,MAAO,MACP,OAAQ,MACR,UAAW,EACZ,CACD,MAAO,CACL,MAAO,MACP,OAAQ,KACR,UAAW,EACZ,CACD,MAAO,CACL,MAAO,MACP,OAAQ,GACR,UAAW,EACZ,CACF,CACD,MAAO,EAAE,CACT,OAAQ,EAAE,CACX,CAAC,CACI,GAAqB,GAAa,CACtC,KAAM,CACJ,UAAW,CACT,cAAe,SACf,IAAK,GACN,CACD,MAAO,CACL,MAAO,OACP,YAAa,QACd,CACD,UAAW,CACT,MAAO,MACP,OAAQ,MACT,CACD,KAAM,CACJ,MAAO,MACP,OAAQ,MACR,UAAW,EACZ,CACD,MAAO,CACL,MAAO,MACP,OAAQ,MACR,UAAW,EACZ,CACD,MAAO,CACL,MAAO,MACP,OAAQ,GACR,UAAW,EACZ,CACF,CACD,MAAO,CACL,UAAW,CACT,cAAe,GAChB,CACF,CACD,OAAQ,CACN,UAAW,CACT,cAAe,GAChB,CACF,CACF,CAAC,CACI,GAAe,EAClB,EAAgB,KAAM,IACtB,EAAgB,MAAO,IACvB,EAAgB,eAAgB,GAClC,wBC5LuC,IACE,IACC,KACmB,CACxD,IAAQ,CACZ,KACA,WACA,WACA,SACA,GAAG,GACF,IAAQ,CACT,IAAM,EAAaC,EAAO,KAAK,CACzB,EAAiB,EAAU,EAAY,CAC3C,SACA,KAAM,GACP,CAAC,CACI,EAAY,GAAM,MAIxB,OAHK,EAGkB,EAAI,EAAW,CAAE,IAAKC,GAAU,CAAC,EAAK,EAAW,CAAC,CAAE,GAAG,EAAM,WAAU,CAAC,CAFtE,EAAI,EAAW,CAAE,IAAKA,GAAU,CAAC,EAAK,EAAW,CAAC,CAAE,GAAG,EAAM,SAAU,EAAU,CAAC,EAIvGC,GAAUC,EAAW,GAAK,iCCtBc,KAC4B,KACrB,KAC6C,IACnF,KACiE,KACX,IACZ,KACc,IAClC,IAC6B,KACsB,KAC1B,KACP,IACvC,KAC2D,KACd,IACF,KACF,KACc,KAChB,KACE,KACoB,KACR,IAClD,IACwB,IACpB,KACoD,KAC/B,IACU,KACU,KACF,KACsB,CAC9E,IAAQ,CACZ,QACA,gBACA,kBACA,UACA,mBAAmB,GACnB,GAAG,KACC,CACJ,IAAM,EAAQ,IAAU,CAClB,CACJ,WACA,OACA,UACA,YACA,YACA,cACE,IAAoB,CAClB,EAAU,EAAS,GACnB,EAAY,EAAK,OAAS,EAAgB,IAC1C,EAAa,EAAK,OAAS,EAAgB,MAAQ,EAAK,OAAS,EAAgB,cACjF,EAAkB,CAAC,GAAa,CAAC,EAAK,QACtC,EAAmB,CAAC,GAAc,CAAC,EAAK,QACxC,EAAW,EAAQ,EAIzB,OAHI,EACqB,EAAI,GAAa,CAAE,OAAQ,EAAiB,WAAU,SAA0B,EAAI,GAAqB,CAAE,QAAO,GAAG,EAAM,MAAO,EAAK,MAAO,CAAC,CAAE,CAAC,CAEpJ,EAAIC,GAAS,CAAE,OAAQ,YAAa,SAAU,EAAmC,EAAI,GAAa,CAAE,OAAQ,EAAiB,WAAU,SAA0B,EAAI,GAAqB,CAAE,QAAO,GAAG,EAAM,MAAO,EAAK,MAAO,CAAC,CAAE,CAAC,CAAG,KAAM,SAA0B,EAAI,GAAa,CAAE,OAAQ,EAAiB,WAAU,SAA0B,EAAI,GAAa,CAAE,GAAG,EAAM,GAAG,EAAM,QAAS,CAAC,EAAkB,QAAO,UAAS,WAAY,EAAU,UAAS,UAAW,EAAU,EAAQ,UAAU,CAAE,YAAW,aAAY,gBAAiB,CAC5iB,UACA,eAAgB,GAChB,gBACA,WAAY,EACZ,GAAG,EACJ,CAAE,CAAC,CAAE,CAAC,CAAE,CAAC,EAEN,IAAe,CACnB,WACA,SAAS,GACT,cACI,CACJ,IAAM,EAAQ,IAAU,CAIxB,OAHI,EACK,EAEc,EAAK,MAAO,CAAE,MAAOC,GAAgB,SAAU,CACpD,EAAI,MAAO,CAAE,MAAO,GAAe,SAA0B,EAAI,MAAO,CAAE,MAAO,CAC/F,GAAG,GAAW,GAAI,IAAI,CACtB,GAAG,GAAqB,GACzB,CAAE,SAAU,EAAU,CAAC,CAAE,CAAC,CAC3B,EACD,CAAE,CAAC,EAEAA,GAAiB,CACrB,QAAS,OACT,WAAY,SACZ,IAAK,OACN,CACK,GAAgB,CACpB,SAAU,GACV,OAAQ,OACR,QAAS,OACT,WAAY,SACZ,eAAgB,SACjB,CACK,GAAuB,CAC3B,MAAO,CACL,MAAO,OACR,CACD,KAAM,CACJ,MAAO,OACR,CACF,sBCvGgC,KACA,CAC3B,GAAW,CACf,QACA,QACD,yBCLsD,KACS,KACQ,CAClE,GAAwB,GAAY,CACxC,GAAM,CACJ,OACA,SAAS,EAAE,CACX,SAAS,EAAE,CACX,UAAU,EAAE,EACV,EACJ,OAAO,OAAO,YAAY,GAAQ,CAChC,SACA,SACA,UACD,CAAC,CAAC,KAAK,CAAC,EAAK,KAAW,CAAC,EAAK,GAAM,GAAU,EAAK,CAAE,EAAM,CAAC,CAAC,CAAC,EAE3D,IAAsB,EAAK,EAAS,EAAG,EAAQ,IAC5C,gBAAgB,EAAM,KAAK,IAAI,EAAS,EAAG,EAAE,CAAG,EAAM,QAAQ,EAAO,oBCjBxE,IAAiC,EAAgB,EAAY,IAAc,CAC/E,GAAI,CAAC,EACH,OAAO,KAET,IAAM,EAAa,GAAc,iBAC3B,EAAgB,EAAe,QAAQ,sBAAsB,EAAW,IAAI,CAIlF,OAHI,IACF,EAAc,MAAM,QAAU,EAAY,EAAc,MAAM,UAAY,OAAS,GAAK,EAAc,MAAM,QAAU,QAEjH,0BCT+B,IACF,KACW,IAC9B,IACmC,IAC/B,KAC4B,KACwB,IAChB,KACF,KACc,KAChB,KACyB,KACX,IACZ,KACc,IAClC,IAC6B,KACsB,KAC1B,KACP,IACvC,KAC2D,KACY,KAC1B,KACM,KACU,KACR,KACM,KAC/B,IACU,KACI,KACmB,KACR,KAC0B,KACtC,KACd,KACkB,KACI,KAClB,KACA,CACzC,GAAyBC,EAAc,CAC3C,MAAO,IAAK,GACZ,KAAMC,GACP,CAAC,CACI,IAA2B,CAC/B,WACA,QACA,UAEuB,EAAI,GAAuB,SAAU,CAAE,MAAO,CACnE,QACA,OACD,CAAE,WAAU,CAAC,kBCrDV,GAAuB,0BCAzB,IAAoC,IACtC,EAAiB,SAAc,WAC/B,EAAiB,WAAgB,aAC1B,IACN,IAAmB,EAAE,CAAC,CACrB,IAA4C,IAC9C,EAAyB,EAAyB,OAAY,GAAK,SACnE,EAAyB,EAAyB,OAAY,GAAK,SACnE,EAAyB,EAAyB,QAAa,GAAK,UAC7D,IACN,IAA2B,EAAE,CAAC,CAC7B,IAAmC,IACrC,EAAgB,EAAgB,QAAa,GAAK,UAClD,EAAgB,EAAgB,aAAkB,GAAK,eACvD,EAAgB,EAAgB,KAAU,GAAK,OACxC,IACN,IAAkB,EAAE,CAAC,qBChBW,KACmC,CAChE,OACGC,EAAW,GAAuB,8BCHC,IACE,KACsJ,KAClH,CAC5E,GAAmB,GAChB,GAAUC,EAASA,EAAO,EAAG,KAAK,CAAG,KAAK,CAAC,GAE9C,GAAgB,QAAQ,SAAS,CACjC,GAAY,IAAgB,EAAQ,EAAI,IAAW,CACvD,IAAM,EAAcC,EAAO,GAAM,CAC3B,CAAE,MAAO,EAAS,cAAc,EAAG,gBAAgB,GAAO,cAAc,GAAO,sBAAsB,GAAM,oBAAoB,GAAO,WAAW,IAAU,EAC3J,IAAO,GAAW,GAAe,IAAI,GAAM,CAC7C,EACJ,GAAI,CACF,EAAc,GAAgBD,EAAO,CACrC,AACE,IAAc,GAAkB,OACtB,EAEd,GAAM,CAAC,EAAK,EAAK,GAAkB,GAAkB,EAAS,EAAY,CACpE,EAAcE,MACL,GAAY,GAAK,CAAC,GAAG,CAAG,EAAc,GAAK,CAAC,GAExD,CACD,EACA,EACA,EACD,CAAC,CACF,GAAY,qBAAqBA,EAC9B,GACK,EACK,EAAe,MAAmB,CACvC,GAAU,EACV,KACS,GAIf,CACE,EACA,EACD,CACF,CAAE,EAAa,EAAY,CAC5B,IAAM,EAAkBA,MAAkB,CACxC,IAAM,EAAiB,GAAK,CAAC,GAC7B,OAAO,GAAY,EAAe,CAAG,EAAc,GAClD,CACD,EACA,EACD,CAAC,CACI,EAAkBD,EAAO,GAAiB,CAAC,CACjD,OAAgC,CAC9B,GAAI,CAAC,EAAY,QAAS,CACxB,EAAY,QAAU,GACtB,OAEE,GACF,EAAI,CACF,GAAI,EAAc,EAAgB,QAAU,GAAiB,CAC9D,CAAC,EAEH,CACD,EACA,EACD,CAAC,CACF,IAAM,EAA0B,GAAqB,CAAC,EAAY,QAC5D,EAAM,EAAW,EAAa,KAAO,IAAQ,CACjD,IAAM,EAAqB,GAAK,CAAC,GAC3B,EAAO,EAAE,CACT,EAAW,GAAiB,CAC5B,CAAC,GAAY,GAAkB,EAAS,EAAI,CAC5C,EAAY,GAAU,CAAC,KACvB,EAAe,EAAE,CACnB,EAAmB,KACvB,IAAK,IAAIE,EAAI,EAAGA,EAAI,EAAU,EAAEA,EAAG,CACjC,GAAM,CAAC,EAAS,GAAW,GAAUH,EAAOG,EAAG,EAAW,KAAO,EAAiB,CAAC,CACnF,GAAI,CAAC,EACH,MAEF,GAAM,CAAC,EAAa,GAAe,GAAkB,EAAS,EAAQ,CAClE,EAAW,GAAa,CAAC,KACvB,EAAkB,GAAiB,GAAsB,GAAY,EAAS,EAAI,GAAuB,CAACA,GAAK,CAAC,GAAY,EAAU,EAAI,GAA2B,GAAa,CAAC,GAAY,EAAUA,GAAG,EAAI,CAAC,EAAO,QAAQ,EAAUA,GAAI,EAAS,CAC7P,GAAI,GAAM,EAAiB,CACzB,IAAM,EAAa,SAAY,CAE7B,GAAI,EADwB,KAAW,GAErC,EAAW,MAAM,EAAG,EAAQ,KACvB,CACL,IAAM,EAAM,EAAQ,GACpB,OAAO,EAAQ,GACf,EAAW,MAAM,EAEnB,EAAY,CACV,KAAM,EACN,GAAI,EACL,CAAC,CACF,EAAKA,GAAK,GAER,EACF,EAAa,KAAK,EAAW,CAE7B,MAAM,GAAY,MAGpB,EAAKA,GAAK,EAEP,IACH,EAAmB,GASvB,OANI,GACF,MAAM,QAAQ,IAAI,EAAa,IAAK,GAAMC,GAAG,CAAC,CAAC,CAEjD,EAAI,CACF,GAAI,GACL,CAAC,CACK,GACN,EAAO,CACJ,EAASF,EAEb,SAAS,EAAM,EAAM,CACnB,IAAM,EAAU,OAAO,GAAS,UAAY,CAC1C,WAAY,EACb,CAAG,GAAQ,EAAE,CACR,EAAmB,EAAQ,aAAe,GAchD,OAbK,GAED,IACG,GAAY,EAAK,CAKpB,EAAI,CACF,GAAI,GACL,CAAC,CANF,EAAI,CACF,GAAI,GACL,CAAC,EAOC,UAAU,OAAS,EAAI,OAAO,EAAM,CACzC,GAAG,EACH,WAAY,EACb,CAAC,CAAG,EAAI,QAAQ,EAfR,IAmBX,CACE,EACA,EACD,CACF,CACK,EAAUA,EACb,GAAQ,CACP,GAAI,CAAC,EACH,OAAO,GACT,GAAM,EAAG,GAAc,GAAkB,EAAS,EAAY,CAC1D,EAMJ,GALI,GAAW,EAAI,CACjB,EAAO,EAAI,GAAiB,CAAC,CACpB,OAAO,GAAO,WACvB,EAAO,GAEL,OAAO,GAAQ,SACjB,OAAO,GACT,EAAW,CACT,GAAI,EACL,CAAC,CACF,EAAgB,QAAU,EAC1B,IAAM,EAAO,EAAE,CACT,CAAC,GAAoB,GAAkB,EAAS,EAAY,CAC9D,EAAmB,KACvB,IAAK,IAAIC,EAAI,EAAGA,EAAI,EAAM,EAAEA,EAAG,CAC7B,GAAM,CAAC,GAAW,GAAUH,EAAOG,EAAG,EAAiB,CAAC,CAClD,CAAC,GAAY,GAAkB,EAAS,EAAQ,CAChD,EAAW,EAAU,GAAU,CAAC,KAAO,GAC7C,GAAI,GAAY,EAAS,CACvB,OAAO,EAAO,GAAkB,CAAC,KAAK,CAExC,EAAK,KAAK,EAAS,CACnB,EAAmB,EAErB,OAAO,EAAO,EAAK,EAIrB,CACE,EACA,EACA,EACA,EACD,CACF,CACD,MAAO,CACL,KAAM,GAAiB,CACvB,UACA,SACA,IAAI,MAAO,CACT,OAAO,EAAI,MAEb,IAAI,OAAQ,CACV,OAAO,EAAI,OAEb,IAAI,cAAe,CACjB,OAAO,EAAI,cAEb,IAAI,WAAY,CACd,OAAO,EAAI,WAEd,EAEG,GAAiB,GAAe,GAAQ,GAAS,kBCjNnD,IAA6B,IAC/B,EAAU,SAAc,WACxB,EAAU,KAAU,OACpB,EAAU,IAAS,MACnB,EAAU,YAAiB,cAC3B,EAAU,WAAgB,aAC1B,EAAU,UAAe,YACzB,EAAU,cAAmB,gBAC7B,EAAU,UAAe,YACzB,EAAU,WAAgB,aACnB,IACN,IAAY,EAAE,CAAC,yBCXiD,KACrB,IACF,CACtC,GAAN,cAAmC,EAAW,CAC5C,aAAc,CACZ,OAAO,CACP,KAAK,WAAW,GAAI,IAAI,WAAW,CACnC,KAAK,cAAc,GAAe,CAEpC,MAAM,cAAc,EAAS,CAC3B,OAAO,KAAK,KAAK,8BAA+B,CAC9C,GAAG,EACH,SAAU,eACX,CAAC,CAEJ,MAAM,SAAS,EAAS,CACtB,IAAM,EAAS,IAAI,gBAAgB,CACjC,OAAQ,EAAQ,OAAO,KAAK,IAAI,CAChC,YAAa,EAAQ,YACrB,OAAQ,EAAQ,OACjB,CAAC,CAIF,OAHI,EAAQ,eAAiB,EAAQ,cAAc,OAAS,GAC1D,EAAO,OAAO,gBAAiB,EAAQ,cAAc,KAAK,IAAI,CAAC,CAE1D,KAAK,IAAI,yCAAyC,EAAO,UAAU,GAAI,IAAK,GAAG,CACpF,YAAa,UACd,CAAC,GAGA,GAAgB,IAAI,iCC7BoB,KACqB,IACvB,CACtC,GAAN,cAAkC,EAAW,CAC3C,aAAc,CACZ,OAAO,CACP,KAAK,WAAW,GAAI,IAAI,QAAQ,CAChC,KAAK,cAAc,GAAe,CAEpC,MAAM,wBAAwB,EAAgB,EAAO,CACnD,OAAO,KAAK,IAAI,2DAA2D,EAAe,mBAAoB,CAC5G,QACD,CAAE,CACD,YAAa,UACd,CAAC,CAAC,KAAM,IAAU,CACjB,GAAG,EACH,KAAM,CACJ,GAAG,EAAK,KACR,YAAa,GAAe,EAAK,KAAK,YAAY,CACnD,CACF,EAAE,CAEL,MAAM,8BAA8B,EAAO,CACzC,OAAO,KAAK,IAAI,+EAAgF,EAAO,CACrG,YAAa,UACd,CAAC,CAAC,KAAM,IAAU,CACjB,GAAG,EACH,KAAM,CACJ,GAAG,EAAK,KACR,SAAU,GAAgC,EAAK,KAAK,SAAS,CAC9D,CACF,EAAE,GAGD,GAAe,IAAI,GACnB,GAAmC,GAAa,EAAS,IAAK,IAE3D,CACL,WAAY,CACV,aAAc,EAAQ,WAAW,GACjC,QAAS,EAAQ,WAAW,QAC5B,QAAS,EAAQ,WAAW,QAC7B,CACD,UAAW,EAAQ,UACnB,YAAa,EAAQ,YACrB,oBAAqB,EAAQ,oBAC7B,SAAU,EAAQ,SAClB,cAAe,EAAQ,cACvB,cAAe,EAAQ,cACvB,gBAAiB,EAAQ,gBACzB,WAAY,EAAQ,WACpB,QAAS,EAAQ,QACjB,YAAa,EAAQ,YACrB,mBAAoB,EAAQ,mBAC5B,SAAU,EAAQ,SAAS,OAC3B,eAAgB,EAAQ,aACxB,MAAO,EAAQ,YACf,UAAW,EAAQ,QACnB,gBAAuB,EAAQ,iBAAuC,IAAK,IAAc,CACvF,kBAAmB,EAAS,WAAa,EACzC,kBAAmB,EAAS,WAAa,GACzC,mBAAoB,EAAS,YAAc,EAC3C,mBAAoB,EAAS,YAAc,GAC3C,kBAAmB,EAAS,WAAa,EACzC,kBAAmB,EAAS,WAAa,GAC1C,EAAE,CACJ,EACD,CACI,GAAkB,GAAa,EAAS,IAAK,IAAa,CAC9D,WAAY,CACV,aAAc,EAAQ,aACtB,QAAS,EAAQ,kBACjB,QAAS,EAAQ,kBAClB,CACD,UAAW,EAAQ,UACnB,YAAa,EAAQ,YACrB,oBAAqB,EAAQ,oBAC7B,SAAU,EAAQ,SAClB,cAAe,EAAQ,cACvB,cAAe,EAAQ,cACvB,gBAAiB,EAAQ,gBACzB,WAAY,EAAQ,WACpB,QAAS,EAAQ,QACjB,YAAa,EAAQ,YACrB,mBAAoB,EAAQ,mBAC5B,SAAU,EAAQ,WAAW,OAC7B,eAAgB,EAAQ,aACxB,MAAO,EAAQ,YACf,UAAW,EAAQ,QACnB,kBAAmB,EAAQ,wBAC5B,EAAE,kBC1FG,GAAgB,CAAC,CACrB,cAAe,MACf,SAAU,oDACV,WAAY,KACZ,YAAa,IACb,gBAAiB,GACjB,cAAe,OACf,UAAW,GACX,eAAgB,GAChB,MAAO,GACP,mBAAoB,EACpB,QAAS,GACT,oBAAqB,CAAC,SAAS,CAC/B,WAAY,CACV,aAAc,KACd,QAAS,QACT,QAAS,iBACV,CACD,UAAW,QACX,YAAa,uBACb,SAAU,GACV,gBAAiB,CAAC,CAChB,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,KACpB,kBAAmB,UACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,KACpB,kBAAmB,UACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,kBAAmB,UACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,kBAAmB,UACpB,CAAC,CACH,CAAE,CACD,cAAe,MACf,SAAU,oDACV,WAAY,GACZ,YAAa,EACb,gBAAiB,GACjB,cAAe,MACf,UAAW,GACX,eAAgB,GAChB,MAAO,GACP,mBAAoB,EACpB,QAAS,GACT,oBAAqB,EAAE,CACvB,WAAY,CACV,aAAc,KACd,QAAS,QACT,QAAS,iBACV,CACD,UAAW,QACX,YAAa,qBACb,SAAU,GACV,gBAAiB,CAAC,CAChB,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,KACpB,kBAAmB,UACpB,CAAC,CACH,CAAE,CACD,cAAe,MACf,SAAU,oDACV,WAAY,KACZ,YAAa,IACb,gBAAiB,GACjB,cAAe,OACf,UAAW,GACX,eAAgB,GAChB,MAAO,GACP,mBAAoB,IACpB,QAAS,GACT,oBAAqB,EAAE,CACvB,WAAY,CACV,aAAc,KACd,QAAS,QACT,QAAS,iBACV,CACD,UAAW,QACX,YAAa,mBACb,SAAU,GACV,gBAAiB,CAAC,CAChB,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,KACpB,kBAAmB,UACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,kBAAmB,UACpB,CAAC,CACH,CAAE,CACD,cAAe,MACf,SAAU,oDACV,WAAY,KACZ,YAAa,IACb,gBAAiB,EACjB,cAAe,MACf,UAAW,GACX,eAAgB,GAChB,MAAO,GACP,mBAAoB,EACpB,QAAS,GACT,oBAAqB,CAAC,SAAS,CAC/B,WAAY,CACV,aAAc,KACd,QAAS,QACT,QAAS,iBACV,CACD,UAAW,QACX,YAAa,mCACb,SAAU,GACV,gBAAiB,CAAC,CAChB,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,MACpB,kBAAmB,UACnB,kBAAmB,MACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,MACpB,kBAAmB,UACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,kBAAmB,UACpB,CAAC,CACH,CAAE,CACD,cAAe,MACf,SAAU,oDACV,WAAY,IACZ,YAAa,EACb,gBAAiB,GACjB,cAAe,OACf,UAAW,GACX,eAAgB,GAChB,MAAO,GACP,mBAAoB,EACpB,QAAS,GACT,oBAAqB,EAAE,CACvB,WAAY,CACV,aAAc,KACd,QAAS,QACT,QAAS,iBACV,CACD,UAAW,QACX,YAAa,uBACb,SAAU,GACV,gBAAiB,CAAC,CAChB,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,KACpB,kBAAmB,UACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,kBAAmB,UACpB,CAAC,CACH,CAAE,CACD,cAAe,MACf,SAAU,oDACV,WAAY,KACZ,YAAa,IACb,gBAAiB,GACjB,cAAe,MACf,UAAW,GACX,eAAgB,GAChB,MAAO,GACP,mBAAoB,EACpB,QAAS,GACT,oBAAqB,EAAE,CACvB,WAAY,CACV,aAAc,KACd,QAAS,QACT,QAAS,iBACV,CACD,UAAW,QACX,YAAa,mBACb,SAAU,GACV,gBAAiB,CAAC,CAChB,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,KACpB,kBAAmB,UACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,kBAAmB,UACpB,CAAC,CACH,CAAE,CACD,cAAe,MACf,SAAU,oDACV,WAAY,KACZ,YAAa,IACb,gBAAiB,EACjB,cAAe,MACf,UAAW,GACX,eAAgB,GAChB,MAAO,GACP,mBAAoB,EACpB,QAAS,GACT,oBAAqB,EAAE,CACvB,WAAY,CACV,aAAc,KACd,QAAS,QACT,QAAS,iBACV,CACD,UAAW,QACX,YAAa,gCACb,SAAU,GACV,gBAAiB,CAAC,CAChB,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,MACpB,kBAAmB,UACnB,kBAAmB,MACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,YACpB,kBAAmB,UACnB,kBAAmB,MACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,YACpB,kBAAmB,UACnB,kBAAmB,MACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,YACpB,kBAAmB,UACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,kBAAmB,UACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,YACpB,kBAAmB,UACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,MACpB,kBAAmB,UACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,kBAAmB,UACpB,CAAC,CACH,CAAE,CACD,cAAe,MACf,SAAU,oDACV,WAAY,KACZ,YAAa,GACb,gBAAiB,EACjB,cAAe,OACf,UAAW,GACX,eAAgB,GAChB,MAAO,GACP,mBAAoB,EACpB,QAAS,GACT,oBAAqB,CAAC,SAAS,CAC/B,WAAY,CACV,aAAc,KACd,QAAS,QACT,QAAS,iBACV,CACD,UAAW,QACX,YAAa,yBACb,SAAU,GACV,gBAAiB,CAAC,CAChB,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,MACpB,kBAAmB,UACnB,kBAAmB,MACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,kBAAmB,UACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,MACpB,kBAAmB,UACpB,CAAC,CACH,CAAE,CACD,cAAe,MACf,SAAU,oDACV,WAAY,IACZ,YAAa,GACb,gBAAiB,EACjB,cAAe,MACf,UAAW,GACX,eAAgB,GAChB,MAAO,GACP,mBAAoB,EACpB,QAAS,GACT,oBAAqB,EAAE,CACvB,WAAY,CACV,aAAc,KACd,QAAS,QACT,QAAS,iBACV,CACD,UAAW,QACX,YAAa,iCACb,SAAU,GACV,gBAAiB,CAAC,CAChB,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,MACpB,kBAAmB,UACnB,kBAAmB,MACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,MACpB,kBAAmB,UACnB,kBAAmB,MACpB,CAAC,CACH,CAAE,CACD,cAAe,MACf,SAAU,oDACV,WAAY,KACZ,YAAa,IACb,gBAAiB,EACjB,cAAe,MACf,UAAW,GACX,eAAgB,GAChB,MAAO,GACP,mBAAoB,EACpB,QAAS,GACT,oBAAqB,CAAC,SAAS,CAC/B,WAAY,CACV,aAAc,KACd,QAAS,QACT,QAAS,iBACV,CACD,UAAW,QACX,YAAa,kCACb,SAAU,GACV,gBAAiB,CAAC,CAChB,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,MACpB,kBAAmB,UACnB,kBAAmB,MACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,MACpB,kBAAmB,UACnB,kBAAmB,MACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,YACpB,kBAAmB,UACnB,kBAAmB,MACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,YACpB,kBAAmB,UACnB,kBAAmB,MACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,YACpB,kBAAmB,UACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,kBAAmB,UACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,YACpB,kBAAmB,UACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,MACpB,kBAAmB,UACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,MACpB,kBAAmB,UACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,kBAAmB,UACpB,CAAC,CACH,CAAE,CACD,cAAe,MACf,SAAU,oDACV,WAAY,IACZ,YAAa,EACb,gBAAiB,GACjB,cAAe,OACf,UAAW,GACX,eAAgB,GAChB,MAAO,GACP,mBAAoB,EACpB,QAAS,GACT,oBAAqB,EAAE,CACvB,WAAY,CACV,aAAc,KACd,QAAS,QACT,QAAS,iBACV,CACD,UAAW,QACX,YAAa,qBACb,SAAU,GACV,gBAAiB,CAAC,CAChB,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,MACpB,kBAAmB,UACnB,kBAAmB,OACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,kBAAmB,UACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,MACpB,kBAAmB,UACpB,CAAC,CACH,CAAE,CACD,cAAe,MACf,SAAU,oDACV,WAAY,IACZ,YAAa,EACb,gBAAiB,GACjB,cAAe,OACf,UAAW,GACX,eAAgB,GAChB,MAAO,GACP,mBAAoB,EACpB,QAAS,GACT,oBAAqB,EAAE,CACvB,WAAY,CACV,aAAc,KACd,QAAS,QACT,QAAS,iBACV,CACD,UAAW,QACX,YAAa,qBACb,SAAU,GACV,gBAAiB,CAAC,CAChB,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,MACpB,kBAAmB,UACnB,kBAAmB,MACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,kBAAmB,UACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,MACpB,kBAAmB,UACpB,CAAC,CACH,CAAE,CACD,cAAe,MACf,SAAU,oDACV,WAAY,IACZ,YAAa,GACb,gBAAiB,GACjB,cAAe,OACf,UAAW,GACX,eAAgB,GAChB,MAAO,GACP,mBAAoB,EACpB,QAAS,GACT,oBAAqB,EAAE,CACvB,WAAY,CACV,aAAc,KACd,QAAS,QACT,QAAS,iBACV,CACD,UAAW,QACX,YAAa,yBACb,SAAU,GACV,gBAAiB,CAAC,CAChB,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,KACpB,kBAAmB,UACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,kBAAmB,UACpB,CAAC,CACH,CAAE,CACD,cAAe,MACf,SAAU,oDACV,WAAY,GACZ,YAAa,EACb,gBAAiB,GACjB,cAAe,OACf,UAAW,GACX,eAAgB,GAChB,MAAO,GACP,mBAAoB,EACpB,QAAS,GACT,oBAAqB,CAAC,SAAS,CAC/B,WAAY,CACV,aAAc,KACd,QAAS,QACT,QAAS,iBACV,CACD,UAAW,QACX,YAAa,qBACb,SAAU,GACV,gBAAiB,CAAC,CAChB,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,KACpB,kBAAmB,UACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,KACpB,kBAAmB,UACpB,CAAC,CACH,CAAE,CACD,cAAe,MACf,SAAU,oDACV,WAAY,IACZ,YAAa,GACb,gBAAiB,GACjB,cAAe,MACf,UAAW,GACX,eAAgB,GAChB,MAAO,GACP,mBAAoB,EACpB,QAAS,GACT,oBAAqB,EAAE,CACvB,WAAY,CACV,aAAc,KACd,QAAS,QACT,QAAS,iBACV,CACD,UAAW,QACX,YAAa,4BACb,SAAU,GACV,gBAAiB,CAAC,CAChB,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,KACpB,kBAAmB,UACnB,kBAAmB,QACpB,CAAC,CACH,CAAE,CACD,cAAe,MACf,SAAU,oDACV,WAAY,IACZ,YAAa,EACb,gBAAiB,GACjB,cAAe,OACf,UAAW,GACX,eAAgB,GAChB,MAAO,GACP,mBAAoB,EACpB,QAAS,GACT,oBAAqB,EAAE,CACvB,WAAY,CACV,aAAc,KACd,QAAS,QACT,QAAS,iBACV,CACD,UAAW,QACX,YAAa,6BACb,SAAU,GACV,gBAAiB,CAAC,CAChB,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,MACpB,kBAAmB,UACnB,kBAAmB,OACpB,CAAC,CACH,CAAE,CACD,cAAe,MACf,SAAU,oDACV,WAAY,IACZ,YAAa,EACb,gBAAiB,GACjB,cAAe,OACf,UAAW,GACX,eAAgB,GAChB,MAAO,GACP,mBAAoB,IACpB,QAAS,GACT,oBAAqB,EAAE,CACvB,WAAY,CACV,aAAc,KACd,QAAS,QACT,QAAS,iBACV,CACD,UAAW,QACX,YAAa,kCACb,SAAU,GACV,gBAAiB,CAAC,CAChB,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,MACpB,kBAAmB,UACnB,kBAAmB,OACpB,CAAC,CACH,CAAE,CACD,cAAe,MACf,SAAU,oDACV,WAAY,IACZ,YAAa,GACb,gBAAiB,GACjB,cAAe,OACf,UAAW,GACX,eAAgB,GAChB,MAAO,GACP,mBAAoB,EACpB,QAAS,GACT,oBAAqB,EAAE,CACvB,WAAY,CACV,aAAc,KACd,QAAS,QACT,QAAS,iBACV,CACD,UAAW,QACX,YAAa,wCACb,SAAU,GACV,gBAAiB,CAAC,CAChB,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,MACpB,kBAAmB,UACnB,kBAAmB,MACpB,CAAC,CACH,CAAE,CACD,cAAe,KACf,SAAU,oDACV,WAAY,KACZ,YAAa,IACb,gBAAiB,GACjB,cAAe,MACf,UAAW,GACX,eAAgB,GAChB,MAAO,GACP,mBAAoB,EACpB,QAAS,GACT,oBAAqB,EAAE,CACvB,WAAY,CACV,aAAc,KACd,QAAS,QACT,QAAS,iBACV,CACD,UAAW,QACX,YAAa,0BACb,SAAU,GACV,gBAAiB,CAAC,CAChB,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,KACpB,kBAAmB,UACpB,CAAE,CACD,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,kBAAmB,UACpB,CAAC,CACH,CAAE,CACD,cAAe,MACf,SAAU,oDACV,WAAY,IACZ,YAAa,GACb,gBAAiB,GACjB,cAAe,OACf,UAAW,GACX,eAAgB,GAChB,MAAO,GACP,mBAAoB,EACpB,QAAS,GACT,oBAAqB,CAAC,YAAY,CAClC,WAAY,CACV,aAAc,KACd,QAAS,QACT,QAAS,iBACV,CACD,UAAW,QACX,YAAa,iCACb,SAAU,GACV,gBAAiB,CAAC,CAChB,kBAAmB,UACnB,kBAAmB,OACnB,mBAAoB,UACpB,mBAAoB,MACpB,kBAAmB,UACnB,kBAAmB,MACpB,CAAC,CACH,CAAC,IC/vBF,SAAS,GAAK,EAAO,CACnB,IAAIE,EAAS,GAAS,KAAO,EAAI,EAAM,OACvC,OAAOA,EAAS,EAAMA,EAAS,GAAK,IAAK,gGCFX,IACkC,KACY,KAC0B,KAC/C,KACM,KACgB,KACG,KACb,KACG,KACM,IACtB,IACL,KACU,KACc,KACD,KAC/B,KACU,KACH,KACS,CACrD,GAAmC,GACnC,GAAmC,GACnC,GAA+B,GAC/B,GAA4B,IAC5B,GAA+B,GAC/B,GAA+B,IAAU,CAC7C,KAAM,EACN,OACD,EACK,GAA0B,GAAY,CAC1C,GAAM,CACJ,QAAS,EAAW,GACpB,SACE,EACE,EAAU,GAAY,IAAU,IAAK,GAErC,CACJ,OACA,YACA,GAAG,GACD,GALa,GAAW,EAAQ,GAAgB,EAAM,CAAG,SAKlC,GAAiB,EAAM,CAAC,CAC7C,EAAWC,MAAe,GAA6B,UAAa,EAAE,CAAE,CAAC,EAAK,CAAC,CACrF,MAAO,CACL,UAAW,GAAa,CAAC,EACzB,WACA,QAAS,GACT,KAAM,EACN,kBAAqB,GAErB,GAAG,EACJ,EAEG,GAAoB,GAAY,CACpC,GAAM,CACJ,QAAS,EAAW,GACpB,QACA,KAAM,EACN,eACE,EACE,EAAU,GAAY,IAAU,IAAK,GACrC,CACJ,YACA,OACA,OACA,UACA,GAAG,GACD,GAAe,GAAO,EAAO,GAA4B,EAAM,CAAE,EAAQ,EAAG,CAC9E,SACI,GAAc,EAAI,MAAO,EAAa,EAAI,WAAW,CAAC,CACtD,EAAWA,MAAe,GAA6B,QAAS,GAAS,EAAK,SAAS,EAAK,EAAE,CAAE,CAAC,EAAK,CAAC,CACvG,CACJ,UAAU,IACR,GAAK,EAAK,EAAI,EAAE,CAOpB,MAAO,CACL,UAAW,GAAa,CAAC,EACzB,WACA,UACA,KAAM,EACN,kBAX0B,CACrB,GAGL,EAAS,GAAS,EAAO,EAAE,EAQ3B,GAAG,EACJ,EAEG,GAAgB,MAAO,EAAO,IAAY,CAC9C,GAAI,CAAC,EAAM,WACT,MAAO,CACL,QAAS,GACT,SAAU,EAAE,CACb,CAEH,GAAM,CACJ,OACA,QACE,EACEC,EAAS,EAAO,EAChB,EAAa,GAAmB,EAAM,WAAW,CACjD,EAAU,EAAW,MAAMA,EAAQ,EAAW,OAAO,CACrD,EAAO,EAAQ,MAAM,EAAG,EAAK,CAGnC,MAAO,CACL,QAHc,EAAQ,OAAS,EAAK,OAIpC,SAHe,MAAM,GAAU,uBAAuB,EAAK,CAI5D,EAEG,GAAiC,MAAO,EAAO,IAAY,CAE/D,GAAI,CAAC,EAAM,oBACT,MAAO,CACL,QAAS,GACT,SAAU,EAAE,CACb,CAEH,IAAM,EAAsB,OAAO,EAAM,oBAAoB,CACvD,CACJ,UACA,cACE,MAAM,GAAqB,sBAAsB,CACnD,aAAc,EACd,eAAuB,EAAM,sBAA4C,IAAO,MAAM,GAAyB,EAAoB,CACnI,KAAa,EAAM,sBAA4C,MAAS,GAAS,SACjF,GAAG,EACJ,CAAC,CACF,MAAO,CACL,UACA,SAAU,EACX,EAEG,GAA2B,KAAO,IAAwB,CAC9D,GAAM,CACJ,QACE,MAAM,GAAqB,qBAAqB,EAAoB,CAClE,CAAC,CACL,mBACG,EAAK,cACV,OAAO,GAEH,GAA6B,MAAO,EAAO,IAAY,CAC3D,GAAI,CAAC,EAAM,QACT,MAAO,CACL,QAAS,GACT,SAAU,EAAE,CACb,CAEH,IAAM,EAAS,GAAmB,EAAM,oBAAoB,CACtD,CACJ,YACE,MAAM,GAAQ,kBAAkB,CAClC,gBAAiB,CACf,iBAAkB,CAAC,CACjB,aAAc,EAAM,QACrB,CAAC,CACF,kBAAmB,CACjB,KAAM,aACP,CACD,iBAAkB,CAChB,KAAM,SACN,MAAO,OACR,CACD,iBAAkB,CAAC,CACjB,KAAM,WACP,CAAC,CACF,eAAgB,EAAO,IAAK,IAAW,CACrC,QACD,EAAE,CACJ,CACD,WAAY,EACb,CAAC,CAEF,MAAO,CACL,QAFc,EAAQ,KAAO,EAAQ,KAAO,GAG5C,WACD,EAEG,GAA8B,KAAO,IAAU,CACnD,GAAI,CAAC,EAAM,qBACT,MAAO,CACL,QAAS,GACT,SAAU,EAAE,CACb,CAEH,GAAI,IAAU,EAAI,IAAiB,CACjC,MAAO,CACL,QAAS,GACT,SAAU,GACX,CAEH,IAAM,EAAS,GAAmB,EAAM,qBAAqB,CAAC,KAAK,IAAI,CACjE,CACJ,QACE,MAAM,GAAa,8BAA8B,CACnD,MAAO,GACP,OAAQ,GAAU,IAAK,GACxB,CAAC,CACF,MAAO,CAEL,QAAS,GACT,SAAU,EAAK,SAChB,EAEG,GAAuB,MAAO,EAAO,EAAa,IAAY,CAClE,GAAI,CAAC,EAAM,cACT,MAAO,CACL,QAAS,GACT,SAAU,EAAE,CACb,CAEH,IAAM,EAAa,EAAM,cAAgB,GAAY,SAC/C,EAAqB,EAAM,kBAAoB,IAAK,GACpD,EAAsB,EAAM,mBAAqB,IAAK,GACtD,EAAS,GAAmB,EAAM,cAAc,CAChD,CACJ,YACE,MAAM,GAAQ,kBAAkB,CAClC,gBAAiB,CACf,oBAAqB,EAAqB,CAAC,CACzC,QAAS,EAAM,gBACf,GAAG,EAAsB,CACvB,SAAU,EAAM,iBACjB,CAAG,IAAK,GACV,CAAC,CAAG,EAAE,CACP,eAAgB,EAAO,IAAK,IAAW,CACrC,QACD,EAAE,CACH,kBAAmB,CACjB,KAAM,EAAM,YACb,CACD,iBAAkB,CAChB,KAAM,EAAa,EAAM,mBAAqB,EAAM,qBACpD,MAAO,OACR,CACF,CACD,YAAa,CACX,OAAQ,EAAY,QAAU,IAC9B,IAAK,GACN,CACD,WAAY,CACV,GAAG,EACH,KAAM,GACP,CACF,CAAC,CAEF,MAAO,CACL,QAFc,EAAQ,KAAO,EAAQ,KAAO,GAG5C,WACD,EAEG,GAAgC,MAAO,EAAO,IAAY,CAC9D,GAAI,CAAC,EAAM,mBACT,MAAO,CACL,QAAS,GACT,SAAU,EAAE,CACb,CAEH,GAAM,CACJ,UACA,cACE,MAAM,GAAa,4BAA4B,EAAM,mBAAoB,CAC3E,GAAG,EACH,KAAM,GAAS,KAChB,CAAC,CACF,MAAO,CACL,UACA,SAAU,EACX,EAEG,GAAuB,KAAO,IAAU,CAC5C,GAAI,CAAC,EAAM,WACT,MAAO,CACL,QAAS,GACT,SAAU,EAAE,CACb,CAEH,IAAM,EAAa,GAAmB,EAAM,WAAW,CACjD,CACJ,YACE,MAAM,GAAW,WAAW,EAAW,CAC3C,MAAO,CACL,QAAS,GACT,WACD,EAEG,GAAmB,KAAO,IAAU,CACxC,GAAI,CAAC,EAAM,MACT,MAAO,CACL,QAAS,GACT,SAAU,EAAE,CACb,CAEH,GAAI,IAAU,EAAI,IAAiB,CAMjC,MAAO,CACL,QAAS,GACT,SAPgB,CAAC,KAAM,MAAO,MAAM,CACP,QAAS,GAAY,GAAc,IAAK,IAAa,CAClF,GAAG,EACH,UAAW,EACZ,EAAE,CAAC,CAIH,CAEH,GAAM,CACJ,cACE,EACE,EAAiB,GAAyC,IAAK,GAAa,EAAS,WAAW,EAAK,EAAE,CACvG,CACJ,QACE,MAAM,GAAc,SAAS,CAC/B,OAAQ,CAAC,OAAO,EAAM,MAAM,CAAC,CAC7B,YAAa,EAAM,aAAe,GAClC,OAAQ,EAAM,QAAU,GACxB,gBACD,CAAC,CAqCF,MAAO,CACL,QAAS,GACT,SAtCkB,EAAK,KAAK,SAAS,EAAK,IAAa,EAAI,MAAM,IAAK,IAE/D,CAEL,WAAY,CACV,aAAc,EAAK,SAAS,QAC5B,QAAS,EAAK,SAAS,UACvB,QAAS,GACV,CACD,UAAW,EAAK,OAChB,YAAa,EAAK,SAAS,YAC3B,oBAAqB,EAAE,CACvB,SAAU,EAAK,SAAS,aACxB,cAAe,EAAK,SAAS,cAC7B,cAAe,EAAK,SAAS,aAC7B,gBAAiB,EAAK,SAAS,SAC/B,WAAY,EAAK,SAAS,UAC1B,QAAS,EAAK,SAAS,QACvB,mBAAoB,EAAK,SAAS,YAClC,YAAa,EAAK,SAAS,YAC3B,SAAU,GACV,eAAgB,GAChB,MAAO,GACP,UAAW,EAAK,SAAS,UACzB,gBAAiB,EAAK,SAAS,UAAU,WAAW,IAAK,IAAS,CAChE,kBAAmB,EAAI,kBACvB,mBAAoB,EAAI,mBACxB,kBAAmB,EAAI,kBACxB,EAAE,CAGH,UAAkB,IAAyC,IAAiC,cAAiB,EAAI,KAEjH,UAAW,EAAK,UACjB,EACD,CAAC,CAIF,EAEG,GAA+B,MAAO,EAAO,IAAY,CAE7D,IAAM,EAAoB,EAAM,aAAmC,IAAK,IAAc,CACpF,QAAS,OAAO,EAAS,gBAAgB,CACzC,GAAG,EAAS,iBAAmB,CAC7B,SAAU,OAAO,EAAS,iBAAiB,CAC5C,CAAG,IAAK,GACV,EAAE,CACG,EAAqB,GAA2C,KAAM,GAAa,EAAS,UAAY,IAAK,GAAE,CAC/G,EAAS,EAAM,qBAAuB,GAAmB,EAAM,qBAAqB,CAAG,EAAE,CACzF,CACJ,YACE,MAAM,GAAQ,kBAAkB,CAClC,gBAAiB,CACf,oBAAqB,EAAqB,EAAc,EAAE,CAC1D,eAAgB,EAAO,OAAS,EAAI,EAAO,IAAK,IAAW,CACzD,QACD,EAAE,CAAG,IAAK,GACX,kBAAmB,CACjB,KAAM,EAAM,YACb,CACD,iBAAkB,CAChB,KAAM,EAAM,qBACZ,MAAO,OACR,CACF,CACD,YAAa,CACX,OAAQ,EAAM,SAAW,MAAQ,IAAK,GAAI,EAAM,OAChD,IAAK,EAAM,MAAQ,MAAQ,IAAK,GAAI,OAAO,EAAM,IAAI,CACtD,CACD,WAAY,CACV,GAAG,EACH,KAAM,GACP,CACF,CAAC,CAEF,MAAO,CACL,QAFc,EAAQ,KAAO,EAAQ,KAAO,GAG5C,WACD,EAEG,IAAiB,EAAO,EAAa,IAAY,CACrD,OAAQ,EAAM,KAAd,CACE,KAAK,EAAU,QACb,OAAO,GAAc,EAAO,EAAQ,CACtC,KAAK,EAAU,kBACb,OAAO,GAA+B,EAAO,EAAQ,CACvD,KAAK,EAAU,cACb,OAAO,GAA2B,EAAO,EAAQ,CACnD,KAAK,EAAU,eACb,OAAO,GAA4B,EAAM,CAC3C,KAAK,EAAU,QACb,OAAO,GAAqB,EAAO,EAAa,EAAQ,CAC1D,KAAK,EAAU,iBACb,OAAO,GAA8B,EAAO,EAAQ,CACtD,KAAK,EAAU,QACb,OAAO,GAAqB,EAAM,CACpC,KAAK,EAAU,eACb,OAAO,GAA6B,EAAO,EAAQ,CACrD,KAAK,EAAU,OACb,OAAO,GAAiB,EAAM,CAChC,QACE,MAAO,CACL,QAAS,GACT,SAAU,EAAE,CACb,GAGD,IAAU,EAAO,EAAS,IAAa,GACvC,CAAC,GAAW,IAAU,IAAK,GACtB,KAEF,CACL,IAAK,CACH,QAEA,WAAY,CACV,GAAG,EACH,KAAM,EACP,CACF,CACF,4BCvbwF,KAChD,KACsC,KACsC,IACxG,KACiE,KACX,KACA,IACrD,KAC2D,IAClB,KACc,IAClC,IAC6B,KACsB,KAC1B,KACP,KACM,IACF,KACF,KACc,KAChB,KACY,KACU,KACR,IAC1C,IACR,IACmC,IAC/B,KACoD,KAC/B,IACU,KAC6B,KACzB,KACK,KACyC,KAClB,CAChF,OAAoB,CACxB,IAAM,EAAO,IAAgB,CACvB,CACJ,YACE,IAAwB,CACtB,CACJ,QACA,QACE,IAA2B,CACzB,CACJ,aACE,IAAY,CACV,EAAY,GAA+B,OAAU,EAAU,OAC/D,EAAgB,CACpB,QACA,OACA,YAAa,EACb,QAAS,GAAY,GAAY,EAClC,CACK,EAAkB,CACtB,QACA,OACA,YAAa,EACb,QAAS,CAAC,GAAY,GAAY,EACnC,CACK,EAAe,GAAuB,EAAc,CACpD,EAAiB,GAAiB,EAAgB,CACxD,OAAO,EAAW,EAAe,GAE7B,GAA6B,GAAU,CAC3C,GAAkB,GAAc,EAAM,CAAC,EAEnC,GAAiB,GAAU,CAC/B,GAAI,CAAC,EACH,MAAO,GAET,OAAQ,EAAM,KAAd,CACE,KAAK,EAAU,QACb,OAAO,EAAM,WACf,QACE,MAAO,4BC7E2B,KACoC,KACf,IAC9C,KACuE,KACX,IACZ,KACc,IAClC,IAC6B,KACsB,KAC1B,KACP,IAC7C,KACiE,KACd,IACF,KACF,KACc,KAChB,KACE,KACoB,KACR,IACxD,IACyC,IACrC,KAC0D,KAC/B,IACU,CACtD,IAAuB,CAC3B,aACA,QACA,GAAG,KACC,CACJ,IAAM,EAAQ,IAAU,CAClB,CACJ,OACA,gBACA,WACE,IAAa,CACX,CACJ,SACA,OACE,EACE,EAAO,EAAO,MAAM,EAAO,GAIjC,OAHI,IAAS,IAAK,IAAK,CAAC,EACf,KAEc,EAAI,MAAO,CAAE,GAAG,EAAM,MAAO,CAClD,GAAGC,GACH,UAAW,EACX,GAAG,EACJ,CAAE,SAA0B,EAAI,GAAS,CAAE,GAAG,EAAQ,QAAO,QAAS,EAAe,SAAU,EAAM,CAAC,CAAE,CAAC,EAEtGA,GAAiB,CACrB,QAAS,OACT,eAAgB,SAChB,MAAO,OACR,qBC1DuC,KAC0B,KACkB,CAC9E,IAA6B,CACjC,aACA,GAAG,KACC,CACJ,GAAI,IAAe,IAAK,GACtB,OAAQ,EAAW,KAAnB,CACE,KAAK,GAAe,QAClB,OAAO,KACT,KAAK,GAAe,aAClB,OAAuB,EAAI,GAAqB,CAAE,GAAG,EAAM,aAAY,CAAC,CAC1E,KAAK,GAAe,KAClB,OAAO,KAGb,OAAO,0BCjB+B,KACwB,KACqC,CAC/F,IAAqB,CACzB,SACA,GAAG,KACC,CACJ,OAAQ,EAAO,UAAf,CACE,KAAK,GAAgB,SACnB,OAAuB,EAAI,GAA2B,CAAE,GAAG,EAAM,WAAY,EAAO,mBAAoB,CAAC,CAC3G,QACE,OAAO,6CCX8C,IACL,KACU,IAChD,IACD,KAC8D,KACP,CAChE,GAAmB,GAAW,CAClC,OAAQ,EAAO,UAAf,CACE,KAAK,GAAgB,SACnB,OAAO,EAAO,aAChB,KAAK,GAAgB,WACnB,MAAO,KAGP,IAAoB,EAAS,EAAQ,KAC5B,GAAmC,uBAAuB,CAAC,KAAQ,GACnE,GAAS,EAElB,IAAoB,EAAS,IAAW,CAC5C,eAAiB,CACX,EAAO,YAAc,GAAgB,UAAY,GAAiB,EAAS,GAAgB,EAAO,CAAC,EACrG,GAAmC,eAAe,CAChD,MAAO,QACP,OAAQ,UACT,CAAC,CAEA,EAAO,YAAc,GAAgB,YACvC,GAAmC,SAAS,CAC1C,KAAM,EACP,CAAC,EAEJ,EAEE,IAAgB,EAAY,IACzB,EAAW,OAAO,MAAM,EAAO,KAAO,IAAK,GAE9C,IAAmB,EAAQ,IAAS,CACxC,GAAI,EAAO,YAAc,GAAgB,UAAY,EAAO,qBAAuB,IAAK,GACtF,OAAQ,EAAO,mBAAmB,KAAlC,CACE,KAAK,GAAe,aAClB,OAAO,GAAa,EAAO,mBAAoB,EAAK,CAAG,EAAO,mBAAmB,gBAAkB,EAAO,YAAc,EAAO,IAAK,GACtI,KAAK,GAAe,KAClB,OAAO,EAAO,mBAAmB,gBAAkB,EAAO,YAAc,EAC1E,QACE,SAIF,IAA0B,EAAQ,IAAS,CAC/C,GAAI,IAAU,CACZ,MAAO,GAET,GAAI,EAAO,YAAc,GAAgB,UAAY,EAAO,qBAAuB,IAAK,GACtF,OAAQ,EAAO,mBAAmB,KAAlC,CACE,KAAK,GAAe,QAClB,MAAO,GACT,KAAK,GAAe,aAClB,MAAO,CAAC,GAAa,EAAO,mBAAoB,EAAK,CACvD,KAAK,GAAe,KAClB,MAAO,GACT,QACE,MAAO,GAGb,MAAO,IAEH,GAAkB,GAClB,EAAO,YAAc,GAAgB,YAAc,EAAO,cAG1D,EAAO,mBAAmB,OAAS,GAAe,SAAW,EAAO,mBAAmB,OAAS,GAAe,KAC1G,GAEF,EAAO,mBAAmB,gBAAkB,EAAO,sDC1Ed,IACK,KACmB,KACc,KACO,KACvC,KACT,KAC6B,KACqC,IAClD,IACL,KACU,IAChD,KACuE,KAC7B,KACsC,KAC1B,KACT,KACgB,KACO,KACoD,CAClI,IAAwB,CAC5B,QACA,YACI,CACJ,IAAM,EAAc,GAAmB,EAAM,CACvC,EAAMC,EAAO,KAAK,CAClB,CACJ,YACA,UACA,SAAU,EACV,OACA,iBACE,IAAa,CACX,CACJ,aACE,IAAY,CAChB,GAA0B,EAAM,CAChC,IAAM,EAAsB,EAAU,OAChC,EAAU,GAAa,IAAU,EAAI,IAAwB,EAC7D,EAAe,GAAgB,EAAQ,EAAK,CAC5C,EAAWC,OACW,GAA+B,OAAU,EAAU,QAAU,EAAM,UAAY,EAAU,OAAQ,GAAMC,EAAE,YAAc,EAAM,UAAU,CAAG,GAC5I,MAAM,EAAG,EAAa,CAAC,MAAM,EAAG,IAAU,CAAG,GAAuB,IAAK,GAAE,CAClG,CAAC,EAAW,EAAO,EAAa,CAAC,CACpC,MAAgB,CACd,GAAiB,EAAI,QAAS,EAAO,CACrC,GAAiC,cAAc,IAAI,MAAM,cAAc,CAAC,EACvE,CAAC,EAAM,CAAC,CACX,MAAgB,CACV,EAAI,SACN,GAA8B,EAAI,QAAS,KAAM,EAAU,EAE5D,CAAC,EAAU,CAAC,CACf,IAAM,EAAU,GAAW,EAAO,CAC5B,EAAY,EAAO,YAAc,GAAgB,YAAc,EAAO,UACtE,EAAW,GAA+B,OAAU,EAAU,QAAU,UAAY,UAK1F,OAJK,EAIkB,EAAK,MAAO,CAAE,MAAK,MAAO,CAC/C,GAAGC,GACH,WAAY,EAAQ,IACpB,cAAe,EAAQ,OACvB,gBAAiB,GAAgB,EAAO,CACzC,CAAE,SAAU,CACK,EAAI,GAAS,KAAM,CAAE,UAAS,QAAS,CACrD,MAAO,EAAQ,MACf,KAAM,EAAQ,KACf,CAAE,UAAW,EAAY,CACxB,gBAAiB,UACjB,eAAgB,UAChB,cAAe,OAChB,CAAG,IAAK,GAAG,QAAS,GAAc,EAAO,CAAE,WAAU,UAAS,eAAgB,GAAuB,EAAQ,EAAK,CAAG,EAAgB,IAAK,GAAG,UAAW,CACvJ,WACoB,EAAI,GAAa,OAAQ,CAAE,SAA0B,EAAI,GAAS,KAAM,CAAE,MAAO,GAAW,QAAO,cAAe,EAAa,UAAS,gBAAiB,CAC7K,SAAU,GAA+B,UAC1C,CAAE,CAAC,CAAE,CAAC,CAAE,CAAC,CACM,EAAI,GAAmB,CAAE,MAAO,CAC9C,YAAa,EAAQ,KACrB,aAAc,EAAQ,MACvB,CAAE,SAAQ,CAAC,CACb,CAAE,CAAC,EAzBF,GAAiC,cAAc,IAAI,MAAM,cAAc,CAAC,CACjD,EAAI,MAAO,CAAE,MAAK,CAAC,GA0BxC,GAAmB,GACA,EAAI,GAAyB,CAAE,MAAO,EAAM,MAAO,KAAM,GAAe,EAAM,OAAO,CAAE,SAA0B,EAAI,GAAsB,CAAE,GAAG,EAAO,CAAC,CAAE,CAAC,CAE9KA,GAAiB,CACrB,MAAO,OACP,QAAS,OACT,cAAe,SAChB,CACK,GAAY,CAChB,cAAe,EAChB,CACK,GAAiB,GAAW,CAChC,OAAQ,EAAO,UAAf,CACE,KAAK,GAAgB,SACnB,OAAO,GAAsB,EAAO,CACtC,KAAK,GAAgB,WACnB,OAAO,GAAwB,EAAO,GAGtC,GAAyB,GAAW,CACxC,OAAQ,EAAO,SAAf,CACE,KAAK,EAAgB,KACrB,KAAK,EAAgB,cACnB,OAAO,GAAqB,CAC1B,KAAM,CACJ,UAAW,EAAO,UAClB,KAAM,CACJ,KAAM,EAAO,SACb,KAAM,EAAO,KACb,QAAS,EAAO,QAChB,QAAS,EAAO,QAChB,aAAc,EAAO,aACrB,UAAW,EAAO,UAClB,SAAU,EAAO,SACjB,aAAc,GACf,CACD,OAAQ,CACN,IAAK,EAAO,UACZ,MAAO,EAAO,aAAe,IAAK,GAAI,GAAmB,EAAO,UAAW,EAAO,YAAY,CAC9F,SAAU,EAAO,aAAe,IAAM,EACtC,MAAO,EAAO,aAAe,OAAS,EAAO,YAC9C,CACD,IAAK,CACH,aAAc,GAAgB,EAAQ,EAAE,CACxC,IAAK,EAAO,OACb,CACF,CACF,CAAC,CACJ,KAAK,EAAgB,IACnB,OAAO,GAAqB,CAC1B,KAAM,CACJ,UAAW,EAAO,UAClB,KAAM,CACJ,KAAM,EAAO,SACb,KAAM,EAAO,KACb,QAAS,EAAO,QAChB,QAAS,EAAO,QAChB,aAAc,EAAO,aACrB,UAAW,EAAO,UAClB,SAAU,EAAO,SACjB,aAAc,GACf,CACD,OAAQ,CACN,IAAK,EAAO,UACZ,MAAO,EAAO,aAAe,IAAK,GAAI,GAAmB,EAAO,UAAW,EAAO,YAAY,CAC9F,SAAU,EAAO,aAAe,KAAO,EAAO,QAAU,GAAK,GAAK,EAClE,MAAO,EAAO,aAAe,OAAS,EAAO,YAC9C,CACD,IAAK,CACH,aAAc,GAAgB,EAAQ,EAAE,CACxC,IAAK,EAAO,OACb,CACF,CACF,CAAC,GAGF,GAA2B,GAAW,CAC1C,OAAQ,EAAO,SAAf,CACE,KAAK,EAAgB,KACrB,KAAK,EAAgB,cACnB,OAAO,GAAqB,CAC1B,KAAM,CACJ,UAAW,EAAO,UAClB,KAAM,CACJ,KAAM,EAAO,SACb,KAAM,EAAO,KACb,QAAS,EAAO,QAChB,QAAS,EAAO,QAChB,aAAc,EAAO,aACrB,UAAW,EAAO,UAClB,SAAU,EAAO,SACjB,aAAc,GACf,CACD,OAAQ,CACN,IAAK,EAAO,UACZ,aAAc,EAAO,mBACrB,MAAO,GAAmB,EAAO,UAAW,EAAO,mBAAmB,CACvE,CACD,IAAK,CACH,IAAK,EAAO,OACZ,MAAO,EAAO,SACf,CACF,CACD,QAAS,CACP,UAAW,GACZ,CACF,CAAC,CACJ,KAAK,EAAgB,IACnB,OAAO,GAAqB,CAC1B,KAAM,CACJ,UAAW,EAAO,UAClB,KAAM,CACJ,KAAM,EAAO,SACb,KAAM,EAAO,KACb,QAAS,EAAO,QAChB,QAAS,EAAO,QAChB,aAAc,EAAO,aACrB,UAAW,EAAO,UAClB,SAAU,EAAO,SACjB,aAAc,GACf,CACD,OAAQ,CACN,IAAK,EAAO,UACZ,aAAc,EAAO,mBACtB,CACD,IAAK,CACH,IAAK,EAAO,OACZ,MAAO,EAAO,SACf,CACF,CACD,OAAQ,CACN,OAAQ,CACN,MAAO,GAAmB,EAAO,UAAW,EAAO,mBAAoB,EAAO,QAAU,GAAK,EAAE,CAChG,CACF,CACD,OAAQ,CACN,OAAQ,CACN,MAAO,GAAmB,EAAO,UAAW,EAAO,mBAAoB,EAAO,QAAU,GAAK,GAAG,CACjG,CACF,CACD,QAAS,CACP,UAAW,GACX,OAAQ,CACN,MAAO,GAAmB,EAAO,UAAW,EAAO,mBAAmB,CACvE,CACF,CACF,CAAC,uBCvOgC,KACyB,KACO,KACzB,CACzC,IAAwB,CAC5B,QACA,YACI,CACJ,IAAM,EAAQ,GAAe,GAAU,EAAM,QAAQ,GAAO,CAC5D,OAAuB,EAAI,GAAiB,CAAE,QAAO,SAAQ,CAAE,GAAU,EAAM,CAAC,uBCTS,KACgE,CACrJ,GAA+B,CACnC,GAAG,GACH,SAAU,GAA8B,GAAkB,GAA6B,GAAyB,GAAkB,GAAiB,CACpJ,wBCLuC,IACkB,KACuB,KACA,KACK,KACe,KAC1B,KACY,KACH,KACC,KACP,KACJ,KACY,KACf,KACK,KACyB,CAC/F,IAAuB,CAC3B,QACA,YACI,CACJ,OAAQ,EAAM,KAAd,CACE,KAAK,GAAwB,OAC3B,OAAuB,EAAI,GAAsB,CAAE,MAAO,EAAM,MAAO,SAAQ,CAAC,CAClF,KAAK,GAAwB,OAC3B,OAAuB,EAAI,GAAiB,CAAE,MAAO,EAAM,MAAO,SAAQ,CAAC,CAC7E,QACE,OAAO,OAGP,IAAkB,CACtB,QACA,aACA,cACA,UACA,GAAG,KAEoB,EAAI,GAAe,CAAE,QAAO,aAAY,cAAa,UAAS,SAA0B,EAAI,GAAkB,CAAE,SAAW,GAA0B,EAAI,GAAW,CAAE,QAAS,EAAO,CAAC,CAAE,SAA0B,EAAI,GAAqB,CAAE,GAAG,EAAM,CAAC,CAAE,CAAC,CAAE,CAAC,CAEvR,EAAoB,GAAgB,CAClC,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,MAAO,CACL,KAAM,EAAY,OAClB,MAAO,OACP,SAAU,CACR,KAAM,CACJ,KAAM,EAAY,KAClB,MAAO,KACP,QAAS,CAAC,GAAwB,OAAQ,GAAwB,OAAO,CACzE,aAAc,CAAC,KAAM,KAAK,CAC3B,CACD,MAAO,CACL,QAAS,CACP,UACI,IAAS,GAAwB,OACvC,KAAM,EAAY,OAClB,MAAO,OACP,aAAc,GACf,CACD,MAAO,CACL,QAAS,CACP,UACI,IAAS,GAAwB,OACvC,GAAG,GACJ,CACF,CACF,CACD,OAAQ,CACN,KAAM,EAAY,OAClB,MAAO,OACP,SAAU,CACR,UAAW,CACT,KAAM,EAAY,KAClB,MAAO,SACP,QAAS,CAAC,aAAc,WAAW,CACnC,aAAc,CAAC,KAAM,KAAK,CAC3B,CACD,SAAU,CACR,KAAM,EAAY,KAClB,MAAO,QACP,QAAS,CAAC,EAAgB,KAAM,EAAgB,cAAe,EAAgB,IAAI,CACnF,aAAc,CAAC,eAAgB,OAAQ,kBAAkB,CAC1D,CACD,KAAM,CACJ,QAAS,CACP,cACI,IAAa,EAAgB,MAAQ,IAAa,EAAgB,cACxE,KAAM,EAAY,KAClB,MAAO,KACP,QAAS,CAAC,QAAS,SAAS,CAC5B,aAAc,CAAC,QAAS,SAAS,CACjC,aAAc,SACf,CACD,QAAS,CACP,KAAM,EAAY,QAClB,MAAO,QACP,aAAc,GACf,CACD,QAAS,CACP,KAAM,EAAY,QAClB,MAAO,SACP,aAAc,GACf,CACD,aAAc,CACZ,KAAM,EAAY,QAClB,MAAO,UACP,aAAc,GACf,CACD,UAAW,CACT,KAAM,EAAY,QAClB,MAAO,QACP,aAAc,GACf,CACD,SAAU,CACR,KAAM,EAAY,QAClB,MAAO,SACP,aAAc,GACf,CAED,SAAU,CACR,QAAS,CACP,eACI,IAAc,GAAgB,WACpC,KAAM,EAAY,OAClB,MAAO,OACP,KAAM,IACN,aAAc,EACd,IAAK,EACL,IAAK,GACN,CACD,mBAAoB,CAClB,QAAS,CACP,eACI,IAAc,GAAgB,WACpC,KAAM,EAAY,OAClB,MAAO,UACP,KAAM,IACN,YAAa,6BACb,aAAc,EACd,IAAK,EACL,IAAK,EACN,CACD,UAAW,CACT,QAAS,CACP,eACI,IAAc,GAAgB,WACpC,KAAM,EAAY,QAClB,MAAO,SACP,aAAc,GACf,CAED,aAAc,CACZ,QAAS,CACP,eACI,IAAc,GAAgB,SACpC,KAAM,EAAY,QAClB,MAAO,MACP,aAAc,GACf,CACD,YAAa,CACX,QAAS,CACP,YACA,kBACI,IAAc,GAAgB,UAAY,IAAiB,GACjE,KAAM,EAAY,OAClB,MAAO,OACP,KAAM,IACN,aAAc,EACd,IAAK,EACL,IAAK,EACN,CACD,aAAc,CACZ,QAAS,CACP,eACI,IAAc,GAAgB,SACpC,KAAM,EAAY,OAClB,MAAO,SACP,YAAa,mCACb,KAAM,KACN,aAAc,EACf,CACD,mBAAoB,CAClB,QAAS,CACP,eACI,IAAc,GAAgB,SACpC,KAAM,EAAY,OAClB,MAAO,SACP,SAAU,CACR,KAAM,CACJ,KAAM,EAAY,KAClB,MAAO,KACP,QAAS,CAAC,GAAe,QAAS,GAAe,aAAc,GAAe,KAAK,CACnF,aAAc,CAAC,KAAM,SAAU,KAAK,CACrC,CACD,IAAK,CACH,QAAS,CACP,UACI,IAAS,GAAe,aAC9B,KAAM,EAAY,OAClB,MAAO,KACP,YAAa,oCACb,KAAM,KACN,aAAc,GACd,IAAK,EACL,IAAK,GACN,CACD,gBAAiB,CACf,QAAS,CACP,UACI,IAAS,GAAe,QAC9B,KAAM,EAAY,OAClB,MAAO,UACP,YAAa,gCACb,KAAM,IACN,IAAK,EACL,IAAK,GACL,aAAc,EACf,CACD,OAAQ,CACN,QAAS,CACP,UACI,IAAS,GAAe,aAC9B,KAAM,EAAY,OAClB,MAAO,KACP,SAAU,CACR,QAAS,CACP,KAAM,EAAY,KAClB,MAAO,KACP,QAAS,CAAC,GAAc,QAAS,GAAc,UAAW,GAAc,SAAS,CACjF,aAAc,CAAC,UAAW,YAAa,WAAW,CACnD,CACD,KAAM,CACJ,KAAM,EAAY,KAClB,MAAO,KACP,QAAS,CAAC,EAAW,MAAO,EAAW,OAAQ,EAAW,MAAM,CAChE,aAAc,CAAC,QAAS,SAAU,QAAQ,CAC1C,aAAc,EAAW,OAC1B,CACD,KAAM,CACJ,KAAM,EAAY,QAClB,MAAO,MACP,aAAc,GACf,CACD,WAAY,CACV,QAAS,CACP,iBACI,EAAQ,EACd,KAAM,EAAY,KAClB,MAAO,SACP,QAAS,CAAC,IAAK,GAAG,GAAG,GAAoB,CACzC,aAAc,CAAC,SAAU,GAAG,GAAoB,CACjD,CACD,YAAa,CACX,QAAS,CACP,gBACI,EAAQ,EACd,KAAM,EAAY,KAClB,MAAO,SACP,QAAS,CAAC,IAAK,GAAG,GAAG,GAAqB,CAC1C,aAAc,CAAC,SAAU,GAAG,GAAqB,CAClD,CACD,SAAU,CACR,KAAM,EAAY,QAClB,MAAO,UACP,aAAc,GACf,CACD,MAAO,CACL,KAAM,EAAY,MAClB,MAAO,SACP,aAAc,CAAC,UAAW,UAAU,CACpC,QAAS,CACP,KAAM,EAAY,OACnB,CACF,CACF,CACF,CACF,CACF,CAED,OAAQ,CACN,KAAM,EAAY,OAClB,MAAO,OACP,KAAM,KACN,aAAc,GACd,IAAK,EACL,IAAK,GACN,CACD,UAAW,CACT,KAAM,EAAY,OAClB,MAAO,OACP,KAAM,KACN,aAAc,EACd,IAAK,EACL,IAAK,GACN,CACD,QAAS,CACP,KAAM,EAAY,YAClB,MAAO,KACP,aAAc,EACd,UAAW,UACX,aAAc,CAAC,MAAO,aAAa,CACnC,UAAW,CAAC,aAAc,eAAgB,gBAAiB,cAAc,CACzE,YAAa,CAAC,IAAK,IAAK,IAAK,IAAI,CACjC,IAAK,EACN,CACF,CACF,CACF,CAAC,sBCrTuH,IAAe,YAAY,mBAA+B,wBCA/G,CAC9D,GAAwC,GAAgB,CAC3D,aAAe,IACf,mBAAqB,IACrB,eAAiB,EACnB,CAAC,gBCLD,UAAW,CAEV,GAAI,CACF,GAAI,OAAO,SAAY,IAAa,CAClC,IAAI,EAAe,SAAS,cAAc,QAAQ,CAClD,EAAa,YAAY,SAAS,eAAe;;;;;;;GAAgP,CAAC,CAClS,SAAS,KAAK,YAAY,EAAa,QAElCC,EAAG,CACV,QAAQ,MAAM,iCAAkCA,EAAE,KAElD,iCCX0C,IACqB,IACQ,IACzC,IACsB,KACF,KAC4C,KAC9C,KACS,KACR,KACO,KACQ,KACjB,KACJ,KACoB,IAChB,KACS,CACtD,GAAY,GAAsC,CACtD,UAAW,CACT,KAAQ,CACN,UAAW,IACX,QAAS,OACV,CACD,eAAgB,CACd,OAAQ,OACR,SAAU,IACV,cAAe,SAChB,CACF,CACD,YAAa,CACX,aAAc,CACZ,MAAO,IACR,CACD,mBAAoB,CAClB,KAAM,EACP,CACF,CACD,YAAa,CACX,KAAQ,CACN,SAAU,SACV,IAAK,EACL,gBAAiB,UACjB,OAAQ,QACR,SAAU,OACX,CACD,aAAc,CACZ,KAAM,EACP,CACD,mBAAoB,CAClB,MAAO,IACR,CACF,CACD,qBAAsB,CACpB,KAAQ,CACN,SAAU,QACV,IAAK,EACL,KAAM,EACN,MAAO,GACP,OAAQ,EACR,OAAQ,GACR,gBAAiB,cAClB,CACD,aAAc,CACZ,MAAO,IACR,CACD,mBAAoB,CAClB,MAAO,qBACR,CACF,CACD,YAAa,CACX,KAAM,CACJ,MAAO,OACP,OAAQ,OACR,gBAAiB,UAClB,CACF,CACD,gBAAiB,CACf,KAAM,CACJ,SAAU,QACV,MAAO,0CACP,OAAQ,2CACR,KAAM,yCACN,OAAQ,IACR,QAAS,OACT,cAAe,SACf,IAAK,GACN,CACF,CACD,qBAAsB,CACpB,KAAQ,CACN,SAAU,QACV,OAAQ,GACR,OAAQ,IACR,aAAc,GACf,CACD,aAAc,CACZ,MAAO,qBACR,CACD,mBAAoB,CAClB,MAAO,IACR,CACF,CACF,CAAC,CACI,GAAoB,GACpB,GAAyB,GACzBC,GAAiB,2BAMjB,GAAwB,GAAS,CACrC,QACA,YACA,cACA,cACA,gBACA,kBACA,YACI,CACJ,GAAM,CACJ,aACA,OAAA,GACE,IAAW,CACT,EAAc,IAAe,eAC7B,CACJ,2BACE,IAAsB,CACpB,CACJ,mBACE,GAAW,CAIT,EAAe,EAHS,GAAU,EAAiB,CACvD,OAAQ,EACT,CAAC,CACuD,CAAC,EAAG,EAAE,CAAE,CAAC,QAAS,KAAK,CAAC,CAC3E,EAAQ,CAAC,GAAG,EAAO,MAAO,GAAG,EAAc,EAAE,CAAG,CAAC,EAAO,mBAAmB,CAAC,CAC5E,EAAc,CAAC,IAAU,EAAI,IAAW,CACxC,EAAc,CAAC,IAAU,EAAI,IAAW,CACxC,EAAU,CAAC,IAAU,EAAI,IAAO,CAetC,GAdA,OACE,EAAwB,wBAAwB,KACnC,EAAwB,UAAU,EAC9C,CAAC,EAAwB,CAAC,CAC7B,MAAgB,CACd,GAAI,IAAe,cAAgB,IAAe,mBAGhD,OAFA,SAAS,gBAAgB,UAAU,IAAI,kBAAkB,CACzD,SAAS,KAAK,UAAU,IAAI,kBAAkB,KACjC,CACX,SAAS,gBAAgB,UAAU,OAAO,kBAAkB,CAC5D,SAAS,KAAK,UAAU,OAAO,kBAAkB,GAGpD,CAAC,EAAW,CAAC,CACZ,EACF,OAAuB,EAAK,MAAO,CAAE,MAAO,CAC1C,GAAGC,EAAO,UACV,MAAO,GAA+B,MAEtC,OAAQ,IAAU,CAAG,IAAM,IAAK,GACjC,CAAE,SAAU,CACK,EAAK,MAAO,CAAE,UAAW,GAAGD,GAAe,YAAa,MAAOC,EAAO,YAAa,SAAU,CAC3F,EAAI,MAAO,CAAE,UAAW,GAAGD,GAAe,YAAa,SAAU,EAAW,CAAC,CAC7F,EAAkC,EAAI,GAAU,CAAE,GAAG,EAAQ,QAAO,mBAAoB,GAAM,CAAC,CAAG,KAClF,EAAI,MAAO,CAAE,UAAW,GAAGA,GAAe,YAAa,SAAU,EAAa,CAAC,CAChG,CAAE,CAAC,CACY,EAAI,MAAO,CAAE,UAAW,GAAGA,GAAe,YAAa,MAAOC,EAAO,YAAa,SAAU,EAAa,CAAC,CAC1H,IAAU,CAAG,KAAuB,EAAI,MAAO,CAAE,MAAOA,EAAO,qBAAsB,SAA0B,EAAI,EAAO,IAAK,CAAE,MAAO,CACtI,GAAGA,EAAO,YACV,EAAG,EACJ,CAAE,CAAC,CAAE,CAAC,CACP,CAAC,IAAU,EAAoB,EAAI,MAAO,CAAE,MAAOA,EAAO,qBAAsB,SAA0B,EAAI,GAAa,EAAE,CAAC,CAAE,CAAC,CAClI,CAAE,CAAC,CAEN,IAAM,MACA,EACK,GAEL,GAAe,EACV,GAAyB,GAE3B,sCAAsC,GAAkB,KAEjE,OAAuB,EAAK,MAAO,CAAE,MAAO,CAC1C,GAAGA,EAAO,UACV,MAAO,GAA+B,MAEvC,CAAE,SAAU,CACK,EAAI,MAAO,CAAE,UAAW,GAAGD,GAAe,YAAa,SAAU,EAAW,CAAC,CAC7F,EAAkC,EAAI,GAAU,CAAE,GAAG,EAAQ,QAAO,mBAAoB,GAAM,CAAC,CAAG,KAClF,EAAI,MAAO,CAAE,UAAW,GAAGA,GAAe,YAAa,SAAU,EAAa,CAAC,CAC/E,EAAI,MAAO,CAAE,UAAW,GAAGA,GAAe,YAAa,GAAI,EAAO,mBAAmB,UAAW,SAAU,GAAiB,EAAa,CAAC,CACzJ,CAAC,IAAU,EAAoB,EAAI,MAAO,CAAE,MAAO,CACjD,GAAGC,EAAO,gBACV,OAAQ,GAAW,CACpB,CAAE,SAA0B,EAAI,GAAa,CAAE,MAAO,CACrD,UAAW,WACZ,CAAE,CAAC,CAAE,CAAC,CACR,CAAE,CAAC,EA3FM,CAAC;OACND,GAAe;;;IAGlB,CAwFG,CACP,EAAoB,GAAuB,CACzC,UAAW,CACT,MAAO,MACP,KAAM,EAAY,kBACnB,CACD,YAAa,CACX,MAAO,SACP,KAAM,EAAY,kBACnB,CACD,YAAa,CACX,MAAO,UACP,KAAM,EAAY,kBACnB,CACD,cAAe,CACb,MAAO,SACP,YAAa;mCACb,KAAM,EAAY,kBACnB,CACD,4BAA6B,CAC3B,MAAO,gBACP,KAAM,EAAY,OAClB,eAAgB,GAChB,aAAc,IACd,KAAM,KACP,CACD,gBAAiB,CACf,MAAO,QACP,KAAM,EAAY,QAClB,aAAc,GACf,CACD,OAAQ,CACN,QAAS,CACP,qBACI,IAAoB,GAC1B,MAAO,KACP,KAAM,EAAY,OAClB,SAAU,CACR,MAAO,CACL,KAAM,EAAY,KAClB,MAAO,KACP,QAAS,CAAC,UAAW,WAAW,CAChC,aAAc,CAAC,KAAM,KAAK,CAC1B,aAAc,UACd,wBAAyB,GAC1B,CACD,UAAW,CACT,KAAM,EAAY,QAClB,MAAO,MACP,YAAa,kDACb,aAAc,GACf,CACD,mBAAoB,CAClB,MAAO,YACP,KAAM,EAAY,OAClB,SAAU,CACR,MAAO,CACL,MAAO,OACP,KAAM,EAAY,OAClB,aAAc,UACf,CACD,UAAW,CACT,MAAO,YACP,KAAM,EAAY,OAClB,aAAc,eACf,CACF,CACF,CACD,MAAO,CACL,MAAO,IACP,KAAM,EAAY,MAClB,QAAS,CACP,KAAM,EAAY,OAClB,SAAU,CACR,MAAO,CACL,MAAO,OACP,KAAM,EAAY,OAClB,aAAc,IACf,CACD,UAAW,CACT,MAAO,YACP,KAAM,EAAY,OACnB,CACF,CACF,CACD,aAAc,CAAC,CACb,MAAO,YACP,UAAW,WACZ,CAAE,CACD,MAAO,YACP,UAAW,WACZ,CAAE,CACD,MAAO,YACP,UAAW,WACZ,CAAC,CACH,CACD,QAAS,CACP,KAAM,EAAY,YAClB,MAAO,UACP,aAAc,EACd,UAAW,UACX,aAAc,CAAC,MAAO,aAAa,CACnC,UAAW,CAAC,aAAc,eAAgB,gBAAiB,cAAc,CACzE,YAAa,CAAC,IAAK,IAAK,IAAK,IAAI,CACjC,IAAK,EACN,CACD,eAAgB,CACd,KAAM,EAAY,QAClB,MAAO,WACP,aAAc,MACd,cAAe,QACf,aAAc,GACf,CACD,SAAU,CACR,QAAS,CACP,oBACI,IAAmB,GACzB,KAAM,EAAY,OAClB,aAAc,KACd,IAAK,GACL,KAAM,KACN,KAAM,EACN,eAAgB,GACjB,CACF,CACF,CACF,CAAC,sBCpU4I,IAAsB,YAAY,2BAAuC,MCCpE,SAAgBE,GAAqB,EAAU,CAAC,OAAoB,GAAY,EAAM,IAAM,CAAC,IAAM,EAAUC,GAAa,EAAM,EAAU,CAAO,EAAaC,EAAO,KAAK,CAAO,EAAS,EAAU,EAAa,CAAM,CAAC,sBAAoB,IAAuB,CAAkF,OAAjF,MAAc,CAAK,GAAkB,EAAmB,EAAU,EAAG,CAAC,EAAS,CAAC,CAAqB,EAAK,EAAU,CAAC,GAAG,EAAM,IAAIC,GAAU,EAAI,EAAa,CAAC,CAAC,EAAG,yBAD9gB,IAA8B,IAAyE,KAAgL,CAAMF,IAAc,EAAM,IAAY,EAAU,aAAgB,EAAM,MAAS,EAAM,oBACjZE,IAAW,GAAG,IAAe,GAAO,CAAC,EAAK,QAAQ,GAAK,CAAI,OAAO,GAAM,WAAY,EAAI,EAAM,CAAU,GAAK,OAAM,EAAI,QAAQ,IAAS,uBCD3F,CAC7C,GAAoC,GAAQ,CAChD,GAAM,CACJ,UAAA,GACE,IAAe,CACnB,OAAOC,GAAa,EAAM,iBAAiB,IAAQ,+BCLb,CAClC,GAAmB,GACnB,IAAU,EAGP,GAAa,EAAI,GAAK,GAAa,EAAO,SAAS,KAAK,CAFtD,QAEmE,SAExE,GAAgB,GAAQ,CAC5B,IAAM,EAAY,CAAC,EAAI,WAAW,IAAI,CACtC,GAAI,CACF,GAAM,CACJ,SACA,YACE,IAAI,IAAI,EAAY,EAAM,GAAG,EAAO,SAAS,SAAS,IAAM,CAChE,MAAO,GAAG,IAAS,SACL,CACd,MAAO,mCChByD,CAC9D,GAAgB,GAAU,CAC9B,GAAM,CACJ,MACA,QACA,aACA,cACA,WACA,GAAG,GACD,EACE,EAAW,EAAK,UAAY,WAClC,MAAO,CACL,GAAI,EAAM,IAAM,SAChB,KAAM,EACN,OAAQ,EAAM,GAAgB,EAAI,CAAG,QACrC,WACA,QAAS,EACT,GAAG,GAAgB,EAAU,EAAY,EAAY,CACrD,GAAG,EACJ,EAEG,IAAmB,EAAM,EAAY,IACpC,EAKE,CACL,YAAa,GAAc,EAAM,EAAY,CAC9C,CANQ,CACL,WAAY,GAAc,EAAM,EAAW,CAC5C,CAMC,IAAiB,EAAM,IAAS,CACpC,GAAI,GAAQ,OAAO,GAAS,SAC1B,MAAO,CACL,KAAM,EACN,OACD,EAIC,GAAc,GACb,EAGE,EAAI,WAAW,WAAW,CAFxB,0BC1CmC,IACY,KAC6C,KACD,KACzC,KACM,KACe,KACrB,CACvD,GAAkB,CACtB,UAAW,EACX,MAAO,UACP,SAAU,GACV,WAAY,IACb,CACK,GAAgB,GAAU,CAC9B,IAAM,EAAM,GAAiC,EAAM,IAAI,CACjD,CACJ,OACA,GAAG,GACD,GAAa,CACf,GAAG,EACH,IAAK,EAAM,UAAY,GAAQ,QAAU,EAAM,IAAM,EACtD,CAAC,CAWF,OAVuB,IAAU,EAAI,CAAC,GAAW,EAAM,IAAI,CAElC,EAAK,MAAO,CAAE,MAAO,CAC1C,QAAS,eACT,MAAO,EAAK,KAAO,OAAS,OAC7B,CAAE,SAAU,CACK,EAAI,GAAS,CAAE,GAAG,EAAM,SAAU,EAAM,CAAC,CACzC,EAAI,MAAO,CAAE,MAAO,GAAiB,SAAU,6BAA8B,CAAC,CAC/F,CAAE,CAAC,CAEiB,EAAI,GAAS,CAAE,GAAG,EAAM,SAAU,EAAM,CAAC,EAElE,EAAoB,GAAc,CAChC,QAAS,CACP,KAAM,EAAY,KAClB,MAAO,KACP,QAAS,CAAC,GAAc,QAAS,GAAc,UAAW,GAAc,SAAU,GAAc,OAAQ,GAAc,SAAS,CAC/H,aAAc,CAAC,UAAW,YAAa,WAAY,SAAU,WAAW,CACzE,CACD,MAAO,CACL,KAAM,EAAY,KAClB,MAAO,KACP,QAAS,CAAC,GAAY,MAAO,GAAY,KAAK,CAC9C,aAAc,CAAC,QAAS,OAAO,CAC/B,aAAc,GAAY,MAC1B,wBAAyB,GAC1B,CACD,gBAAiB,CACf,QAAS,CACP,aACI,IAAY,GAAc,OAChC,KAAM,EAAY,MAClB,MAAO,QACP,SAAU,GACX,CACD,MAAO,CACL,QAAS,CACP,aACI,IAAY,GAAc,OAChC,KAAM,EAAY,MAClB,MAAO,SACP,SAAU,GACX,CACD,KAAM,CACJ,KAAM,EAAY,KAClB,MAAO,KACP,QAAS,CAAC,EAAW,MAAO,EAAW,OAAQ,EAAW,MAAO,EAAW,QAAQ,CACpF,aAAc,CAAC,QAAS,SAAU,QAAS,SAAS,CACpD,aAAc,EAAW,OAC1B,CACD,KAAM,CACJ,KAAM,EAAY,QAClB,MAAO,SACP,aAAc,GACf,CACD,KAAM,CACJ,KAAM,EAAY,OAClB,MAAO,MACP,aAAc,MACf,CACD,WAAY,CACV,QAAS,CACP,iBACI,EAAQ,EACd,KAAM,EAAY,KAClB,MAAO,SACP,QAAS,CAAC,IAAK,GAAG,GAAG,GAAoB,CACzC,aAAc,CAAC,SAAU,GAAG,GAAoB,CACjD,CACD,YAAa,CACX,QAAS,CACP,gBACI,EAAQ,EACd,KAAM,EAAY,KAClB,MAAO,SACP,QAAS,CAAC,IAAK,GAAG,GAAG,GAAqB,CAC1C,aAAc,CAAC,SAAU,GAAG,GAAqB,CAClD,CACD,SAAU,CACR,KAAM,EAAY,QAClB,MAAO,UACP,aAAc,GACf,CACD,IAAK,CACH,QAAS,CACP,aACI,IAAY,GAAc,SAChC,KAAM,EAAY,KAClB,MAAO,MACP,YAAa,iCACd,CACD,QAAS,CACP,KAAM,EAAY,KAClB,MAAO,SACP,QAAS,CAAC,GAAQ,QAAS,GAAQ,QAAQ,CAC3C,aAAc,CAAC,KAAM,UAAU,CAC/B,aAAc,GAAQ,QACtB,YAAa,oDACd,CACD,MAAO,CACL,QAAS,CACP,aACI,IAAY,GAAc,SAChC,KAAM,EAAY,aACnB,CACF,CAAC,sBChIqG,IAAa,YAAY,YAE9G,MCDyiB,SAAgB,GAAsB,EAAU,CAAC,MAAO,IAAO,CAAC,IAAM,EAAUC,GAAa,EAAM,EAAU,CAAM,CAAC,uBAAqB,IAAwB,CAAO,MAAgB,CAAC,EAAoB,EAAU,EAAG,OAAoB,EAAK,EAAU,CAAC,GAAG,EAAM,MAAM,EAAY,CAAC,uBAD1yB,IAA8B,IAAyE,KAAgL,KAA2G,CAAMA,IAAc,EAAM,IAAY,EAAU,aAAgB,EAAM,MAAS,EAAM,uBCCqjB,SAASC,GAAqB,EAAU,GAAG,EAAS,CAAC,IAAM,EAAc,EAAE,CAAsF,OAArF,GAAU,QAAQ,GAAS,GAAS,OAAO,OAAO,EAAc,EAAU,GAAS,CAAC,CAAQ,0EAAtqC,IAA6O,IAAkE,IAA4B,KAAoI,KAAgI,CAAMC,GAAU,GAASC,GAAK,CAAO,GAAoC,GAA6B,EAAO,EAAE,CAAC,OAAO,YAAY,SAAS,GAAsB,QAAQ,YAAY,CAAC,CAAOC,GAAW,CAAC,YAAY,YAAY,YAAY,YAAY,CAAOC,GAAkB,eAAqBC,GAAkB,CAAC,UAAU,mBAAmB,UAAU,kBAAkB,UAAU,mBAAmB,UAAU,mBAAmB,CAAwa,IAAoB,EAAM,IAAuB,EAAM,MAAM,qBAA6BC,GAAoB,GAAO,CAAC,GAAG,OAAO,GAAQ,SAAS,OAAO,EAAU,UAAO,SAAS,EAAM,CAAkB,OAAO,KAAK,IAAI,EAAE,EAAM,CAAC,MAAaC,GAAY,CAAC,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,KAAK,SAAS,CAAO,GAAM,GAAW,MAAM,QAAQ,EAAM,CAAQ,EAAM,OAAO,EAAS,GAA2B,MAAM,IAAQ,GAAW,IAAqB,EAAM,EAAa,CAAC,eAAqB,EAAM,EAAU,MAAcC,GAAkB,GAAW,OAAO,GAAQ,UAAU,GAAc,OAAO,EAAM,KAAM,SAAiB,EAAc,OAAO,GAAQ,SAAS,CAAC,IAAI,EAAM,CAAC,IAAA,GAAkBC,IAAY,CAAC,QAAM,cAAY,CAAC,IAAM,EAAOC,EAAiB,EAAoB,CAAO,EAAW,GAAO,EAAO,WAAiB,EAAaC,OAAmB,CAAC,GAAG,EAAO,aAAW,EAAE,CAAC,KAAK,UAAU,EAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,EAAoB,SAAS,CAAC,MAAM,EAAsB,WAAS,CAAC,EAASC,GAAS,EAAO,OAAOC,EAAe,CAAOC,GAAwB,CAAC,UAAU,YAAY,WAAW,YAAY,UAAU,YAAY,WAAW,YAAY,CAAOC,IAAU,CAAC,EAAA,EAAE,KAAG,KAAG,aAAW,eAAa,SAAO,KAAG,UAAQ,MAAI,UAAQ,UAAQ,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,UAAU,GAAI,EAAM,WAAW,CAAC,IAAI,GAAG,YAAY,KAAK,WAAW,KAAK,IAAI,6FAA6F,OAAO,uNAAuN,CAAC,UAAU,GAAI,EAAM,WAAW,qBAAqB,UAAU,GAAY,EAAM,WAAW,4BAA4B,UAAU,GAAS,EAAM,WAAW,kBAAkB,UAAU,GAAK,EAAM,UAAU,UAAU,GAAS,EAAM,WAAW,mBAAmB,QAAQD,GAAwB,EAAM,UAAU,EAAM,SAAS,YAAY,UAAU,GAAc,EAAM,WAAW,QAAQ,UAAUE,GAAG,EAAM,WAAW,GAAK,UAAU,GAAS,EAAM,WAAW,GAAK,EAASC,IAAwB,EAAM,IAAe,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAAC,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAWxsH,GAAgB,EAXwtH,EAAiB,SAAS,EAAM,EAAI,CAAC,IAAM,EAAYC,EAAO,KAAK,CAAO,EAAW,GAAK,EAAkB,EAAgBC,GAAa,CAAM,CAAC,eAAa,aAAW,IAAe,CAAyB,IAAsB,CAAC,GAAK,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,YAAU,YAAU,YAAU,YAAU,YAAU,YAAU,YAAU,YAAU,YAAU,GAAG,GAAWJ,GAAS,EAAM,CAAM,CAAC,cAAY,WAAA,GAAW,sBAAoB,kBAAgB,iBAAe,aAAU,mBAAgB,aAAW,aAAU,GAAgB,CAAC,WAAA,GAAW,eAAe,YAAY,IAAI,EAAW,UAAQ,kBAAA,GAAkB,CAAC,CAAO,EAAiBE,GAAuB,EAAM,GAAS,CAAO,EAAsB,EAAE,CAAO,GAAQX,GAAoB,GAAmB,EAAU,EAAa,CAAC,CAAO,GAAkB,EAAGF,GAAkB,GAAG,EAAsB,CAAO,GAASE,GAAoB,GAAoB,GAAM,EAAU,CAAC,EAAa,CAAC,YAAU,CAAC,CAAC,CAAO,GAAQ,GAAM,EAAU,CAAC,OAAoB,EAAK,EAAY,CAAC,GAAG,GAAU,EAAgB,SAAsB,EAAKM,GAAS,CAAC,QAAQ,GAAS,QAAQ,GAAM,SAAsB,EAAKH,GAAW,CAAC,MAAMF,GAAY,SAAsB,EAAK,GAAK,CAAC,KAAK,EAAU,YAAY,GAAK,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAM,GAAoC,CAAC,GAAG,EAAU,GAAG,EAAgB,UAAU,GAAG,EAAG,GAAkB,iBAAiBa,EAAUC,GAAW,CAAC,gBAAgB,mBAAmB,WAA4B,mBAAiB,SAAS,YAAY,IAAI,EAAW,MAAM,CAAC,YAAY,GAAQ,gBAAgB,EAAU,uBAAuB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,GAAG,EAAM,CAAC,SAAS,CAAC,UAAU,CAAC,uBAAuB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC,UAAU,CAAC,uBAAuB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC,CAAC,GAAGrB,GAAqB,CAAC,UAAU,CAAC,mBAAmB,UAAU,CAAC,UAAU,CAAC,mBAAmB,UAAU,CAAC,UAAU,CAAC,mBAAmB,WAAW,CAAC,CAAC,EAAY,EAAe,CAAC,SAAS,CAAC,IAAY,IAAoB,EAAK,EAAO,IAAI,CAAC,UAAU,iBAAiB,mBAAmB,aAA8B,mBAAiB,SAAS,YAAY,MAAM,CAAC,YAAY,GAAS,gBAAgB,EAAU,CAAC,SAAsB,EAAKsB,GAAM,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,MAAM,YAAY,KAAK,WAAW,KAAK,MAAM,OAAO,GAAGd,GAAkB,EAAU,CAAK,UAAU,SAAS,UAAU,SAAU,CAAC,UAAU,gBAAgB,mBAAmB,OAAwB,mBAAiB,SAAS,YAAY,GAAGR,GAAqB,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,MAAM,YAAY,KAAK,WAAW,KAAK,MAAM,OAAO,GAAGQ,GAAkB,EAAU,CAAK,UAAU,SAAS,UAAU,SAAU,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,MAAM,YAAY,KAAK,WAAW,KAAK,MAAM,OAAO,GAAGA,GAAkB,EAAU,CAAK,UAAU,SAAS,UAAU,SAAU,CAAC,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAC,CAAC,CAAc,EAAM,EAAO,IAAI,CAAC,UAAU,gBAAgB,mBAAmB,OAAwB,mBAAiB,SAAS,YAAY,SAAS,CAAc,EAAM,EAAO,IAAI,CAAC,UAAU,iBAAkC,mBAAiB,SAAS,YAAY,SAAS,CAAc,EAAKe,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKV,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,uEAAuE,uBAAuB,MAAM,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,MAAM,CAAC,6BAA6B,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,2BAA2B,mBAAmB,gCAAgC,YAAY,CAAC,KAAK,EAAU,SAAS,CAAC,UAAU,CAAC,qBAAqB,qBAAqB,CAAC,UAAU,CAAC,qBAAqB,qBAAqB,CAAC,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,GAAGb,GAAqB,CAAC,UAAU,CAAC,SAAsB,EAAKa,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,uEAAuE,uBAAuB,MAAM,sBAAsB,8CAA8C,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,uEAAuE,uBAAuB,MAAM,sBAAsB,8CAA8C,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAC,IAAY,IAAoB,EAAKU,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKV,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,qEAAqE,qBAAqB,OAAO,0BAA0B,UAAU,uBAAuB,QAAQ,sBAAsB,8FAA8F,CAAC,SAAS,mBAAmB,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,MAAM,CAAC,4BAA4B,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,qEAAqE,2BAA2B,mBAAmB,gCAAgC,YAAY,CAAC,KAAK,EAAU,SAAS,CAAC,UAAU,CAAC,qBAAqB,wEAAwE,CAAC,UAAU,CAAC,qBAAqB,wEAAwE,CAAC,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,GAAGb,GAAqB,CAAC,UAAU,CAAC,SAAsB,EAAKa,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,qEAAqE,qBAAqB,OAAO,0BAA0B,UAAU,uBAAuB,QAAQ,sBAAsB,iGAAiG,CAAC,SAAS,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,qEAAqE,qBAAqB,OAAO,0BAA0B,UAAU,uBAAuB,QAAQ,sBAAsB,iGAAiG,CAAC,SAAS,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,qEAAqE,qBAAqB,OAAO,0BAA0B,UAAU,uBAAuB,QAAQ,sBAAsB,8FAA8F,CAAC,SAAS,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAU,IAAoB,EAAK,GAA0B,CAAC,SAAsB,EAAK,GAA8B,CAAC,UAAU,2BAA2B,iBAAiB,GAAK,iBAAiB,GAAsB,mBAAiB,SAAS,sBAAsB,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAKX,GAAK,CAAC,KAAK,GAAM,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,KAAK,GAAG,KAAK,eAAe,OAAO,UAAU,MAAM,OAAO,GAAGF,GAAqB,CAAC,UAAU,CAAC,MAAM,qBAAqB,KAAK,GAAG,OAAO,OAAO,CAAC,UAAU,CAAC,MAAM,qBAAqB,CAAC,UAAU,CAAC,KAAK,GAAG,OAAO,OAAO,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAW,CAAC,kFAAkF,gFAAgF,mWAAmW,gSAAgS,gYAAgY,uRAAuR,0RAA0R,gJAAgJ,qHAAqH,kHAAkH,qHAAqH,+GAA+G,iEAAiE,CAW5lc,eAAe,IAAgB,GAAgB,GAAgB,YAAY,uBAAuB,GAAgB,aAAa,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,EAAoB,GAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,YAAY,YAAY,YAAY,CAAC,aAAa,CAAC,WAAW,WAAW,UAAU,UAAU,CAAC,MAAM,UAAU,KAAK,EAAY,KAAK,CAAC,UAAU,CAAC,aAAa,QAAQ,MAAM,eAAe,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,aAAa,mBAAmB,gBAAgB,GAAK,MAAM,UAAU,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,aAAa,4BAA4B,MAAM,aAAa,KAAK,EAAY,MAAM,CAAC,UAAU,CAAC,aAAa,GAAK,MAAM,OAAO,KAAK,EAAY,QAAQ,CAAC,UAAU,CAAC,MAAM,MAAM,KAAK,EAAY,KAAK,CAAC,UAAU,CAAC,aAAa,qBAAqB,MAAM,SAAS,KAAK,EAAY,MAAM,CAAC,UAAU,CAAC,wBAAwB,yYAAyY,gBAAgB,CAAC,IAAI,GAAG,eAAe,yYAAyY,CAAC,MAAM,UAAU,KAAK,EAAY,gBAAgB,CAAC,UAAU,CAAC,aAAa,GAAK,MAAM,UAAU,KAAK,EAAY,QAAQ,CAAC,UAAU,CAAC,aAAa,kBAAkB,MAAM,WAAW,KAAK,EAAY,QAAQ,CAAC,CAAC,CAAC,GAAS,GAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,cAAc,sBAAsB,OAAO,SAAS,MAAM,SAAS,aAAa,aAAa,IAAI,yEAAyE,OAAO,MAAM,CAAC,CAAC,cAAc,qBAAqB,OAAO,SAAS,MAAM,SAAS,aAAa,aAAa,IAAI,uEAAuE,OAAO,MAAM,CAAC,CAAC,CAAC,GAAGC,GAAU,CAAC,CAAC,6BAA6B,GAAK,CAAC,ICZ7+D,SAAS,GAAoB,EAAE,EAAE,CAAC,OAAO,GAAauB,EAAE,CAACA,EAAEC,GAAK,EAAED,EAAE,OAAOE,EAAE,EAAEF,EAAsH,SAAS,GAAW,EAAE,EAAE,CAAC,IAAMG,EAAEH,EAAEA,EAAE,OAAO,GAAG,IAAI,IAAII,EAAE,EAAEA,GAAGF,EAAE,IAAI,CAAC,IAAMG,EAAE,GAAS,EAAEH,EAAEE,EAAE,CAAC,EAAE,KAAKE,GAAIH,EAAE,EAAEE,EAAE,CAAC,EAAE,SAAS,GAAc,EAAE,CAAC,IAAMH,EAAE,CAAC,EAAE,CAAmB,OAAlB,GAAWA,EAAEF,EAAE,EAAE,CAAQE,EAAE,SAAS,GAAY,EAAE,EAAE,GAAcF,EAAE,OAAO,CAAC,EAAE,GAAW,CAAC,IAAMI,EAAEJ,EAAE,OAAaK,EAAED,EAAEF,EAAE,OAA4B,OAArB,EAAE,GAAG,GAAWA,EAAEG,EAAE,CAAQ,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAED,EAAE,GAASC,IAAEH,EAAE,EAAE,IAAb,KAAsB,IAAIK,EAAEC,GAAM,EAAE,EAAE,GAASN,EAAE,GAAGA,EAAE,EAAE,GAAGG,EAAE,CAAC,CAAyC,MAAP,GAAzB,GAAoBF,EAAE,EAAE,CAAKI,EAAE,CAAQD,GAAIN,EAAE,GAAGA,EAAE,EAAE,GAAGO,EAAE,EAM3gC,SAAS,GAAkB,EAAE,EAAE,CAAC,OAAOL,EAAK,IAAIA,EAAPF,EAAU,yCAN4EQ,IAAO,EAAE,EAAE,IAAI,KAAK,IAAI,KAAK,IAAIL,EAAEH,EAAE,CAACE,EAAE,CAAuE,GAAS,GAAc,OAAOF,GAAlB,SAA0B,GAAa,GAAG,MAAM,QAAQA,EAAE,EAAE,CAAC,GAASA,EAAE,GAAG,CAAOC,IAAM,EAAE,EAAE,IAAI,CAAC,IAAMG,EAAEF,EAAEF,EAAE,QAAQG,EAAEH,GAAGI,EAAEA,GAAGA,EAAEJ,GAA0FM,IAAK,EAAE,EAAE,IAAI,CAACH,EAAEH,EAAEG,EAAED,EAAEF,EAA0B,GAAW,GAAGA,EAAQ,IAAU,EAAE,EAAE,IAAIE,EAAEF,IAAI,EAAE,GAAGG,EAAEH,IAAIE,EAAEF,GAAgoB,GAAS,GAAc,OAAOA,GAAlB,2BCArpC,mBCAwH,ICAokB,SAAS,GAAO,EAAE,EAAE,CAAC,IAAIoB,EAAE,EAAE,CAAC,IAAI,IAAIC,KAAKC,EAAE,OAAO,UAAU,eAAe,KAAKA,EAAED,EAAE,EAAEE,EAAE,QAAQF,EAAE,CAAC,IAAI,EAAEA,GAAGC,EAAED,IAAI,GAASC,GAAN,MAAsB,OAAO,OAAO,uBAA3B,WAAiD,CAAC,IAAIE,EAAE,EAAE,IAAI,EAAE,OAAO,sBAAsBF,EAAE,CAACE,EAAEH,EAAE,OAAO,IAAI,EAAE,QAAQA,EAAEG,GAAG,CAAC,GAAG,OAAO,UAAU,qBAAqB,KAAKF,EAAED,EAAEG,GAAG,GAAG,EAAEH,EAAEG,IAAIF,EAAED,EAAEG,KAAK,OAAOJ,mCCAhkCK,GAAE,EAAE,CAAC,OAAO,eAAeA,GAAE,aAAa,CAAC,MAAM,GAAK,CAAC,CAAC,GAAE,QAAQ,UAAU,GAAG,GAAE,UAAU,UAAU,GAAWA,GAAE,WAAaA,GAAE,QAAUA,GAAE,4BCAlF,ICAkmK,SAAS,GAAgB,EAAE,EAAE,CAAkL,OAA7J,OAAOqB,GAAlB,SAAuBC,GAAaA,EAAED,KAAkB,EAAEA,GAAG,SAAS,iBAAiBA,EAAE,EAAC,EAAEC,EAAED,IAAQ,EAAE,SAAS,iBAAiBA,EAAE,CAAM,aAAa,UAAU,EAAE,CAACA,EAAE,EAAS,MAAM,KAAKA,GAAG,EAAE,CAAC,CAA2vK,SAAS,GAAS,EAAE,EAAE,CAAC,KAAKD,EAAE,OAAOG,EAAE,OAAOE,EAAE,OAAO,EAAE,CAAC,CAAC,GAAiB,OAAO,qBAArB,IAA0C,UAAU,GAAG,IAAMC,EAAE,GAAgBL,EAAE,CAAOM,EAAE,IAAI,QAA6PH,EAAE,IAAI,qBAAhO,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,IAAMJ,EAAEO,EAAE,IAAIN,EAAE,OAAO,CAAC,GAAGA,EAAE,iBAAiB,EAAQD,KAAMC,EAAE,eAAe,CAAC,IAAMD,EAAEE,EAAED,EAAE,CAAc,OAAOD,GAApB,WAAsBO,EAAE,IAAIN,EAAE,OAAOD,EAAE,CAACI,EAAE,UAAUH,EAAE,OAAO,MAASD,IAAG,EAAEC,EAAE,CAAC,EAAE,OAAOA,EAAE,OAAO,IAAI,EAAwD,CAAC,KAAKD,EAAE,WAAWG,EAAE,UAAqB,OAAOE,GAAlB,SAAoBA,EAAE,GAAEA,GAAG,CAAC,CAA8B,OAA7B,EAAE,SAAS,GAAGD,EAAE,QAAQH,EAAE,EAAE,KAAWG,EAAE,YAAY,CAA2B,SAAS,GAAe,EAAE,EAAE,CAAC,GAAGF,EAAE,CAAC,GAAK,CAAC,WAAWD,EAAE,UAAUD,GAAGE,EAAE,GAAG,MAAM,CAAC,MAAMD,EAAE,OAAOD,EAAE,CAAC,OAAOC,aAAa,YAAY,YAAYA,EAAEA,EAAE,SAAS,CAAC,CAAC,MAAMA,EAAE,YAAY,OAAOA,EAAE,aAAa,CAAC,SAAS,GAAa,CAAC,OAAOA,EAAE,YAAYC,EAAE,cAAcF,GAAG,CAAC,IAAIG,GAAU,EAAEa,GAAE,IAAIf,EAAE,GAAlB,MAAuCE,EAAE,SAAS,GAAG,CAAC,EAAE,CAAC,OAAOF,EAAE,YAAYC,EAAE,IAAI,MAAM,CAAC,OAAO,GAAeD,EAAED,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,GAAU,EAAE,CAAC,EAAE,QAAQ,GAAa,CAAC,SAAS,IAAsB,CAAe,OAAO,eAArB,MAAsC,GAAE,IAAI,eAAe,GAAU,EAAE,SAAS,GAAc,EAAE,EAAE,CAAC,IAAG,IAAsB,CAAC,IAAMA,EAAE,GAAgBC,EAAE,CAAgH,OAA/G,EAAE,SAAS,GAAG,CAAC,IAAID,EAAEgB,GAAE,IAAIf,EAAE,CAAKD,IAAG,EAAE,IAAI,IAAI,GAAE,IAAIC,EAAED,EAAE,EAAC,EAAE,IAAIE,EAAE,CAAQ,IAAuB,QAAQD,EAAE,GAAG,KAAW,CAAC,EAAE,SAAS,GAAG,CAAC,IAAMD,EAAEgB,GAAE,IAAIf,EAAE,CAAQD,GAAuB,OAAOE,EAAE,CAASF,GAAP,MAA4BA,EAAE,MAAe,IAAP,MAA4B,GAAE,UAAUC,EAAE,GAAI,EAAwB,SAAS,IAA2B,CAAC,OAAM,CAAC,IAAMA,EAAE,CAAC,MAAM,EAAO,WAAW,OAAO,EAAO,YAAY,CAAOC,EAAE,CAAC,OAAO,EAAO,KAAKD,EAAE,YAAYA,EAAE,CAAC,GAAE,SAAS,GAAGA,EAAEC,EAAE,EAAE,EAAE,EAAO,iBAAiB,SAAS,GAAE,CAAC,SAAS,GAAa,EAAE,CAAyC,OAAxC,GAAE,IAAID,EAAE,CAAC,IAAG,IAA2B,KAAW,CAAC,GAAE,OAAOA,EAAE,CAAC,CAAC,GAAE,MAAM,KAAI,GAAE,IAAK,KAAI,SAAS,GAAO,EAAE,EAAE,CAAC,OAAmB,OAAOA,GAApB,WAAsB,GAAaA,EAAE,CAAC,GAAcA,EAAEC,EAAE,CAA8S,SAAS,GAAe,EAAE,EAAE,EAAE,EAAE,CAAC,IAAMG,EAAEL,EAAEE,GAAQ,CAAC,OAAOI,EAAE,SAASC,GAAGU,GAAEf,GAASE,EAAEC,EAAE,QAAcI,EAAET,EAAE,KAAK,EAAE,QAAQC,EAAE,SAASM,GAAG,EAAE,aAAaN,EAAE,SAASK,GAAGL,EAAE,SAASK,GAAG,EAAE,OAAO,OAAO,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,OAAO,GAAGD,EAAE,aAAa,EAAE,SAASa,GAAE,EAAEb,EAAE,aAAaA,EAAE,QAAQ,CAAC,IAAMK,EAAEP,EAAEM,EAAE,EAAE,SAASC,EAAES,GAAE,EAAEC,GAAEf,EAAE,QAAQD,EAAEM,EAAE,CAAC,SAAS,GAAiB,EAAE,EAAE,EAAE,CAAC,GAAeT,EAAE,IAAIC,EAAEF,EAAE,CAAC,GAAeC,EAAE,IAAIC,EAAEF,EAAE,CAAC,EAAE,KAAKA,EAAE,SAAS,GAAU,EAAE,EAAE,CAAC,IAAIA,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAKG,EAAEF,EAAE,KAAME,GAAGA,IAAID,GAAE,GAAGC,aAAa,YAAa,EAAE,GAAGA,EAAE,WAAW,EAAE,GAAGA,EAAE,UAAU,EAAEA,EAAE,qBAAqBA,aAAa,oBAAoB,YAAYA,EAAE,CAAC,GAAK,CAAC,IAAIF,EAAE,KAAKC,GAAGC,EAAE,SAAS,CAAe,IAAd,EAAE,GAAGD,EAAE,EAAE,GAAGD,EAAQE,GAAWA,EAAE,UAAV,OAAkB,EAAEA,EAAE,WAAW,OAAOH,EAAyH,SAAS,GAAY,EAAE,EAAE,EAAE,EAAE,CAAC,IAAIG,EAAE,EAA0B,GAAfkB,GAAEpB,KAAX,IAAK,KAAW,EAAEoB,GAAEpB,IAAOa,GAAEb,EAAE,CAAC,CAAC,IAAMC,EAAE,WAAWD,EAAE,CAAC,EAAE,SAAS,KAAK,CAAC,EAAEC,EAAED,EAAE,SAAS,IAAI,CAAC,EAAEC,EAAE,IAAID,EAAE,SAAS,KAAK,CAAC,EAAEC,EAAE,IAAI,SAAS,gBAAgB,YAAYD,EAAE,SAAS,KAAK,CAAC,EAAEC,EAAE,IAAI,SAAS,gBAAgB,aAAa,EAAEA,EAAgB,OAAd,GAAED,EAAE,GAAG,EAAEC,EAAED,GAAUD,EAAEG,EAAgB,SAAS,GAAc,EAAE,EAAE,EAAE,EAAE,CAAC,IAAIE,EAAE,MAAM,QAAQJ,EAAE,CAACA,EAAE,GAAMK,EAAE,EAAMF,EAAE,EAAuI,OAAlIG,GAAEN,EAAE,CAAC,EAAE,CAACA,EAAEA,EAAE,CAASa,GAAEb,EAAE,GAAE,EAAEA,EAAE,MAAM,CAAC,EAAEA,EAAE,SAAS,IAAI,CAACA,EAAE,MAAM,IAAI,CAAC,CAACA,EAAEoB,GAAEpB,GAAGA,EAAE,IAAI,EAAC,EAAE,GAAYI,EAAE,GAAGL,EAAEG,EAAE,CAAC,EAAE,GAAYE,EAAE,GAAGH,EAAE,CAAQI,EAAEF,EAAqB,SAAS,GAAe,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,OAAOD,EAAEmB,GAAE,KAAKtB,EAAO,CAAC,OAAOK,EAAEJ,EAAE,KAAKK,EAAE,KAAKN,EAAQO,EAAQD,IAAN,IAAQ,SAAS,QAAcF,EAAEC,IAAIJ,EAAiB,GAAf,GAAUI,EAAEJ,EAAE,CAAUQ,EAAEJ,IAAIJ,EAAE,CAAC,MAAMA,EAAE,YAAY,OAAOA,EAAE,aAAa,CAAC,CAAC,MAAMI,EAAE,YAAY,OAAOA,EAAE,aAAa,CAAOK,EAAE,CAAC,MAAMT,EAAE,YAAY,OAAOA,EAAE,aAAa,CAAC,EAAEK,GAAG,OAAO,OAAO,EAAE,IAAI,EAAE,CAACJ,EAAEI,GAAG,YAAkBK,EAAER,EAAE,OAAO,IAAI,IAAIF,EAAE,EAAEA,EAAEU,EAAE,IAAI,CAAC,IAAMX,EAAE,GAAcG,EAAEF,GAAGS,EAAEH,GAAGE,EAAEF,GAAGH,EAAEE,GAAG,CAAC,GAAGN,IAAIE,EAAEI,GAAG,oBAAoBL,KAAK,EAAE,IAAM,EAAEK,GAAG,OAAOL,GAAGD,EAAK,IAAG,EAAEM,GAAG,YAAYiB,GAAER,GAAEJ,EAAE,CAACT,EAAEI,GAAG,OAAO,CAAC,EAAEA,GAAG,oBAAoB,CAAC,GAAGJ,EAAEI,GAAG,OAAO,EAAC,EAAEA,GAAG,SAASJ,EAAEI,GAAG,YAAYJ,EAAEI,GAAG,QAAQ,CAAC,SAAS,GAAQ,EAAE,EAAEL,EAAE,EAAE,CAAuC,GAAtC,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,EAAKC,IAAID,EAAE,CAAC,IAAIE,EAAED,EAAE,KAAMC,GAAGA,GAAGF,GAAG,EAAE,EAAE,cAAcE,EAAE,WAAW,EAAE,EAAE,cAAcA,EAAE,UAAU,EAAEA,EAAE,aAAc,EAAE,EAAE,aAAaD,IAAID,EAAEC,EAAE,YAAYA,EAAE,YAAY,EAAE,EAAE,aAAaA,IAAID,EAAEC,EAAE,aAAaA,EAAE,aAAa,EAAE,EAAE,gBAAgBD,EAAE,YAAY,EAAE,EAAE,gBAAgBA,EAAE,aAAa,SAAS,GAAsB,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,IAAMI,EAAEF,EAAE,MAAM,IAAI,MAAM,CAAC,YAAY,GAAQF,EAAEE,EAAE,OAAOH,EAAE,CAAC,OAAO,GAAG,CAAC,GAAiBC,EAAED,EAAEE,EAAE,EAAEC,EAAE,QAAQA,EAAE,SAAS,GAAeF,EAAED,EAAEG,EAAE,EAAE,OAAoB,OAAOD,GAApB,eAA0BA,EAAEF,EAAE,CAAC,GAAeE,EAAEF,EAAEK,GAAG,CAAC,CAAC,SAAS,GAAe,EAAE,EAAE,CAAqQ,OAApQ,EAAE,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC,OAAOL,KAAK,CAAC,IAAIG,EAAEE,EAAE,GAAGJ,EAAE,eAAgB,IAAI,EAAE,OAAOC,IAAG,EAAE,eAAe,EAAE,KAAK,CAAC,IAAMA,EAAE,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,OAAO,WAAkB,GAAU,EAAED,EAAE,SAA6B,eAAnD,MAAoFI,EAAE,KAAKF,EAAED,EAAE,IAAI,KAAW,CAAC,EAAE,YAAYF,EAAE,UAAuI,SAAS,GAAO,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,UAAUA,EAAE,SAAS,iBAAiBE,EAAEC,EAAEqB,GAAEtB,EAAE,CAAC,YAAY,CAAC,CAAC,IAAIG,EAAE,GAAG,IAAIL,EAAE,CAAKK,IAAG,EAAE,IAAI,IAAI,GAAG,IAAIL,EAAEK,EAAE,EAA4B,IAAME,EAAE,GAAsBP,EAAEC,EAAnD,IAAkB,CAAqCE,EAAE,CAAU,GAAT,EAAE,IAAII,EAAE,CAAI,CAACkB,GAAG,IAAIzB,EAAE,CAAC,CAAC,IAAM,MAAa,CAAC,IAAMC,EAAE,YAAY,KAAK,CAAC,IAAI,IAAMA,KAAKI,EAAE,EAAE,SAAS,CAAC,IAAI,IAAMH,KAAKG,EAAE,EAAE,OAAOJ,EAAE,CAAC,IAAI,IAAMA,KAAKI,EAAE,EAAE,QAAQ,EAAE,GAAG,IAAIL,EAAE,EAAS,CAAC,IAAMC,EAAE,GAAeD,EAAE,CAAC,EAAO,iBAAiB,SAAS,EAAS,CAAC,QAAQ,GAAK,CAAC,CAAC,IAAI,SAAS,iBAAiB,GAAG,IAAIA,EAAE,GAAOA,EAAE,EAAS,CAAC,CAAC,EAAE,iBAAiB,SAAS,EAAS,CAAC,QAAQ,GAAK,CAAC,CAAC,IAAMI,EAAEqB,GAAG,IAAIzB,EAAE,CAAOS,EAAE,sBAAsBL,EAAE,CAAC,UAAU,CAAC,IAAIF,EAAe,OAAOD,GAApB,YAAuBA,EAAE,MAAM,CAAC,qBAAqBQ,EAAE,CAAC,IAAMN,EAAE,GAAG,IAAIH,EAAE,CAA0B,GAAtB,CAACG,IAAS,EAAE,OAAOI,EAAE,CAAIJ,EAAE,MAAK,OAAO,IAAME,EAAEoB,GAAG,IAAIzB,EAAE,CAAC,GAAG,OAAOA,EAAE,CAAIK,IAAG,GAAeL,EAAE,CAAC,oBAAoB,SAASK,EAAE,EAAS,EAAE,GAAG,IAAIL,EAAE,GAAnB,MAAwCE,GAAG,CAAC,EAAO,oBAAoB,SAASG,EAAE,GAA+2B,SAAS,GAAqB,EAAE,EAAE,EAAE,CAAC,EAAE,cAAc,IAAI,YAAYH,EAAE,CAAC,OAAO,CAAC,cAAcF,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,GAAkB,EAAE,EAAE,EAAE,CAAC,EAAE,cAAc,IAAI,YAAYE,EAAE,CAAC,OAAO,CAAC,cAAcF,EAAE,CAAC,CAAC,CAAC,6GAAvte,IAAI,IAAMC,aAAzqE,KAAwE,KAA+B,KAAuC,KAA+G,CAA+L,GAAE,CAAC,GAAG,IAAI,IAAI,IAAI,CAAO,GAAE,CAAC,YAAY,QAAQ,SAAS,OAAO,CAA8D,GAAE,CAAC,OAAO,UAAU,aAAa,OAAO,cAAc,GAAGA,EAAE,MAAM,CAAO,GAAE,CAAC,UAAU,CAAC,OAAO,sBAAsB,aAAa,MAAM,cAAc,GAAGA,EAAE,KAAK,CAAC,OAAO,GAAE,MAAM,CAAC,OAAO,WAAW,aAAa,EAAE,cAAcC,GAAE,CAAC,KAAK,GAAE,CAAO,GAAE,IAAI,IAAU,GAAkB,GAAG,YAAYD,IAAU,GAAE,CAAC,IAAI,IAAI,IAAI,CAAC,GAAE,SAAS,GAAG,CAAC,GAAE,SAAS,GAAG,CAAC,GAAE,KAAKA,EAAEC,EAAE,CAAC,GAAE,IAAI,GAAkBD,EAAEC,EAAE,CAAC,GAAED,GAAG,GAAG,GAAG,CAAsE,IAAI,IAAI,GAAE,CAAguB,GAAc,GAAG,SAAS,cAAc,MAAM,CAAC,QAAQA,EAAE,CAAC,SAAS,KAAK,CAAC,CAAO,GAAE,CAAC,wBAAsC,OAAO,IAArB,KAA0B,OAAO,eAAe,KAAK,IAAI,mBAAmB,CAAC,UAAU,OAAO,eAAe,KAAK,QAAQ,UAAU,UAAU,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAS,CAAC,MAAO,GAAM,MAAO,IAAM,aAAa,EAAQ,GAAc,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAU,CAAO,GAAE,EAAE,CAAO,GAAE,EAAE,CAAgB,GAAE,GAAEA,QAAiB,GAAEA,KAAX,IAAK,KAAW,GAAEA,GAAG,GAAEA,IAAI,EAAS,GAAEA,IAA8hQ,GAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAkkBe,GAAE,IAAI,QAA45B,GAAE,IAAI,IAAmaG,GAAE,GAAS,QAAoB,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,SAAS,EAAE,EAAQ,QAAsB,CAAC,KAAK,EAAE,EAAE,IAAgB,CAAC,EAAE,IAAgB,CAAC,EAAQF,GAAE,CAAC,EAAE,CAAC,OAAO,QAAQ,SAAS,OAAO,CAAC,EAAE,CAAC,OAAO,SAAS,SAAS,MAAM,CAAC,CAAktBK,GAAE,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAOD,GAAE,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,EAAE,CAA2S,GAAE,CAAC,EAAE,EAAE,CAAkO,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAA6gDI,GAAG,IAAI,QAAc,GAAG,IAAI,QAAc,GAAG,IAAI,QAAc,GAAe,GAAGxB,IAAI,SAAS,gBAAgB,EAAOA,EAAy9D4B,GAAG,CAAC,SAAS,GAAG,EAAQ5B,EAAE,OAAQ,WAAW,EAAE,CAAC,OAAOC,EAAE,QAAQF,GAAG,CAAC,cAAcG,EAAE,EAAE,IAAI,CAAC,GAAK,CAAC,KAAKE,GAAGF,EAAkB,OAAO,GAASF,GAAG,GAAG,CAAwC,GAAvC,GAAG,CAAC,GAAkBA,EAAE,YAAYE,EAAE,CAAI,CAACE,EAAE,MAAO,IAAG,CAAC,GAAG,CAAC,GAAkBJ,EAAE,YAAYC,EAAE,IAAnIsB,GAAErB,EAAE,CAAC,OAAO,CAAC,CAA4H,EAAE,CAAO,IAAY,EAAE,EAAE,IAAI,GAAG,EAAI,CAACA,EAAE,aAAuBA,EAAE,cAAZ,WAAyB,GAAG,CAAC,GAAqBF,EAAEC,EAAEC,EAAE,GAA+xB,GAAG,CAAC,OAAO0B,GAAG,MAAjyB,CAAC,SAAS,GAAG,EAAQ5B,EAAE,MAAO,WAAW,EAAE,CAAC,OAAOC,EAAE,QAAQF,KAAK,CAAC,IAAMG,EAAE,GAAWF,EAAE,aAAaC,EAAE,CAAOG,EAAE,GAAWJ,EAAE,WAAWD,EAAE,CAA2E,OAA1E,EAAE,iBAAiB,eAAeG,EAAE,CAAC,EAAE,iBAAiB,eAAeE,EAAE,KAAW,CAAC,EAAE,oBAAoB,eAAeF,EAAE,CAAC,EAAE,oBAAoB,eAAeE,EAAE,GAAG,CAAwf,MAA9e,CAAC,SAAS,GAAG,EAAQJ,EAAE,MAAO,WAAW,EAAE,CAAC,OAAOC,EAAE,QAAQF,KAAK,CAAC,IAAM,EAAY,GAAG,CAAC,GAAG,CAAC,GAAqBC,EAAE,WAAWC,EAAE,CAAC,EAAO,oBAAoB,YAAY,EAAY,EAAQ,EAAc,GAAG,CAAC,GAAG,CAAC,GAAqBD,EAAE,aAAaD,EAAE,CAAC,EAAO,iBAAiB,YAAY,EAAY,EAAkD,OAAhD,EAAE,iBAAiB,cAAc,EAAc,KAAW,CAAC,EAAE,oBAAoB,cAAc,EAAc,CAAC,EAAO,oBAAoB,YAAY,EAAY,GAAG,CAAuC,CAAU,CAAqB,GAAG,OAAO,KAAK,GAAG,CAAQ,ICA55lB,SAAS,IAAG,CAAC,MAAU,MAAM,yEAAyE,CAAoE,SAAS,GAAE,EAAE,CAAC,IAAM8B,EAAE,EAAE,OAAO,GAAE,CAAC,OAAO,EAAE,wBAAwB,CAAC,EAAE,QAAQC,IAAI,CAACA,EAAE,CAAC,EAAE,GAAGC,IAAI,CAAC,IAAG,EAAE,IAAG,CAAC,IAAMD,EAAED,EAAE,QAAQ,OAAOC,EAAE,GAAGC,EAAE,0BAA/U,CAAM,GAAE,EAAE,cAAc,CAAC,EAAE,CAA8G,GAAE,QAAQ,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KCAwiB,SAAS,GAAoB,EAAM,CAE7xB,GAAK,CAAC,QAAM,EAAE,CAAC,YAAU,YAAU,iBAAe,kBAAgB,cAAY,YAAU,MAAI,UAAQ,iBAAe,aAAW,eAAa,gBAAc,cAAY,WAAW,EAAkB,cAAY,kBAAgB,qBAAkB,eAAa,gBAAa,kBAAgB,UAAO,EAAW,CAAC,kBAAe,eAAa,gBAAc,sBAAmB,gBAAa,kBAAe,EAAoB,CAAC,eAAY,YAAS,aAAU,YAAU,aAAW,EAAiB,CAAC,qBAAkB,YAAU,eAAY,aAAU,aAAU,cAAW,mBAAiB,GAAK,qBAAkB,GAAM,iBAAc,gBAAa,YAAS,mBAAgB,oBAAkB,sBAAmB,qBAAkB,EAAkB,CAAC,oBAAiB,UAAQ,aAAU,cAAW,eAAY,WAAQ,YAAS,kBAAe,qBAAkB,eAAY,aAAU,EAAsB,GAAa,EAAe,GAAG,EAAW,KAAK,EAAa,KAAK,EAAc,KAAK,EAAY,IAAI,GAAG,EAAQ,IAEr9BC,EAAS,GAAa,SAAS,GAAG,GAAa,OACtD,GAAc,EAAM,OAAO,QAAQ,CAAO,GAAgBC,EAAS,MAAM,GAAc,CAEtF,GAAG,EAFsG,GAAgB,GAExG,OAAoB,EAAM,UAAU,CAAC,MAAM,GAAkB,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,GAAY,SAAS,KAAK,CAAC,CAAc,EAAK,IAAI,CAAC,MAAM,GAAY,SAAS,qBAAqB,CAAC,CAAc,EAAK,IAAI,CAAC,MAAM,GAAe,SAAS,qEAAqE,CAAC,CAAC,CAAC,CAAC,CAE1V,IAAM,GAAiCC,MAAgB,CAAI,GAAU,SAAS,GAAc,SAAS,GAAa,SAAS,IAAiB,EAAI,EAAE,CAAC,CAAO,GAAUC,EAAO,KAAK,CAAO,EAAYD,EAAY,GAAM,CAAC,GAAU,QAAQ,EAAK,IAAkC,EAAG,CAAC,GAAiC,CAAC,CAAO,GAAcC,EAAO,KAAK,CAAO,GAAgBD,EAAY,GAAM,CAAC,GAAc,QAAQ,EAAK,IAAkC,EAAG,CAAC,GAAiC,CAAC,CAAO,GAAaC,EAAO,KAAK,CAAO,GAAeD,EAAY,GAAM,CAAC,GAAa,QAAQ,EAAK,IAAkC,EAAG,CAAC,GAAiC,CAAC,CAAM,CAAC,GAAK,IAASE,EAAS,CAAC,OAAO,KAAK,SAAS,KAAK,KAAK,KAAK,UAAU,KAAK,WAAW,KAAK,eAAe,KAAK,CAAC,CAAO,EAAa,IAAY,QAAQ,IAAY,QAAc,GAAiB,IAAqB,CAAO,GAAqB,GAAc,KAAmB,MAAM,GAAG,EAAiC,CAAC,GAAW,IAAeA,EAAS,GAAM,CAAM,CAAC,GAAkB,IAAsBA,EAAS,EAAgB,CAA8B,CAAC,GAAY,IAAgBA,EAAS,GAAM,CAAqC,EAAc,IAAM,OAAO,MAAM,IAAM,SAAS,MAAM,KAAmB,KAU/vC,GAAe,KAAK,MAAM,EAAU,GAAmB,GAAgB,CAAK,GAAc,EAAE,CAAK,GAAY,GAAe,GAAKJ,GAAU,CAAC,KAAe,GAAY,IAE3H,GAAK,CAAC,EAAY,IAAgBI,EAAS,EAAU,GAAgB,CAA2C,MAAc,CAAC,GAAG,CAAC,GAAK,MAAM,CAAC,GAAiB,OAAO,IAAM,EAAoB,GAAG,IAAc,GAAK,MAAM,GAAG,IAAM,KAAmB,MAAM,GAAG,GAAM,EAAK,KAAK,GAAG,GAAqB,GAAQ,EAAK,EAAoB,GAAkB,EAAI,CAAC,EAAY,GAAK,KAAK,EAAI,GAAiB,CAAC,CAAC,IAAMC,OAAY,CAAC,GAAG,CAAC,GAAU,SAAS,CAAC,GAAc,SAAS,CAAC,GAAa,QAAQ,OACzhB,IAAMC,EAAiB,IAAqB,CAAOC,EAAM,GAAcD,IAAmB,MAAY,EAAWC,EAAM,GAAa,QAAQ,GAAc,QAAc,EAAUA,EAAM,GAAc,QAAQ,GAAa,QAAc,EAAa,EAAa,GAAU,QAAQ,YAAY,GAAU,QAAQ,aAAmB,EAAM,EAAW,EAAa,EAAW,WAAW,EAAW,UAAU,EAA+kB,GAAQ,CAAC,OAAO,EAAa,UAAhmB,EAAU,EAAa,EAAU,WAAW,EAAU,YAAY,EAAU,UAAU,EAAU,aAAa,GAA2B,EAAM,EAA0e,KAAvd,EAAW,EAAa,EAAW,YAAY,EAAW,aAAa,EAA8Z,UAA5Y,EAAW,EAAW,YAAY,EAAoX,WAAjW,EAAW,EAAW,aAAa,EAAyU,eAAlT,EAAa,KAAK,IAAI,SAAS,gBAAgB,aAAa,EAAE,EAAO,YAAY,EAAE,GAAU,QAAQ,YAAY,CAAC,KAAK,IAAI,SAAS,gBAAgB,cAAc,EAAE,EAAO,aAAa,EAAE,GAAU,QAAQ,aAAa,CAAwG,CAAC,EAAS,GAAgBC,GAAe,SAAS,CAAC,EAAM,KAAKH,GAAQ,GAAM,GAAK,EAAG,CAAyD,MAAoB,CAAC,IAAiB,EAAG,CAAC,EAAM,OAAO,EAAkB,EAAI,EAAU,EAAQ,EAAe,EAAW,EAAa,EAAc,EAAY,CAAC,CAA6C,MAAc,CAAC,IAAM,EAAK,GAAU,QAAY,KAAY,OAAO,GAAO,GAAM,CAAC,iBAAe,EAAI,EAAY,OAAO,EAAY,SAAQ,IAAiB,EAAI,EAAG,EAAE,CAAC,CAE/jD,IAAM,GAAaL,EAAS,EAAE,IAAM,SAAc,CAAC,GAAW,IAAeI,EAAS,GAAM,CAAwG,GAAcD,EAAO,KAAK,CAAO,GAAS,EAAU,GAAc,CAAO,GAAU,IAAe,EAAE,GAAqD,EAAK,GAAe,GAAa,CAA6H,GAAaH,EAA+Q,EAAtQ,EAAa,EAAK,GAAO,CAAC,IAAM,EAAqB,IAAc,EAAQ,EAAc,GAAO,EAAQ,EAAQ,GAAK,CAAC,EAAqB,GAAqB,CAAC,EAAqB,GAAqB,EAAE,EAAc,CAAC,OAAO,OAAO,MAAM,EAAQ,CAAC,EAAE,GAAU,CAAoE,GAAa,GAAK,EAAE,GAAgB,EAAY,CAGr2B,GAAS,GAAO,CAAC,MAAoB,GAAe,GAAM,EAAK,EAAM,CAAC,EAAS,GAAQ,GAAO,CAA8D,IAAM,EAAK,EAA/C,GAAK,EAAE,GAAgB,EAAY,CAAqC,MAAoB,GAAe,GAAM,EAAK,EAAK,CAAC,EAAiF,IAAc,IAAY,SAAS,IAAY,SAAS,GAAG,GAAG,GAA2B,GAAY,GAAiB,KAAoB,IAAe,KAAY,CAACA,GAAU,GAAgB,GAAG,CAAC,IAAY,EAAc,MAAc,CAAC,GAAG,CAAC,GAAY,OAAO,IAAM,EAAU,eAAe,CAAC,GAAS,GAAa,EAAG,EAAgB,IAAI,CAAC,UAAU,aAAa,EAAU,EAAG,CAAC,GAAY,GAAa,EAAgB,EAAY,CAAC,CAEvxB,IAAM,OAAoB,CAAC,MAAoB,GAAc,GAAK,CAAC,EAAS,IAAe,EAAM,CAAC,OAAA,EAAO,cAAY,CAAC,MAAoB,GAAc,GAAM,CAAC,CAAC,IAAM,EAAW,EAAaS,EAAO,EAAEA,EAAO,EAC9M,EAAa,EAAa,EAAS,EAAE,EAAS,EAAQ,EAAa,EAAW,CAAC,GAAK,KAAK,EAAQ,EAAa,EAAW,GAAK,KAAK,EAA6D,EAAiB,KAAK,IAAI,EAAW,CAAO,EAAU,KAAK,MAAM,EAAiB,GAAK,KAAK,CAAoF,EAAiB,IAAY,EAAE,EAAE,EAA0D,EAAa,IAAmB,GAAS,CAAC,EAAiB,GAAqB,CAAU,EAAa,KAAoB,GAAS,EAAiB,GAAqB,EAA0E,GAAc,GAAS,EAAU,GAAqB,CAAK,GAAc,GAAS,CAAC,EAAU,GAAqB,GAElzB,GAAgB,KAAK,IAAI,EAAE,KAAK,IAAI,GAAW,EAAE,KAAK,IAAI,EAAE,GAAgB,EAAE,CAAC,CAAC,CAAO,GAAoB,GAAgB,IAAI,EAAwB,GAAkB,GAAgB,EAAI,EAAkF,GAAa,EAEnR,GAAiB,QAAQ,IAAI,EAAkB,MAAM,EAAI,OAAO,EAAI,EAAkB,KAI9F,IAAI,IAAI,EAAM,EAAE,EAAM,GAAY,IAAS,GAAc,GAAc,OAAOR,EAAS,IAAI,IAAe,EAAM,IAAa,CAAC,IAAI,EAA4H,OAArH,IAAQ,IAAM,IAAa,EAAG,EAAI,GAAyB,IAAa,GAAc,OAAO,IAAG,EAAI,KAAqC,EAAK,GAAM,CAAK,MAAI,SAAS,EAAM,EAAW,KAAW,QAAM,MAAM,GAAa,EAAkB,EAAE,GAAiB,OAAc,OAAQ,EAAyD,OAA5C,EAAkB,EAAE,GAAiB,OAAmB,QAAW,QAAM,YAAY,IAAe,OAAmB,eAAY,aAAa,KAAmB,MAAI,SAASD,EAAuB,gBAA2B,eAA4B,kBAA4B,eAA2B,gBAA+B,oBAAsC,wBAAqB,SAAS,EAAM,EAAW,CAAC,EAAM,EAAW,KAAK,EAAG,CAAC,CAEh3B,IAAM,GAAc,EAAa,WAAW,YAAkB,GAAe,GAAU,EAAQ,GAAa,IAAI,GAAU,EAAgG,GAAS,mBAAmB,GAAc,kBAAkB,EAAU,IAA/I,GAAM,EAAU,EAAE,GAAe,CAAiI,sBAAsB,GAAe,sBAAsB,GAAa,mBAAmB,EAAU,IAAlN,IAAI,EAA+N,IAEna,GAAK,EAAE,CAAO,GAAc,EAAE,CAAC,GAAG,GAAiB,CAAC,IAAI,IAAIU,EAAE,EAAEA,EAAE,IAAe,OAAO,IAAK,GAAK,KAAkB,EAAK,GAAI,CAAC,SAAS,CAAC,GAAG,GAAS,MAAM,EAAQ,OAAO,EAAQ,gBAAgB,GAAS,CAAC,YAAY,GAAiB,gBAAgB,GAAkB,QAAQ,GAAY,SAAS,CAACV,GAAU,CAAC,EAAc,YAAY,GAAQU,EAAE,CAAC,aAAaV,GAAU,CAAC,EAAc,GAAgB,GAAa,MAAM,GAAgB,MAAMU,EAAE,IAAI,GAAQ,QAAQ,GAAyB,eAAa,CAACA,EAAE,CAAC,CAAK,GAAS,IAAG,GAAc,eAAe,GAAc,qBAAqB,QAAQ,GAAS,MAAO,IAAM,GAAU,GAAe,EAAY,CAAC,KAAK,EAAa,IAAI,IAAI,YAAY,GAAgB,UAAU,GAAc,kBAAkB,GAAK,OAAO,CAAC,EAAE,KAAmB,MAAM,CAAC,EAAK,EAAK,EAAE,EAAK,CAAC,aAAa,GAAM,CAAC,EAAE,CAAO,GAAY,KAAgB,YAAY,KAAgB,WAAW,KAAgB,YAAkB,EAAe,KAAgB,eAAe,KAAgB,cAAc,KAAgB,eAAqB,GAAa,KAAgB,YAAY,KAAgB,cAAoB,GAAc,KAAgB,aAAa,KAAgB,eAAqB,GAAY,KAAgB,WAAW,KAAgB,cAAc,KAAgB,OAAa,GAAa,IAAW,iFAAuF,GAAc,IAAY,kFAAkF,OAAoB,EAAM,UAAU,CAAC,UAAU,GAAG,GAAmB,GAAG,EAAa,GAAwB,KAA0B,MAAM,CAAC,GAAG,GAAe,QAAQ,GAAa,gBAAgB,GAAY,GAAS,IAAA,GAAU,UAAU,GAAY,GAAS,IAAA,GAAU,WAAW,OAAO,CAAC,iBAAiB,CAAC,GAAc,GAAK,CAAK,IAAa,GAAqB,GAAM,EAAG,iBAAiB,CAAC,GAAc,GAAM,CAAK,IAAa,GAAqB,GAAK,EAAG,YAAY,GAAO,CAC99D,EAAM,gBAAgB,CAAC,MAAoB,GAAe,GAAK,CAAC,EAAG,cAAcC,MAAoB,GAAe,GAAM,CAAC,CAAC,IAAI,GAAc,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,CAAC,MAAM,OAAO,OAAO,OAAO,OAAO,EAAE,QAAQ,UAAU,SAAS,WAAW,MAAM,EAAE,SAAS,GAAS,UAAU,SAAsB,gBAAa,WAAW,OAAO,YAAYX,EAAS,OAAO,GAAmB,CAAC,SAAsB,EAAK,EAAO,GAAG,CAAC,IAAI,EAAY,GAAG,GAAU,MAAM,CAAC,GAAG,GAAmB,MAAI,WAAW,EAAU,GAAGA,GAAU,CAAC,EAAc,CAAC,UAAU,EAAa,mBAAmB,GAA6B,MAAM,GAAoB,MAAM,GAAkB,OAAO,mBAAmB,GAA6B,MAAM,GAAoB,MAAM,GAAkB,OAAO,CAAC,CAAC,EAAE,EAAa,GAAY,EAAE,EAAG,EAAyB,EAAZ,GAAc,CAAC,cAAc,EAAa,MAAM,SAAS,eAAe,IAAgB,GAAG,CAACA,EAAS,cAAc,IAAA,GAAU,QAAQA,GAAU,IAAgB,EAAY,GAAY,WAAW,OAAO,OAAO,WAAW,OAAO,GAAG,GAAM,CAAC,SAAS,GAAc,CAAC,CAAC,CAAC,CAAc,EAAM,WAAW,CAAC,MAAM,CAAC,GAAG,GAAe,CAAC,aAAa,gCAAgC,UAAU,6BAA6B,SAAS,CAAc,EAAM,EAAO,IAAI,CAAC,MAAM,CAAC,SAAS,WAAW,QAAQ,OAAO,cAAc,EAAa,MAAM,SAAS,eAAe,EAAiB,gBAAgB,SAAS,IAAI,EAAiB,QAAQ,GAAS,QAAQ,IAAmB,CAACA,GAAU,CAAC,EAAc,EAAE,EAAE,WAAW,SAAS,MAAM,GAAa,IAAI,EAAiB,GAAa,GAAY,GAAgB,QAAQ,KAAK,EAAiB,GAAa,GAAa,GAAiB,GAAY,EAAE,QAAQ,MAAM,EAAiB,GAAa,GAAc,EAAkB,GAAY,EAAE,QAAQ,OAAO,EAAiB,GAAa,EAAe,GAAmB,QAAQ,CAAC,QAAQA,GAAU,EAAc,GAAkB,CAAC,QAAQ,GAAW,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,WAAW,GAAkB,SAAS,CAAc,EAAK,EAAO,OAAO,CAAC,KAAK,SAAS,MAAM,CAAC,GAAG,GAAiB,gBAAgB,GAAU,MAAM,EAAU,OAAO,EAAU,aAAa,GAAY,OAAQ,EAAgB,EAAH,GAAK,QAAQ,GAAkB,QAAQ,OAAO,cAAcA,GAAU,EAAc,OAAO,OAAO,OAAOA,GAAU,EAAc,UAAU,UAAU,CAAC,SAAS,EAAEA,GAAU,GAAe,YAAY,GAAS,GAAG,CAAC,aAAa,WAAW,SAAS,CAAC,MAAM,GAAG,CAAC,WAAW,CAAC,SAAS,IAAI,CAAC,SAAsB,EAAK,MAAM,CAAC,SAAS,QAAQ,MAAM,EAAU,OAAO,EAAU,IAAI,GAAc,KAAmB,MAAM,GAAc,GAAa,IAAI,aAAa,CAAC,CAAC,CAAC,CAAc,EAAK,EAAO,OAAO,CAAC,KAAK,SAAS,MAAM,CAAC,GAAG,GAAiB,gBAAgB,GAAU,MAAM,EAAU,OAAO,EAAU,aAAa,GAAY,OAAQ,EAAgB,EAAH,GAAK,QAAQ,GAAkB,QAAQ,OAAO,cAAcA,GAAU,EAAc,OAAO,OAAO,OAAOA,GAAU,EAAc,UAAU,UAAU,CAAC,SAAS,EAAEA,GAAU,GAAe,YAAY,GAAS,EAAE,CAAC,aAAa,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,WAAW,CAAC,SAAS,IAAI,CAAC,SAAsB,EAAK,MAAM,CAAC,SAAS,QAAQ,MAAM,EAAU,OAAO,EAAU,IAAI,GAAc,KAAmB,MAAM,GAAa,GAAc,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAK,OAAO,EAAe,EAAK,EAAO,IAAI,CAAC,MAAM,CAAC,GAAG,GAAmB,KAAK,EAAa,MAAM,GAAU,IAAK,EAAmB,QAAN,MAAc,UAAU,EAAa,mBAAmB,mBAAmB,cAAc,EAAa,MAAM,SAAS,OAAO,EAAa,GAAU,QAAQ,aAAa,GAAW,gBAAgB,GAAe,WAAW,OAAO,GAAG,GACljH,QAAQA,EAAS,EAAE,EAAE,cAAcA,GAAU,EAAc,OAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAc,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,IAAI,KAAK,UAAU,CAAC,SAAS,GAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAwCgoB,SAAS,IAAqB,CAAC,OAAO,GAAQ,UAAU,iBAAiB,MAAM,MAAM,MAAM,MAAO,SAAS,IAAqB,CAAC,GAAK,CAAC,EAAiB,GAAqBI,EAAS,KAAK,CAIn5B,OAFzF,OAAe,EAAoB,IAAqB,CAAC,CAElD,OAA6B,CAAC,EAAoB,IAAqB,CAAC,EAAG,EAAG,EAAE,CAAC,CAAQ,EAAuD,SAAS,GAAyB,EAAS,CAIlM,OAJmM,GAAU,KAAK,EAAS,CAAK,KAGhO,GAAS,IAAI,qBAAqB,GAAU,QAAQ,GAAUQ,GAAU,CAAC,CAAC,CAAC,GAAS,QAAQ,SAAS,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,MACrI,CAAC,GAAU,OAAO,GAAU,QAAQ,EAAS,CAAC,EAAE,CAAI,GAAU,SAAS,IAAG,IAAU,YAAY,CAAC,GAAS,4FA5F3D,KAAmC,IAAyE,IAAyH,IAA+H,KAA6C,CAAM,GAAmB,mBAAyB,GAAwB,0BAAgC,GAAwB,0BAAgC,GAAqC,0BAAgC,GAA6B,OAAO,GAAqC,OA4CjkB,GAAU,EAAQ,GAAoB,CAAC,IAAI,GAAwB,KAAK,GAAqC,SAAS,oBAAoB,GAAwB,KAAK,GAAqC,QAAQ,IAAI,GAAwB,KAAK,GAAqC,SAAS,CAAC,6BAA6B,IAYxe,GAAkC,GAAU,aAAa,CAAC,UAAU,OAAO,YAAY,GAAM,UAAU,EAAE,WAAW,EAAE,SAAS,GAAK,IAAI,GAAG,QAAQ,GAAG,gBAAgB,GAAK,eAAe,CAAC,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,mBAAmB,KAAK,aAAa,GAAK,cAAc,GAAM,CAAC,kBAAkB,CAAC,KAAK,SAAS,UAAU,IAAI,QAAQ,GAAG,CAAC,YAAY,CAAC,YAAY,GAAM,SAAS,GAAM,UAAU,GAAG,UAAU,EAAE,UAAU,EAAE,CAAC,aAAa,CAAC,kBAAkB,GAAK,kBAAkB,GAAM,iBAAiB,GAAK,UAAU,kBAAkB,UAAU,GAAG,CAAC,gBAAgB,CAAC,iBAAiB,GAAK,CAAC,CAAwB,EAAoB,GAAU,CAAC,MAAM,CAAC,KAAK,EAAY,MAAM,MAAM,UAAU,QAAQ,CAAC,KAAK,EAAY,kBAAkB,CAAC,CAAC,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,YAAY,QAAQ,CAAC,OAAO,QAAQ,MAAM,SAAS,CAAC,YAAY,CAAC,iBAAiB,kBAAkB,eAAe,iBAAiB,CAAC,aAAa,CAAC,OAAO,QAAQ,MAAM,SAAS,CAAC,wBAAwB,GAAK,aAAa,GAAU,aAAa,UAAU,CAAC,gBAAgB,CAAC,KAAK,EAAY,QAAQ,MAAM,YAAY,aAAa,GAAK,CAAC,gBAAgB,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,aAAa,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,eAAe,GAAK,KAAK,IAAI,OAAO,GAAO,CAAC,EAAM,gBAAgB,CAAC,YAAY,CAAC,KAAK,EAAY,QAAQ,MAAM,YAAY,aAAa,GAAM,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,IAAI,EAAE,IAAI,GAAG,eAAe,GAAK,aAAa,GAAU,aAAa,UAAU,CAAC,eAAe,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,SAAS,CAAC,eAAe,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,aAAa,GAAU,aAAa,eAAe,eAAe,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,eAAe,GAAK,CAAC,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,GAAU,aAAa,eAAe,aAAa,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,eAAe,GAAK,CAAC,mBAAmB,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,GAAU,aAAa,eAAe,mBAAmB,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC,cAAc,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,GAAU,aAAa,eAAe,cAAc,IAAI,KAAK,IAAI,IAAI,KAAK,EAAE,CAAC,aAAa,CAAC,KAAK,EAAY,QAAQ,MAAM,WAAW,aAAa,OAAO,cAAc,QAAQ,aAAa,GAAU,aAAa,eAAe,aAAa,CAAC,cAAc,CAAC,KAAK,EAAY,QAAQ,MAAM,YAAY,aAAa,OAAO,cAAc,QAAQ,aAAa,GAAU,aAAa,eAAe,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,QAAQ,QAAQ,CAAC,aAAa,SAAS,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,eAAe,eAAe,CAAC,KAAK,CAAC,YAAY,eAAe,eAAe,CAAC,IAAI,CAAC,aAAa,eAAe,cAAc,CAAC,OAAO,CAAC,aAAa,eAAe,cAAc,CAAC,CAAC,CAAC,aAAa,SAAS,wBAAwB,GAAK,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,IAAI,EAAE,IAAI,GAAG,eAAe,GAAK,aAAa,GAAU,aAAa,WAAW,CAAC,IAAI,CAAC,KAAK,EAAY,OAAO,MAAM,MAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,UAAU,KAAK,EAAY,YAAY,UAAU,iBAAiB,aAAa,CAAC,UAAU,mBAAmB,CAAC,aAAa,EAAE,UAAU,CAAC,aAAa,eAAe,gBAAgB,cAAc,CAAC,YAAY,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,IAAI,EAAE,IAAI,IAAI,eAAe,GAAK,aAAa,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAY,WAAW,aAAa,GAAU,aAAa,kBAAkB,MAAM,aAAa,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,WAAW,SAAS,CAAC,YAAY,CAAC,KAAK,EAAY,QAAQ,MAAM,OAAO,aAAa,GAAM,CAAC,SAAS,CAAC,KAAK,EAAY,QAAQ,MAAM,WAAW,aAAa,OAAO,cAAc,OAAO,aAAa,GAAM,OAAO,EAAM,CAAC,OAAO,EAAM,cAAc,IAAO,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,GAAG,IAAI,EAAE,IAAI,IAAI,KAAK,IAAI,OAAO,EAAM,CAAC,OAAO,EAAM,cAAc,IAAQ,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,EAAE,IAAI,EAAE,IAAI,IAAI,KAAK,IAAI,OAAO,EAAM,CAAC,OAAO,EAAM,cAAc,IAAQ,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,OAAO,EAAM,CAAC,OAAO,EAAM,cAAc,IAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAY,QAAQ,MAAM,OAAO,aAAa,GAAU,aAAa,aAAa,kBAAkB,CAAC,UAAU,CAAC,KAAK,EAAY,MAAM,MAAM,OAAO,OAAO,GAAO,CAAC,EAAM,kBAAkB,aAAa,GAAU,aAAa,aAAa,UAAU,CAAC,UAAU,CAAC,KAAK,EAAY,MAAM,MAAM,WAAW,OAAO,GAAO,CAAC,EAAM,kBAAkB,CAAC,WAAW,CAAC,KAAK,EAAY,MAAM,MAAM,OAAO,OAAO,GAAO,CAAC,EAAM,kBAAkB,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,IAAI,EAAE,IAAI,IAAI,eAAe,GAAK,aAAa,GAAU,aAAa,aAAa,UAAU,OAAO,GAAO,CAAC,EAAM,kBAAkB,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,IAAI,EAAE,IAAI,IAAI,aAAa,GAAG,OAAO,GAAO,CAAC,EAAM,kBAAkB,CAAC,kBAAkB,CAAC,KAAK,EAAY,QAAQ,MAAM,UAAU,aAAa,GAAM,OAAO,GAAO,CAAC,EAAM,kBAAkB,CAAC,iBAAiB,CAAC,KAAK,EAAY,QAAQ,MAAM,WAAW,aAAa,QAAQ,cAAc,QAAQ,aAAa,GAAU,aAAa,aAAa,iBAAiB,OAAO,GAAO,CAAC,EAAM,kBAAkB,CAAC,cAAc,CAAC,KAAK,EAAY,KAAK,MAAM,WAAW,QAAQ,CAAC,OAAO,WAAW,UAAU,YAAY,cAAc,aAAa,eAAe,CAAC,aAAa,CAAC,SAAS,WAAW,aAAa,YAAY,cAAc,gBAAgB,eAAe,CAAC,OAAO,GAAO,CAAC,EAAM,mBAAmB,EAAM,iBAAiB,CAAC,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,IAAI,KAAK,IAAI,IAAI,aAAa,GAAG,eAAe,GAAK,OAAO,GAAO,CAAC,EAAM,mBAAmB,CAAC,EAAM,iBAAiB,CAAC,gBAAgB,CAAC,KAAK,EAAY,OAAO,MAAM,MAAM,IAAI,KAAK,IAAI,IAAI,aAAa,EAAE,eAAe,GAAK,OAAO,GAAO,CAAC,EAAM,mBAAmB,EAAM,kBAAkB,EAAM,gBAAgB,QAAQ,EAAM,gBAAgB,cAAc,EAAM,gBAAgB,eAAe,EAAM,gBAAgB,eAAe,CAAC,mBAAmB,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,IAAI,KAAK,IAAI,IAAI,aAAa,EAAE,eAAe,GAAK,OAAO,GAAO,CAAC,EAAM,mBAAmB,EAAM,kBAAkB,EAAM,gBAAgB,QAAQ,EAAM,gBAAgB,WAAW,EAAM,gBAAgB,YAAY,EAAM,gBAAgB,YAAY,CAAC,kBAAkB,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,IAAI,KAAK,IAAI,IAAI,aAAa,EAAE,eAAe,GAAK,OAAO,GAAO,CAAC,EAAM,mBAAmB,EAAM,kBAAkB,EAAM,gBAAgB,QAAQ,EAAM,gBAAgB,YAAY,EAAM,gBAAgB,WAAW,EAAM,gBAAgB,eAAe,EAAM,gBAAgB,aAAa,CAAC,iBAAiB,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,IAAI,KAAK,IAAI,IAAI,aAAa,EAAE,eAAe,GAAK,OAAO,GAAO,CAAC,EAAM,mBAAmB,EAAM,kBAAkB,EAAM,gBAAgB,QAAQ,EAAM,gBAAgB,aAAa,EAAM,gBAAgB,WAAW,EAAM,gBAAgB,gBAAgB,EAAM,gBAAgB,aAAa,CAAC,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,MAAM,IAAI,EAAE,IAAI,IAAI,aAAa,GAAG,eAAe,GAAK,OAAO,GAAO,CAAC,EAAM,mBAAmB,EAAM,iBAAiB,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAY,QAAQ,MAAM,OAAO,aAAa,GAAM,CAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,IAAI,EAAE,IAAI,IAAI,aAAa,GAAG,eAAe,GAAK,OAAO,GAAO,CAAC,EAAM,kBAAkB,EAAM,cAAc,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,IAAI,KAAK,IAAI,IAAI,aAAa,GAAG,eAAe,GAAK,OAAO,GAAO,CAAC,EAAM,kBAAkB,EAAM,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,MAAM,IAAI,EAAE,IAAI,IAAI,aAAa,GAAG,eAAe,GAAK,OAAO,GAAO,CAAC,EAAM,kBAAkB,EAAM,cAAc,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,IAAI,EAAE,IAAI,IAAI,aAAa,GAAG,eAAe,GAAK,OAAO,GAAO,CAAC,EAAM,kBAAkB,EAAM,cAAc,CAAC,SAAS,CAAC,KAAK,EAAY,MAAM,MAAM,OAAO,aAAa,OAAO,OAAO,GAAO,CAAC,EAAM,kBAAkB,EAAM,cAAc,CAAC,eAAe,CAAC,KAAK,EAAY,MAAM,MAAM,WAAW,aAAa,kBAAkB,OAAO,GAAO,CAAC,EAAM,kBAAkB,EAAM,cAAc,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,IAAI,EAAE,IAAI,IAAI,aAAa,GAAG,OAAO,GAAO,CAAC,EAAM,kBAAkB,EAAM,cAAc,CAAC,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,IAAI,EAAE,IAAI,EAAE,aAAa,GAAG,KAAK,GAAG,eAAe,GAAK,OAAO,GAAO,CAAC,EAAM,kBAAkB,EAAM,cAAc,CAAC,kBAAkB,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,GAAG,eAAe,GAAK,OAAO,GAAO,CAAC,EAAM,kBAAkB,EAAM,cAAc,CAAC,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,IAAI,EAAE,IAAI,GAAG,aAAa,EAAE,KAAK,EAAE,OAAO,GAAO,CAAC,EAAM,kBAAkB,EAAM,cAAc,CAAC,CAAC,CAAC,CAAC,CAA+B,GAAe,CAAC,QAAQ,OAAO,cAAc,MAAM,MAAM,OAAO,OAAO,OAAO,SAAS,OAAO,UAAU,OAAO,WAAW,SAAS,OAAO,EAAE,QAAQ,EAAE,cAAc,OAAO,WAAW,OAAO,CAA6B,GAAkB,CAAC,QAAQ,OAAO,MAAM,OAAO,OAAO,OAAO,aAAa,SAAS,WAAW,SAAS,cAAc,SAAS,MAAM,OAAO,WAAW,0BAA0B,SAAS,GAAG,SAAS,SAAS,QAAQ,sBAAsB,CAAO,GAAY,CAAC,SAAS,GAAG,aAAa,GAAG,CAAO,GAAY,CAAC,OAAO,EAAE,aAAa,GAAG,WAAW,IAAI,UAAU,SAAS,CAAO,GAAe,CAAC,OAAO,EAAE,QAAQ,GAAG,SAAS,IAAI,WAAW,IAAI,UAAU,SAAS,CAA2B,GAAiB,CAAC,OAAO,OAAO,QAAQ,OAAO,aAAa,SAAS,WAAW,SAAS,SAAS,SAAS,WAAW,cAAc,OAAO,UAAU,OAAO,EAAE,QAAQ,EAAE,CAAO,GAAe,CAAC,QAAQ,OAAO,eAAe,gBAAgB,WAAW,SAAS,SAAS,WAAW,cAAc,OAAO,WAAW,OAAO,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAA+C,IAAO,EAAI,EAAI,IAAM,KAAK,IAAI,KAAK,IAAI,EAAIC,EAAI,CAACC,EAAI,CAA4B,GAAmB,EAAkB,EAAW,SAAmB,EAAM,EAAI,CAAC,GAAK,CAAC,WAAS,QAAM,SAAO,QAAM,OAAK,MAAI,cAAY,cAAY,eAAa,SAAA,EAAS,gBAAc,UAAQ,iBAAe,eAAa,gBAAc,eAAa,OAAA,EAAO,QAA2B,mBAA2C,wBAAsB,EAAY,EAAYX,GAAQ,CAAO,GAAS,GAAM,MAAM,EAAQ,EAAW,GAAM,QAAQ,EAE17U,GAAa,GAAS,GAAK,EAAmB,GAG9D,GAAc,IAAmB,MAAM,CAAC,GAAS,EAAI,EAAE,CAAC,EAAW,GAAS,EAAI,CAAC,EAAW,EAAI,CAAC,CAAC,CAAC,GAAS,EAAE,EAAW,GAAS,EAAI,EAAW,EAAE,IAAI,GAAK,EAAI,EAAY,EAAqB,CAEjL,GAAQ,CAACH,GAAU,EAAa,EAAY,EAgB7D,GAAc,IAAmB,MAAM,CAAC,EAAc,EAAE,EAAE,CAAC,EAAc,CAAC,CAAC,CAAC,EAAc,EAAE,EAAE,EAAc,CAAC,CAAO,GAAQ,CAACA,GAAU,EAAa,EAAY,EAAY,CAAC,EAAc,EAAE,EAAE,CAAC,EAAc,CAAC,CAAO,EAAQ,CAACA,GAAU,EAAa,EAAY,EAAY,CAAC,EAAe,EAAE,EAAE,EAAe,CAAC,CAAO,GAAM,CAACA,GAAU,EAAa,EAAY,EAAY,CAAC,EAAa,EAAE,EAAE,EAAa,CAAC,CAAO,EAAW,CAACA,GAAU,EAAa,EAAY,EACrc,GAAc,IAAmB,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAO,EAAU,CAACA,GAAU,EAAa,EAAY,GAAQ,CACxH,IAAMa,EAAI,KAAK,IAAI,EAAY,GAAG,EAAY,GAAG,CAAOC,EAAI,KAAK,IAAI,EAAY,GAAG,EAAY,GAAG,CAAC,OAAO,GAAQD,GAAK,GAAQC,GAAM,CAAC,MAAc,CAAC,GAAG,CAAC,GAAW,CAAC,EAAc,OAAO,SAAS,EAAiB,EAAQ,CAAC,IAAM,EAAK,GAAK,SAAS,EAAY,QAAY,IAC5Q,EAAS,EAAK,iBAAiB,WAAW,CAAC,QAAQ,GAAI,CAAC,IAAM,EAAK,EAAG,QAAQ,aAAgB,EAAK,EAAG,SAAS,EAAU,EAAG,gBAAgB,WAAW,EAAG,CAAO,EAAK,iBAAiB,WAAW,CAAC,QAAQ,GAAI,CAAC,IAAM,EAAK,EAAG,aAAa,WAAW,CAAI,IAAK,EAAG,QAAQ,aAAa,GAAK,EAAG,SAAS,IAAK,CAAE,EAAK,aAAa,cAAc,CAAC,EAAQ,EAA8B,OAA5B,EAAiB,EAAU,CAAQ,EAAU,GAAG,SAAS,GAAS,CAAC,EAAiB,EAAQ,EAAG,EAAG,CAAC,EAAc,CAAC,CAAC,IAAM,GAAWd,EAAS,UAAU,EAAa,EAAY,CAAC,EAAY,GAAG,EAAK,eAAe,EAAqB,GAAI,EAAY,GAAG,EAAY,GAAG,GAAG,CAAC,EAAY,GAAG,EAAK,eAAe,EAAqB,CAAC,CAAC,SAAS,UAAU,SAAS,CAAC,CAAO,GAAI,EAAS,QAAQ,OAAoB,EAAK,EAAY,CAAC,QAAQ,KAAK,GAAG,GAAI,SAAsB,EAAK,KAAK,CAAC,MAAM,CAAC,QAAQ,WAAW,CAAC,SAAsB,EAAa,EAAM,CAAC,IAAI,GAAK,EAAY,OAAI,MAAM,CAAC,GAAG,EAAM,OAAO,MAAM,WAAW,EAAE,WAAW,OAAO,QAAM,SAAO,GAAG,EAAc,CAAC,UAAQ,SAAM,QAAQ,EAAa,EAAW,GAAG,QAAS,EAAwB,GAAX,EAAc,QAAQ,EAAa,GAAQ,EAAE,QAAS,EAAqB,EAAR,GAAU,cAAW,CAAC,EAAE,CAAC,CAAC,SAAS,EAAM,MAAM,SAAS,EAAM,MAAM,SAAS,aAAa,EAAM,IAAA,GAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAC,CAAO,GAAiB,EAAK,SAAa,CAAC,kBAAgB,UAAQ,QAAM,QAAM,eAAa,SAAA,EAAS,cAAY,MAAI,UAAQ,eAAa,GAAG,GAAO,CAA8C,IAAM,EAAW,IAAe,EAAY,EAAc,EAAI,EAAQ,EAAI,CAAC,GAAc,IAAQ,EAAE,EAAc,EAAc,EAAO,CAAC,GAAc,IAAQ,EAAM,EAAE,EAAc,EAE/lD,EAAY,EAAa,IAAQ,EAAE,EAAQ,EAAc,EAAc,EAAU,EAAa,IAAQ,EAAM,EAAE,EAAQ,EAAc,EAAQ,OAAoB,EAAK,SAAS,CAAC,aAAa,kBAAkB,EAAM,IAAI,KAAK,SAAS,GAAG,EAAM,MAAM,CAAC,GAAG,EAAY,WAAW,EAAI,cAAc,EAAO,mBAAmB,EAAY,iBAAiB,EAAU,CAAC,SAAsB,EAAK,EAAO,IAAI,CAAC,MAAM,CAAC,GAAGgB,EAAS,CAAC,QAAQ,GAAM,QAAQ,CAAC,QAAQ,EAAW,EAAgB,EAAQ,CAAC,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,EAAG,CAAuB,GAAmB,CAAC,QAAQ,OAAO,aAAa,SAAS,WAAW,SAAS,SAAS,SAAS,SAAS,WAAW,cAAc,OAAO,CAAO,GAAS,CAAC,aAAa,MAAM,WAAW,QAAQ,OAAO,UAAU,OAAO,OAAO,aAAa,SAAS,WAAW,SAAS,QAAQ,EAAE,CAI1rB,GAAS,KAAW,GAAU,EAAE,gDCvF7F,IAAoK,IAAkE,IAA4B,CAAgCC,GAAkB,eAAqBC,GAAkB,CAAC,UAAU,kBAAkB,CAA8LC,GAAY,CAAC,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,KAAK,SAAS,CAAOC,GAAkB,GAAW,OAAO,GAAQ,UAAU,GAAc,OAAO,EAAM,KAAM,SAAiB,EAAc,OAAO,GAAQ,SAAS,CAAC,IAAI,EAAM,CAAC,IAAA,GAAkBC,IAAY,CAAC,QAAM,cAAY,CAAC,IAAM,EAAOC,EAAiB,EAAoB,CAAO,EAAW,GAAO,EAAO,WAAiB,EAAaC,OAAmB,CAAC,GAAG,EAAO,aAAW,EAAE,CAAC,KAAK,UAAU,EAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,EAAoB,SAAS,CAAC,MAAM,EAAsB,WAAS,CAAC,EAASC,GAAS,EAAO,OAAOC,EAAe,CAAOC,IAAU,CAAC,SAAO,KAAG,QAAM,OAAK,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,UAAU,GAAM,EAAM,WAAW,uBAAuB,UAAU,GAAO,EAAM,WAAW,CAAC,YAAY,KAAK,WAAW,KAAK,IAAI,gHAAgH,OAAO,4UAA4U,CAAC,EAASC,IAAwB,EAAM,IAAe,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAAC,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAW59D,GAAgB,EAX4+D,EAAiB,SAAS,EAAM,EAAI,CAAC,IAAM,EAAYC,EAAO,KAAK,CAAO,EAAW,GAAK,EAAkB,EAAgBC,GAAa,CAAM,CAAC,eAAa,aAAW,IAAe,CAAO,EAAkB,IAAsB,CAAM,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,YAAU,YAAU,GAAG,GAAWH,GAAS,EAAM,CAAM,CAAC,cAAY,WAAA,EAAW,sBAAoB,kBAAgB,iBAAe,YAAU,kBAAgB,cAAW,YAAU,GAAgB,CAAC,eAAe,YAAY,IAAI,EAAW,UAAQ,kBAAA,GAAkB,CAAC,CAAO,EAAiBC,GAAuB,EAAM,EAAS,CAAsC,EAAkB,EAAGV,GAA2C,CAAC,OAAoB,EAAK,EAAY,CAAC,GAAG,GAAU,EAAgB,SAAsB,EAAKO,GAAS,CAAC,QAAQ,EAAS,QAAQ,GAAM,SAAsB,EAAKH,GAAW,CAAC,MAAMF,GAAY,SAAsB,EAAM,EAAO,IAAI,CAAC,GAAG,EAAU,GAAG,EAAgB,UAAU,EAAG,EAAkB,gBAAgBW,EAAUC,EAAW,CAAC,mBAAmB,YAA6B,mBAAiB,SAAS,YAAY,IAAI,EAAW,MAAM,CAAC,GAAG,EAAM,CAAC,SAAS,CAAc,EAAK,EAAO,IAAI,CAAC,UAAU,gBAAiC,mBAAiB,SAAS,YAAY,SAAsB,EAAKC,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKP,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,kCAAkC,uBAAuB,MAAM,0BAA0B,SAAS,sBAAsB,2FAA2F,CAAC,SAAS,uBAAuB,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,mBAAmB,OAAO,MAAM,CAAC,2BAA2B,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,kEAAkE,2BAA2B,mBAAmB,gCAAgC,YAAY,CAAC,KAAK,EAAU,kBAAkB,SAAS,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAc,EAAK,EAAO,IAAI,CAAC,UAAU,iBAAiB,mBAAmB,MAAuB,mBAAiB,SAAS,YAAY,SAAsB,EAAM,EAAO,IAAI,CAAC,UAAU,gBAAiC,mBAAiB,SAAS,YAAY,SAAS,CAAc,EAAK,EAAO,IAAI,CAAC,UAAU,gBAAgB,mBAAmB,MAAuB,mBAAiB,SAAS,YAAY,SAAsB,EAAKQ,GAAM,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,MAAM,QAAQ,IAA2B,GAAmB,GAAG,GAAG,MAAM,GAAmB,QAAQ,KAAK,GAAG,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,YAAY,KAAK,WAAW,KAAK,MAAM,GAAmB,OAAO,QAAQ,GAAGb,GAAkB,EAAU,CAAK,UAAU,SAAS,UAAU,SAAU,CAAC,UAAU,iBAAkC,mBAAiB,SAAS,YAAY,CAAC,CAAC,CAAC,CAAc,EAAK,EAAO,IAAI,CAAC,UAAU,iBAAkC,mBAAiB,SAAS,YAAY,SAAsB,EAAKY,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKP,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,kCAAkC,qBAAqB,OAAO,0BAA0B,SAAS,sBAAsB,iGAAiG,CAAC,SAAS,yBAAyB,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,mBAAmB,OAAO,MAAM,CAAC,2BAA2B,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,wEAAwE,2BAA2B,mBAAmB,gCAAgC,YAAY,CAAC,kBAAkB,SAAS,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAW,CAAC,kFAAkF,kFAAkF,kRAAkR,mRAAmR,+MAA+M,8SAA8S,kVAAkV,+LAA+L,8RAA8R,CAWx1P,eAAe,IAAgB,GAAgB,GAAgB,YAAY,iBAAiB,GAAgB,aAAa,CAAC,OAAO,IAAI,MAAM,IAAI,CAAC,EAAoB,GAAgB,CAAC,UAAU,CAAC,wBAAwB,+GAA+G,MAAM,QAAQ,KAAK,EAAY,gBAAgB,CAAC,UAAU,CAAC,aAAa,uBAAuB,gBAAgB,GAAK,MAAM,OAAO,KAAK,EAAY,OAAO,CAAC,CAAC,CAAC,GAAS,GAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,OAAO,oBAAoB,OAAO,SAAS,IAAI,yEAAyE,CAAC,CAAC,CAAC,CAAC,CAAC,6BAA6B,GAAK,CAAC,2BCZ1sB,IAAU,UAAU,CAAC,4BAA4B,yBAAyB,CAAC,CAAcS,GAAM,CAAC,CAAC,OAAO,qBAAqB,OAAO,SAAS,IAAI,uEAAuE,CAAC,CAAC,OAAO,kBAAkB,OAAO,SAAS,IAAI,yEAAyE,CAAC,CAAcC,GAAI,CAAC,+qBAA+qB,suBAAsuB,muBAAmuB,CAAcC,GAAU,kBCCt4D,SAASC,GAAqB,EAAU,GAAG,EAAS,CAAC,IAAM,EAAc,EAAE,CAAsF,OAArF,GAAU,QAAQ,GAAS,GAAS,OAAO,OAAO,EAAc,EAAU,GAAS,CAAC,CAAQ,wDAA3vB,IAA4L,IAAkE,IAA4B,KAAmJ,CAAMC,GAAW,CAAC,YAAY,YAAY,CAAOC,GAAkB,eAAqBC,GAAkB,CAAC,UAAU,mBAAmB,UAAU,mBAAmB,CAAkPC,GAAY,CAAC,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,KAAK,SAAS,CAAOC,GAAkB,GAAW,OAAO,GAAQ,UAAU,GAAc,OAAO,EAAM,KAAM,SAAiB,EAAc,OAAO,GAAQ,SAAS,CAAC,IAAI,EAAM,CAAC,IAAA,GAAkBC,IAAY,CAAC,QAAM,cAAY,CAAC,IAAM,EAAOC,EAAiB,EAAoB,CAAO,EAAW,GAAO,EAAO,WAAiB,EAAaC,OAAmB,CAAC,GAAG,EAAO,aAAW,EAAE,CAAC,KAAK,UAAU,EAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,EAAoB,SAAS,CAAC,MAAM,EAAsB,WAAS,CAAC,EAASC,GAAS,EAAO,OAAOC,EAAe,CAAOC,GAAwB,CAAC,EAAE,YAAY,EAAE,YAAY,CAAOC,IAAU,CAAC,QAAM,SAAO,KAAG,OAAK,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,UAAU,GAAM,EAAM,WAAW,CAAC,YAAY,IAAI,WAAW,KAAK,IAAI,yFAAyF,OAAO,6TAA6T,CAAC,UAAU,GAAO,EAAM,WAAW,MAAM,QAAQD,GAAwB,EAAM,UAAU,EAAM,SAAS,YAAY,EAASE,IAAwB,EAAM,IAAe,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAAC,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAWzzE,GAAgB,EAXy0E,EAAiB,SAAS,EAAM,EAAI,CAAC,IAAM,EAAYC,EAAO,KAAK,CAAO,EAAW,GAAK,EAAkB,EAAgBC,GAAa,CAAM,CAAC,eAAa,aAAW,IAAe,CAAO,EAAkB,IAAsB,CAAM,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,YAAU,YAAU,GAAG,GAAWH,GAAS,EAAM,CAAM,CAAC,cAAY,WAAA,EAAW,sBAAoB,kBAAgB,iBAAe,YAAU,kBAAgB,cAAW,YAAU,GAAgB,CAAC,WAAA,GAAW,eAAe,YAAY,IAAI,EAAW,UAAQ,kBAAA,GAAkB,CAAC,CAAO,EAAiBC,GAAuB,EAAM,EAAS,CAA2D,EAAkB,EAAGX,GAAlDc,GAA6F,CAAC,OAAoB,EAAK,EAAY,CAAC,GAAG,GAAU,EAAgB,SAAsB,EAAKP,GAAS,CAAC,QAAQ,EAAS,QAAQ,GAAM,SAAsB,EAAKH,GAAW,CAAC,MAAMF,GAAY,SAAsB,EAAM,EAAO,IAAI,CAAC,GAAG,EAAU,GAAG,EAAgB,UAAU,EAAG,EAAkB,iBAAiBa,EAAUC,EAAW,CAAC,mBAAmB,IAAqB,mBAAiB,SAAS,YAAY,IAAI,EAAW,MAAM,CAAC,GAAG,EAAM,CAAC,GAAGlB,GAAqB,CAAC,UAAU,CAAC,mBAAmB,IAAI,CAAC,CAAC,EAAY,EAAe,CAAC,SAAS,CAAc,EAAK,EAAO,IAAI,CAAC,UAAU,gBAAgB,mBAAmB,MAAuB,mBAAiB,SAAS,YAAY,MAAM,CAAC,gBAAgB,wEAAwE,uBAAuB,GAAG,wBAAwB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,CAAC,SAAsB,EAAKmB,GAAM,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,MAAM,QAAQ,IAA2B,GAAmB,GAAG,IAAI,IAAI,GAAmB,QAAQ,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,YAAY,IAAI,WAAW,KAAK,MAAM,OAAO,GAAGd,GAAkB,EAAU,CAAK,UAAU,SAAS,UAAU,SAAU,CAAC,UAAU,iBAAkC,mBAAiB,SAAS,YAAY,MAAM,CAAC,uBAAuB,GAAG,wBAAwB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,EAAO,IAAI,CAAC,UAAU,gBAAgB,mBAAmB,OAAwB,mBAAiB,SAAS,YAAY,SAAsB,EAAKe,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKV,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,+BAA+B,qBAAqB,YAAY,SAAsB,EAAK,EAAO,OAAO,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,MAAM,CAAC,QAAQ,aAAa,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,2BAA2B,mBAAmB,gCAAgC,YAAY,CAAC,KAAK,EAAU,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAW,CAAC,kFAAkF,gFAAgF,4PAA4P,2XAA2X,wOAAwO,6RAA6R,gHAAgH,iFAAiF,GAAGW,GAAgB,CAW9hN,eAAe,IAAgB,GAAgB,GAAgB,YAAY,WAAW,GAAgB,aAAa,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,EAAoB,GAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,YAAY,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,MAAM,UAAU,KAAK,EAAY,KAAK,CAAC,UAAU,CAAC,wBAAwB,qTAAqT,MAAM,OAAO,KAAK,EAAY,gBAAgB,CAAC,UAAU,CAAC,aAAa,MAAM,gBAAgB,GAAM,MAAM,QAAQ,KAAK,EAAY,OAAO,CAAC,CAAC,CAAC,GAAS,GAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,0EAA0E,IAAI,yEAAyE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,wDAAwD,IAAI,yEAAyE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,cAAc,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,cAAc,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,uGAAuG,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,uLAAuL,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,oGAAoG,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,0EAA0E,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,wDAAwD,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,cAAc,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,cAAc,IAAI,uEAAuE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,uGAAuG,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,uLAAuL,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,QAAQ,aAAa,oGAAoG,IAAI,yEAAyE,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,GAAwBC,GAAkB,CAAC,CAAC,CAAC,6BAA6B,GAAK,CAAC,2BCXp5I,IAAU,UAAU,CAAC,2BAA2B,CAAC,CAAcC,GAAM,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,OAAO,oBAAoB,OAAO,SAAS,IAAI,wEAAwE,CAAC,CAAC,CAAC,CAAcC,GAAI,CAAC,4rBAA4rB,CAAcC,GAAU,kBCAhX,SAASC,GAAqB,EAAU,GAAG,EAAS,CAAC,IAAM,EAAc,EAAE,CAA+H,OAA9H,GAAmD,QAAQ,GAAS,GAAS,OAAO,OAAO,EAAc,EAAU,GAAS,CAAC,CAAQ,wDAAzwB,IAA4L,IAAkE,IAA4B,KAAyH,CAAMC,GAAW,CAAC,YAAY,YAAY,CAAOC,GAAkB,eAAqBC,GAAkB,CAAC,UAAU,kBAAkB,UAAU,mBAAmB,CAAuOC,GAAY,CAAC,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,KAAK,SAAS,CAAOC,GAAkB,GAAW,OAAO,GAAQ,UAAU,GAAc,OAAO,EAAM,KAAM,SAAiB,EAAc,OAAO,GAAQ,SAAS,CAAC,IAAI,EAAM,CAAC,IAAA,GAAkBC,IAAY,CAAC,QAAM,cAAY,CAAC,IAAM,EAAOC,EAAiB,EAAoB,CAAO,EAAW,GAAmC,EAAO,WAAiB,EAAaC,OAAmB,CAAC,GAAG,EAAO,aAAW,EAAE,CAAC,KAAK,UAAU,EAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,EAAoB,SAAS,CAAC,MAAM,EAAsB,WAAS,CAAC,EAASC,GAAS,EAAO,OAAOC,EAAe,CAAOC,GAAwB,CAAC,MAAM,YAAY,QAAQ,YAAY,CAAOC,IAAU,CAAC,QAAM,SAAO,KAAG,UAAQ,OAAK,QAAM,GAAG,MAAkF,CAAC,GAAG,EAAM,UAAgB,GAAgC,EAAM,WAAsC,QAAQ,UAAiB,GAAyC,EAAM,WAAwC,CAAC,IAAI,uEAAuE,CAAC,QAAuDD,GAAwB,EAAM,UAAyG,EAAM,SAAsC,YAAY,UAAiB,GAAmC,EAAM,WAAwC,qBAAqB,EAASE,IAAwB,EAAM,IAAe,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAAC,EAAM,iBAAwB,EAAS,KAAK,IAAI,CASl7E,GAAgB,EATk8E,EAAiB,SAAS,EAAM,EAAI,CAAC,GAAK,CAAC,eAAa,aAAW,IAAe,CAAM,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,YAAU,YAAU,YAAU,GAAG,GAAWD,GAAS,EAAM,CAAM,CAAC,cAAY,WAAA,EAAW,sBAAoB,kBAAgB,iBAAe,YAAU,kBAAgB,aAAW,YAAU,GAAgB,CAAC,WAAA,GAAW,eAAe,YAAY,UAAQ,kBAAA,GAAkB,CAAC,CAAO,EAAiBC,GAAuB,EAAM,EAAS,CAAO,GAAKC,EAAa,KAAK,CAAO,MAAoB,IAAc,YAA6C,MAAqB,IAAc,YAA6C,EAAgBC,GAAa,CAAO,GAAsB,CAACC,GAAsB,CAAO,GAAkB,IAAsB,CAAC,OAAoB,EAAK,EAAY,CAAC,GAAG,GAA4C,EAAgB,SAAsB,EAAKP,GAAS,CAAC,QAAQ,EAAS,QAAQ,GAAM,SAAsB,EAAKH,GAAW,CAAC,MAAMF,GAAY,SAAsB,EAAM,EAAO,IAAI,CAAC,GAAG,EAAU,GAAG,EAAgB,UAAU,EAAGF,GAAkB,GAAG,GAAsB,gBAAgBe,EAAUC,EAAW,CAAC,mBAAmB,QAAyB,mBAAiB,SAAS,YAAY,IAAI,GAA6B,GAAK,MAAM,CAAC,GAAG,EAAM,CAAC,GAAGlB,GAAqB,CAAC,UAAU,CAAC,mBAAmB,UAAU,CAAC,CAAC,EAAY,EAAe,CAAC,SAAS,CAAC,GAAa,EAAe,EAAKmB,GAAM,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,OAAO,YAAY,IAAI,WAAW,IAAI,GAAGd,GAAkB,EAAU,CAAK,UAAU,SAAS,UAAU,SAAU,CAAC,UAAU,eAAe,cAAc,GAAsB,mBAAiB,SAAS,YAAY,MAAM,CAAC,wBAAwB,MAAM,iBAAiB,kBAAkB,sBAAsB,MAAM,uBAAuB,MAAM,iBAAiB,QAAQ,qBAAqB,MAAM,uBAAuB,IAAI,wBAAwB,IAAI,oBAAoB,IAAI,qBAAqB,IAAI,CAAC,GAAGL,GAAqB,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,OAAO,QAAQ,IAA4B,IAA8E,GAAI,IAAI,IAAK,IAA8E,QAAS,IAAI,EAAE,IAAI,GAAG,CAAC,YAAY,IAAI,WAAW,IAAI,MAAM,OAAO,GAAGK,GAAkB,EAAU,CAAK,UAAU,SAAS,UAAU,SAAU,CAAC,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAC,GAAc,EAAe,EAAK,EAAO,IAAI,CAAC,UAAU,iBAAiB,cAAc,GAAsB,mBAAiB,SAAS,YAAY,MAAM,CAAC,wBAAwB,MAAM,iBAAiB,kEAAkE,sBAAsB,MAAM,uBAAuB,MAAM,iBAAiB,QAAQ,qBAAqB,MAAM,gBAAgB,EAAU,uBAAuB,IAAI,wBAAwB,IAAI,oBAAoB,IAAI,qBAAqB,IAAI,CAAC,CAAC,CAAc,EAAK,EAAO,IAAI,CAAC,UAAU,gBAAiC,mBAAiB,SAAS,YAAY,SAAsB,EAAKe,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKV,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,UAAU,8BAA8B,qBAAqB,YAAY,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,MAAM,CAAC,QAAQ,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,2BAA2B,mBAAmB,gCAAgC,YAAY,6BAA6B,MAAM,CAAC,KAAK,EAAU,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAW,CAAC,kFAAkF,gFAAgF,sQAAsQ,gHAAgH,6KAA6K,+RAA+R,gHAAgH,2kBAA2kB,GAAGW,GAAgB,gcAAgc,CAS5iQ,eAAe,IAAgB,GAAgB,GAAgB,YAAY,QAAQ,GAAgB,aAAa,CAAC,OAAO,GAAG,MAAM,KAAK,CAAC,EAAoB,GAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,YAAY,CAAC,aAAa,CAAC,QAAQ,UAAU,CAAC,MAAM,UAAU,KAAK,EAAY,KAAK,CAAC,UAAU,CAAC,aAAa,qBAAqB,MAAM,QAAQ,KAAK,EAAY,MAAM,CAAC,UAAU,CAAC,aAAa,QAAQ,gBAAgB,GAAM,MAAM,OAAO,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,wBAAwB,0YAA0Y,MAAM,UAAU,KAAK,EAAY,gBAAgB,CAAC,CAAC,CAAC,GAAS,GAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,OAAO,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,0EAA0E,IAAI,yEAAyE,OAAO,MAAM,CAAC,CAAC,OAAO,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,wDAAwD,IAAI,yEAAyE,OAAO,MAAM,CAAC,CAAC,OAAO,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,cAAc,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,OAAO,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,cAAc,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,OAAO,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,uGAAuG,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,OAAO,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,6JAA6J,IAAI,sEAAsE,OAAO,MAAM,CAAC,CAAC,OAAO,QAAQ,OAAO,SAAS,MAAM,SAAS,aAAa,oGAAoG,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,GAAwBC,GAAkB,CAAC,CAAC,CAAC,6BAA6B,GAAK,CAAC,qDCTpmE,SAASC,GAAqB,EAAU,GAAG,EAAS,CAAC,IAAM,EAAc,EAAE,CAAsF,OAArF,GAAU,QAAQ,GAAS,GAAS,OAAO,OAAO,EAAc,EAAU,GAAS,CAAC,CAAQ,2DAAnpB,IAA+M,IAAkE,IAA4B,CAAgCC,GAAW,CAAC,YAAY,YAAY,CAAOC,GAAkB,eAAqBC,GAAkB,CAAC,UAAU,kBAAkB,UAAU,kBAAkB,CAA8LC,GAAY,CAAC,SAAS,EAAE,KAAK,QAAQ,CAAOC,GAAkB,GAAW,OAAO,GAAQ,UAAU,GAAc,OAAO,EAAM,KAAM,SAAiB,EAAc,OAAO,GAAQ,SAAS,CAAC,IAAI,EAAM,CAAC,IAAA,GAAkBC,IAAY,CAAC,QAAM,cAAY,CAAC,IAAM,EAAOC,EAAiB,EAAoB,CAAO,EAAW,GAAO,EAAO,WAAiB,EAAaC,OAAmB,CAAC,GAAG,EAAO,aAAW,EAAE,CAAC,KAAK,UAAU,EAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,EAAoB,SAAS,CAAC,MAAM,EAAsB,WAAS,CAAC,EAASC,GAAS,EAAO,OAAOC,EAAe,CAAOC,GAAwB,CAAC,YAAY,YAAY,YAAY,YAAY,CAAOC,IAAU,CAAC,SAAO,KAAG,QAAM,UAAQ,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,UAAU,GAAS,EAAM,WAAW,eAAe,UAAU,GAAO,EAAM,UAAU,QAAQD,GAAwB,EAAM,UAAU,EAAM,SAAS,YAAY,EAASE,IAAwB,EAAM,IAAe,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAAC,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAWxuD,GAAgB,EAXwvD,EAAiB,SAAS,EAAM,EAAI,CAAC,IAAM,EAAYC,EAAO,KAAK,CAAO,EAAW,GAAK,EAAkB,EAAgBC,GAAa,CAAM,CAAC,eAAa,aAAW,IAAe,CAAO,EAAkB,IAAsB,CAAM,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,YAAU,YAAU,GAAG,GAAWH,GAAS,EAAM,CAAM,CAAC,cAAY,WAAA,EAAW,sBAAoB,kBAAgB,iBAAe,YAAU,kBAAgB,cAAW,YAAU,GAAgB,CAAC,WAAA,GAAW,eAAe,YAAY,IAAI,EAAW,UAAQ,kBAAA,GAAkB,CAAC,CAAO,EAAiBC,GAAuB,EAAM,EAAS,CAAM,CAAC,wBAAsB,UAAO,GAAyB,EAAY,CAAO,GAAa,EAAsB,MAAM,GAAG,IAAO,CAAC,EAAgB,CAAC,UAAU,GAAM,CAAC,CAAC,GAAW,GAAkB,EAAG,CAAsC,EAAkB,EAAGX,GAA2C,CAAO,OAAoB,IAAc,YAA6C,MAAqB,IAAc,YAAuC,OAAoB,EAAK,EAAY,CAAC,GAAG,GAAU,EAAgB,SAAsB,EAAKO,GAAS,CAAC,QAAQ,EAAS,QAAQ,GAAM,SAAsB,EAAKH,GAAW,CAAC,MAAMF,GAAY,SAAsB,EAAM,EAAO,IAAI,CAAC,GAAG,EAAU,GAAG,EAAgB,UAAU,EAAG,EAAkB,gBAAgBY,EAAUC,EAAW,CAAC,mBAAmB,YAAY,iBAAiB,GAAsB,mBAAiB,SAAS,YAAY,MAAM,GAAa,IAAI,EAAW,MAAM,CAAC,gBAAgB,2BAA2B,uBAAuB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,GAAG,EAAM,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,wEAAwE,uBAAuB,IAAI,wBAAwB,IAAI,oBAAoB,IAAI,qBAAqB,IAAI,CAAC,CAAC,GAAGjB,GAAqB,CAAC,UAAU,CAAC,mBAAmB,YAAY,CAAC,CAAC,EAAY,EAAe,CAAC,SAAS,CAAC,IAAa,EAAe,EAAKkB,GAAM,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,OAAO,YAAY,KAAK,WAAW,KAAK,GAAGb,GAAkB,EAAU,CAAK,UAAU,SAAS,UAAU,SAAU,CAAC,UAAU,gBAAgB,cAAc,GAAsB,mBAAiB,SAAS,YAAY,MAAM,CAAC,wBAAwB,MAAM,iBAAiB,wEAAwE,sBAAsB,MAAM,uBAAuB,MAAM,iBAAiB,QAAQ,qBAAqB,MAAM,uBAAuB,IAAI,wBAAwB,IAAI,oBAAoB,IAAI,qBAAqB,IAAI,CAAC,GAAGL,GAAqB,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,OAAO,QAAQ,IAA2B,GAAmB,GAAG,IAAI,KAAK,GAAmB,QAAQ,KAAK,GAAG,KAAK,GAAG,CAAC,YAAY,KAAK,WAAW,KAAK,MAAM,QAAQ,GAAGK,GAAkB,EAAU,CAAK,UAAU,SAAS,UAAU,SAAU,CAAC,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAC,GAAc,EAAe,EAAKc,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKT,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,kCAAkC,qBAAqB,OAAO,0BAA0B,SAAS,sBAAsB,2FAA2F,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,mBAAmB,OAAO,MAAM,CAAC,2BAA2B,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,kEAAkE,2BAA2B,mBAAmB,gCAAgC,YAAY,CAAC,KAAK,EAAU,kBAAkB,SAAS,mBAAmB,GAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAW,CAAC,kFAAkF,kFAAkF,yRAAyR,mHAAmH,4HAA4H,+EAA+E,gcAAgc,CAWlrN,eAAe,IAAgB,GAAgB,GAAgB,YAAY,SAAS,GAAgB,aAAa,CAAC,OAAO,KAAK,MAAM,MAAM,CAAC,EAAoB,GAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,YAAY,CAAC,aAAa,CAAC,YAAY,YAAY,CAAC,MAAM,UAAU,KAAK,EAAY,KAAK,CAAC,UAAU,CAAC,aAAa,eAAe,gBAAgB,GAAM,MAAM,UAAU,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,MAAM,QAAQ,KAAK,EAAY,gBAAgB,CAAC,CAAC,CAAC,GAAS,GAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,OAAO,oBAAoB,OAAO,SAAS,IAAI,yEAAyE,CAAC,CAAC,CAAC,CAAC,CAAC,6BAA6B,GAAK,CAAC,CACpsB,GAAqB,CAAC,QAAU,CAAC,MAAQ,CAAC,KAAO,SAAS,YAAc,CAAC,sBAAwB,IAAI,CAAC,CAAC,QAAU,CAAC,KAAO,iBAAiB,KAAO,kBAAkB,MAAQ,EAAE,CAAC,YAAc,CAAC,sBAAwB,IAAI,gBAAkB,8CAAsD,qBAAuB,QAAQ,6BAA+B,OAAO,yBAA2B,QAAQ,yBAA2B,OAAO,qBAAuB,OAAO,sBAAwB,OAAO,oCAAsC,oHAA0I,kBAAoB,OAAO,CAAC,CAAC,mBAAqB,CAAC,KAAO,WAAW,CAAC,CAAC,wBCb7qB,CACzD,IAAuB,EAAU,IAC9BU,EAAS,IAAI,EAAW,GAAU,GAAoB,EAAO,EAAM,CAAC,CAEvE,IAAuB,EAAO,IAC7BC,EAAe,EAAM,CAGrBA,EAAe,EAAM,MAAM,SAAS,CAGlCC,EAAa,EAAO,CACzB,GAAG,EAAM,MACT,SAAU,GAAoB,EAAM,MAAM,SAAU,EAAM,CAC3D,CAAC,CALOA,EAAa,EAAO,EAAM,CAH1B,uBCN6D,KACkB,CACpF,OAAkC,CACtC,GAAM,CACJ,gBACA,kBACE,IAAc,CAalB,MAAO,CACL,yBAbgC,GAAY,CAC5C,IAAM,EAAa,GAA6B,EAAQ,CACxD,EAAe,YAAa,EAAW,CACvC,EAAc,YAAa,EAAW,EAWtC,0BATiC,GAAc,CAC/C,IAAM,EAAa,CACjB,QAAS,EACV,CACD,EAAe,cAAe,EAAW,CACzC,EAAc,cAAe,EAAW,EAKzC,0BCtB+D,KACgB,KACQ,KACR,KACV,KACX,IACjB,IACU,KACc,IAClC,KAC6D,IAChC,KACsB,KAC1B,KACP,CAC9C,GAAmB,GAAY,CACnC,GAAM,CACJ,UACE,IAAgB,CACd,CACJ,2BACE,IAAwB,CACtB,CACJ,2BACE,IAA4B,CAC1B,CACJ,2BACA,6BACE,IAA2B,CACzB,CACJ,YACA,gBACA,kBACE,IAAyB,CACvB,CAAC,EAAY,GAAiBC,EAAU,GAAmC,YAAe,EAAE,CAC5F,MAAqB,CACpB,IAGL,EAAc,EAAQ,UAAU,CAChC,EAAe,GAAS,EAAO,EAAE,CACjC,EAAyB,EAAQ,CACjC,EAAwB,EAAQ,GAE5B,MAAsB,CACrB,IAGL,EAAe,EAAQ,UAAU,CACjC,EAAe,GAAS,EAAO,EAAE,CACjC,EAA0B,EAAQ,UAAU,GA4B9C,OALA,MAAgB,CACV,GAAmC,YACrC,EAAc,EAAQ,WAAW,EAElC,CAAC,GAAmC,WAAW,CAAC,CAC5C,CACL,aACA,YACA,iBA7BuB,SAAY,CACnC,GAAI,CAAC,EAAQ,CACX,GAAyB,CACzB,OAEF,GAAI,CAAC,EACH,OAEF,IAAM,EAAiB,EAAU,EAAQ,UAAU,GAAK,MAClD,EAAS,EAAiB,MAAQ,QACxC,GAAI,CACF,MAAM,GAAW,YAAY,EAAQ,UAAW,EAAO,CACnD,EACF,GAAc,CAEd,GAAe,OAEV,EAAK,CACZ,QAAQ,MAAM,EAAI,GAYrB,EAEG,OAAgC,CACpC,GAAM,CACJ,YACA,OAAQ,GACN,GAAyB,CAC3B,QAAS,IAAiB,CAC3B,CAAC,CAiBF,MAAO,CACL,UAjBiB,GACZ,MAAM,QAAQ,EAAU,EAGtB,EAAU,SAAS,EAAU,CAAG,KAAO,MAc9C,cAZqB,GAAc,CACnC,EAAgB,CAAC,GAAG,EAAW,EAAU,CAAE,CACzC,WAAY,GACb,CAAC,EAUF,eARsB,GAAc,CACpC,EAAgB,EAAU,OAAQ,GAAmB,GAAkB,EAAU,CAAE,CACjF,WAAY,GACb,CAAC,EAMH,sBC/G+C,KACqC,KACrB,CAC5D,IAAwB,CAC5B,UACA,cACI,CAEJ,GAAM,CACJ,aACA,YACA,oBACE,GALqB,GAA4B,EAAQ,CAKxB,CACrC,OAAuB,EAAIC,EAAU,CAAE,SAAU,EAAS,CACxD,aACA,UAAW,EAAU,EAAQ,OAAO,CACpC,aAAc,EACf,CAAC,CAAE,CAAC,4BCjBiD,KACH,IACF,IACnC,IACD,CACT,GAAkB,kBAClB,OAAuB,CAC3B,GAAI,IAAU,CACZ,MAAO,EAAE,CAEX,IAAM,EAAW,SAAS,iBAAiB,IAAI,GAAgB,GAAG,CAClE,OAAO,MAAM,KAAK,EAAS,CAAC,IAAK,GAExB,OAAa,EAAQ,aAAa,GAAgB,EAAwB,MAAM,CAAC,CACxF,EAEE,IAAsB,EAAU,IAAQ,CAC5C,IAAM,EAAY,EAAS,WAAW,WAAW,CAC3C,EAAa,EAAS,MAAM,IAAI,CAAC,GAEjC,EAAM,GADI,EAAY,EAAa,yBAAyB,IAC3C,OACjB,EAAS,CAAC,GAAG,EAAI,iBAAkB,GAAG,EAAI,iBAAiB,CAAC,KAAK,IAAI,CAC3E,MAAO,CACL,IAAK,GAAO,GACZ,MACA,SACA,KAAM,kBACP,sBC3BmD,KACc,IAClC,KACmD,IACtB,IACnB,KACyC,KAC1B,KACP,KACQ,CACtD,GAAsB,GAAc,CACxC,GAAM,CAAC,EAAY,GAAiBC,EAAS,EAAE,CAAC,CAC1C,CACJ,eACE,GAAoB,EAAW,CAInC,OAHA,MAAgB,CACd,EAAc,IAAgB,CAAC,EAC9B,CAAC,EAAU,CAAC,CACR,EAAY,KAAM,GAAY,EAAQ,SAAW,EAAU,+BClBhC,KACoC,KACiB,KACC,KACA,CACpF,IAAwB,EAAM,IAAY,CAC9C,GAAM,CACJ,gBACA,kBACE,IAAc,CAclB,MAAO,CACL,sBAd8B,CAC9B,GAAI,CAAC,EACH,OAEF,IAAM,EAAa,CACjB,GAAG,IAA8B,CACjC,GAAG,GAA6B,EAAQ,CACxC,iBAAkB,QAClB,UAAW,EACZ,CACD,EAAc,qBAAsB,EAAW,CAC/C,EAAe,aAAc,EAAW,EAIzC,EAEG,IAAuB,EAAM,IAAY,CAC7C,GAAM,CACJ,iBACE,IAAc,CAalB,MAAO,CACL,iBAbuBC,MAAkB,CACpC,GASL,EAAc,oBANK,CACjB,GAAG,IAA8B,CACjC,GAAG,GAA6B,EAAQ,CACxC,iBAAkB,QAClB,UAAW,EACZ,CAC6C,EAC7C,CAAC,EAAQ,CAAC,CAGZ,EAEG,IAAsB,EAAM,IAAY,CAC5C,GAAM,CACJ,iBACE,IAAc,CAalB,MAAO,CACL,gBAbsBA,MAAkB,CACnC,GASL,EAAc,mBANK,CACjB,GAAG,IAA8B,CACjC,GAAG,GAA6B,EAAQ,CACxC,iBAAkB,QAClB,UAAW,EACZ,CAC4C,EAC5C,CAAC,EAAQ,CAAC,CAGZ,EAEG,IAAwB,EAAS,IAAgB,CACrD,IAAM,EAAqB,IAAuB,CAC5C,MAA4B,CAChC,GAAI,CAAC,GAAW,CAAC,EACf,OAAO,KAET,IAAM,EAAoB,CACxB,QAAS,EAAQ,OACjB,UAAW,EAAQ,SACnB,SAAU,EAAQ,aAClB,WAAY,EAAQ,kBACpB,kBAAmB,EAAQ,iBAAiB,GAAG,kBAC/C,oBAAqB,GACrB,mBAAoB,EAAQ,iBAAiB,GAAG,mBAChD,qBAAsB,GACtB,kBAAmB,EAAQ,iBAAiB,GAAG,kBAC/C,oBAAqB,GACrB,MAAO,EAAQ,cACf,cAAe,EAAQ,gBACvB,WAAY,EAAQ,UACpB,cAAe,GAChB,CACK,EAAoB,CACxB,aAAc,EACd,cAAe,EAChB,CACD,MAAO,CACL,GAAG,EACH,GAAG,EACJ,EAgBH,MAAO,CACL,yBAfiC,CACjC,IAAM,EAAa,GAAqB,CACnC,GAGL,EAAmB,kBAAmB,EAAW,EAWjD,2BATmC,CACnC,IAAM,EAAa,GAAqB,CACnC,GAGL,EAAmB,aAAc,EAAW,EAK7C,uBCnHF,UAAW,CAEV,GAAI,CACF,GAAI,OAAO,SAAY,IAAa,CAClC,IAAI,EAAe,SAAS,cAAc,QAAQ,CAClD,EAAa,YAAY,SAAS,eAAe;;;;;;;;;;;;GAAkO,CAAC,CACpR,SAAS,KAAK,YAAY,EAAa,QAElCC,EAAG,CACV,QAAQ,MAAM,iCAAkCA,EAAE,KAElD,CACE,GAAY,qBACZ,GAAS,CACb,aACD,wBCfiD,IACR,IACA,KAC6C,KACX,KACnB,KACI,KACI,KACD,KACuE,KAClF,KACW,KACgB,KACH,KACX,IACZ,KACc,IAClC,IAC6B,KACsB,KAC1B,KACP,IACpC,KACwD,KACd,IACF,KACF,KACc,KAChB,KACY,KACU,KACR,IAC/C,IACgC,KACqB,KAC/B,IACU,KACI,KACY,CAC7DC,IAAmB,CACvB,WACA,mBACA,YAAY,GACZ,OAAO,kBACP,QACA,iBACI,CACJ,IAAM,EAAU,GAAmB,OAAO,EAAU,CAAC,CACrD,GAAkB,EAAU,CAC5B,IAAM,EAAmB,GAA4B,EAAQ,CACvD,CACJ,qBACE,GAAqB,EAAM,EAAiB,CAC1C,CACJ,oBACE,GAAoB,EAAM,EAAiB,CACzC,CACJ,mBACE,GAAmB,EAAM,EAAiB,CACxC,CACJ,uBACA,0BACE,GAAqB,EAAS,EAAY,CACxC,EAAMC,EAAO,KAAK,CAClB,EAAW,EAAU,EAAK,CAC9B,OAAQ,GACT,CAAC,CACI,EAAc,EAAU,EAAK,CACjC,OAAQ,EACT,CAAC,CACF,MAAgB,CACd,GAAY,EAAU,EAAiB,EAAE,EACxC,CAAC,EAAU,EAAiB,CAAC,CAChC,MAAgB,CACd,GAAY,EAAa,EAAgB,EAAE,EAC1C,CAAC,EAAa,EAAgB,CAAC,CAClC,IAAM,MAAoB,CACxB,GAAY,CAAC,EAAU,EAAiB,EAAE,CAC1C,GAAY,CAAC,EAAa,EAAgB,EAAE,CAC5C,GAAmB,CACnB,GAAwB,EAK1B,OAHK,EAGkB,EAAI,GAAa,KAAM,CAAE,MAAO,CAAC,aAAa,CAAE,aAAc,EAAsB,SAA0B,EAAI,MAAO,CAAE,UAAW,GAAO,UAAW,kBAAmB,EAAW,MAAK,QAAO,SAA0B,EAAI,GAAsB,CAAE,UAAS,UAAW,CACjS,aACA,YACA,kBACoB,EAAI,GAAyB,CAAE,UAAS,aAAY,YAAW,eAAc,QAAS,EAAa,SAAU,EAAQ,UAAY,EAAmB,EAAU,CAAC,CAAE,CAAC,CAAE,CAAC,CAAE,CAAC,CANrK,EAAI,MAAO,CAAE,UAAW,GAAO,UAAW,kBAAmB,EAAW,MAAK,QAAO,SAAU,IAAiB,CAAG,EAAmB,EAAU,CAAC,EAQrK,IAA2B,CAC/B,WACA,UACA,aACA,YACA,eACA,aACI,CACJ,IAAM,EAAM,sCAAsC,EAAQ,SAC1D,OAAuB,EAAIC,EAAU,CAAE,SAAU,GAAoB,EAAU,CAC7E,GAAG,EACH,MAAO,GAAmB,EAAQ,SAAS,CAC3C,MACA,aACA,YACA,eACA,UACD,CAAC,CAAE,CAAC,oBC5GgD,ICEpD,SAAwB,GAAgB,CAAC,WAAS,mBAAiB,YAAU,SAAO,CAAoF,OAA5D,IAAqB,CAA6B,EAA8B,EAAKC,GAAoB,CAAkB,mBAA2B,YAAgB,QAAe,WAAS,CAAC,mBAFnQ,KAAwI,IAAwE,CAEqD,EAAoB,GAAgB,CAAC,SAAS,CAAC,KAAK,EAAY,kBAAkB,YAAY,OAAO,CAAC,iBAAiB,CAAC,KAAK,EAAY,kBAAkB,YAAY,eAAe,CAAC,UAAU,CAAC,KAAK,EAAY,OAAO,YAAY,QAAQ,CAAC,CAAC,ICDyI,SAASC,GAAqB,EAAU,GAAG,EAAS,CAAC,IAAM,EAAc,EAAE,CAAsF,OAArF,GAAU,QAAQ,GAAS,GAAS,OAAO,OAAO,EAAc,EAAU,GAAS,CAAC,CAAQ,iEAAxxB,IAAgL,IAAkE,IAA4B,CAAgCC,GAAW,CAAC,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,CAAOC,GAAkB,eAAqBC,GAAkB,CAAC,UAAU,mBAAmB,UAAU,mBAAmB,UAAU,kBAAkB,UAAU,mBAAmB,UAAU,kBAAkB,UAAU,mBAAmB,CAA8LC,GAAY,CAAC,SAAS,EAAE,KAAK,QAAQ,CAAO,GAAoB,GAAO,CAAC,GAAG,OAAO,GAAQ,SAAS,OAAO,EAAU,UAAO,SAAS,EAAM,CAAkB,OAAO,KAAK,IAAI,EAAE,EAAM,CAAC,MAAa,GAAO,GAAc,CAAC,EAAc,IAAa,EAAE,IAAY,OAAOC,GAAI,UAAU,OAAO,GAAI,SAASA,EAAE,EAAE,GAAc,IAAgB,EAAM,EAAQ,EAAE,CAAC,IAAe,CAAC,IAAM,EAAe,QAAc,EAAO,EAAQ,QAAQ,GAAc,EAAoB,CAAC,cAAY,WAAS,iBAAe,QAAM,WAAS,kBAAgB,OAAK,cAAY,wBAAsB,wBAAsB,wBAAsB,EAAc,EAAc,CAAC,cAAY,WAAS,iBAAe,QAAM,WAAS,kBAAgB,OAAK,cAAY,wBAAsB,wBAAsB,uBAAqB,CAAO,EAAO,OAAO,EAAM,CAAC,GAAG,CAAC,OAAO,EAAO,eAAe,EAAO,EAAc,MAAO,CAAC,GAAG,CAAC,OAAO,EAAO,eAAe,EAAe,EAAc,MAAO,CAAC,OAAO,EAAO,gBAAgB,IAAWC,IAAY,CAAC,QAAM,cAAY,CAAC,IAAM,EAAOC,EAAiB,EAAoB,CAAO,EAAW,GAAO,EAAO,WAAiB,EAAaC,OAAmB,CAAC,GAAG,EAAO,aAAW,EAAE,CAAC,KAAK,UAAU,EAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,EAAoB,SAAS,CAAC,MAAM,EAAsB,WAAS,CAAC,EAASC,GAAS,EAAO,OAAOC,EAAe,CAAOC,GAAwB,CAAC,aAAa,YAAY,qBAAqB,YAAY,mBAAmB,YAAY,qBAAqB,YAAY,mBAAmB,YAAY,aAAa,YAAY,CAAOC,IAAU,CAAC,EAAA,EAAE,eAAa,oBAAkB,MAAI,SAAO,KAAG,WAAS,qBAAmB,wBAAsB,kBAAgB,gBAAc,UAAQ,eAAa,MAAI,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,UAAU,GAAuB,EAAM,UAAU,UAAU,GAAS,EAAM,UAAU,UAAUC,GAAG,EAAM,WAAW,cAAc,UAAU,GAAiB,EAAM,WAAW,GAAG,UAAU,GAAoB,EAAM,UAAU,UAAU,GAAc,EAAM,WAAW,GAAK,UAAU,GAAc,EAAM,WAAW,GAAK,UAAU,GAAmB,EAAM,WAAW,UAAU,UAAU,GAAU,EAAM,WAAW,YAAY,UAAU,GAAK,EAAM,UAAU,QAAQF,GAAwB,EAAM,UAAU,EAAM,SAAS,YAAY,UAAU,GAAK,EAAM,WAAW,EAAE,UAAU,GAAe,EAAM,WAAW,IAAI,EAASG,IAAwB,EAAM,IAAe,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAAC,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAW/yG,GAAgB,EAX+zG,EAAiB,SAAS,EAAM,EAAI,CAAC,IAAM,EAAYC,EAAO,KAAK,CAAO,EAAW,GAAK,EAAkB,EAAgBC,GAAa,CAAM,CAAC,eAAa,aAAW,IAAe,CAAyB,IAAsB,CAAC,GAAK,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,YAAU,YAAU,YAAU,YAAU,YAAU,YAAU,YAAU,YAAU,YAAU,YAAU,YAAU,aAAU,GAAG,GAAWJ,GAAS,EAAM,CAAM,CAAC,cAAY,WAAA,EAAW,uBAAoB,mBAAgB,iBAAe,aAAU,kBAAgB,aAAW,aAAU,GAAgB,CAAC,WAAA,GAAW,eAAe,YAAY,IAAI,EAAW,UAAQ,kBAAA,GAAkB,CAAC,CAAO,GAAiBE,GAAuB,EAAM,GAAS,CAAM,CAAC,yBAAsB,UAAO,GAAyB,EAAY,CAAO,EAAY,GAAsB,MAAM,GAAG,IAAO,CAAC,GAAG,GAAqB,MAAM,EAAU,GAAG,EAAK,GAAU,GAAM,MAAO,IAAS,CAAsC,GAAkB,EAAGZ,GAA2C,CAAO,GAAQ,GAAO,EAAU,CAAO,GAAS,GAAY,EAAU,EAAE,CAAO,GAAiB,IAAe,CAAO,GAAY,GAAe,EAAU,CAAC,OAAO,GAAG,SAAS,WAAW,MAAM,OAAO,KAAK,UAAU,YAAY,QAAQ,CAAC,GAAiB,CAAO,EAAa,GAAe,EAAU,CAAC,OAAO,GAAG,SAAS,WAAW,MAAM,UAAU,CAAC,GAAiB,CAAC,OAAoB,EAAK,EAAY,CAAC,GAAG,GAAU,EAAgB,SAAsB,EAAKO,GAAS,CAAC,QAAQ,GAAS,QAAQ,GAAM,SAAsB,EAAKH,GAAW,CAAC,MAAMF,GAAY,SAAsB,EAAM,EAAO,IAAI,CAAC,GAAG,EAAU,GAAG,GAAgB,UAAU,EAAG,GAAkB,gBAAgBa,EAAUC,EAAW,CAAC,mBAAmB,uBAAwC,oBAAiB,SAAS,YAAY,IAAI,EAAW,MAAM,CAAC,YAAY,GAAoB,GAAU,CAAC,GAAG,EAAM,CAAC,GAAGlB,GAAqB,CAAC,UAAU,CAAC,mBAAmB,eAAe,CAAC,UAAU,CAAC,mBAAmB,qBAAqB,CAAC,UAAU,CAAC,mBAAmB,qBAAqB,CAAC,UAAU,CAAC,mBAAmB,uBAAuB,CAAC,UAAU,CAAC,mBAAmB,eAAe,CAAC,CAAC,EAAY,EAAe,CAAC,SAAS,CAAc,EAAK,GAAK,CAAC,KAAK,EAAU,YAAY,GAAK,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAM,EAAO,EAAE,CAAC,UAAU,+BAA+B,mBAAmB,cAAc,iBAAiB,GAAsB,oBAAiB,SAAS,YAAY,MAAM,EAAY,SAAS,CAAC,GAAwB,EAAKmB,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKT,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,gCAAgC,qBAAqB,OAAO,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,mBAAmB,YAAY,MAAM,CAAC,yBAAyB,CAAkB,oBAAiB,SAAS,YAAY,KAAK,EAAU,SAAS,CAAC,UAAU,CAAC,qBAAqB,qBAAqB,CAAC,UAAU,CAAC,qBAAqB,qBAAqB,CAAC,UAAU,CAAC,qBAAqB,qBAAqB,CAAC,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,GAAGV,GAAqB,CAAC,UAAU,CAAC,SAAsB,EAAKU,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,+DAA+D,qBAAqB,OAAO,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,+DAA+D,qBAAqB,OAAO,sBAAsB,8CAA8C,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,gCAAgC,qBAAqB,OAAO,sBAAsB,8CAA8C,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,+DAA+D,qBAAqB,OAAO,sBAAsB,8CAA8C,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAc,EAAK,EAAO,IAAI,CAAC,UAAU,gBAAiC,oBAAiB,SAAS,YAAY,SAAS,IAAsB,EAAKS,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKT,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,mCAAmC,qBAAqB,OAAO,CAAC,SAAS,uCAAuC,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,mBAAmB,cAAc,MAAM,CAAC,4BAA4B,CAAkB,oBAAiB,SAAS,YAAY,KAAK,EAAU,SAAS,CAAC,UAAU,CAAC,qBAAqB,qBAAqB,CAAC,UAAU,CAAC,qBAAqB,qBAAqB,CAAC,UAAU,CAAC,qBAAqB,qBAAqB,CAAC,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,GAAGV,GAAqB,CAAC,UAAU,CAAC,SAAsB,EAAKU,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,qEAAqE,qBAAqB,OAAO,sBAAsB,8CAA8C,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,mCAAmC,qBAAqB,OAAO,sBAAsB,8CAA8C,CAAC,SAAS,uCAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,mCAAmC,qBAAqB,OAAO,sBAAsB,8CAA8C,CAAC,SAAS,uCAAuC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAC,CAAC,CAAC,GAAwB,EAAKS,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKT,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,mCAAmC,qBAAqB,OAAO,CAAC,SAAS,uCAAuC,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,mBAAmB,QAAQ,MAAM,CAAC,4BAA4B,CAAkB,oBAAiB,SAAS,YAAY,KAAK,EAAU,SAAS,CAAC,UAAU,CAAC,qBAAqB,qBAAqB,CAAC,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,GAAGV,GAAqB,CAAC,UAAU,CAAC,SAAsB,EAAKU,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,qEAAqE,qBAAqB,OAAO,sBAAsB,8CAA8C,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAwB,EAAM,EAAO,IAAI,CAAC,UAAU,gBAAgB,mBAAmB,YAA6B,oBAAiB,SAAS,YAAY,SAAS,CAAC,IAAuB,EAAKS,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKT,EAAe,CAAC,SAAsB,EAAK,EAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,gCAAgC,qBAAqB,OAAO,sBAAsB,2CAA2C,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,mBAAmB,kBAAkB,MAAM,CAAC,yBAAyB,CAAkB,oBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,kBAAkB,2BAA2B,mBAAmB,gCAAgC,YAAY,CAAC,KAAK,GAAY,kBAAkB,MAAM,mBAAmB,GAAK,GAAGV,GAAqB,CAAC,UAAU,CAAC,SAAsB,EAAKU,EAAe,CAAC,SAAsB,EAAK,EAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,gCAAgC,qBAAqB,OAAO,sBAAsB,2CAA2C,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,gCAAgC,sBAAsB,2CAA2C,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,gCAAgC,sBAAsB,2CAA2C,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,gCAAgC,qBAAqB,OAAO,sBAAsB,2CAA2C,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAc,EAAKS,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKT,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,gCAAgC,qBAAqB,OAAO,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,mBAAmB,gBAAgB,MAAM,CAAC,yBAAyB,CAAkB,oBAAiB,SAAS,YAAY,KAAK,EAAa,SAAS,CAAC,UAAU,CAAC,qBAAqB,qBAAqB,CAAC,UAAU,CAAC,qBAAqB,qBAAqB,CAAC,UAAU,CAAC,qBAAqB,qBAAqB,CAAC,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,GAAGV,GAAqB,CAAC,UAAU,CAAC,SAAsB,EAAKU,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,gCAAgC,qBAAqB,OAAO,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,gCAAgC,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,gCAAgC,sBAAsB,8CAA8C,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,gCAAgC,qBAAqB,OAAO,sBAAsB,8CAA8C,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,gCAAgC,qBAAqB,OAAO,sBAAsB,8CAA8C,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAW,CAAC,kFAAkF,kFAAkF,2QAA2Q,uTAAuT,qKAAqK,4QAA4Q,yLAAyL,uLAAuL,gRAAgR,+IAA+I,2GAA2G,4FAA4F,4HAA4H,oFAAoF,mHAAmH,gGAAgG,mEAAmE,wEAAwE,4DAA4D,CAW7vjB,eAAe,IAAgB,GAAgB,GAAgB,YAAY,cAAc,GAAgB,aAAa,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,EAAoB,GAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,CAAC,aAAa,CAAC,uBAAuB,uBAAuB,eAAe,eAAe,qBAAqB,qBAAqB,CAAC,MAAM,UAAU,KAAK,EAAY,KAAK,CAAC,UAAU,CAAC,aAAa,GAAK,MAAM,gBAAgB,KAAK,EAAY,QAAQ,CAAC,UAAU,CAAC,MAAM,MAAM,KAAK,EAAY,KAAK,CAAC,UAAU,CAAC,MAAM,UAAU,KAAK,EAAY,aAAa,CAAC,UAAU,CAAC,aAAa,UAAU,gBAAgB,GAAM,MAAM,oBAAoB,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,aAAa,YAAY,gBAAgB,GAAM,MAAM,WAAW,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,aAAa,GAAM,MAAM,wBAAwB,KAAK,EAAY,QAAQ,CAAC,UAAU,CAAC,aAAa,GAAM,MAAM,2BAA2B,KAAK,EAAY,QAAQ,CAAC,UAAU,CAAC,aAAa,cAAc,gBAAgB,GAAM,MAAM,QAAQ,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,aAAa,GAAG,MAAM,kBAAkB,KAAK,EAAY,OAAO,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,IAAI,eAAe,GAAM,MAAM,gBAAgB,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,aAAa,GAAK,MAAM,eAAe,KAAK,EAAY,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,EAAE,MAAM,MAAM,KAAK,EAAY,OAAO,CAAC,CAAC,CAAC,GAAS,GAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,OAAO,kBAAkB,OAAO,SAAS,IAAI,yEAAyE,CAAC,CAAC,OAAO,qBAAqB,OAAO,SAAS,IAAI,yEAAyE,CAAC,CAAC,CAAC,CAAC,CAAC,6BAA6B,GAAK,CAAC,mDCX3tD,IAAiM,IAAkE,IAA4B,KAAoI,KAAsH,CAAM,GAAiB,GAASU,GAAY,CAAO,GAAU,GAASC,GAAK,CAAOC,GAAkB,eAAqBC,GAAkB,CAAC,UAAU,mBAAmB,CAA8LC,GAAY,CAAC,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,KAAK,SAAS,CAAOC,IAAY,CAAC,QAAM,cAAY,CAAC,IAAM,EAAOC,EAAiB,EAAoB,CAAO,EAAW,GAAO,EAAO,WAAiB,EAAaC,OAAmB,CAAC,GAAG,EAAO,aAAW,EAAE,CAAC,KAAK,UAAU,EAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,EAAoB,SAAS,CAAC,MAAM,EAAsB,WAAS,CAAC,EAASC,GAAS,EAAO,OAAOC,EAAe,CAAOC,IAAU,CAAC,SAAO,KAAG,kBAAgB,gBAAc,MAAI,UAAQ,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,UAAU,GAAK,EAAM,UAAU,UAAU,GAAS,EAAM,WAAW,GAAK,UAAU,GAAiB,EAAM,WAAW,GAAG,UAAU,GAAe,EAAM,WAAW,IAAI,EAASC,IAAwB,EAAM,IAAe,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAAC,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAW1vD,GAAgB,EAX0wD,EAAiB,SAAS,EAAM,EAAI,CAAC,IAAM,EAAYC,EAAO,KAAK,CAAO,EAAW,GAAK,EAAkB,EAAgBC,GAAa,CAAM,CAAC,eAAa,aAAW,IAAe,CAAO,EAAkB,IAAsB,CAAM,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,YAAU,YAAU,YAAU,YAAU,GAAG,GAAWH,GAAS,EAAM,CAAM,CAAC,cAAY,WAAA,EAAW,sBAAoB,kBAAgB,iBAAe,YAAU,mBAAgB,aAAW,YAAU,GAAgB,CAAC,eAAe,YAAY,IAAI,EAAW,UAAQ,kBAAA,GAAkB,CAAC,CAAO,EAAiBC,GAAuB,EAAM,EAAS,CAAsC,GAAkB,EAAGT,GAA2C,CAAC,OAAoB,EAAK,EAAY,CAAC,GAAG,GAAU,EAAgB,SAAsB,EAAKM,GAAS,CAAC,QAAQ,EAAS,QAAQ,GAAM,SAAsB,EAAKH,GAAW,CAAC,MAAMD,GAAY,SAAsB,EAAK,GAAK,CAAC,KAAK,EAAU,YAAY,GAAK,OAAO,YAAY,QAAQ,YAAY,SAAsB,EAAM,EAAO,EAAE,CAAC,GAAG,EAAU,GAAG,EAAgB,UAAU,GAAG,EAAG,GAAkB,iBAAiBU,EAAUC,EAAW,CAAC,iBAAiB,mBAAmB,YAA6B,mBAAiB,SAAS,YAAY,IAAI,EAAW,MAAM,CAAC,GAAG,EAAM,CAAC,SAAS,CAAc,EAAK,GAA0B,CAAC,OAAO,GAAG,GAAG,GAAmB,GAAG,IAAI,IAAI,GAAmB,QAAQ,IAAI,EAAE,IAAI,GAAG,SAAsB,EAAK,GAA8B,CAAC,UAAU,2BAA4C,mBAAiB,SAAS,sBAAsB,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAKf,GAAY,CAAC,UAAU,GAAM,UAAU,cAAc,UAAU,EAAU,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,UAAU,GAAK,UAAU,GAAK,UAAU,GAAM,UAAU,UAAU,UAAU,YAAY,QAAQ,YAAY,MAAM,OAAO,UAAU,EAAE,UAAU,EAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAwB,EAAK,GAA0B,CAAC,SAAsB,EAAK,GAA8B,CAAC,UAAU,0BAA0B,iBAAiB,GAAK,iBAAiB,GAAsB,mBAAiB,SAAS,sBAAsB,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAKC,GAAK,CAAC,KAAK,GAAM,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,KAAK,GAAG,KAAK,eAAe,OAAO,OAAO,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAW,CAAC,kFAAkF,kFAAkF,iSAAiS,iJAAiJ,CAWxuJ,eAAe,IAAgB,GAAgB,GAAgB,YAAY,uBAAuB,GAAgB,aAAa,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,EAAoB,GAAgB,CAAC,UAAU,CAAC,MAAM,MAAM,KAAK,EAAY,KAAK,CAAC,UAAU,CAAC,aAAa,IAAI,eAAe,GAAM,MAAM,kBAAkB,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,aAAa,GAAG,MAAM,oBAAoB,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,aAAa,GAAK,MAAM,UAAU,KAAK,EAAY,QAAQ,CAAC,CAAC,CAAC,GAAS,GAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,EAAE,CAAC,CAAC,GAAG,GAAiB,GAAG,GAAU,CAAC,CAAC,6BAA6B,GAAK,CAAC,mDCXnmB,IAA4L,IAAkE,IAA4B,KAA0J,KAA+H,CAAM,GAA0B,GAASe,GAAqB,CAAO,GAAqB,GAAS,GAAgB,CAAOC,GAAkB,eAAqBC,GAAkB,CAAC,UAAU,mBAAmB,CAA8LC,GAAY,CAAC,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,KAAK,SAAS,CAAOC,IAAY,CAAC,QAAM,cAAY,CAAC,IAAM,EAAOC,EAAiB,EAAoB,CAAO,EAAW,GAAO,EAAO,WAAiB,EAAaC,OAAmB,CAAC,GAAG,EAAO,aAAW,EAAE,CAAC,KAAK,UAAU,EAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,EAAoB,SAAS,CAAC,MAAM,EAAsB,WAAS,CAAC,EAASC,GAAS,EAAO,OAAOC,EAAe,CAAOC,IAAU,CAAC,SAAO,KAAG,YAAU,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,UAAU,GAAW,EAAM,UAAU,EAASC,IAAwB,EAAM,IAAe,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAAC,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAW9oD,GAAgB,EAX8pD,EAAiB,SAAS,EAAM,EAAI,CAAC,IAAM,EAAYC,EAAO,KAAK,CAAO,EAAW,GAAK,EAAkB,EAAgBC,GAAa,CAAM,CAAC,eAAa,aAAW,IAAe,CAAyB,IAAsB,CAAC,GAAK,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,YAAU,GAAG,GAAWH,GAAS,EAAM,CAAM,CAAC,cAAY,WAAA,EAAW,sBAAoB,kBAAgB,iBAAe,YAAU,kBAAgB,aAAW,YAAU,GAAgB,CAAC,eAAe,YAAY,IAAI,EAAW,UAAQ,kBAAA,GAAkB,CAAC,CAAO,EAAiBC,GAAuB,EAAM,EAAS,CAAsC,EAAkB,EAAGT,GAA2C,CAAC,OAAoB,EAAK,EAAY,CAAC,GAAG,GAAU,EAAgB,SAAsB,EAAKM,GAAS,CAAC,QAAQ,EAAS,QAAQ,GAAM,SAAsB,EAAKH,GAAW,CAAC,MAAMD,GAAY,SAAsB,EAAK,EAAO,IAAI,CAAC,GAAG,EAAU,GAAG,EAAgB,UAAU,EAAG,EAAkB,iBAAiBU,EAAUC,EAAW,CAAC,mBAAmB,YAA6B,mBAAiB,SAAS,YAAY,IAAI,EAAW,MAAM,CAAC,GAAG,EAAM,CAAC,SAAsB,EAAK,GAA0B,CAAC,SAAsB,EAAK,GAA8B,CAAC,UAAU,0BAA0B,iBAAiB,GAAK,iBAAiB,GAAsB,mBAAiB,SAAS,sBAAsB,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAK,GAAgB,CAAC,iBAAiB,CAAc,EAAK,GAA0B,CAAC,OAAO,GAAG,MAAM,OAAO,SAAsB,EAAK,GAA8B,CAAC,UAAU,2BAA2B,gBAAgB,GAAsB,mBAAiB,SAAS,sBAAsB,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAKd,GAAqB,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,UAAU,GAAM,UAAU,GAAG,MAAM,OAAO,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,UAAU,EAAU,MAAM,OAAO,SAAsB,EAAK,GAA0B,CAAC,OAAO,GAAG,MAAM,OAAO,SAAsB,EAAK,GAA8B,CAAC,UAAU,2BAA2B,gBAAgB,GAAsB,mBAAiB,SAAS,sBAAsB,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAKA,GAAqB,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,UAAU,GAAM,UAAU,GAAG,MAAM,OAAO,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAW,CAAC,kFAAkF,gFAAgF,2QAA2Q,wGAAwG,6FAA6F,CAWnxJ,eAAe,IAAgB,GAAgB,GAAgB,YAAY,YAAY,GAAgB,aAAa,CAAC,OAAO,GAAG,MAAM,GAAG,CAAC,EAAoB,GAAgB,CAAC,UAAU,CAAC,aAAa,GAAG,MAAM,aAAa,KAAK,EAAY,OAAO,CAAC,CAAC,CAAC,GAAS,GAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,EAAE,CAAC,CAAC,GAAG,GAA0B,GAAG,GAAqB,CAAC,CAAC,6BAA6B,GAAK,CAAC,yDCX7Y,IAAkK,IAAkE,IAA4B,CAAM,GAAgB,GAAO,EAAO,IAAI,CAAOe,GAAkB,eAAqBC,GAAkB,CAAC,UAAU,kBAAkB,CAAuO,GAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,CAAOC,GAAY,CAAC,QAAQ,GAAG,MAAM,GAAG,KAAK,EAAE,UAAU,IAAI,KAAK,SAAS,CAAO,GAAY,CAAC,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,KAAK,SAAS,CAAOC,GAAkB,GAAW,OAAO,GAAQ,UAAU,GAAc,OAAO,EAAM,KAAM,SAAiB,EAAc,OAAO,GAAQ,SAAS,CAAC,IAAI,EAAM,CAAC,IAAA,GAAkBC,IAAY,CAAC,QAAM,cAAY,CAAC,IAAM,EAAOC,EAAiB,EAAoB,CAAO,EAAW,GAAmC,EAAO,WAAiB,EAAaC,OAAmB,CAAC,GAAG,EAAO,aAAW,EAAE,CAAC,KAAK,UAAU,EAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,EAAoB,SAAS,CAAC,MAAM,EAAsB,WAAS,CAAC,EAASC,GAAS,EAAO,OAAOC,EAAe,CAAOC,IAAU,CAAC,KAAG,SAAO,KAAG,QAAM,GAAG,MAAyB,CAAC,GAAG,EAAM,UAAgB,GAA0B,EAAM,WAAsC,CAAC,IAAI,sEAAsE,CAAC,EAASC,IAAwB,EAAM,IAAe,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAAC,EAAM,iBAAwB,EAAS,KAAK,IAAI,CASpyD,GAAgB,EATozD,EAAiB,SAAS,EAAM,EAAI,CAAC,GAAK,CAAC,eAAa,aAAW,IAAe,CAAM,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,YAAU,GAAG,GAAWD,GAAS,EAAM,CAAM,CAAC,cAAY,WAAA,EAAW,sBAAoB,kBAAgB,iBAAe,YAAU,kBAAgB,aAAW,YAAU,GAAgB,CAAC,eAAe,YAAY,UAAQ,kBAAA,GAAkB,CAAC,CAAO,EAAiBC,GAAuB,EAAM,EAAS,CAAO,EAAKC,EAAa,KAAK,CAAO,EAAgBC,GAAa,CAAO,EAAsB,EAAE,CAAO,EAAkB,IAAsB,CAAC,OAAoB,EAAK,EAAY,CAAC,GAAG,GAA4C,EAAgB,SAAsB,EAAKL,GAAS,CAAC,QAAQ,EAAS,QAAQ,GAAM,SAAsB,EAAKH,GAAW,CAAC,MAAM,GAAY,SAAsB,EAAK,GAAgB,CAAC,GAAG,EAAU,GAAG,EAAgB,kBAAkB,CAAC,WAAWF,GAAY,CAAC,sBAAsB,GAAK,gBAAgB,GAAU,mCAAmC,GAAK,oBAAoB,GAAG,gBAAgB,GAAM,mBAAmB,GAAK,gBAAgB,EAAE,UAAU,EAAGF,GAAkB,GAAG,EAAsB,gBAAgBa,EAAUC,EAAW,CAAC,mBAAmB,YAA6B,mBAAiB,SAAS,YAAY,IAAI,GAA6B,EAAK,MAAM,CAAC,GAAG,EAAM,CAAC,SAAsB,EAAKC,GAAM,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,MAAM,QAAQ,IAA4B,GAA8E,GAAI,GAAG,KAAM,GAA8E,QAAS,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,YAAY,IAAI,WAAW,KAAK,MAAO,GAA8E,OAAQ,QAAQ,GAAGZ,GAAkB,EAAU,CAAK,UAAU,SAAS,UAAU,SAAU,CAAC,UAAU,iBAAkC,mBAAiB,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAW,CAAC,kFAAkF,kFAAkF,mQAAmQ,6LAA6L,2WAA2W,CAS/nJ,eAAe,IAAgB,GAAgB,GAAgB,YAAY,OAAO,GAAgB,aAAa,CAAC,OAAO,IAAI,MAAM,IAAI,CAAC,EAAoB,GAAgB,CAAC,UAAU,CAAC,wBAAwB,2HAA2H,MAAM,KAAK,KAAK,EAAY,gBAAgB,CAAC,CAAC,CAAC,GAAS,GAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,6BAA6B,GAAK,CAAC,2BCTte,IAAU,UAAU,CAAC,4BAA4B,yBAAyB,CAAC,CAAca,GAAM,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,OAAO,qBAAqB,OAAO,SAAS,IAAI,uEAAuE,CAAC,CAAC,OAAO,kBAAkB,OAAO,SAAS,IAAI,wEAAwE,CAAC,CAAC,CAAC,CAAcC,GAAI,CAAC,20BAA20B,k4BAAk4B,+3BAA+3B,CAAcC,GAAU,yCCAp+F,IAAU,UAAU,CAAC,yBAAyB,yBAAyB,CAAC,CAAcC,GAAM,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,OAAO,kBAAkB,OAAO,SAAS,IAAI,wEAAwE,CAAC,CAAC,CAAC,CAAcC,GAAI,CAAC,o0BAAo0B,23BAA23B,w3BAAw3B,CAAcC,GAAU,yCCAn1F,IAAU,UAAU,CAAC,yBAAyB,CAAC,CAAcC,GAAM,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,OAAO,kBAAkB,OAAO,SAAS,IAAI,wEAAwE,CAAC,CAAC,CAAC,CAAcC,GAAI,CAAC,moBAAmoB,CAAcC,GAAU,yCCAt4B,IAAU,UAAU,CAAC,6BAA6B,CAAC,CAAcC,GAAM,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,OAAO,sBAAsB,OAAO,SAAS,IAAI,yEAAyE,CAAC,CAAC,CAAC,CAAcC,GAAI,CAAC,krBAAkrB,CAAcC,GAAU,yCCA97B,IAAU,UAAU,CAAC,4BAA4B,yBAAyB,CAAC,CAAc,GAAM,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,OAAO,qBAAqB,OAAO,SAAS,IAAI,uEAAuE,CAAC,CAAC,OAAO,kBAAkB,OAAO,SAAS,IAAI,wEAAwE,CAAC,CAAC,CAAC,CAAc,GAAI,CAAC,m0BAAm0B,03BAA03B,u3BAAu3B,CAAc,GAAU,kBCAv1F,SAAgB,GAAqB,EAAU,CAAC,OAAoB,GAAY,EAAM,IAAM,CAAC,IAAM,EAAU,GAAa,EAAM,EAAU,CAAO,EAAaC,EAAO,KAAK,CAAO,EAAS,EAAU,EAAa,CAAM,CAAC,sBAAoB,IAAuB,CAAkF,OAAjF,MAAc,CAAK,GAAkB,EAAmB,EAAU,EAAG,CAAC,EAAS,CAAC,CAAqB,EAAK,EAAU,CAAC,GAAG,EAAM,IAAI,GAAU,EAAI,EAAa,CAAC,CAAC,EAAG,yBAD9gB,IAA8B,IAAyE,KAAgL,CAAM,IAAc,EAAM,IAAY,EAAU,aAAgB,EAAM,MAAS,EAAM,oBACjZ,IAAW,GAAG,IAAe,GAAO,CAAC,EAAK,QAAQ,GAAK,CAAI,OAAO,GAAM,WAAY,EAAI,EAAM,CAAU,GAAK,OAAM,EAAI,QAAQ,IAAS,mBCD1I,IAAiC,IACnC,EAAc,EAAc,OAAY,GAAK,SAC7C,EAAc,EAAc,OAAY,GAAK,SACtC,IACN,IAAgB,EAAE,CAAC,qBCJ2C,CAC3D,IAA8B,EAAU,IAAU,CACtD,IAAM,EAAgBC,EAAO,EAAS,CAChC,EAAgBA,EAAO,KAAK,CAC5B,CAAC,EAAW,GAAgBC,EAAS,GAAM,CACjD,MAAgB,CACd,EAAc,QAAU,GACvB,CAAC,EAAS,CAAC,CACd,IAAM,EAAgBC,MAAkB,CAClC,EAAc,UAAY,MAAQ,IAAU,OAGhD,EAAc,QAAU,gBAAkB,CACxC,EAAc,SAAS,EACtB,EAAM,GACR,CAAC,EAAM,CAAC,CACL,EAAeA,MAAkB,CACjC,EAAc,UAAY,OAC5B,cAAc,EAAc,QAAQ,CACpC,EAAc,QAAU,OAEzB,EAAE,CAAC,CACN,MAAgB,CACd,IAAM,MAA+B,CACnC,EAAa,SAAS,kBAAoB,UAAU,EAGtD,OADA,SAAS,iBAAiB,mBAAoB,EAAuB,KACxD,CACX,SAAS,oBAAoB,mBAAoB,EAAuB,GAEzE,EAAE,CAAC,CACN,MAAgB,CACd,GAAI,IAAU,KAAM,CAClB,GAAc,CACd,OAOF,OALI,EACF,GAAe,CAEf,GAAc,KAEH,CACX,GAAc,GAEf,CAAC,EAAW,EAAO,EAAe,EAAa,CAAC,CACnD,MAAgB,CACd,EAAa,SAAS,kBAAoB,UAAU,EACnD,EAAE,CAAC,mCC/C+D,KACjB,KACkB,KACc,KACgB,CAChG,GAAuB,GAAc,CACzC,IAAM,EAAM,IAAsB,CAClC,OAAO,EAAU,MAAM,EAAU,IAAU,CACzC,GAAM,CACJ,eACE,EACE,EAAe,EAAU,EAAQ,GACjC,EAAmB,GAA6C,YAAe,EAAa,YAAc,KAC1G,EAAkB,GAAmB,KACrCC,EAAS,CAAC,GAAmB,GAAQ,EAAK,EAAY,CACtD,EAAW,GAAmB,GAAiB,EAAK,CACxD,MAAO,EACP,IAAK,EACN,CAAC,CACF,OAAOA,GAAU,GACjB,EAEE,IAAe,EAAc,EAAiB,IAAoB,CACtE,IAAM,EAAY,EAAE,CACpB,OAAQ,EAAR,CACE,KAAK,GAAa,OAChB,EAAU,KAAK,GAAG,GAAkC,EAAgB,CAAC,CACrE,MACF,KAAK,GAAa,OAChB,EAAU,KAAK,GAAG,GAAkC,EAAgB,CAAC,CACrE,MAEJ,OAAO,GAAuB,EAAU,EAEpC,GAAqC,GAClC,EAAgB,KAAK,CAC1B,cACA,eACK,CACL,YAAa,GAAsB,EAAY,CAC/C,WACD,EAAE,CAEC,GAAqC,GAAoB,CAC7D,IAAM,EAAa,EAAgB,OAAS,EAC5C,OAAO,EAAgB,SAAS,EAAgB,IAAwB,CACtE,GAAM,CACJ,UACA,QACA,YACE,EACE,EAAO,GAAyB,EAAO,EAAQ,CACrD,OAAO,MAAM,KAAK,CAChB,OAAQ,EAAO,EAChB,EAAG,EAAG,IAAU,CACf,IAAM,EAAO,GAAqB,EAAQ,CACpC,CACJ,QACA,UACA,WACE,EAGJ,OAFA,EAAK,QAAQ,EAAK,SAAS,CAAG,EAAM,CACpC,EAAK,SAAS,EAAO,EAAS,EAAQ,CAC/B,CACL,YAAa,EACb,UAAW,EAAa,EAAsB,GAAS,EACxD,EACD,EACF,EAEE,GAA0B,GACvB,CAAC,GAAG,EAAU,CAAC,MAAM,EAAG,IAAMC,EAAE,YAAY,SAAS,CAAG,EAAE,YAAY,SAAS,CAAC,wBCvE/C,KACgD,KAChB,CACpE,GAAe,IACf,IAAsB,EAAc,EAAiB,IAAoB,CAC7E,IAAM,EAAYC,MAAc,GAAY,EAAc,EAAiB,EAAgB,CAAE,CAAC,EAAc,EAAiB,EAAgB,CAAC,CACxI,CAAC,EAAU,GAAeC,EAAS,GAAoB,EAAU,CAAC,CAiBxE,OARA,OAAiC,CAC/B,IAAM,EAAU,GAAoB,EAAU,CAC5B,GAAqC,cAAkB,GAAmC,aAI5G,EAAY,EAAQ,EAdQD,MAAc,CAC1C,GAAI,EAAU,SAAW,EACvB,MAAO,GAET,IAAM,EAAe,EAAU,EAAU,OAAS,GAC5C,EAAsB,IAAI,KAChC,OAAO,GAAgB,EAAa,YAAY,SAAS,EAAI,EAAI,SAAS,EACzE,CAAC,EAAU,CAAC,CAQY,KAAO,GAAa,CACxC,0BCvB+B,IAC2B,KACb,KACM,KACW,KACT,CACxD,GAAiB,cAWjB,GAAc,GAAS,CAC3B,eACA,YACA,kBACA,gBACI,CACJ,IAAM,EAAW,GAAmB,EAAc,EAAW,EAAgB,CACvE,EAAY,IAAc,CAC1B,EAAe,GAAqC,WAAc,IAAK,GAO7E,OANI,EAAW,SAAW,EACD,EAAI,GAAa,EAAE,CAAC,CAExC,EAGkB,EAAI,MAAO,CAAE,UAAW,GAAG,GAAe,YAAa,SAAU,EAAc,EAAW,EAAS,SAAW,GAAK,KAAM,CAAE,eAAgB,GAAqC,UAAa,IAAI,CAF/M,MAvBC,CAAC;OACN,GAAe;;;;IAIjB;OACE,GAAe;;;IAGlB,CAiBG,CACP,EAAoB,GAAa,CAC/B,aAAc,CACZ,KAAM,EAAY,KAClB,MAAO,WACP,QAAS,CAAC,GAAa,OAAQ,GAAa,OAAO,CACnD,aAAc,CAAC,KAAM,KAAK,CAC1B,wBAAyB,GAC1B,CACD,UAAW,CACT,QAAS,CACP,kBACI,IAAiB,GAAa,OACpC,MAAO,cACP,KAAM,EAAY,MAClB,QAAS,CACP,MAAO,aACP,KAAM,EAAY,OAClB,SAAU,CACR,YAAa,CACX,MAAO,aACP,KAAM,EAAY,OAClB,SAAU,CACR,KAAM,CACJ,KAAM,EAAY,KAClB,MAAO,KACP,aAA+B,IAAI,MAAM,CAAE,UAAU,CACtD,CACD,MAAO,CACL,KAAM,EAAY,OAClB,MAAO,IACP,YAAa,aACb,aAAc,EACd,IAAK,EACL,IAAK,GACL,KAAM,IACN,KAAM,EACN,eAAgB,GACjB,CACD,QAAS,CACP,KAAM,EAAY,OAClB,MAAO,IACP,aAAc,EACd,IAAK,EACL,IAAK,GACL,KAAM,IACN,KAAM,EACN,eAAgB,GACjB,CACD,QAAS,CACP,KAAM,EAAY,OAClB,MAAO,IACP,aAAc,EACd,IAAK,EACL,IAAK,GACL,KAAM,IACN,KAAM,EACN,eAAgB,GACjB,CACF,CACF,CACD,SAAU,CACR,MAAO,QACP,KAAM,EAAY,OAClB,aAAc,EACd,KAAM,KACN,IAAK,EACL,eAAgB,GACjB,CACF,CACF,CACF,CACD,gBAAiB,CACf,QAAS,CACP,kBACI,IAAiB,GAAa,OACpC,KAAM,EAAY,MAClB,MAAO,cACP,YAAa;;;;iCACb,QAAS,CACP,KAAM,EAAY,OAClB,MAAO,QACP,SAAU,CACR,QAAS,CACP,KAAM,EAAY,KAClB,MAAO,MACP,YAAa,yBACb,aAA+B,IAAI,MAAM,CAAE,UAAU,CACtD,CACD,MAAO,CACL,KAAM,EAAY,KAClB,MAAO,MACP,YAAa,yBACb,aAA+B,IAAI,MAAM,CAAE,UAAU,CACtD,CACD,SAAU,CACR,KAAM,EAAY,OAClB,MAAO,WACP,YAAa;wCACb,SAAU,CACR,MAAO,CACL,KAAM,EAAY,OAClB,MAAO,IACP,aAAc,EACd,IAAK,EACL,IAAK,GACL,KAAM,IACN,KAAM,EACN,eAAgB,GACjB,CACD,QAAS,CACP,KAAM,EAAY,OAClB,MAAO,IACP,aAAc,EACd,IAAK,EACL,IAAK,GACL,KAAM,IACN,KAAM,EACN,eAAgB,GACjB,CACD,QAAS,CACP,KAAM,EAAY,OAClB,MAAO,IACP,aAAc,EACd,IAAK,EACL,IAAK,GACL,KAAM,IACN,KAAM,EACN,eAAgB,GACjB,CACF,CACF,CACF,CACF,CACF,CACD,WAAY,CACV,MAAO,QACP,YAAa,gBACb,KAAM,EAAY,MAClB,QAAS,CACP,MAAO,KACP,KAAM,EAAY,kBACnB,CACF,CACF,CAAC,sBCjLiH,IAAY,YAAY,iBAEzH,wBCFwF,IAAU,YAAY,eAI9G,MCH65B,SAASE,GAAqB,EAAU,GAAG,EAAS,CAAC,IAAM,EAAc,EAAE,CAAsF,OAArF,GAAU,QAAQ,GAAS,GAAS,OAAO,OAAO,EAAc,EAAU,GAAS,CAAC,CAAQ,2DAA9hC,IAAqM,IAAkE,IAA4B,KAAkJ,KAAoH,CAAM,GAAe,GAASC,GAAU,CAAO,GAAiB,GAASC,GAAY,CAAOC,GAAW,CAAC,YAAY,YAAY,YAAY,YAAY,CAAOC,GAAkB,eAAqBC,GAAkB,CAAC,UAAU,kBAAkB,UAAU,mBAAmB,UAAU,mBAAmB,UAAU,mBAAmB,CAAwaC,GAAY,CAAC,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,KAAK,SAAS,CAAOC,IAAY,CAAC,QAAM,cAAY,CAAC,IAAM,EAAOC,EAAiB,EAAoB,CAAO,EAAW,GAAO,EAAO,WAAiB,EAAaC,OAAmB,CAAC,GAAG,EAAO,aAAW,EAAE,CAAC,KAAK,UAAU,EAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,EAAoB,SAAS,CAAC,MAAM,EAAsB,WAAS,CAAC,EAASC,GAAwB,CAAC,UAAU,YAAY,WAAW,YAAY,WAAW,YAAY,YAAY,YAAY,CAAOC,GAAS,EAAO,OAAOC,EAAe,CAAOC,IAAU,CAAC,EAAA,EAAE,KAAG,KAAG,KAAG,KAAG,KAAG,KAAG,KAAG,KAAG,SAAO,KAAG,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,UAAUC,GAAG,EAAM,WAAW,QAAQ,UAAU,GAAI,EAAM,WAAW,qBAAqB,UAAU,GAAI,EAAM,WAAW,GAAK,UAAU,GAAI,EAAM,WAAW,GAAK,UAAU,GAAI,EAAM,WAAW,kFAAkF,UAAU,GAAI,EAAM,WAAW,2BAA2B,UAAU,GAAI,EAAM,WAAW,GAAK,UAAU,GAAI,EAAM,WAAW,iBAAiB,UAAU,GAAI,EAAM,WAAW,GAAK,QAAQJ,GAAwB,EAAM,UAAU,EAAM,SAAS,YAAY,EAASK,IAAwB,EAAM,IAAe,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAAC,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAW9mF,GAAgB,EAX8nF,EAAiB,SAAS,EAAM,EAAI,CAAC,IAAM,EAAYC,EAAO,KAAK,CAAO,EAAW,GAAK,EAAkB,EAAgBC,GAAa,CAAM,CAAC,eAAa,aAAW,IAAe,CAAyB,IAAsB,CAAC,GAAK,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,YAAU,YAAU,YAAU,YAAU,YAAU,YAAU,YAAU,YAAU,YAAU,GAAG,GAAWJ,GAAS,EAAM,CAAM,CAAC,cAAY,WAAA,GAAW,sBAAoB,kBAAgB,iBAAe,aAAU,mBAAgB,aAAW,aAAU,GAAgB,CAAC,WAAA,GAAW,eAAe,YAAY,IAAI,EAAW,UAAQ,kBAAA,GAAkB,CAAC,CAAO,EAAiBE,GAAuB,EAAM,GAAS,CAAsC,EAAkB,EAAGX,GAA2C,CAAC,OAAoB,EAAK,EAAY,CAAC,GAAG,GAAU,EAAgB,SAAsB,EAAKO,GAAS,CAAC,QAAQ,GAAS,QAAQ,GAAM,SAAsB,EAAKJ,GAAW,CAAC,MAAMD,GAAY,SAAsB,EAAM,EAAO,IAAI,CAAC,GAAG,EAAU,GAAG,EAAgB,UAAU,EAAG,EAAkB,iBAAiBY,EAAUC,GAAW,CAAC,mBAAmB,WAA4B,mBAAiB,SAAS,YAAY,IAAI,EAAW,MAAM,CAAC,gBAAgB,EAAU,GAAG,EAAM,CAAC,GAAGnB,GAAqB,CAAC,UAAU,CAAC,mBAAmB,UAAU,CAAC,UAAU,CAAC,mBAAmB,YAAY,CAAC,UAAU,CAAC,mBAAmB,WAAW,CAAC,CAAC,EAAY,EAAe,CAAC,SAAS,CAAc,EAAM,EAAO,IAAI,CAAC,UAAU,gBAAgB,mBAAmB,WAA4B,mBAAiB,SAAS,YAAY,SAAS,CAAC,IAAY,IAAoB,EAAK,EAAO,IAAI,CAAC,UAAU,iBAAiB,mBAAmB,cAA+B,mBAAiB,SAAS,YAAY,SAAsB,EAAKoB,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKR,EAAe,CAAC,SAAsB,EAAK,EAAO,GAAG,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,+DAA+D,qBAAqB,OAAO,uBAAuB,MAAM,0BAA0B,SAAS,uBAAuB,MAAM,0BAA0B,SAAS,CAAC,SAAsB,EAAK,EAAO,OAAO,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,MAAM,CAAC,2BAA2B,4BAA4B,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,2BAA2B,mBAAmB,gCAAgC,YAAY,CAAC,KAAK,EAAU,SAAS,CAAC,UAAU,CAAC,qBAAqB,qBAAqB,CAAC,UAAU,CAAC,qBAAqB,qBAAqB,CAAC,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,GAAGZ,GAAqB,CAAC,UAAU,CAAC,SAAsB,EAAKY,EAAe,CAAC,SAAsB,EAAK,EAAO,GAAG,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,+DAA+D,qBAAqB,OAAO,uBAAuB,MAAM,0BAA0B,SAAS,uBAAuB,MAAM,0BAA0B,SAAS,sBAAsB,8CAA8C,CAAC,SAAsB,EAAK,EAAO,OAAO,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,GAAG,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,+DAA+D,qBAAqB,OAAO,uBAAuB,MAAM,0BAA0B,SAAS,uBAAuB,MAAM,0BAA0B,SAAS,sBAAsB,8CAA8C,CAAC,SAAsB,EAAK,EAAO,OAAO,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAC,CAAC,CAAc,EAAM,EAAO,IAAI,CAAC,UAAU,iBAAiB,mBAAmB,mBAAoC,mBAAiB,SAAS,YAAY,SAAS,CAAC,IAAY,IAAoB,EAAKQ,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKR,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,+DAA+D,qBAAqB,OAAO,uBAAuB,MAAM,uBAAuB,QAAQ,0BAA0B,SAAS,CAAC,SAAsB,EAAK,EAAO,OAAO,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,MAAM,CAAC,2BAA2B,4BAA4B,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,2BAA2B,mBAAmB,gCAAgC,YAAY,CAAC,KAAK,EAAU,SAAS,CAAC,UAAU,CAAC,qBAAqB,qBAAqB,CAAC,UAAU,CAAC,qBAAqB,qBAAqB,CAAC,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,GAAGZ,GAAqB,CAAC,UAAU,CAAC,SAAsB,EAAKY,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,+DAA+D,qBAAqB,OAAO,uBAAuB,MAAM,uBAAuB,QAAQ,0BAA0B,SAAS,sBAAsB,8CAA8C,CAAC,SAAsB,EAAK,EAAO,OAAO,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,+DAA+D,qBAAqB,OAAO,uBAAuB,MAAM,uBAAuB,QAAQ,0BAA0B,SAAS,CAAC,SAAsB,EAAK,EAAO,OAAO,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,+DAA+D,qBAAqB,OAAO,uBAAuB,MAAM,uBAAuB,QAAQ,0BAA0B,SAAS,sBAAsB,8CAA8C,CAAC,SAAsB,EAAK,EAAO,OAAO,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAc,EAAKQ,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKR,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,qEAAqE,uBAAuB,QAAQ,0BAA0B,SAAS,sBAAsB,8CAA8C,0BAA0B,UAAU,CAAC,SAAS,kFAAkF,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,MAAM,CAAC,4BAA4B,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,qBAAqB,2BAA2B,mBAAmB,gCAAgC,YAAY,CAAC,KAAK,EAAU,SAAS,CAAC,UAAU,CAAC,qBAAqB,2BAA2B,CAAC,UAAU,CAAC,qBAAqB,2BAA2B,CAAC,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,GAAGZ,GAAqB,CAAC,UAAU,CAAC,SAAsB,EAAKY,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,qEAAqE,uBAAuB,QAAQ,0BAA0B,SAAS,sBAAsB,oDAAoD,0BAA0B,UAAU,CAAC,SAAS,kFAAkF,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,qEAAqE,qBAAqB,OAAO,uBAAuB,QAAQ,0BAA0B,SAAS,sBAAsB,8CAA8C,0BAA0B,UAAU,CAAC,SAAS,kFAAkF,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,qEAAqE,qBAAqB,OAAO,uBAAuB,QAAQ,0BAA0B,SAAS,sBAAsB,oDAAoD,0BAA0B,UAAU,CAAC,SAAS,kFAAkF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAY,EAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAY,IAAoB,EAAK,GAA0B,CAAC,SAAsB,EAAK,GAA8B,CAAC,UAAU,2BAA2B,mBAAmB,oBAAoB,iBAAiB,GAAK,iBAAiB,GAAsB,mBAAiB,SAAS,sBAAsB,KAAK,oBAAoB,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAKV,GAAY,CAAC,WAAW,CAAc,EAAM,EAAO,IAAI,CAAC,UAAU,iBAAiB,mBAAmB,UAA2B,mBAAiB,SAAS,YAAY,SAAS,CAAc,EAAKkB,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKR,EAAe,CAAC,SAAsB,EAAK,EAAO,GAAG,CAAC,MAAM,CAAC,kBAAkB,mCAAmC,uBAAuB,+DAA+D,qBAAqB,OAAO,uBAAuB,MAAM,uBAAuB,QAAQ,sBAAsB,kGAAkG,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,MAAM,CAAC,yBAAyB,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,sBAAsB,wEAAwE,2BAA2B,mBAAmB,gCAAgC,YAAY,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,CAAC,CAAc,EAAK,GAA0B,CAAC,SAAsB,EAAK,GAA8B,CAAC,UAAU,0BAA0B,gBAAgB,GAAK,iBAAiB,GAAK,iBAAiB,GAAsB,mBAAiB,SAAS,sBAAsB,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAKX,GAAU,CAAC,MAAM,wEAAwE,kBAAkB,QAAQ,SAAS,GAAG,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,iBAAiB,EAAU,iBAAiB,WAAW,kBAAkB,OAAO,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,OAAO,GAAG,YAAY,SAAS,YAAY,KAAK,oBAAoB,gBAAgB,EAAE,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,KAAK,2BAA2B,MAAM,GAAG,QAAQ,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,aAAa,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAY,IAAoB,EAAK,EAAO,IAAI,CAAC,UAAU,iBAAkC,mBAAiB,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAW,CAAC,kFAAkF,gFAAgF,oRAAoR,gRAAgR,oRAAoR,wLAAwL,+QAA+Q,mMAAmM,iJAAiJ,uQAAuQ,gHAAgH,gHAAgH,iGAAiG,mHAAmH,iGAAiG,CAW16gB,eAAe,IAAgB,GAAgB,GAAgB,YAAY,eAAe,GAAgB,aAAa,CAAC,OAAO,MAAM,MAAM,IAAI,CAAC,EAAoB,GAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,YAAY,YAAY,YAAY,CAAC,aAAa,CAAC,WAAW,UAAU,YAAY,WAAW,CAAC,MAAM,UAAU,KAAK,EAAY,KAAK,CAAC,UAAU,CAAC,aAAa,QAAQ,gBAAgB,GAAM,MAAM,OAAO,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,aAAa,GAAK,MAAM,UAAU,KAAK,EAAY,QAAQ,CAAC,UAAU,CAAC,aAAa,iBAAiB,YAAY,GAAG,gBAAgB,GAAK,MAAM,MAAM,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,aAAa,GAAK,MAAM,SAAS,KAAK,EAAY,QAAQ,CAAC,UAAU,CAAC,aAAa,kFAAkF,gBAAgB,GAAK,MAAM,MAAM,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,aAAa,GAAK,MAAM,UAAU,KAAK,EAAY,QAAQ,CAAC,UAAU,CAAC,aAAa,2BAA2B,MAAM,KAAK,KAAK,EAAY,KAAK,CAAC,UAAU,CAAC,aAAa,qBAAqB,MAAM,QAAQ,KAAK,EAAY,MAAM,CAAC,UAAU,CAAC,aAAa,GAAK,MAAM,OAAO,KAAK,EAAY,QAAQ,CAAC,CAAC,CAAC,GAAS,GAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,cAAc,kBAAkB,OAAO,SAAS,MAAM,SAAS,aAAa,aAAa,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,mBAAmB,OAAO,SAAS,MAAM,SAAS,aAAa,aAAa,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,cAAc,qBAAqB,OAAO,SAAS,MAAM,SAAS,aAAa,aAAa,IAAI,uEAAuE,OAAO,MAAM,CAAC,CAAC,cAAc,kBAAkB,OAAO,SAAS,MAAM,SAAS,aAAa,aAAa,IAAI,wEAAwE,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,GAAe,GAAG,GAAiB,CAAC,CAAC,6BAA6B,GAAK,CAAC,2BCZ9gE,IAAiC,IACnC,EAAc,OAAY,SAC1B,EAAc,OAAY,SACnB,IACN,IAAgB,EAAE,CAAC,CAClB,IAAkC,IACpC,EAAe,QAAa,UAC5B,EAAe,UAAe,YAC9B,EAAe,SAAc,WACtB,IACN,IAAiB,EAAE,CAAC,CACnB,IAA8B,IAChC,EAAW,QAAa,UACxB,EAAW,YAAiB,cAC5B,EAAW,SAAc,WACzB,EAAW,SAAc,WAClB,IACN,IAAa,EAAE,CAAC,CACf,IAA8B,IAChC,EAAW,MAAW,QACtB,EAAW,OAAY,SAChB,IACN,IAAa,EAAE,CAAC,qBCtBkB,KACuD,KACoB,CAC1G,GAAsB,CAC1B,QAAS,CACP,KAAM,EAAY,KAClB,MAAO,UACP,QAAS,CAAC,GAAa,OAAQ,GAAa,OAAO,CACnD,aAAc,GAAa,OAC5B,CACD,SAAU,CACR,KAAM,EAAY,KAClB,MAAO,WACP,QAAS,CAAC,GAAc,QAAS,GAAc,UAAW,GAAc,SAAS,CACjF,aAAc,GAAc,QAC7B,CACD,sBAAuB,CACrB,QAAS,CACP,aACI,IAAY,GAAa,OAC/B,KAAM,EAAY,MAClB,MAAO,QACP,aAAc,UACf,CACD,gBAAiB,CACf,QAAS,CACP,aACI,IAAY,GAAa,OAC/B,KAAM,EAAY,MAClB,MAAO,SACP,aAAc,UACf,CACD,KAAM,CACJ,QAAS,CACP,aACI,IAAY,GAAa,OAC/B,KAAM,EAAY,KAClB,MAAO,OACP,QAAS,CAAC,GAAU,QAAS,GAAU,YAAa,GAAU,SAAU,GAAU,SAAS,CAC3F,aAAc,GAAU,QACzB,CACD,KAAM,CACJ,KAAM,EAAY,KAClB,MAAO,KACP,QAAS,CAAC,GAAU,MAAO,GAAU,OAAO,CAC5C,aAAc,GAAU,MACzB,CACD,QAAS,CACP,QAAS,CACP,aACI,IAAY,GAAa,OAC/B,KAAM,EAAY,QAClB,aAAc,GACd,MAAO,YACR,CACD,OAAQ,CACN,QAAS,CACP,aACI,IAAY,GAAa,OAC/B,KAAM,EAAY,QAClB,aAAc,GACd,MAAO,SACR,CACD,WAAY,CACV,KAAM,EAAY,KAClB,MAAO,SACP,QAAS,CAAC,IAAK,GAAG,GAAG,GAA0B,CAC/C,aAAc,CAAC,SAAU,GAAG,GAA0B,CACtD,aAAc,IAAK,GACpB,CACD,MAAO,CACL,KAAM,EAAY,OAClB,aAAc,SACd,MAAO,KACR,CACF,CAEQ,EAAY,2BC7EmB,IACK,KACM,KAC4B,CACzE,GAAe,GACI,EAAI,GAAO,CAAE,GAAG,EAAO,CAAC,CAEjD,EAAoB,GAAa,CAC/B,GAAG,GACJ,CAAC,mBCTuC,sBCEsE,IAE7FoB,MCHikC,SAAS,GAAqB,EAAU,GAAG,EAAS,CAAC,IAAM,EAAc,EAAE,CAAsF,OAArF,GAAU,QAAQ,GAAS,GAAS,OAAO,OAAO,EAAc,EAAU,GAAS,CAAC,CAAQ,iEAAlsC,IAAkQ,IAAkE,IAA4B,KAAyJ,KAAiH,CAAM,GAAW,GAASC,GAAM,CAAO,GAAoC,GAA6B,EAAO,IAAI,CAAC,OAAO,YAAY,SAAS,GAAqB,QAAQ,YAAY,CAAC,CAAO,GAAW,CAAC,YAAY,YAAY,YAAY,YAAY,CAAO,GAAkB,eAAqB,GAAkB,CAAC,UAAU,kBAAkB,UAAU,mBAAmB,UAAU,kBAAkB,UAAU,kBAAkB,CAA0iB,GAAY,CAAC,OAAO,GAAG,MAAM,EAAE,SAAS,GAAG,KAAK,SAAS,CAAO,GAAkB,GAAW,OAAO,GAAQ,UAAU,GAAc,OAAO,EAAM,KAAM,SAAiB,EAAc,OAAO,GAAQ,SAAS,CAAC,IAAI,EAAM,CAAC,IAAA,GAAkB,IAAc,GAAG,IAAO,CAAC,IAAI,IAAM,KAAO,EAAM,GAAG,GAAK,OAAO,GAAM,SAAS,OAAO,GAA8B,IAAY,CAAC,QAAM,cAAY,CAAC,IAAM,EAAOC,EAAiB,EAAoB,CAAO,EAAW,GAAO,EAAO,WAAiB,EAAaC,OAAmB,CAAC,GAAG,EAAO,aAAW,EAAE,CAAC,KAAK,UAAU,EAAW,CAAC,CAAC,CAAC,OAAoB,EAAK,EAAoB,SAAS,CAAC,MAAM,EAAsB,WAAS,CAAC,EAAS,GAAwB,CAAC,UAAU,YAAY,WAAW,YAAY,WAAW,YAAY,YAAY,YAAY,CAAO,GAAS,EAAO,OAAOC,EAAe,CAAO,IAAU,CAAC,EAAA,EAAE,KAAG,MAAI,MAAI,MAAI,MAAI,KAAG,KAAG,KAAG,KAAG,KAAG,KAAG,KAAG,KAAG,SAAO,KAAG,QAAM,GAAG,MAAgB,CAAC,GAAG,EAAM,UAAU,GAAI,EAAM,WAAW,GAAK,UAAU,GAAI,EAAM,WAAW,GAAK,UAAUC,GAAG,EAAM,WAAW,GAAK,UAAU,GAAI,EAAM,WAAW,kGAAqG,UAAU,GAAK,EAAM,WAAW,yBAAyB,UAAU,GAAI,EAAM,WAAW,iEAAiE,UAAU,GAAI,EAAM,WAAW,YAAY,UAAU,GAAI,EAAM,UAAU,UAAU,GAAK,EAAM,UAAU,UAAU,GAAI,EAAM,WAAW,GAAK,UAAU,GAAK,EAAM,WAAW,GAAK,UAAU,GAAK,EAAM,WAAW,KAAK,QAAQ,GAAwB,EAAM,UAAU,EAAM,SAAS,YAAY,UAAU,GAAI,EAAM,WAAW,yBAAyB,UAAU,GAAI,EAAM,WAAW,QAAQ,EAAS,IAAwB,EAAM,IAAe,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAAC,EAAM,iBAAwB,EAAS,KAAK,IAAI,CAW97G,GAAgB,EAX88G,EAAiB,SAAS,EAAM,EAAI,CAAC,IAAM,EAAYC,EAAO,KAAK,CAAO,EAAW,GAAK,EAAkB,EAAgBC,GAAa,CAAM,CAAC,eAAa,aAAW,IAAe,CAAO,EAAkB,IAAsB,CAAM,CAAC,QAAM,UAAA,EAAU,WAAS,UAAQ,YAAU,YAAU,YAAU,YAAU,YAAU,YAAU,YAAU,YAAU,YAAU,YAAU,aAAU,YAAU,YAAU,YAAU,GAAG,IAAW,GAAS,EAAM,CAAM,CAAC,eAAY,WAAA,EAAW,uBAAoB,kBAAgB,iBAAe,aAAU,mBAAgB,cAAW,aAAU,GAAgB,CAAC,cAAW,eAAe,YAAY,IAAI,EAAW,UAAQ,qBAAkB,CAAC,CAAO,EAAiB,GAAuB,EAAM,GAAS,CAAsC,GAAkB,EAAG,GAA2C,CAAC,OAAoB,EAAK,EAAY,CAAC,GAAG,GAAU,EAAgB,SAAsB,EAAK,GAAS,CAAC,QAAQ,GAAS,QAAQ,GAAM,SAAsB,EAAK,GAAW,CAAC,MAAM,GAAY,SAAsB,EAAM,GAAoC,CAAC,GAAG,GAAU,GAAG,EAAgB,UAAU,EAAG,GAAkB,gBAAgBC,EAAUC,EAAW,CAAC,mBAAmB,WAA4B,mBAAiB,SAAS,YAAY,IAAI,EAAW,MAAM,CAAC,gBAAgB,EAAU,GAAG,EAAM,CAAC,GAAG,GAAqB,CAAC,UAAU,CAAC,mBAAmB,UAAU,CAAC,UAAU,CAAC,mBAAmB,WAAW,CAAC,UAAU,CAAC,mBAAmB,YAAY,CAAC,CAAC,GAAY,EAAe,CAAC,SAAS,CAAC,IAAY,IAAoB,EAAK,EAAO,IAAI,CAAC,UAAU,iBAAiB,mBAAmB,OAAwB,mBAAiB,SAAS,YAAY,SAAsB,EAAK,EAAO,IAAI,CAAC,UAAU,gBAAgB,mBAAmB,UAA2B,mBAAiB,SAAS,YAAY,MAAM,CAAC,gBAAgB,kEAAkE,QAAQ,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,wEAAwE,QAAQ,GAAG,CAAC,UAAU,CAAC,gBAAgB,wEAAwE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAY,IAAoB,EAAK,EAAO,IAAI,CAAC,UAAU,eAAe,mBAAmB,MAAuB,mBAAiB,SAAS,YAAY,SAAsB,EAAKC,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKN,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,IAAI,OAAO,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,uEAAuE,qBAAqB,OAAO,uBAAuB,MAAM,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,MAAM,CAAC,6BAA6B,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,2BAA2B,mBAAmB,gCAAgC,YAAY,CAAC,KAAK,EAAU,SAAS,CAAC,UAAU,CAAC,qBAAqB,qBAAqB,CAAC,UAAU,CAAC,qBAAqB,qBAAqB,CAAC,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,GAAG,GAAqB,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,IAAI,OAAO,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,uEAAuE,qBAAqB,OAAO,uBAAuB,MAAM,sBAAsB,8CAA8C,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,IAAI,OAAO,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,uEAAuE,qBAAqB,OAAO,uBAAuB,MAAM,sBAAsB,8CAA8C,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,IAAI,OAAO,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,uEAAuE,qBAAqB,OAAO,uBAAuB,MAAM,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAY,EAAe,CAAC,CAAC,CAAC,CAAC,CAAC,IAAY,IAAoB,EAAK,EAAO,IAAI,CAAC,UAAU,iBAAiB,mBAAmB,MAAuB,mBAAiB,SAAS,YAAY,SAAsB,EAAK,EAAO,IAAI,CAAC,UAAU,gBAAgB,mBAAmB,QAAyB,mBAAiB,SAAS,YAAY,MAAM,CAAC,gBAAgB,EAAU,uBAAuB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC,SAAsB,EAAKO,GAAM,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,OAAO,QAAQ,IAA2B,GAAmB,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,OAAO,GAAmB,OAAO,QAAQ,eAAe,GAAG,GAAkB,EAAU,CAAC,CAAC,UAAU,iBAAkC,mBAAiB,SAAS,YAAY,GAAG,GAAqB,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,OAAO,QAAQ,IAA2B,GAAmB,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,aAAa,GAAG,GAAkB,EAAU,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,OAAO,QAAQ,IAA2B,GAAmB,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,QAAQ,GAAG,GAAkB,EAAU,CAAC,CAAC,CAAC,CAAC,GAAY,EAAe,CAAC,SAAS,IAAY,IAAoB,EAAK,GAA0B,CAAC,SAAsB,EAAK,GAA8B,CAAC,UAAU,2BAA2B,iBAAiB,GAAK,iBAAiB,GAAsB,mBAAiB,SAAS,sBAAsB,OAAO,YAAY,kBAAkB,GAAK,QAAQ,YAAY,SAAsB,EAAKV,GAAM,CAAC,sBAAsB,eAAe,gBAAgB,qBAAqB,OAAO,OAAO,GAAG,YAAY,OAAO,GAAM,QAAQ,GAAM,MAAM,EAAU,SAAS,YAAY,WAAW,KAAK,SAAS,UAAU,KAAK,SAAS,KAAK,UAAU,QAAQ,GAAa,SAAS,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAM,EAAO,IAAI,CAAC,UAAU,gBAAgB,mBAAmB,MAAuB,mBAAiB,SAAS,YAAY,SAAS,CAAc,EAAM,EAAO,IAAI,CAAC,UAAU,gBAAgB,mBAAmB,UAA2B,mBAAiB,SAAS,YAAY,SAAS,CAAc,EAAKS,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKN,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,IAAI,OAAO,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,uEAAuE,uBAAuB,MAAM,uBAAuB,QAAQ,0BAA0B,OAAO,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,MAAM,CAAC,6BAA6B,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,2BAA2B,mBAAmB,gCAAgC,YAAY,CAAC,KAAK,EAAU,SAAS,CAAC,UAAU,CAAC,qBAAqB,qBAAqB,CAAC,UAAU,CAAC,qBAAqB,qBAAqB,CAAC,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,GAAG,GAAqB,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,IAAI,OAAO,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,uEAAuE,uBAAuB,MAAM,uBAAuB,QAAQ,0BAA0B,OAAO,sBAAsB,8CAA8C,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,IAAI,OAAO,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,uEAAuE,qBAAqB,OAAO,uBAAuB,MAAM,uBAAuB,QAAQ,0BAA0B,OAAO,sBAAsB,8CAA8C,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,IAAI,OAAO,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,uEAAuE,qBAAqB,OAAO,uBAAuB,MAAM,uBAAuB,QAAQ,0BAA0B,OAAO,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAY,EAAe,CAAC,CAAC,CAAc,EAAKM,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKN,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,IAAI,OAAO,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,qEAAqE,uBAAuB,QAAQ,0BAA0B,OAAO,0BAA0B,UAAU,CAAC,SAAS,iEAAiE,CAAC,CAAC,CAAC,CAAC,UAAU,iBAAiB,MAAM,CAAC,4BAA4B,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,2BAA2B,mBAAmB,gCAAgC,YAAY,CAAC,KAAK,EAAU,SAAS,CAAC,UAAU,CAAC,qBAAqB,qBAAqB,CAAC,UAAU,CAAC,qBAAqB,qBAAqB,CAAC,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,GAAG,GAAqB,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,IAAI,OAAO,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,qEAAqE,uBAAuB,QAAQ,0BAA0B,OAAO,sBAAsB,8CAA8C,0BAA0B,UAAU,CAAC,SAAS,iEAAiE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,IAAI,OAAO,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,qEAAqE,qBAAqB,OAAO,uBAAuB,QAAQ,0BAA0B,OAAO,sBAAsB,8CAA8C,0BAA0B,UAAU,CAAC,SAAS,iEAAiE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,IAAI,OAAO,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,qEAAqE,qBAAqB,OAAO,uBAAuB,QAAQ,0BAA0B,OAAO,0BAA0B,UAAU,CAAC,SAAS,iEAAiE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAY,EAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAY,IAAoB,EAAK,EAAO,IAAI,CAAC,UAAU,iBAAiB,mBAAmB,SAA0B,mBAAiB,SAAS,YAAY,SAAsB,EAAKM,EAAS,CAAC,sBAAsB,GAAK,SAAsB,EAAKN,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,IAAI,OAAO,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,qEAAqE,qBAAqB,OAAO,uBAAuB,QAAQ,0BAA0B,OAAO,sBAAsB,+CAA+C,CAAC,SAAS,kGAAqG,CAAC,CAAC,CAAC,CAAC,UAAU,gBAAgB,MAAM,CAAC,4BAA4B,CAAkB,mBAAiB,SAAS,YAAY,MAAM,CAAC,qBAAqB,sBAAsB,2BAA2B,mBAAmB,gCAAgC,YAAY,CAAC,KAAK,EAAU,SAAS,CAAC,UAAU,CAAC,qBAAqB,4BAA4B,CAAC,UAAU,CAAC,qBAAqB,4BAA4B,CAAC,CAAC,kBAAkB,MAAM,mBAAmB,GAAK,GAAG,GAAqB,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,IAAI,OAAO,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,qEAAqE,qBAAqB,OAAO,uBAAuB,QAAQ,0BAA0B,OAAO,sBAAsB,qDAAqD,CAAC,SAAS,kGAAqG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,IAAI,OAAO,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,qEAAqE,uBAAuB,QAAQ,0BAA0B,OAAO,sBAAsB,qDAAqD,CAAC,SAAS,kGAAqG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAsB,EAAKA,EAAe,CAAC,SAAsB,EAAK,EAAO,EAAE,CAAC,IAAI,OAAO,MAAM,CAAC,kBAAkB,uCAAuC,uBAAuB,qEAAqE,uBAAuB,QAAQ,0BAA0B,OAAO,sBAAsB,+CAA+C,CAAC,SAAS,kGAAqG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAY,EAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAY,IAAoB,EAAK,EAAO,IAAI,CAAC,UAAU,iBAAiB,mBAAmB,OAAwB,mBAAiB,SAAS,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAG,CAAW,CAAC,kFAAkF,gFAAgF,4RAA4R,4RAA4R,iRAAiR,0RAA0R,iHAAiH,4RAA4R,8YAA8Y,oHAAoH,+IAA+I,+QAA+Q,uSAAuS,kOAAkO,4RAA4R,iHAAiH,8DAA8D,0VAA0V,2KAA2K,iNAAiN,sMAAsM,sHAAsH,0NAA0N,wJAAwJ,yLAAyL,uHAAuH,CAWz2sB,eAAe,IAAgB,GAAgB,GAAgB,YAAY,mBAAmB,GAAgB,aAAa,CAAC,OAAO,IAAI,MAAM,IAAI,CAAC,EAAoB,GAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,YAAY,YAAY,YAAY,CAAC,aAAa,CAAC,WAAW,UAAU,YAAY,WAAW,CAAC,MAAM,UAAU,KAAK,EAAY,KAAK,CAAC,UAAU,CAAC,aAAa,GAAK,MAAM,UAAU,KAAK,EAAY,QAAQ,CAAC,UAAU,CAAC,aAAa,QAAQ,gBAAgB,GAAM,MAAM,WAAW,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,aAAa,YAAY,gBAAgB,GAAM,MAAM,MAAM,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,aAAa,iEAAiE,gBAAgB,GAAK,MAAM,MAAM,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,aAAa,GAAK,MAAM,QAAQ,KAAK,EAAY,QAAQ,CAAC,UAAU,CAAC,aAAa,kGAAqG,gBAAgB,GAAK,MAAM,SAAS,KAAK,EAAY,OAAO,CAAC,UAAU,CAAC,aAAa,GAAK,MAAM,SAAS,KAAK,EAAY,QAAQ,CAAC,UAAU,CAAC,MAAM,MAAM,KAAK,EAAY,gBAAgB,CAAC,UAAU,CAAC,aAAa,yBAAyB,MAAM,OAAO,KAAK,EAAY,MAAM,CAAC,UAAU,CAAC,aAAa,GAAK,MAAM,OAAO,KAAK,EAAY,QAAQ,CAAC,UAAU,CAAC,aAAa,GAAK,MAAM,QAAQ,KAAK,EAAY,QAAQ,CAAC,UAAU,CAAC,aAAa,yBAAyB,MAAM,WAAW,KAAK,EAAY,MAAM,CAAC,UAAU,CAAC,aAAa,GAAM,MAAM,QAAQ,KAAK,EAAY,QAAQ,CAAC,UAAU,CAAC,aAAa,KAAK,MAAM,MAAM,KAAK,EAAY,OAAO,CAAC,CAAC,CAAC,GAAS,GAAgB,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,cAAc,sBAAsB,OAAO,SAAS,MAAM,SAAS,aAAa,aAAa,IAAI,yEAAyE,OAAO,MAAM,CAAC,CAAC,cAAc,qBAAqB,OAAO,SAAS,MAAM,SAAS,aAAa,aAAa,IAAI,yEAAyE,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,GAAW,CAAC,CAAC,6BAA6B,GAAK,CAAC"}