{"version":3,"file":"responsive.Cb-I2AB3.mjs","names":["useState"],"sources":["https:/framerusercontent.com/modules/iEIkZixE0bvfhu7byyiT/nAVjrYkTSptlndcICX4z/useFetch.js","https:/framerusercontent.com/modules/3PrGkAWN9iE70HdgbSzW/BlOniuCE4wpaNIe1KHfL/brand.js","https:/framerusercontent.com/modules/dJPVS78Bvk2Vd2LMrTUL/ptcqFaUINCE8JJLRJZJj/responsive.js"],"sourcesContent":["import{useEffect,useState}from\"react\";export function useFetch(url){const[data,setData]=useState(null);const[loading,setLoading]=useState(Boolean(url));const[error,setError]=useState(null);useEffect(()=>{// Sin url, no hay nada que fetchear. Evita disparar fetch(\"\") que\n// resuelve a la URL actual (HTML del propio sitio) y revienta el parse.\nif(!url){setData(null);setLoading(false);setError(null);return;}let cancelled=false;async function cargar(){const startedAt=new Date().toISOString();try{setLoading(true);setError(null);let res;try{res=await fetch(url);}catch(networkErr){const message=networkErr instanceof Error?networkErr.message:String(networkErr);if(!cancelled){setError({kind:\"networkOrCors\",message,status:null,url,timestamp:startedAt});}return;}if(!res.ok){if(!cancelled){setError({kind:\"http\",message:`HTTP ${res.status} ${res.statusText}`,status:res.status,url,timestamp:startedAt});}return;}let json;try{json=await res.json();}catch(parseErr){const message=parseErr instanceof Error?parseErr.message:\"JSON parse failed\";if(!cancelled){setError({kind:\"parse\",message,status:res.status,url,timestamp:startedAt});}return;}if(!cancelled){setData(json);}}catch(e){if(!cancelled){const message=e instanceof Error?e.message:\"Error desconocido\";setError({kind:\"unknown\",message,status:null,url,timestamp:startedAt});}}finally{if(!cancelled){setLoading(false);}}}void cargar();return()=>{cancelled=true;};},[url]);return{data,loading,error};}\nexport const __FramerMetadata__ = {\"exports\":{\"FetchError\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useFetch\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FetchErrorKind\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FetchResult\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./useFetch.map","/**\r\n * Paleta de colores Divertidisimo para componentes de Framer.\r\n *\r\n * MANTENER EN SYNC con apps/web/src/lib/brand-colors.ts\r\n * y apps/web/src/lib/categoria-colors.ts\r\n * (no se puede importar entre apps/web y framer/, asi que esta duplicado).\r\n *\r\n * NOTA: CATEGORIA_TEMATICA_COLORS abajo NO espeja\r\n * apps/web/src/lib/categoria-tematica.ts (que sigue Material Design para admin).\r\n * Aqui se mapea a la paleta BRAND para coherencia visual con el sitio publico\r\n * (decision D-PUB-008 en docs/decisions.md).\r\n *\r\n * Si actualizas un valor aqui, actualizalo tambien alla.\r\n */export const BRAND={amarillo:\"#FAC91A\",naranja:\"#EF7F01\",verde:\"#84B424\",azul:\"#009DE0\",gris:\"#9B919C\",rosa:\"#FA37A2\",coral:\"#E36262\",turquesa:\"#4CD9CD\",morado:\"#A54BFA\",verdeAqua:\"#29F294\"};export const SEMANTIC={success:BRAND.verde,info:BRAND.azul,warning:BRAND.amarillo,danger:BRAND.coral,accent:BRAND.naranja,muted:BRAND.gris,nuevo:BRAND.verdeAqua};/**\r\n * Mapa de nombreInterno (de la coleccion Categoria) -> color de marca.\r\n * Mirror de apps/web/src/lib/categoria-colors.ts.\r\n */export const CATEGORIA_COLORS={kermess:BRAND.amarillo,teens:BRAND.naranja,jumbo_teens:BRAND.verde,platinum:BRAND.azul,mecanico:BRAND.gris,brincolines:BRAND.rosa,fiestas_tematicas:BRAND.coral,show:BRAND.turquesa};export const CATEGORIA_COLOR_DEFAULT=\"#94a3b8\";export function getCategoriaColor(nombreInterno){if(!nombreInterno)return CATEGORIA_COLOR_DEFAULT;return CATEGORIA_COLORS[nombreInterno]??CATEGORIA_COLOR_DEFAULT;}/**\r\n * Tipografia de marca. Neulis Alt es la font display oficial de Divertidisimo.\r\n * Leon la sube en Framer Project Fonts; estos fallbacks evitan FOIT/FOUT\r\n * cuando aun no esta cargada o cuando se previsualiza fuera de Framer.\r\n */export const FONTS={display:'\"Neulis Alt\", \"Neulis\", \"Inter\", system-ui, sans-serif',body:'\"Neulis Alt\", \"Neulis\", \"Inter\", system-ui, sans-serif'};/**\r\n * Mapa de categoriaTematica (enum del modelo Paquete) -> color BRAND.\r\n * 13 categorias mapeadas a 10 colores; algunas comparten color\r\n * (electronica/aqua_fiesta/kermes repiten otra categoria).\r\n */export const CATEGORIA_TEMATICA_COLORS={futbol:BRAND.verde,deportes:BRAND.azul,punteria:BRAND.naranja,reflejos_tech:BRAND.turquesa,adrenalina:BRAND.coral,fiesta_mujeres:BRAND.rosa,combate:BRAND.gris,arcade_feria:BRAND.amarillo,precision_calma:BRAND.morado,mix:BRAND.verdeAqua,electronica:BRAND.azul,aqua_fiesta:BRAND.turquesa,kermes:BRAND.amarillo};export const CATEGORIA_TEMATICA_LABELS={futbol:\"F\\xfatbol\",deportes:\"Deportes\",punteria:\"Punter\\xeda\",reflejos_tech:\"Reflejos/Tech\",adrenalina:\"Adrenalina\",fiesta_mujeres:\"Fiesta/Mujeres\",combate:\"Combate\",arcade_feria:\"Arcade/Feria\",precision_calma:\"Precisi\\xf3n/Calma\",mix:\"Mix\",electronica:\"Electr\\xf3nica\",aqua_fiesta:\"Aqua Fiesta\",kermes:\"Kerm\\xe9s\"};/**\r\n * Labels de tamano de paquete para badges/chips.\r\n * El sufijo numerico refleja la cantidad tipica de productos\r\n * (duo=2, estandar=3, mega=5) — usar en chip row de la grilla.\r\n */export const TAMANO_LABELS={duo:\"Duo \\xb7 2\",estandar:\"Est\\xe1ndar \\xb7 3\",mega:\"Mega \\xb7 5\"};/**\r\n * Color por tamano para badges del card en GrillaPaquetes.\r\n */export const TAMANO_COLORS={duo:BRAND.turquesa,estandar:BRAND.naranja,mega:BRAND.verdeAqua};export function getCategoriaTematicaColor(cat){if(!cat)return CATEGORIA_COLOR_DEFAULT;return CATEGORIA_TEMATICA_COLORS[cat]??CATEGORIA_COLOR_DEFAULT;}export function getCategoriaTematicaLabel(cat){if(!cat)return\"—\";return CATEGORIA_TEMATICA_LABELS[cat]??cat;}export function getTamanoLabel(t){if(!t)return\"\";return TAMANO_LABELS[t]??t;}export function getTamanoColor(t){if(!t)return BRAND.gris;return TAMANO_COLORS[t]??BRAND.gris;}/**\r\n * Mapa de CategoriaAlimento (enum del modelo Alimento) -> color BRAND.\r\n * Cada categoria semantica tiene un color distinto para chips/badges del\r\n * catalogo publico de alimentos.\r\n */export const CATEGORIA_ALIMENTO_COLORS={entrada:BRAND.amarillo,principal:BRAND.coral,postre:BRAND.rosa,bebida:BRAND.azul,snack:BRAND.verdeAqua,estacion_especial:BRAND.morado};export const CATEGORIA_ALIMENTO_LABELS={entrada:\"Entrada\",principal:\"Principal\",postre:\"Postre\",bebida:\"Bebida\",snack:\"Snack\",estacion_especial:\"Estaci\\xf3n Especial\"};/**\r\n * Mapa de TipoAlimento (enum del modelo Alimento) -> color BRAND.\r\n * pieza = cotiza por unidad, estacion = cotiza por bloques de personas.\r\n */export const TIPO_ALIMENTO_COLORS={pieza:BRAND.turquesa,estacion:BRAND.naranja};export const TIPO_ALIMENTO_LABELS={pieza:\"Por pieza\",estacion:\"Estaci\\xf3n\"};export function getCategoriaAlimentoColor(c){if(!c)return CATEGORIA_COLOR_DEFAULT;return CATEGORIA_ALIMENTO_COLORS[c]??CATEGORIA_COLOR_DEFAULT;}export function getCategoriaAlimentoLabel(c){if(!c)return\"—\";return CATEGORIA_ALIMENTO_LABELS[c]??c;}export function getTipoAlimentoColor(t){if(!t)return BRAND.gris;return TIPO_ALIMENTO_COLORS[t]??BRAND.gris;}export function getTipoAlimentoLabel(t){if(!t)return\"\";return TIPO_ALIMENTO_LABELS[t]??t;}// ============================================================================\n// Mundo Happy Munch (S-04, phase-19-sp4, f19_01)\n// ----------------------------------------------------------------------------\n// Bloque de identidad + tokens del set framer/components/happyMunch/. Se AGREGA\n// aqui (archivo-token unico de framer/, se extiende NO se clona — L-29); las\n// ~12 hojas y el orquestador de f19 importan TODO de aqui, sin re-declarar un\n// solo hex. El acento HM es amarillo (= BRAND.amarillo), texto negro; NUNCA el\n// naranja Diver como color de accion/marca (decision dura del sprint S-04).\n// ============================================================================\n/**\r\n * Paleta base de Happy Munch. `amarillo` reusa BRAND.amarillo (un solo hex,\r\n * misma fuente que la marca madre). `crema`, junto a HM_CARRITO_COLORS abajo,\r\n * son PLACEHOLDERS (D-9 de phase-19-sp4) que ratifica Alex via Leon; viven en\r\n * un solo lugar → ajustarlos luego = editar este archivo.\r\n */export const HM={amarillo:BRAND.amarillo,crema:\"#FFF6E3\",negro:\"#0A0A0A\",blanco:\"#FFFFFF\"};/**\r\n * Colores del carrito HM. Claves = valores EXACTOS del enum HappyMunchColorCarrito\r\n * (f14_02): rojo | negro | azul_rey. rojo/azul_rey son PLACEHOLDERS (D-9).\r\n */export const HM_CARRITO_COLORS={rojo:\"#D22B2B\",negro:\"#0A0A0A\",azul_rey:\"#1F3BB3\"};export const HM_CARRITO_LABELS={rojo:\"Rojo\",negro:\"Negro\",azul_rey:\"Azul rey\"};/**\r\n * Mapa de categoria de snack HM -> color BRAND. Claves = enum HappyMunchSnackCategoria\r\n * (f14_02, SINGULAR): crudite | botana_salada | botana_dulce | salsa.\r\n */export const CATEGORIA_SNACK_HM_COLORS={crudite:BRAND.verde,botana_salada:BRAND.naranja,botana_dulce:BRAND.rosa,salsa:BRAND.coral};export const CATEGORIA_SNACK_HM_LABELS={crudite:\"Crudit\\xe9s\",botana_salada:\"Botana Salada\",botana_dulce:\"Botana Dulce\",salsa:\"Salsas\"};export function getSnackHmColor(c){if(!c)return CATEGORIA_COLOR_DEFAULT;return CATEGORIA_SNACK_HM_COLORS[c]??CATEGORIA_COLOR_DEFAULT;}export function getSnackHmLabel(c){if(!c)return\"—\";return CATEGORIA_SNACK_HM_LABELS[c]??c;}/**\r\n * Fondo crema con patron punteado (D-5 de phase-19-sp4): CSS `radial-gradient`,\r\n * NO SVG — repite nativo a cualquier viewport, cero assets. El `transparent` es\r\n * el hueco entre puntos SOLIDOS sobre crema SOLIDA, NO una mascara de recorte\r\n * (`mask-image`/blur estan prohibidos — quirk iOS PDFKit del repo).\r\n */export function hmDotsBackground(dotColor=\"rgba(10,10,10,0.08)\",size=22){return{backgroundColor:HM.crema,backgroundImage:`radial-gradient(${dotColor} 2px, transparent 2px)`,backgroundSize:`${size}px ${size}px`};}/**\r\n * Tokens neobrutalistas del set HM. Valores IDENTICOS a los que hoy viven\r\n * duplicados como consts locales por componente (CarruselMedia.tsx:42-43,\r\n * GrillaAlimentos, TickerJuegos); se exponen aqui como token del set para que\r\n * las hojas de f19 cumplan el gate cero-hex sin re-declararlos. El refactor\r\n * global de los componentes legacy queda FUERA de alcance (no se reescriben).\r\n */export const BORDER_THICK=\"3px solid #000\";export const SHADOW=\"6px 6px 0 #000\";export const SHADOW_HOVER=\"8px 8px 0 #000\";export const RADII={card:16,chip:14,pill:999};export const SPRING={type:\"spring\",stiffness:380,damping:28};\nexport const __FramerMetadata__ = {\"exports\":{\"CATEGORIA_TEMATICA_LABELS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RADII\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSnackHmColor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SHADOW_HOVER\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCategoriaTematicaLabel\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CATEGORIA_SNACK_HM_LABELS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CATEGORIA_ALIMENTO_LABELS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CATEGORIA_SNACK_HM_COLORS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FONTS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SPRING\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getTamanoColor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getSnackHmLabel\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HM_CARRITO_COLORS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SHADOW\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCategoriaAlimentoLabel\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BORDER_THICK\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HM\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TIPO_ALIMENTO_LABELS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"hmDotsBackground\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HM_CARRITO_LABELS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TAMANO_COLORS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TIPO_ALIMENTO_COLORS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getTipoAlimentoColor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BRAND\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCategoriaAlimentoColor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCategoriaColor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getCategoriaTematicaColor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CATEGORIA_COLORS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CATEGORIA_COLOR_DEFAULT\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getTamanoLabel\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TAMANO_LABELS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CATEGORIA_ALIMENTO_COLORS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SEMANTIC\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getTipoAlimentoLabel\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CATEGORIA_TEMATICA_COLORS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./brand.map","/**\r\n * Tokens centrales de responsive design para componentes Framer.\r\n *\r\n * Una sola fuente de verdad para breakpoints, tipografia fluida,\r\n * spacing fluido y tap-target minimo (WCAG/Apple).\r\n *\r\n * Patron de uso:\r\n *   import { BREAKPOINTS, MQ, FLUID, TAP_MIN, useIsMobile } from \"../shared/responsive.tsx\"\r\n *\r\n *   <div style={{ fontSize: FLUID.body, padding: FLUID.pad.section }} />\r\n *   <button style={{ minHeight: TAP_MIN }} />\r\n *\r\n *   const isMobile = useIsMobile()\r\n *\r\n * Nota: Framer no permite styled-components ni CSS-in-JS con media queries\r\n * inline en el style prop. Para media queries reales hay que inyectar un\r\n * <style> tag o usar el hook useIsMobile() que devuelve un boolean.\r\n */import{useEffect,useState}from\"react\";export const BREAKPOINTS={xs:360,sm:600,md:768,lg:1024,xl:1440};export const MQ={xs:`@media (max-width: ${BREAKPOINTS.xs}px)`,sm:`@media (max-width: ${BREAKPOINTS.sm}px)`,md:`@media (max-width: ${BREAKPOINTS.md}px)`,lg:`@media (max-width: ${BREAKPOINTS.lg}px)`};export const FLUID={h1:\"clamp(28px, 5vw, 56px)\",h2:\"clamp(22px, 3.2vw, 36px)\",h3:\"clamp(18px, 2.4vw, 24px)\",h4:\"clamp(16px, 2vw, 20px)\",body:\"clamp(14px, 1.6vw, 16px)\",small:\"clamp(12px, 1.4vw, 13px)\",pad:{section:\"clamp(16px, 3vw, 32px)\",card:\"clamp(12px, 2vw, 20px)\",compact:\"clamp(8px, 1.5vw, 14px)\"},gap:{sm:\"clamp(8px, 1.5vw, 12px)\",md:\"clamp(12px, 2vw, 20px)\",lg:\"clamp(16px, 3vw, 32px)\"}};/** Tap target minimo (WCAG 2.5.5 / Apple HIG). Usar como minHeight/minWidth. */export const TAP_MIN=44;/**\r\n * Hook SSR-safe que devuelve true cuando el viewport es <= BREAKPOINTS.sm.\r\n * En servidor (window undef) retorna false para evitar layout shift.\r\n */export function useIsMobile(){const[isMobile,setIsMobile]=useState(false);useEffect(()=>{if(typeof window===\"undefined\")return undefined;const mql=window.matchMedia(`(max-width: ${BREAKPOINTS.sm}px)`);const handler=e=>{setIsMobile(e.matches);};handler(mql);mql.addEventListener(\"change\",handler);return()=>mql.removeEventListener(\"change\",handler);},[]);return isMobile;}/**\r\n * Devuelve un grid template responsive con el patron probado en el repo:\r\n *   repeat(auto-fill, minmax(min(<minPx>, 100%), 1fr))\r\n * Se queda en una columna en mobile sin necesidad de media query.\r\n */export function fluidGrid(minPx){return`repeat(auto-fill, minmax(min(${minPx}px, 100%), 1fr))`;}\nexport const __FramerMetadata__ = {\"exports\":{\"MQ\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TAP_MIN\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsMobile\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"FLUID\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BREAKPOINTS\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fluidGrid\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./responsive.map"],"mappings":"kHAAsC,SAAgB,EAAS,EAAI,CAAC,GAAK,CAAC,EAAK,GAASA,EAAS,IAAI,EAAO,CAAC,EAAQ,GAAYA,EAAS,EAAQ,CAAI,EAAO,CAAC,EAAM,GAAUA,EAAS,IAAI,EAE83B,OAF53B,MAAc,CAE3M,GAAG,CAAC,EAAI,CAAC,EAAQ,IAAI,EAAE,EAAW,EAAK,EAAE,EAAS,IAAI,EAAE,MAAO,CAAC,IAAI,EAAU,GAAM,eAAe,GAAQ,CAAC,IAAM,EAAU,IAAI,KAAK,CAAA,CAAE,YAAY,EAAE,GAAG,CAAC,EAAW,EAAI,EAAE,EAAS,IAAI,EAAE,IAAI,EAAI,GAAG,CAAC,EAAI,MAAM,MAAM,CAAG,CAAE,OAAO,EAAW,CAAC,IAAM,EAAQ,aAAsB,MAAM,EAAW,QAAQ,OAAO,CAAU,EAAM,GAAW,EAAS,CAAC,KAAK,gBAAgB,UAAQ,OAAO,KAAK,MAAI,UAAU,CAAS,CAAC,EAAG,MAAO,CAAC,GAAG,CAAC,EAAI,GAAG,CAAK,GAAW,EAAS,CAAC,KAAK,OAAO,QAAQ,QAAQ,EAAI,OAAO,GAAG,EAAI,aAAa,OAAO,EAAI,OAAO,MAAI,UAAU,CAAS,CAAC,EAAG,MAAO,CAAC,IAAI,EAAK,GAAG,CAAC,EAAK,MAAM,EAAI,KAAK,CAAE,OAAO,EAAS,CAAC,IAAM,EAAQ,aAAoB,MAAM,EAAS,QAAQ,oBAAwB,GAAW,EAAS,CAAC,KAAK,QAAQ,UAAQ,OAAO,EAAI,OAAO,MAAI,UAAU,CAAS,CAAC,EAAG,MAAO,CAAK,GAAW,EAAQ,CAAI,CAAG,OAAO,EAAE,CAAC,GAAG,CAAC,EAAU,CAAC,IAAM,EAAQ,aAAa,MAAM,EAAE,QAAQ,oBAAoB,EAAS,CAAC,KAAK,UAAU,UAAQ,OAAO,KAAK,MAAI,UAAU,CAAS,CAAC,CAAE,CAAC,QAAQ,CAAK,GAAW,EAAW,EAAK,CAAG,CAAC,CAAe,OAAd,EAAY,MAAY,CAAC,EAAU,EAAK,CAAE,EAAE,CAAC,CAAG,CAAC,EAAQ,CAAC,OAAK,UAAQ,OAAK,CAAE,iBAF/iC,KCgBiO,SAAgB,EAAkB,EAAc,CAAkD,OAA7C,EAAoD,EAAiB,IAAA,UAAhD,CAAwF,CAczU,SAAgB,EAA0B,EAAI,CAAwC,OAAnC,EAA0C,EAA0B,IAAA,UAAzD,CAAuF,CAAC,SAAgB,EAA0B,EAAI,CAAmB,OAAd,EAAqB,EAA0B,IAAM,EAA3C,GAA+C,CAAC,SAAgB,EAAe,EAAE,CAAgB,OAAX,EAAkB,EAAc,IAAI,EAA5B,EAA8B,CAAC,SAAgB,EAAe,EAAE,CAAyB,OAApB,EAA2B,EAAc,IAAI,EAAM,KAA1C,EAAM,IAAyC,CAO7W,SAAgB,EAA0B,EAAE,CAAsC,OAAjC,EAAwC,EAA0B,IAAA,UAAzD,CAAqF,CAAC,SAAgB,EAA0B,EAAE,CAAiB,OAAZ,EAAmB,EAA0B,IAAI,EAAzC,GAA2C,CAAC,SAAgB,EAAqB,EAAE,CAAyB,OAApB,EAA2B,EAAqB,IAAI,EAAM,KAAjD,EAAM,IAAgD,CAAC,SAAgB,EAAqB,EAAE,CAAgB,OAAX,EAAkB,EAAqB,IAAI,EAAnC,EAAqC,yCAxB1kB,EAAM,CAAC,SAAS,UAAU,QAAQ,UAAU,MAAM,UAAU,KAAK,UAAU,KAAK,UAAU,KAAK,UAAU,MAAM,UAAU,SAAS,UAAU,OAAO,UAAU,UAAU,SAAS,EAAe,EAAS,CAAC,QAAQ,EAAM,MAAM,KAAK,EAAM,KAAK,QAAQ,EAAM,SAAS,OAAO,EAAM,MAAM,OAAO,EAAM,QAAQ,MAAM,EAAM,KAAK,MAAM,EAAM,SAAS,EAGlV,EAAiB,CAAC,QAAQ,EAAM,SAAS,MAAM,EAAM,QAAQ,YAAY,EAAM,MAAM,SAAS,EAAM,KAAK,SAAS,EAAM,KAAK,YAAY,EAAM,KAAK,kBAAkB,EAAM,MAAM,KAAK,EAAM,QAAQ,EAAe,EAAwB,UAI5O,EAAM,CAAC,QAAQ,yDAAyD,KAAK,wDAAwD,EAIrI,EAA0B,CAAC,OAAO,EAAM,MAAM,SAAS,EAAM,KAAK,SAAS,EAAM,QAAQ,cAAc,EAAM,SAAS,WAAW,EAAM,MAAM,eAAe,EAAM,KAAK,QAAQ,EAAM,KAAK,aAAa,EAAM,SAAS,gBAAgB,EAAM,OAAO,IAAI,EAAM,UAAU,YAAY,EAAM,KAAK,YAAY,EAAM,SAAS,OAAO,EAAM,QAAQ,EAAe,EAA0B,CAAC,OAAO,SAAY,SAAS,WAAW,SAAS,WAAc,cAAc,gBAAgB,WAAW,aAAa,eAAe,iBAAiB,QAAQ,UAAU,aAAa,eAAe,gBAAgB,kBAAqB,IAAI,MAAM,YAAY,cAAiB,YAAY,cAAc,OAAO,QAAW,EAIlrB,EAAc,CAAC,IAAI,UAAa,SAAS,eAAqB,KAAK,UAAa,EAEhF,EAAc,CAAC,IAAI,EAAM,SAAS,SAAS,EAAM,QAAQ,KAAK,EAAM,SAAS,EAI7E,EAA0B,CAAC,QAAQ,EAAM,SAAS,UAAU,EAAM,MAAM,OAAO,EAAM,KAAK,OAAO,EAAM,KAAK,MAAM,EAAM,UAAU,kBAAkB,EAAM,MAAM,EAAe,EAA0B,CAAC,QAAQ,UAAU,UAAU,YAAY,OAAO,SAAS,OAAO,SAAS,MAAM,QAAQ,kBAAkB,mBAAsB,EAGxU,EAAqB,CAAC,MAAM,EAAM,SAAS,SAAS,EAAM,OAAO,EAAe,EAAqB,CAAC,MAAM,YAAY,SAAS,UAAa,EAcjI,EAAM,SAMgB,EAAM,MAAoB,EAAM,QAAqB,EAAM,KAAW,EAAM,6BCxCvF,EAAc,EAAY,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,EAAsB,GAAsB,EAAY,GAAlC,EAA6C,GAAsB,EAAY,GAAlC,EAA6C,GAAsB,EAAY,GAAlC,EAA6C,GAAsB,EAAY,GAAlC,EAAwD,EAAM,CAAC,GAAG,yBAAyB,GAAG,2BAA2B,GAAG,2BAA2B,GAAG,yBAAyB,KAAK,2BAA2B,MAAM,2BAA2B,IAAI,CAAC,QAAQ,yBAAyB,KAAK,yBAAyB,QAAQ,yBAAyB,EAAE,IAAI,CAAC,GAAG,0BAA0B,GAAG,yBAAyB,GAAG,wBAAwB,CAAC"}