{"version":3,"file":"Filter.jARTqpc2.mjs","names":["useState","useRef","_Fragment"],"sources":["https:/framerusercontent.com/modules/m3lDDKa7makkww0CoWjt/rUoelkEDtJvvOYLa1KHR/Filter.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useState,useEffect,useRef}from\"react\";// UI Constants\nconst FONT_FAMILY=\"Inter, sans-serif\";const BORDER_RADIUS=\"14px\";const BORDER_WIDTH=\"0px\";const ICON_SIZE=\"16px\";// Spacing Constants\nconst PADDING_VERTICAL=\"14px\";const PADDING_HORIZONTAL=\"16px\";const FILTER_GAP=\"4px\";const FILTER_BOTTOM_MARGIN=\"0px\";// Color Constants\nconst TEXT_COLOR=\"#1E293B\";const BORDER_COLOR=\"#FFF\";const BACKGROUND_COLOR=\"#FFF\";const SELECTED_BACKGROUND_COLOR=\"#FFF\";const ACTIVE_BORDER_COLOR=\"#E7E7E7\";const HOVER_BACKGROUND_COLOR=\"#FCFCFC\";const ACTIVE_TEXT_COLOR=\"#1E293B\";// Typography Constants\nconst TEXT_SIZE=\"15px\";const SEARCH_TEXT_SIZE=\"16px\";const TEXT_WEIGHT=\"500\";// Effects Constants\nconst BOX_SHADOW=\"0px 0.301px 1.505px -1.5px rgba(0, 0, 0, 0.18), 0px 1.144px 5.721px -3px rgba(0, 0, 0, 0.04)\";// Toggle search functionality\nconst ENABLE_SEARCH=true;// Mobile Breakpoint\nconst MOBILE_BREAKPOINT=\"810px\";// Base styles for SELECTS\nconst baseSelectStyles={transition:\"all 0.2s ease-in-out\",letterSpacing:\"-0.04em\",borderRadius:BORDER_RADIUS,border:`${BORDER_WIDTH} solid ${BORDER_COLOR}`,background:BACKGROUND_COLOR,boxShadow:BOX_SHADOW,padding:`${PADDING_VERTICAL} ${PADDING_HORIZONTAL}`,fontFamily:FONT_FAMILY,color:TEXT_COLOR,fontSize:TEXT_SIZE,fontWeight:TEXT_WEIGHT,boxSizing:\"border-box\",width:\"auto\",appearance:\"none\",whiteSpace:\"nowrap\",overflow:\"visible\",textOverflow:\"clip\",paddingRight:`calc(${PADDING_HORIZONTAL} + ${ICON_SIZE} + 2px)`,position:\"relative\",cursor:\"pointer\"};// Base styles for the SEARCH input\nconst baseSearchStyles={...baseSelectStyles,width:\"100%\",minWidth:\"100%\",fontSize:SEARCH_TEXT_SIZE};export function SortCMS(Component){return props=>{// 1) Skip SSR to avoid hydration mismatch.\nif(typeof window===\"undefined\"){return /*#__PURE__*/_jsx(Component,{...props});}// ----- Client side only below -----\nconst[filters,setFilters]=useState({});const[sortOption,setSortOption]=useState(\"relevant\");const[searchQuery,setSearchQuery]=useState(\"\");const[originalOrder,setOriginalOrder]=useState([]);const[sortOptions,setSortOptions]=useState([]);const[hasSortElements,setHasSortElements]=useState(false);const[isMobile,setIsMobile]=useState(false);const selectRefs=useRef({});const searchRef=useRef(null);const debounceTimer=useRef(null);// Check if the viewport is mobile width\nconst checkMobileView=()=>{setIsMobile(window.innerWidth<=810);};// Utility functions\nconst extractNumber=str=>{const matches=str.match(/-?[\\d,]+\\.?\\d*/g);if(!matches)return 0;const numStr=matches[0].replace(/,/g,\"\");return parseFloat(numStr)||0;};const parseDate=dateString=>{if(!dateString)return 0;try{// Fix: Handle more date formats and add error checking\nconst parts=dateString.split(/[\\/\\-.]/);if(parts.length!==3)return 0;const[day,month,year]=parts.map(Number);if(isNaN(day)||isNaN(month)||isNaN(year))return 0;// Assume 20xx for two-digit years\nconst fullYear=year<100?year+2e3:year;return new Date(fullYear,month-1,day).getTime();}catch{return 0;}};const parsePrice=priceString=>{if(!priceString)return 0;const numericString=priceString.replace(/[^\\d.]/g,\"\");return parseFloat(numericString)||0;};// Adjust each select to only the currently selected option's width\nconst adjustSelectWidth=id=>{const select=selectRefs.current[id];if(!select)return;// On mobile, don't adjust width - let them be full width\nif(isMobile){select.style.width=\"100%\";return;}const tempSpan=document.createElement(\"span\");tempSpan.style.visibility=\"hidden\";tempSpan.style.position=\"absolute\";tempSpan.style.whiteSpace=\"nowrap\";tempSpan.style.font=window.getComputedStyle(select).font;document.body.appendChild(tempSpan);// Only measure the selected option\ntempSpan.textContent=select.options[select.selectedIndex]?.text||\"\";const textWidth=tempSpan.offsetWidth;document.body.removeChild(tempSpan);// Fix: Use safe parsing for integers and add fallbacks\nconst paddingHorizontal=parseInt(PADDING_HORIZONTAL)||16;const iconSize=parseInt(ICON_SIZE)||16;const extraSpace=paddingHorizontal*2+iconSize+8;select.style.width=`${textWidth+extraSpace}px`;};// Handlers\nconst handleFilterChange=(filterId,value)=>{setFilters(prev=>({...prev,[filterId]:value}));setTimeout(()=>adjustSelectWidth(filterId),0);};const handleSortChange=value=>{setSortOption(value);setTimeout(()=>adjustSelectWidth(\"sort\"),0);};const handleSearchChange=e=>{setSearchQuery(e.target.value);};// Apply filters, search, and sort with debouncing\nconst updateDisplay=()=>{const layer=document.querySelector(`.${props.className}`);if(!layer)return;const cards=Array.from(layer.querySelectorAll(\"[aria-label='cmsitem']\"));// Store original order once\nif(originalOrder.length===0&&cards.length>0){setOriginalOrder([...cards]);}// FILTER + SEARCH\ncards.forEach(card=>{let matchAll=true;// Apply filter selections\nObject.entries(filters).forEach(([filterId,filterValue])=>{if(filterValue){// Find all elements with this filter in the card\nconst filterElements=card.querySelectorAll(`[aria-label^=\"filter-${filterId}\"], [aria-label^=\"sort-filter-${filterId}\"], [aria-label^=\"filter-sort-${filterId}\"]`);// If no elements found, this doesn't match the filter\nif(filterElements.length===0){matchAll=false;return;}// Check if at least one element matches the selected value\nlet hasMatch=false;filterElements.forEach(element=>{const text=element.textContent?.trim().toLowerCase()||\"\";if(text===filterValue.toLowerCase()){hasMatch=true;}});if(!hasMatch){matchAll=false;}}});// Apply search\nif(ENABLE_SEARCH&&searchQuery){const cardText=card.textContent?.toLowerCase()||\"\";if(!cardText.includes(searchQuery.toLowerCase())){matchAll=false;}}card.classList.toggle(\"hidden\",!matchAll);});// SORT - only if we have visible cards and it's not set to \"relevant\"\nconst visibleCards=cards.filter(card=>!card.classList.contains(\"hidden\"));if(visibleCards.length>0){if(sortOption!==\"relevant\"){// Fix: Better handling for sort option parsing\nconst parts=sortOption.split(\"-\");if(parts.length<2)return;const field=parts[0];const direction=parts[parts.length-1];visibleCards.sort((a,b)=>{const aEl=a.querySelector(`[aria-label^=\"sort-${field}\"], [aria-label^=\"sort-filter-${field}\"], [aria-label^=\"filter-sort-${field}\"]`);const bEl=b.querySelector(`[aria-label^=\"sort-${field}\"], [aria-label^=\"sort-filter-${field}\"], [aria-label^=\"filter-sort-${field}\"]`);const aValue=aEl?.textContent?.trim()||\"\";const bValue=bEl?.textContent?.trim()||\"\";if(field===\"date\"){const dateA=parseDate(aValue);const dateB=parseDate(bValue);return direction===\"asc\"?dateA-dateB:dateB-dateA;}else if(field===\"price\"){const priceA=parsePrice(aValue);const priceB=parsePrice(bValue);return direction===\"asc\"?priceA-priceB:priceB-priceA;}else{const hasNumberA=/-?[\\d,]+\\.?\\d*/g.test(aValue);const hasNumberB=/-?[\\d,]+\\.?\\d*/g.test(bValue);if(hasNumberA&&hasNumberB){const numA=extractNumber(aValue);const numB=extractNumber(bValue);return direction===\"asc\"?numA-numB:numB-numA;}return direction===\"asc\"?aValue.localeCompare(bValue):bValue.localeCompare(aValue);}});}else if(originalOrder.length>0){// Restore original ordering for visible cards\nvisibleCards.sort((a,b)=>{return originalOrder.indexOf(a)-originalOrder.indexOf(b);});}// Re-append them in the new order\nvisibleCards.forEach(card=>{layer.appendChild(card);});}};// Effect for detecting filters and sort options\nuseEffect(()=>{const layer=document.querySelector(`.${props.className}`);if(!layer)return;const filterElements=layer.querySelectorAll('[aria-label^=\"filter-\"], [aria-label^=\"sort-filter-\"], [aria-label^=\"filter-sort-\"]');const uniqueFilters={};const discoveredSortOptions=new Set;filterElements.forEach(el=>{const label=el.getAttribute(\"aria-label\")||\"\";const parts=label.split(\"-\");// Fix: More robust way to extract filter ID\nif(parts.length<2)return;const id=parts[parts.length-1];if(id){if(!uniqueFilters[id]){uniqueFilters[id]=new Set;}const content=el.textContent?.trim()||\"\";if(content){uniqueFilters[id].add(content);}}});// Check if any sort elements exist\nconst sortElements=layer.querySelectorAll('[aria-label^=\"sort-\"], [aria-label^=\"sort-filter-\"], [aria-label^=\"filter-sort-\"]');setHasSortElements(sortElements.length>0);if(sortElements.length>0){sortElements.forEach(el=>{const label=el.getAttribute(\"aria-label\")||\"\";const parts=label.split(\"-\");// Fix: More robust extraction of sort field\nif(parts.length<2)return;const id=parts[parts.length-1];if(id&&id!==\"filter\"){discoveredSortOptions.add(id);}});}// Initialize empty filters\nconst initialFilters={};Object.keys(uniqueFilters).forEach(filterId=>{initialFilters[filterId]=\"\";});setFilters(initialFilters);// Set sort options if we have any\nif(discoveredSortOptions.size>0){setSortOptions([\"relevant\",...Array.from(discoveredSortOptions)]);}else{setSortOptions([]);}// Clear any debounce timer on cleanup\nreturn()=>{if(debounceTimer.current){clearTimeout(debounceTimer.current);}};},[props.className]);// Effect for applying filters and sorting\nuseEffect(()=>{// Debounce for better performance\nif(debounceTimer.current){clearTimeout(debounceTimer.current);}// Fix: Safe type casting for setTimeout\ndebounceTimer.current=window.setTimeout(()=>{updateDisplay();},50);return()=>{if(debounceTimer.current){clearTimeout(debounceTimer.current);}};},[props.className,filters,sortOption,searchQuery,originalOrder]);// Effect for adjusting select widths\nuseEffect(()=>{Object.keys(filters).forEach(adjustSelectWidth);if(hasSortElements&&sortOptions.length>0){adjustSelectWidth(\"sort\");}},[filters,sortOption,hasSortElements,sortOptions,isMobile]);// Effect for mobile view detection\nuseEffect(()=>{// Initial check\ncheckMobileView();// Add resize listener\nwindow.addEventListener(\"resize\",checkMobileView);// Cleanup\nreturn()=>{window.removeEventListener(\"resize\",checkMobileView);};},[]);// Get unique filter options for a given filter ID\nconst getFilterOptions=filterId=>{const layer=document.querySelector(`.${props.className}`);if(!layer)return[];const options=new Set;// Collect all unique values for this filter\nconst elements=layer.querySelectorAll(`[aria-label^=\"filter-${filterId}\"], [aria-label^=\"sort-filter-${filterId}\"], [aria-label^=\"filter-sort-${filterId}\"]`);elements.forEach(el=>{const value=el.textContent?.trim();if(value){options.add(value);}});return Array.from(options).sort();};return /*#__PURE__*/_jsxs(_Fragment,{children:[(Object.keys(filters).length>0||ENABLE_SEARCH&&!searchQuery)&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexWrap:\"wrap\",gap:FILTER_GAP,marginBottom:FILTER_BOTTOM_MARGIN,justifyContent:\"flex-start\",width:\"100%\"},children:[ENABLE_SEARCH&&/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",display:\"inline-block\",width:isMobile?\"100%\":\"auto\",maxWidth:isMobile?\"100%\":\"300px\",marginBottom:\"0px\"},children:[/*#__PURE__*/_jsx(\"input\",{ref:searchRef,type:\"text\",placeholder:\"Search...\",value:searchQuery,onChange:handleSearchChange,style:baseSearchStyles}),/*#__PURE__*/_jsx(\"span\",{style:{position:\"absolute\",right:PADDING_HORIZONTAL,top:\"50%\",transform:\"translateY(-50%)\",pointerEvents:\"none\",display:\"flex\",alignItems:\"center\",color:TEXT_COLOR},children:/*#__PURE__*/_jsxs(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",style:{width:ICON_SIZE,height:ICON_SIZE},children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"11\",cy:\"11\",r:\"8\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"21\",y1:\"21\",x2:\"16.65\",y2:\"16.65\"})]})})]}),Object.entries(filters).map(([filterId,filterValue])=>{const isActive=!!filterValue;const style={...baseSelectStyles,background:isActive?SELECTED_BACKGROUND_COLOR:BACKGROUND_COLOR,borderColor:isActive?ACTIVE_BORDER_COLOR:BORDER_COLOR,color:isActive?ACTIVE_TEXT_COLOR:TEXT_COLOR,width:isMobile?\"100%\":\"auto\",marginBottom:isMobile?FILTER_GAP:\"0\"};return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",display:\"inline-block\",width:isMobile?\"100%\":\"auto\"},children:[/*#__PURE__*/_jsxs(\"select\",{ref:el=>selectRefs.current[filterId]=el,value:filterValue,onChange:e=>handleFilterChange(filterId,e.target.value),style:style,children:[/*#__PURE__*/_jsx(\"option\",{value:\"\",children:filterId===\"category\"?\"All categories\":`All ${filterId}`}),getFilterOptions(filterId).map(option=>/*#__PURE__*/_jsx(\"option\",{value:option,children:option},option))]}),/*#__PURE__*/_jsx(\"span\",{style:{position:\"absolute\",right:PADDING_HORIZONTAL,top:\"50%\",transform:\"translateY(-50%)\",pointerEvents:\"none\",display:\"flex\",alignItems:\"center\",color:isActive?ACTIVE_TEXT_COLOR:TEXT_COLOR},children:/*#__PURE__*/_jsx(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",style:{width:ICON_SIZE,height:ICON_SIZE},children:/*#__PURE__*/_jsx(\"polyline\",{points:\"6 9 12 15 18 9\"})})})]},filterId);}),hasSortElements&&sortOptions.length>1&&/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",display:\"inline-block\",width:isMobile?\"100%\":\"auto\"},children:[/*#__PURE__*/_jsxs(\"select\",{ref:el=>selectRefs.current[\"sort\"]=el,value:sortOption,onChange:e=>handleSortChange(e.target.value),style:{...baseSelectStyles,background:sortOption!==\"relevant\"?SELECTED_BACKGROUND_COLOR:BACKGROUND_COLOR,borderColor:sortOption!==\"relevant\"?ACTIVE_BORDER_COLOR:BORDER_COLOR,color:sortOption!==\"relevant\"?ACTIVE_TEXT_COLOR:TEXT_COLOR,width:isMobile?\"100%\":\"auto\",marginBottom:isMobile?FILTER_GAP:\"0\"},children:[/*#__PURE__*/_jsx(\"option\",{value:\"relevant\",children:\"Sort by: Relevant\"}),sortOptions.filter(option=>option!==\"relevant\").map(option=>/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"option\",{value:`${option}-asc`,children:[option.charAt(0).toUpperCase()+option.slice(1),\" \",\"Ascending\"]},`${option}-asc`),/*#__PURE__*/_jsxs(\"option\",{value:`${option}-desc`,children:[option.charAt(0).toUpperCase()+option.slice(1),\" \",\"Descending\"]},`${option}-desc`)]}))]}),/*#__PURE__*/_jsx(\"span\",{style:{position:\"absolute\",right:PADDING_HORIZONTAL,top:\"50%\",transform:\"translateY(-50%)\",pointerEvents:\"none\",display:\"flex\",alignItems:\"center\",color:sortOption!==\"relevant\"?ACTIVE_TEXT_COLOR:TEXT_COLOR},children:/*#__PURE__*/_jsx(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",style:{width:ICON_SIZE,height:ICON_SIZE},children:/*#__PURE__*/_jsx(\"polyline\",{points:\"6 9 12 15 18 9\"})})})]})]}),/*#__PURE__*/_jsx(Component,{...props}),/*#__PURE__*/_jsx(\"style\",{children:`\n                    .${props.className} .hidden {\n                        display: none;\n                    }\n                    select:hover, input:hover {\n                        background-color: ${HOVER_BACKGROUND_COLOR} !important;\n                    }\n                    select {\n                        -webkit-appearance: none;\n                        -moz-appearance: none;\n                        appearance: none;\n                    }\n                    select:focus, input:focus {\n                        outline: none;\n                        border-color: ${ACTIVE_BORDER_COLOR};\n                        background-color: ${SELECTED_BACKGROUND_COLOR};\n                    }\n                    select:active, input:active {\n                        outline: none;\n                        border-color: ${ACTIVE_BORDER_COLOR};\n                        background-color: ${SELECTED_BACKGROUND_COLOR};\n                    }\n                    \n                    @media (max-width: ${MOBILE_BREAKPOINT}) {\n                        select, input[type=\"text\"] {\n                            width: 100% !important;\n                            margin-bottom: 4px !important;\n                        }\n                    }\n                `})]});};}\nexport const __FramerMetadata__ = {\"exports\":{\"SortCMS\":{\"type\":\"reactHoc\",\"name\":\"SortCMS\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Filter.map"],"mappings":"iOASoG,SAAgB,EAAQ,EAAU,CAAC,MAAO,IAAO,CACrJ,GAAU,IAAS,OAAa,OAAoB,EAAK,EAAU,CAAC,GAAG,EAAM,CAAC,CAC9E,GAAK,CAAC,EAAQ,GAAYA,EAAS,EAAE,CAAC,CAAM,CAAC,EAAW,GAAeA,EAAS,WAAW,CAAM,CAAC,EAAY,GAAgBA,EAAS,GAAG,CAAM,CAAC,EAAc,GAAkBA,EAAS,EAAE,CAAC,CAAM,CAAC,EAAY,GAAgBA,EAAS,EAAE,CAAC,CAAM,CAAC,EAAgB,GAAoBA,EAAS,GAAM,CAAM,CAAC,EAAS,GAAaA,EAAS,GAAM,CAAO,EAAWC,EAAO,EAAE,CAAC,CAAO,EAAUA,EAAO,KAAK,CAAO,EAAcA,EAAO,KAAK,CACta,MAAoB,CAAC,EAAY,EAAO,YAAY,IAAI,EACxD,EAAc,GAAK,CAAC,IAAM,EAAQ,EAAI,MAAM,kBAAkB,CAAC,GAAG,CAAC,EAAQ,MAAO,GAAE,IAAM,EAAO,EAAQ,GAAG,QAAQ,KAAK,GAAG,CAAC,OAAO,WAAW,EAAO,EAAE,GAAU,EAAU,GAAY,CAAC,GAAG,CAAC,EAAW,MAAO,GAAE,GAAG,CAC1N,IAAM,EAAM,EAAW,MAAM,UAAU,CAAC,GAAG,EAAM,SAAS,EAAE,MAAO,GAAE,GAAK,CAAC,EAAI,EAAM,GAAM,EAAM,IAAI,OAAO,CAAC,GAAG,MAAM,EAAI,EAAE,MAAM,EAAM,EAAE,MAAM,EAAK,CAAC,MAAO,GAC7J,IAAM,EAAS,EAAK,IAAI,EAAK,IAAI,EAAK,OAAO,IAAI,KAAK,EAAS,EAAM,EAAE,EAAI,CAAC,SAAS,MAAO,CAAC,MAAO,KAAW,EAAW,GAAa,CAAC,GAAG,CAAC,EAAY,MAAO,GAAE,IAAM,EAAc,EAAY,QAAQ,UAAU,GAAG,CAAC,OAAO,WAAW,EAAc,EAAE,GACnP,EAAkB,GAAI,CAAC,IAAM,EAAO,EAAW,QAAQ,GAAI,GAAG,CAAC,EAAO,OAC5E,GAAG,EAAS,CAAC,EAAO,MAAM,MAAM,OAAO,OAAQ,IAAM,EAAS,SAAS,cAAc,OAAO,CAAC,EAAS,MAAM,WAAW,SAAS,EAAS,MAAM,SAAS,WAAW,EAAS,MAAM,WAAW,SAAS,EAAS,MAAM,KAAK,EAAO,iBAAiB,EAAO,CAAC,KAAK,SAAS,KAAK,YAAY,EAAS,CAClS,EAAS,YAAY,EAAO,QAAQ,EAAO,gBAAgB,MAAM,GAAG,IAAM,EAAU,EAAS,YAAY,SAAS,KAAK,YAAY,EAAS,CAC5I,IAAM,EAAkB,SAAS,EAAmB,CAAW,EAAS,SAAS,EAAU,CAAW,EAAW,EAAkB,EAAE,EAAS,EAAE,EAAO,MAAM,MAAM,GAAG,EAAU,EAAW,KACrL,GAAoB,EAAS,IAAQ,CAAC,EAAW,IAAO,CAAC,GAAG,GAAM,GAAU,EAAM,EAAE,CAAC,eAAe,EAAkB,EAAS,CAAC,EAAE,EAAS,EAAiB,GAAO,CAAC,EAAc,EAAM,CAAC,eAAe,EAAkB,OAAO,CAAC,EAAE,EAAS,EAAmB,GAAG,CAAC,EAAe,EAAE,OAAO,MAAM,EAClS,MAAkB,CAAC,IAAM,EAAM,SAAS,cAAc,IAAI,EAAM,YAAY,CAAC,GAAG,CAAC,EAAM,OAAO,IAAM,EAAM,MAAM,KAAK,EAAM,iBAAiB,yBAAyB,CAAC,CACzK,EAAc,SAAS,GAAG,EAAM,OAAO,GAAG,EAAiB,CAAC,GAAG,EAAM,CAAC,CACzE,EAAM,QAAQ,GAAM,CAAC,IAAI,EAAS,GAClC,OAAO,QAAQ,EAAQ,CAAC,SAAS,CAAC,EAAS,KAAe,CAAC,GAAG,EAAY,CAC1E,IAAM,EAAe,EAAK,iBAAiB,wBAAwB,EAAS,gCAAgC,EAAS,gCAAgC,EAAS,IAAI,CAClK,GAAG,EAAe,SAAS,EAAE,CAAC,EAAS,GAAM,OAC7C,IAAI,EAAS,GAAM,EAAe,QAAQ,GAAS,EAAY,EAAQ,aAAa,MAAM,CAAC,aAAa,EAAE,MAAa,EAAY,aAAa,GAAE,EAAS,KAAQ,CAAK,IAAU,EAAS,MAAU,CACnL,KAA4B,EAAK,aAAa,aAAa,EAAE,IAAgB,SAAS,EAAY,aAAa,CAAC,GAAE,EAAS,KAAQ,EAAK,UAAU,OAAO,SAAS,CAAC,EAAS,EAAG,CACjM,IAAM,EAAa,EAAM,OAAO,GAAM,CAAC,EAAK,UAAU,SAAS,SAAS,CAAC,CAAC,GAAG,EAAa,OAAO,EAAE,CAAC,GAAG,IAAa,WAAW,CAC/H,IAAM,EAAM,EAAW,MAAM,IAAI,CAAC,GAAG,EAAM,OAAO,EAAE,OAAO,IAAM,EAAM,EAAM,GAAS,EAAU,EAAM,EAAM,OAAO,GAAG,EAAa,MAAM,EAAE,IAAI,CAAC,IAAM,EAAI,EAAE,cAAc,sBAAsB,EAAM,gCAAgC,EAAM,gCAAgC,EAAM,IAAI,CAAO,EAAI,EAAE,cAAc,sBAAsB,EAAM,gCAAgC,EAAM,gCAAgC,EAAM,IAAI,CAAO,EAAO,GAAK,aAAa,MAAM,EAAE,GAAS,EAAO,GAAK,aAAa,MAAM,EAAE,GAAG,GAAG,IAAQ,OAAO,CAAC,IAAM,EAAM,EAAU,EAAO,CAAO,EAAM,EAAU,EAAO,CAAC,OAAO,IAAY,MAAM,EAAM,EAAM,EAAM,UAAe,IAAQ,QAAQ,CAAC,IAAM,EAAO,EAAW,EAAO,CAAO,EAAO,EAAW,EAAO,CAAC,OAAO,IAAY,MAAM,EAAO,EAAO,EAAO,MAAY,CAAC,IAAM,EAAW,kBAAkB,KAAK,EAAO,CAAO,EAAW,kBAAkB,KAAK,EAAO,CAAC,GAAG,GAAY,EAAW,CAAC,IAAM,EAAK,EAAc,EAAO,CAAO,EAAK,EAAc,EAAO,CAAC,OAAO,IAAY,MAAM,EAAK,EAAK,EAAK,EAAM,OAAO,IAAY,MAAM,EAAO,cAAc,EAAO,CAAC,EAAO,cAAc,EAAO,GAAI,MAAU,EAAc,OAAO,GACvmC,EAAa,MAAM,EAAE,IAAY,EAAc,QAAQ,EAAE,CAAC,EAAc,QAAQ,EAAE,CAAG,CACrF,EAAa,QAAQ,GAAM,CAAC,EAAM,YAAY,EAAK,EAAG,GACtD,MAAc,CAAC,IAAM,EAAM,SAAS,cAAc,IAAI,EAAM,YAAY,CAAC,GAAG,CAAC,EAAM,OAAO,IAAM,EAAe,EAAM,iBAAiB,sFAAsF,CAAO,EAAc,EAAE,CAAO,EAAsB,IAAI,IAAI,EAAe,QAAQ,GAAI,CAA+C,IAAM,GAAxC,EAAG,aAAa,aAAa,EAAE,IAAqB,MAAM,IAAI,CAC9X,GAAG,EAAM,OAAO,EAAE,OAAO,IAAM,EAAG,EAAM,EAAM,OAAO,GAAG,GAAG,EAAG,CAAK,EAAc,KAAK,EAAc,GAAI,IAAI,KAAK,IAAM,EAAQ,EAAG,aAAa,MAAM,EAAE,GAAM,GAAS,EAAc,GAAI,IAAI,EAAQ,GAAK,CACzM,IAAM,EAAa,EAAM,iBAAiB,oFAAoF,CAAC,EAAmB,EAAa,OAAO,EAAE,CAAI,EAAa,OAAO,GAAG,EAAa,QAAQ,GAAI,CAA+C,IAAM,GAAxC,EAAG,aAAa,aAAa,EAAE,IAAqB,MAAM,IAAI,CACvS,GAAG,EAAM,OAAO,EAAE,OAAO,IAAM,EAAG,EAAM,EAAM,OAAO,GAAM,GAAI,IAAK,UAAU,EAAsB,IAAI,EAAG,EAAI,CAC/G,IAAM,EAAe,EAAE,CAEvB,OAFwB,OAAO,KAAK,EAAc,CAAC,QAAQ,GAAU,CAAC,EAAe,GAAU,IAAK,CAAC,EAAW,EAAe,CAC5H,EAAsB,KAAK,EAAG,EAAe,CAAC,WAAW,GAAG,MAAM,KAAK,EAAsB,CAAC,CAAC,CAAO,EAAe,EAAE,CAAC,KACjH,CAAI,EAAc,SAAS,aAAa,EAAc,QAAQ,GAAM,CAAC,EAAM,UAAU,CAAC,CAChG,OACG,EAAc,SAAS,aAAa,EAAc,QAAQ,CAC7D,EAAc,QAAQ,EAAO,eAAe,CAAC,GAAe,EAAG,GAAG,KAAW,CAAI,EAAc,SAAS,aAAa,EAAc,QAAQ,GAAM,CAAC,EAAM,UAAU,EAAQ,EAAW,EAAY,EAAc,CAAC,CAChN,MAAc,CAAC,OAAO,KAAK,EAAQ,CAAC,QAAQ,EAAkB,CAAI,GAAiB,EAAY,OAAO,GAAG,EAAkB,OAAO,EAAI,CAAC,EAAQ,EAAW,EAAgB,EAAY,EAAS,CAAC,CAChM,OACA,GAAiB,CACjB,EAAO,iBAAiB,SAAS,EAAgB,KACvC,CAAC,EAAO,oBAAoB,SAAS,EAAgB,GAAK,EAAE,CAAC,CACvE,IAAM,EAAiB,GAAU,CAAC,IAAM,EAAM,SAAS,cAAc,IAAI,EAAM,YAAY,CAAC,GAAG,CAAC,EAAM,MAAM,EAAE,CAAC,IAAM,EAAQ,IAAI,IACuH,OAAzO,EAAM,iBAAiB,wBAAwB,EAAS,gCAAgC,EAAS,gCAAgC,EAAS,IAAI,CAAU,QAAQ,GAAI,CAAC,IAAM,EAAM,EAAG,aAAa,MAAM,CAAI,GAAO,EAAQ,IAAI,EAAM,EAAI,CAAQ,MAAM,KAAK,EAAQ,CAAC,MAAM,EAAG,OAAoB,EAAMC,EAAU,CAAC,SAAS,EAAE,OAAO,KAAK,EAAQ,CAAC,OAAO,GAAkB,CAAC,IAA2B,EAAM,MAAM,CAAC,MAAM,CAAC,QAAQ,OAAO,SAAS,OAAO,IAAI,EAAW,aAAa,EAAqB,eAAe,aAAa,MAAM,OAAO,CAAC,SAAS,CAA6B,EAAM,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,QAAQ,eAAe,MAAM,EAAS,OAAO,OAAO,SAAS,EAAS,OAAO,QAAQ,aAAa,MAAM,CAAC,SAAS,CAAc,EAAK,QAAQ,CAAC,IAAI,EAAU,KAAK,OAAO,YAAY,YAAY,MAAM,EAAY,SAAS,EAAmB,MAAM,EAAiB,CAAC,CAAc,EAAK,OAAO,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,EAAmB,IAAI,MAAM,UAAU,mBAAmB,cAAc,OAAO,QAAQ,OAAO,WAAW,SAAS,MAAM,EAAW,CAAC,SAAsB,EAAM,MAAM,CAAC,MAAM,6BAA6B,QAAQ,YAAY,KAAK,OAAO,OAAO,eAAe,YAAY,IAAI,cAAc,QAAQ,eAAe,QAAQ,MAAM,CAAC,MAAM,EAAU,OAAO,EAAU,CAAC,SAAS,CAAc,EAAK,SAAS,CAAC,GAAG,KAAK,GAAG,KAAK,EAAE,IAAI,CAAC,CAAc,EAAK,OAAO,CAAC,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,QAAQ,EAAQ,CAAC,KAAK,CAAC,EAAS,KAAe,CAAC,IAAM,EAAS,CAAC,CAAC,EAAkB,EAAM,CAAC,GAAG,EAAiB,WAAW,EAAS,EAA0B,EAAiB,YAAY,EAAS,EAAoB,EAAa,MAAM,EAAS,EAAkB,EAAW,MAAM,EAAS,OAAO,OAAO,aAAa,EAAS,EAAW,IAAI,CAAC,OAAoB,EAAM,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,QAAQ,eAAe,MAAM,EAAS,OAAO,OAAO,CAAC,SAAS,CAAc,EAAM,SAAS,CAAC,IAAI,GAAI,EAAW,QAAQ,GAAU,EAAG,MAAM,EAAY,SAAS,GAAG,EAAmB,EAAS,EAAE,OAAO,MAAM,CAAO,QAAM,SAAS,CAAc,EAAK,SAAS,CAAC,MAAM,GAAG,SAAS,IAAW,WAAW,iBAAiB,OAAO,IAAW,CAAC,CAAC,EAAiB,EAAS,CAAC,IAAI,GAAqB,EAAK,SAAS,CAAC,MAAM,EAAO,SAAS,EAAO,CAAC,EAAO,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,OAAO,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,EAAmB,IAAI,MAAM,UAAU,mBAAmB,cAAc,OAAO,QAAQ,OAAO,WAAW,SAAS,MAAM,EAAS,EAAkB,EAAW,CAAC,SAAsB,EAAK,MAAM,CAAC,MAAM,6BAA6B,QAAQ,YAAY,KAAK,OAAO,OAAO,eAAe,YAAY,IAAI,cAAc,QAAQ,eAAe,QAAQ,MAAM,CAAC,MAAM,EAAU,OAAO,EAAU,CAAC,SAAsB,EAAK,WAAW,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAS,EAAG,CAAC,GAAiB,EAAY,OAAO,GAAgB,EAAM,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,QAAQ,eAAe,MAAM,EAAS,OAAO,OAAO,CAAC,SAAS,CAAc,EAAM,SAAS,CAAC,IAAI,GAAI,EAAW,QAAQ,KAAQ,EAAG,MAAM,EAAW,SAAS,GAAG,EAAiB,EAAE,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAiB,WAAW,IAAa,WAAqC,EAA1B,EAA2C,YAAY,IAAa,WAA+B,EAApB,EAAiC,MAAM,IAAa,WAA6B,EAAlB,EAA6B,MAAM,EAAS,OAAO,OAAO,aAAa,EAAS,EAAW,IAAI,CAAC,SAAS,CAAc,EAAK,SAAS,CAAC,MAAM,WAAW,SAAS,oBAAoB,CAAC,CAAC,EAAY,OAAO,GAAQ,IAAS,WAAW,CAAC,IAAI,GAAqB,EAAMA,EAAU,CAAC,SAAS,CAAc,EAAM,SAAS,CAAC,MAAM,GAAG,EAAO,MAAM,SAAS,CAAC,EAAO,OAAO,EAAE,CAAC,aAAa,CAAC,EAAO,MAAM,EAAE,CAAC,IAAI,YAAY,CAAC,CAAC,GAAG,EAAO,MAAM,CAAc,EAAM,SAAS,CAAC,MAAM,GAAG,EAAO,OAAO,SAAS,CAAC,EAAO,OAAO,EAAE,CAAC,aAAa,CAAC,EAAO,MAAM,EAAE,CAAC,IAAI,aAAa,CAAC,CAAC,GAAG,EAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,OAAO,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,EAAmB,IAAI,MAAM,UAAU,mBAAmB,cAAc,OAAO,QAAQ,OAAO,WAAW,SAAS,MAAM,IAAa,WAA6B,EAAlB,EAA6B,CAAC,SAAsB,EAAK,MAAM,CAAC,MAAM,6BAA6B,QAAQ,YAAY,KAAK,OAAO,OAAO,eAAe,YAAY,IAAI,cAAc,QAAQ,eAAe,QAAQ,MAAM,CAAC,MAAM,EAAU,OAAO,EAAU,CAAC,SAAsB,EAAK,WAAW,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,EAAK,EAAU,CAAC,GAAG,EAAM,CAAC,CAAc,EAAK,QAAQ,CAAC,SAAS;uBACp3I,EAAM,UAAU;;;;4CAIK,EAAuB;;;;;;;;;wCAS3B,EAAoB;4CAChB,EAA0B;;;;wCAI9B,EAAoB;4CAChB,EAA0B;;;yCAG7B,EAAkB;;;;;;kBAMzC,CAAC,CAAC,CAAC,CAAC,mEA9EyD,IAA6C,CACtH,EAAY,oBAA0B,EAAc,OAAa,EAAa,MAAY,EAAU,OACpG,EAAiB,OAAa,EAAmB,OAAa,EAAW,MAAY,EAAqB,MAC1G,EAAW,UAAgB,EAAa,OAAa,EAAiB,OAAa,EAA0B,OAAa,EAAoB,UAAgB,EAAuB,UAAgB,EAAkB,UACvN,EAAU,OAAa,EAAiB,OAAa,EAAY,MACjE,EAAW,+FAEX,EAAkB,QAClB,EAAiB,CAAC,WAAW,uBAAuB,cAAc,UAAU,aAAa,EAAc,OAAO,GAAG,EAAa,SAAS,IAAe,WAAW,EAAiB,UAAU,EAAW,QAAQ,GAAG,EAAiB,GAAG,IAAqB,WAAW,EAAY,MAAM,EAAW,SAAS,EAAU,WAAW,EAAY,UAAU,aAAa,MAAM,OAAO,WAAW,OAAO,WAAW,SAAS,SAAS,UAAU,aAAa,OAAO,aAAa,QAAQ,EAAmB,KAAK,EAAU,SAAS,SAAS,WAAW,OAAO,UAAU,CACniB,EAAiB,CAAC,GAAG,EAAiB,MAAM,OAAO,SAAS,OAAO,SAAS,EAAiB"}