{"version":3,"file":"EntropyEngine.Ccw11tet.mjs","names":["React.useState","React.useRef","React.useCallback","_Fragment"],"sources":["https:/framerusercontent.com/modules/0IPRM5sU9GLRv8HdB7if/PewCaycaJsCM365eZD9W/EntropyEngine.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{createPortal}from\"react-dom\";const VERCEL_APP_URL=\"https://entropy-game-engine.vercel.app\";const ALLOWED_IFRAME_ORIGIN=new URL(VERCEL_APP_URL).origin;const DEFAULT_MOBILE_BREAKPOINT=860;const STORAGE_KEY=\"entropy-auth-token\";const TARGET_LABELS={inventory:\"Inventory\",shop:\"Marketplace\",\"music-browser\":\"Music Browser\",quests:\"Mission Log\",profile:\"Avatar Studio\",chat:\"Terminal\",friends:\"Friends\",none:\"Entropy Shell\"};function isStoredSession(value){return value&&typeof value===\"object\"&&typeof value.access_token===\"string\"&&typeof value.refresh_token===\"string\";}function decodeJwtExpiry(accessToken){try{const payload=accessToken.split(\".\")[1];if(!payload)return null;const normalized=payload.replace(/-/g,\"+\").replace(/_/g,\"/\");const decoded=JSON.parse(window.atob(normalized));return typeof decoded.exp===\"number\"?decoded.exp:null;}catch(error){return null;}}function getStoredSession(){if(typeof window===\"undefined\")return null;try{const raw=window.localStorage.getItem(STORAGE_KEY);if(!raw)return null;const parsed=JSON.parse(raw);const candidates=[parsed,parsed.currentSession,parsed.session];const session=candidates.find(isStoredSession);if(!session)return null;if(typeof session.expires_at===\"number\"&&session.expires_at*1e3<=Date.now()){return null;}return session;}catch(error){return null;}}function persistSessionTokens(accessToken,refreshToken,params){if(typeof window===\"undefined\")return;const expiresIn=Number(params?.get(\"expires_in\")||\"3600\");const explicitExpiresAt=Number(params?.get(\"expires_at\")||\"\");const expiresAt=Number.isFinite(explicitExpiresAt)&&explicitExpiresAt>0?explicitExpiresAt:decodeJwtExpiry(accessToken)||Math.floor(Date.now()/1e3)+(Number.isFinite(expiresIn)&&expiresIn>0?expiresIn:3600);const session={access_token:accessToken,refresh_token:refreshToken,token_type:params?.get(\"token_type\")||\"bearer\",expires_in:Number.isFinite(expiresIn)&&expiresIn>0?expiresIn:3600,expires_at:expiresAt};window.localStorage.setItem(STORAGE_KEY,JSON.stringify(session));}function clearStoredSession(){if(typeof window===\"undefined\")return;window.localStorage.removeItem(STORAGE_KEY);window.localStorage.removeItem(`${STORAGE_KEY}-code-verifier`);window.localStorage.removeItem(`${STORAGE_KEY}-user`);window.localStorage.removeItem(\"supabase.auth.token\");}function broadcastAuthState(loggedIn){window.dispatchEvent(new CustomEvent(\"ENTROPY_AUTH_STATE\",{detail:{loggedIn}}));}function buildCleanedAuthUrl(){const cleanedUrl=new URL(window.location.href);[\"access_token\",\"refresh_token\",\"token_type\",\"expires_in\",\"expires_at\",\"type\"].forEach(key=>cleanedUrl.searchParams.delete(key));cleanedUrl.hash=\"\";return cleanedUrl;}async function consumeUrlSessionTokens(){if(typeof window===\"undefined\")return;const searchParams=new URLSearchParams(window.location.search);const hashParams=new URLSearchParams(window.location.hash.replace(/^#/,\"\"));const tokenParams=new URLSearchParams(searchParams);hashParams.forEach((value,key)=>{if(!tokenParams.has(key))tokenParams.set(key,value);});const accessToken=searchParams.get(\"access_token\")||hashParams.get(\"access_token\");const refreshToken=searchParams.get(\"refresh_token\")||hashParams.get(\"refresh_token\");if(!accessToken||!refreshToken)return;persistSessionTokens(accessToken,refreshToken,tokenParams);broadcastAuthState(true);const cleanedUrl=buildCleanedAuthUrl();window.history.replaceState({},document.title,cleanedUrl.toString());}function getBridgeMessageType(data){if(typeof data===\"string\")return data;if(data&&typeof data===\"object\"&&typeof data.type===\"string\"){if(data.source&&data.source!==\"entropy-engine\")return null;return data.type;}return null;}function getTargetLabel(targetWindow){if(!targetWindow)return TARGET_LABELS.none;return TARGET_LABELS[targetWindow]||\"Entropy Shell\";}function buildEmbedUrl(targetWindow,sidebar){const target=new URL(\"/?embed=true\",VERCEL_APP_URL);if(targetWindow&&targetWindow!==\"none\"){target.searchParams.set(\"window\",targetWindow);}if(sidebar){target.searchParams.set(\"sidebar\",\"true\");}return target.toString();}export default function EntropyEngine(props){const{mobileBreakpoint,launcherTitle,launcherMessage,openInNewTabLabel,continueHereLabel,cancelLabel}=props;const[isVisible,setIsVisible]=React.useState(false);const[launcherVisible,setLauncherVisible]=React.useState(false);const[iframeSrc,setIframeSrc]=React.useState(null);const[isMobile,setIsMobile]=React.useState(false);const[hasMounted,setHasMounted]=React.useState(false);const[pendingTarget,setPendingTarget]=React.useState({window:\"none\",sidebar:false});const[isLaunching,setIsLaunching]=React.useState(false);const iframeRef=React.useRef(null);const pendingNavigationRef=React.useRef({window:\"none\",sidebar:false});React.useEffect(()=>{setHasMounted(true);},[]);React.useEffect(()=>{void consumeUrlSessionTokens();},[]);React.useEffect(()=>{const syncViewport=()=>{if(typeof window===\"undefined\")return;setIsMobile(window.innerWidth<mobileBreakpoint);};syncViewport();window.addEventListener(\"resize\",syncViewport);return()=>window.removeEventListener(\"resize\",syncViewport);},[mobileBreakpoint]);const openEngine=React.useCallback((targetWindow,sidebar)=>{const nextTarget={window:targetWindow||\"none\",sidebar:Boolean(sidebar)};pendingNavigationRef.current=nextTarget;if(isMobile){setPendingTarget(nextTarget);setLauncherVisible(true);return;}setPendingTarget(nextTarget);setLauncherVisible(false);setIsVisible(true);setIframeSrc(buildEmbedUrl(nextTarget.window,nextTarget.sidebar));if(iframeRef.current&&iframeRef.current.contentWindow){iframeRef.current.contentWindow.postMessage({type:\"NAVIGATE\",payload:nextTarget},ALLOWED_IFRAME_ORIGIN);}},[isMobile]);React.useEffect(()=>{const entropyWindow=window;entropyWindow.__ENTROPY_ENGINE_OPEN__=openEngine;return()=>{if(entropyWindow.__ENTROPY_ENGINE_OPEN__===openEngine){delete entropyWindow.__ENTROPY_ENGINE_OPEN__;}};},[openEngine]);React.useEffect(()=>{const handleMessage=async event=>{const messageType=getBridgeMessageType(event.data);const isIframeMessage=event.origin===ALLOWED_IFRAME_ORIGIN;const isSamePageMessage=event.origin===window.location.origin;if(messageType===\"OPEN_ENTROPY_ENGINE\"){if(!isIframeMessage&&!isSamePageMessage)return;const detail=event.data&&typeof event.data===\"object\"?event.data.detail??{}:{};openEngine(detail.window,detail.sidebar);return;}if(messageType===\"REFRESH_SESSION\"){if(!isIframeMessage&&!isSamePageMessage)return;if(iframeRef.current&&iframeRef.current.contentWindow){iframeRef.current.contentWindow.postMessage({type:\"REFRESH_SESSION\"},ALLOWED_IFRAME_ORIGIN);}return;}if(!isIframeMessage)return;if(messageType===\"CLOSE_OVERLAY\"){setIsVisible(false);return;}if(messageType===\"SUPABASE_SESSION\"){const{access_token,refresh_token}=event.data;if(typeof access_token!==\"string\"||typeof refresh_token!==\"string\"){return;}persistSessionTokens(access_token,refresh_token);broadcastAuthState(true);}if(messageType===\"SUPABASE_SIGN_OUT\"){clearStoredSession();broadcastAuthState(false);setIsVisible(false);setLauncherVisible(false);}if(messageType===\"SHOW_TOAST\"){window.dispatchEvent(new CustomEvent(\"ENTROPY_TOAST\",{detail:event.data.payload}));}};const handleKeyDown=event=>{if(event.key===\"Escape\"){setIsVisible(false);setLauncherVisible(false);}};const handleOpen=event=>{const detail=event.detail||{};openEngine(detail.window,detail.sidebar);};window.addEventListener(\"message\",handleMessage);window.addEventListener(\"OPEN_ENTROPY_ENGINE\",handleOpen);window.addEventListener(\"keydown\",handleKeyDown);return()=>{window.removeEventListener(\"message\",handleMessage);window.removeEventListener(\"OPEN_ENTROPY_ENGINE\",handleOpen);window.removeEventListener(\"keydown\",handleKeyDown);};},[openEngine]);const handleContinueHere=React.useCallback(()=>{pendingNavigationRef.current=pendingTarget;setLauncherVisible(false);setIsVisible(true);setIframeSrc(buildEmbedUrl(pendingTarget.window,pendingTarget.sidebar));if(iframeRef.current&&iframeRef.current.contentWindow){iframeRef.current.contentWindow.postMessage({type:\"NAVIGATE\",payload:pendingTarget},ALLOWED_IFRAME_ORIGIN);}},[pendingTarget]);const handleIframeLoad=React.useCallback(()=>{if(iframeRef.current&&iframeRef.current.contentWindow){iframeRef.current.contentWindow.postMessage({type:\"NAVIGATE\",payload:pendingNavigationRef.current},ALLOWED_IFRAME_ORIGIN);}},[]);const handleOpenInNewTab=React.useCallback(async()=>{setIsLaunching(true);try{const targetUrl=buildEmbedUrl(pendingTarget.window,pendingTarget.sidebar);const session=getStoredSession();if(session?.access_token&&session?.refresh_token){const callbackUrl=new URL(\"/auth/callback\",VERCEL_APP_URL);callbackUrl.searchParams.set(\"next\",targetUrl);callbackUrl.hash=`access_token=${session.access_token}&refresh_token=${session.refresh_token}`;window.open(callbackUrl.toString(),\"_blank\",\"noopener,noreferrer\");}else{const loginUrl=new URL(\"/login\",VERCEL_APP_URL);loginUrl.searchParams.set(\"next\",targetUrl);window.open(loginUrl.toString(),\"_blank\",\"noopener,noreferrer\");}setLauncherVisible(false);}catch(error){console.error(\"[entropy-engine] Mobile launch failed:\",error);}finally{setIsLaunching(false);}},[pendingTarget]);const targetLabel=getTargetLabel(pendingTarget.window);if(!hasMounted||typeof document===\"undefined\"){return null;}return /*#__PURE__*/createPortal(/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"div\",{style:{position:\"fixed\",top:0,left:0,right:0,bottom:0,zIndex:2147483647,isolation:\"isolate\",opacity:isVisible?1:0,pointerEvents:isVisible?\"auto\":\"none\",transition:\"opacity 0.3s ease\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0},onClick:()=>setIsVisible(false)}),iframeSrc?/*#__PURE__*/_jsx(\"iframe\",{ref:iframeRef,src:iframeSrc,title:\"Entropy Game\",onLoad:handleIframeLoad,style:{width:\"100%\",height:\"100%\",border:\"none\",position:\"fixed\",inset:0,zIndex:10},allow:\"autoplay; payment; clipboard-read; clipboard-write\"}):null]}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"fixed\",inset:0,zIndex:2147483646,display:launcherVisible?\"flex\":\"none\",alignItems:\"center\",justifyContent:\"center\",padding:18,background:\"rgba(4, 10, 7, 0.82)\",backdropFilter:\"blur(10px)\",WebkitBackdropFilter:\"blur(10px)\"},onClick:()=>setLauncherVisible(false),children:/*#__PURE__*/_jsxs(\"div\",{style:launcherCardStyle,onClick:event=>event.stopPropagation(),children:[/*#__PURE__*/_jsx(\"div\",{style:launcherEyebrowStyle,children:\"MOBILE ACCESS\"}),/*#__PURE__*/_jsx(\"h2\",{style:launcherTitleStyle,children:launcherTitle}),/*#__PURE__*/_jsx(\"p\",{style:launcherBodyStyle,children:launcherMessage.replace(\"{target}\",targetLabel)}),/*#__PURE__*/_jsxs(\"div\",{style:launcherSignalStyle,children:[\"Requested surface: \",targetLabel.toUpperCase()]}),/*#__PURE__*/_jsxs(\"div\",{style:launcherButtonsStyle,children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:handleOpenInNewTab,disabled:isLaunching,style:launcherPrimaryButtonStyle,children:isLaunching?\"Launching...\":openInNewTabLabel}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:handleContinueHere,style:launcherSecondaryButtonStyle,children:continueHereLabel}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:()=>setLauncherVisible(false),style:launcherGhostButtonStyle,children:cancelLabel})]})]})})]}),document.body);}const launcherCardStyle={width:\"min(100%, 420px)\",display:\"grid\",gap:14,padding:\"20px 18px 18px\",border:\"1px solid rgba(0,255,153,0.28)\",background:\"linear-gradient(180deg, rgba(8, 17, 13, 0.98) 0%, rgba(11, 22, 17, 0.98) 100%)\",boxShadow:\"0 22px 64px rgba(0,0,0,0.42), inset 0 0 34px rgba(0,255,153,0.04)\",color:\"#d0d8d4\",fontFamily:'\"Share Tech Mono\", \"Courier New\", monospace'};const launcherEyebrowStyle={fontSize:10,letterSpacing:\"0.18em\",textTransform:\"uppercase\",color:\"#77f5b5\"};const launcherTitleStyle={margin:0,fontSize:22,lineHeight:1.15,color:\"#ffffff\",textTransform:\"uppercase\"};const launcherBodyStyle={margin:0,fontSize:14,lineHeight:1.6,color:\"#b3c2bb\"};const launcherSignalStyle={padding:\"10px 12px\",border:\"1px solid rgba(0,255,153,0.18)\",background:\"rgba(13, 24, 18, 0.86)\",color:\"#8fb2a0\",fontSize:11,letterSpacing:\"0.12em\",textTransform:\"uppercase\"};const launcherButtonsStyle={display:\"grid\",gap:10};const launcherPrimaryButtonStyle={minHeight:48,border:\"1px solid rgba(0,255,153,0.92)\",background:\"#00FF99\",color:\"#08110d\",fontFamily:'\"Share Tech Mono\", \"Courier New\", monospace',fontSize:13,fontWeight:700,letterSpacing:\"0.08em\",textTransform:\"uppercase\",cursor:\"pointer\",padding:\"12px 16px\"};const launcherSecondaryButtonStyle={minHeight:48,border:\"1px solid rgba(0,255,153,0.22)\",background:\"rgba(13,24,18,0.92)\",color:\"#dfffea\",fontFamily:'\"Share Tech Mono\", \"Courier New\", monospace',fontSize:13,fontWeight:700,letterSpacing:\"0.08em\",textTransform:\"uppercase\",cursor:\"pointer\",padding:\"12px 16px\"};const launcherGhostButtonStyle={minHeight:44,border:\"1px solid rgba(141, 164, 151, 0.18)\",background:\"transparent\",color:\"#89a497\",fontFamily:'\"Share Tech Mono\", \"Courier New\", monospace',fontSize:12,fontWeight:700,letterSpacing:\"0.08em\",textTransform:\"uppercase\",cursor:\"pointer\",padding:\"10px 16px\"};addPropertyControls(EntropyEngine,{mobileBreakpoint:{type:ControlType.Number,title:\"Breakpoint\",defaultValue:DEFAULT_MOBILE_BREAKPOINT,min:320,max:1280,step:10},launcherTitle:{type:ControlType.String,title:\"Launcher Title\",defaultValue:\"Open Entropy on a larger canvas\"},launcherMessage:{type:ControlType.String,title:\"Launcher Body\",defaultValue:\"{target} is available here, but the full Entropy shell is more usable in a dedicated tab on mobile.\"},openInNewTabLabel:{type:ControlType.String,title:\"Primary CTA\",defaultValue:\"Open in New Tab\"},continueHereLabel:{type:ControlType.String,title:\"Secondary CTA\",defaultValue:\"Continue Here\"},cancelLabel:{type:ControlType.String,title:\"Cancel CTA\",defaultValue:\"Not Now\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"EntropyEngine\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./EntropyEngine.map"],"mappings":"oOAA0kB,SAAS,EAAgB,EAAM,CAAC,OAAO,GAAO,OAAO,GAAQ,UAAU,OAAO,EAAM,cAAe,UAAU,OAAO,EAAM,eAAgB,QAAS,CAAC,SAAS,EAAgB,EAAY,CAAC,GAAG,CAAC,IAAM,EAAQ,EAAY,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,EAAQ,OAAO,KAAK,IAAM,EAAW,EAAQ,QAAQ,KAAK,GAAG,CAAC,CAAC,QAAQ,KAAK,GAAG,EAAQ,EAAQ,KAAK,MAAM,EAAO,KAAK,CAAU,CAAC,EAAE,OAAO,OAAO,EAAQ,KAAM,SAAS,EAAQ,IAAI,IAAK,MAAa,CAAC,OAAO,IAAK,CAAC,CAAC,SAAS,GAAkB,CAAC,GAAU,IAAS,OAAY,OAAO,KAAK,GAAG,CAAC,IAAM,EAAI,EAAO,aAAa,QAAQ,CAAW,EAAE,GAAG,CAAC,EAAI,OAAO,KAAK,IAAM,EAAO,KAAK,MAAM,CAAG,EAAuE,EAAQ,CAA3D,EAAO,EAAO,eAAe,EAAO,OAAgC,CAAC,CAAC,KAAK,CAAe,EAAoH,MAA/G,CAAC,GAAuB,OAAO,EAAQ,YAAa,UAAU,EAAQ,WAAW,KAAK,KAAK,IAAI,EAAU,KAAa,CAAQ,MAAa,CAAC,OAAO,IAAK,CAAC,CAAC,SAAS,EAAqB,EAAY,EAAa,EAAO,CAAC,GAAU,IAAS,OAAY,OAAO,IAAM,EAAU,OAAO,GAAQ,IAAI,YAAY,GAAG,MAAM,EAAQ,EAAkB,OAAO,GAAQ,IAAI,YAAY,GAAG,EAAE,EAAQ,EAAU,OAAO,SAAS,CAAiB,GAAG,EAAkB,EAAE,EAAkB,EAAgB,CAAW,GAAG,KAAK,MAAM,KAAK,IAAI,EAAE,GAAG,GAAG,OAAO,SAAS,CAAS,GAAG,EAAU,EAAE,EAAU,MAAY,EAAQ,CAAC,aAAa,EAAY,cAAc,EAAa,WAAW,GAAQ,IAAI,YAAY,GAAG,SAAS,WAAW,OAAO,SAAS,CAAS,GAAG,EAAU,EAAE,EAAU,KAAK,WAAW,CAAS,EAAE,EAAO,aAAa,QAAQ,EAAY,KAAK,UAAU,CAAO,CAAC,CAAE,CAAC,SAAS,GAAoB,CAAW,IAAS,SAAmB,EAAO,aAAa,WAAW,CAAW,EAAE,EAAO,aAAa,WAAW,GAAG,EAAY,eAAe,EAAE,EAAO,aAAa,WAAW,GAAG,EAAY,MAAM,EAAE,EAAO,aAAa,WAAW,qBAAqB,EAAE,CAAC,SAAS,EAAmB,EAAS,CAAC,EAAO,cAAc,IAAI,YAAY,qBAAqB,CAAC,OAAO,CAAC,UAAQ,CAAC,CAAC,CAAC,CAAE,CAAC,SAAS,GAAqB,CAAC,IAAM,EAAW,IAAI,IAAI,EAAO,SAAS,IAAI,EAAsJ,MAApJ,CAAC,eAAe,gBAAgB,aAAa,aAAa,aAAa,MAAM,CAAC,CAAC,QAAQ,GAAK,EAAW,aAAa,OAAO,CAAG,CAAC,EAAE,EAAW,KAAK,GAAU,CAAW,CAAC,eAAe,GAAyB,CAAC,GAAU,IAAS,OAAY,OAAO,IAAM,EAAa,IAAI,gBAAgB,EAAO,SAAS,MAAM,EAAQ,EAAW,IAAI,gBAAgB,EAAO,SAAS,KAAK,QAAQ,KAAK,EAAE,CAAC,EAAQ,EAAY,IAAI,gBAAgB,CAAY,EAAE,EAAW,SAAS,EAAM,IAAM,CAAK,EAAY,IAAI,CAAG,GAAE,EAAY,IAAI,EAAI,CAAK,CAAE,CAAC,EAAE,IAAM,EAAY,EAAa,IAAI,cAAc,GAAG,EAAW,IAAI,cAAc,EAAQ,EAAa,EAAa,IAAI,eAAe,GAAG,EAAW,IAAI,eAAe,EAAE,GAAG,CAAC,GAAa,CAAC,EAAa,OAAO,EAAqB,EAAY,EAAa,CAAW,EAAE,EAAmB,EAAI,EAAE,IAAM,EAAW,EAAoB,EAAE,EAAO,QAAQ,aAAa,CAAC,EAAE,SAAS,MAAM,EAAW,SAAS,CAAC,CAAE,CAAC,SAAS,EAAqB,EAAK,CAAkL,OAA9K,OAAO,GAAO,SAAgB,EAAQ,GAAM,OAAO,GAAO,UAAU,OAAO,EAAK,MAAO,SAAa,EAAK,QAAQ,EAAK,SAAS,iBAAwB,KAAY,EAAK,KAAa,IAAK,CAAC,SAAS,EAAe,EAAa,CAA4C,OAAvC,EAA8C,EAAc,IAAe,gBAAvD,EAAc,IAAyD,CAAC,SAAS,EAAc,EAAa,EAAQ,CAAC,IAAM,EAAO,IAAI,IAAI,eAAe,CAAc,EAAiJ,OAA5I,GAAc,IAAe,QAAQ,EAAO,aAAa,IAAI,SAAS,CAAY,EAAM,GAAS,EAAO,aAAa,IAAI,UAAU,MAAM,EAAU,EAAO,SAAS,CAAE,CAAC,SAAwB,EAAc,EAAM,CAAC,GAAK,CAAC,mBAAiB,gBAAc,kBAAgB,oBAAkB,oBAAkB,eAAa,EAAW,CAAC,EAAU,GAAcA,EAAe,EAAK,EAAO,CAAC,EAAgB,GAAoBA,EAAe,EAAK,EAAO,CAAC,EAAU,GAAcA,EAAe,IAAI,EAAO,CAAC,EAAS,GAAaA,EAAe,EAAK,EAAO,CAAC,EAAW,GAAeA,EAAe,EAAK,EAAO,CAAC,EAAc,GAAkBA,EAAe,CAAC,OAAO,OAAO,QAAQ,EAAK,CAAC,EAAO,CAAC,EAAY,GAAgBA,EAAe,EAAK,EAAQ,EAAUC,EAAa,IAAI,EAAQ,EAAqBA,EAAa,CAAC,OAAO,OAAO,QAAQ,EAAK,CAAC,EAAE,MAAoB,CAAC,EAAc,EAAI,CAAE,EAAE,CAAC,CAAC,EAAE,MAAoB,CAAC,EAA6B,CAAE,EAAE,CAAC,CAAC,EAAE,MAAoB,CAAC,IAAM,MAAiB,CAAW,IAAS,QAAmB,EAAY,EAAO,WAAW,CAAgB,CAAE,EAAgE,OAA9D,EAAa,EAAE,EAAO,iBAAiB,SAAS,CAAY,MAAY,EAAO,oBAAoB,SAAS,CAAY,CAAE,EAAE,CAAC,CAAgB,CAAC,EAAE,IAAM,EAAWC,GAAmB,EAAa,IAAU,CAAC,IAAM,EAAW,CAAC,OAAO,GAAc,OAAO,QAAQ,EAAQ,CAAQ,EAA0C,GAAxC,EAAqB,QAAQ,EAAc,EAAS,CAAC,EAAiB,CAAU,EAAE,EAAmB,EAAI,EAAE,MAAO,CAAC,EAAiB,CAAU,EAAE,EAAmB,EAAK,EAAE,EAAa,EAAI,EAAE,EAAa,EAAc,EAAW,OAAO,EAAW,OAAO,CAAC,EAAK,EAAU,SAAS,EAAU,QAAQ,eAAe,EAAU,QAAQ,cAAc,YAAY,CAAC,KAAK,WAAW,QAAQ,CAAU,EAAE,CAAqB,CAAG,EAAE,CAAC,CAAQ,CAAC,EAAE,MAAoB,CAAC,IAAM,EAAc,EAAwD,MAAjD,GAAc,wBAAwB,MAAqB,CAAI,EAAc,0BAA0B,GAAY,OAAO,EAAc,uBAAyB,CAAE,EAAE,CAAC,CAAU,CAAC,EAAE,MAAoB,CAAC,IAAM,EAAc,KAAM,IAAO,CAAC,IAAM,EAAY,EAAqB,EAAM,IAAI,EAAQ,EAAgB,EAAM,SAAS,EAA4B,EAAkB,EAAM,SAAS,EAAO,SAAS,OAAO,GAAG,IAAc,sBAAsB,CAAC,GAAG,CAAC,GAAiB,CAAC,EAAkB,OAAO,IAAM,EAAO,EAAM,MAAM,OAAO,EAAM,MAAO,SAAS,EAAM,KAAK,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAW,EAAO,OAAO,EAAO,OAAO,EAAE,MAAO,CAAC,GAAG,IAAc,kBAAkB,CAAC,GAAG,CAAC,GAAiB,CAAC,EAAkB,OAAU,EAAU,SAAS,EAAU,QAAQ,eAAe,EAAU,QAAQ,cAAc,YAAY,CAAC,KAAK,iBAAiB,EAAE,CAAqB,EAAG,MAAO,CAAK,KAAuB,IAAG,IAAc,gBAAgB,CAAC,EAAa,EAAK,EAAE,MAAO,CAAC,GAAG,IAAc,mBAAmB,CAAC,GAAK,CAAC,eAAa,iBAAe,EAAM,KAAK,GAAG,OAAO,GAAe,UAAU,OAAO,GAAgB,SAAU,OAAQ,EAAqB,EAAa,CAAa,EAAE,EAAmB,EAAI,CAAE,CAAI,IAAc,sBAAqB,EAAmB,EAAE,EAAmB,EAAK,EAAE,EAAa,EAAK,EAAE,EAAmB,EAAK,GAAM,IAAc,cAAc,EAAO,cAAc,IAAI,YAAY,gBAAgB,CAAC,OAAO,EAAM,KAAK,OAAO,CAAC,CAAC,CAA9d,CAAie,EAAQ,EAAc,GAAO,CAAI,EAAM,MAAM,WAAU,EAAa,EAAK,EAAE,EAAmB,EAAK,EAAG,EAAQ,EAAW,GAAO,CAAC,IAAM,EAAO,EAAM,QAAQ,CAAC,EAAE,EAAW,EAAO,OAAO,EAAO,OAAO,CAAE,EAA8J,OAA5J,EAAO,iBAAiB,UAAU,CAAa,EAAE,EAAO,iBAAiB,sBAAsB,CAAU,EAAE,EAAO,iBAAiB,UAAU,CAAa,MAAY,CAAC,EAAO,oBAAoB,UAAU,CAAa,EAAE,EAAO,oBAAoB,sBAAsB,CAAU,EAAE,EAAO,oBAAoB,UAAU,CAAa,CAAE,CAAE,EAAE,CAAC,CAAU,CAAC,EAAE,IAAM,EAAmBA,MAAsB,CAAC,EAAqB,QAAQ,EAAc,EAAmB,EAAK,EAAE,EAAa,EAAI,EAAE,EAAa,EAAc,EAAc,OAAO,EAAc,OAAO,CAAC,EAAK,EAAU,SAAS,EAAU,QAAQ,eAAe,EAAU,QAAQ,cAAc,YAAY,CAAC,KAAK,WAAW,QAAQ,CAAa,EAAE,CAAqB,CAAG,EAAE,CAAC,CAAa,CAAC,EAAQ,GAAiBA,MAAsB,CAAI,EAAU,SAAS,EAAU,QAAQ,eAAe,EAAU,QAAQ,cAAc,YAAY,CAAC,KAAK,WAAW,QAAQ,EAAqB,OAAO,EAAE,CAAqB,CAAG,EAAE,CAAC,CAAC,EAAQ,GAAmBA,EAAkB,SAAS,CAAC,EAAe,EAAI,EAAE,GAAG,CAAC,IAAM,EAAU,EAAc,EAAc,OAAO,EAAc,OAAO,EAAQ,EAAQ,EAAiB,EAAE,GAAG,GAAS,cAAc,GAAS,cAAc,CAAC,IAAM,EAAY,IAAI,IAAI,iBAAiB,CAAc,EAAE,EAAY,aAAa,IAAI,OAAO,CAAS,EAAE,EAAY,KAAK,gBAAgB,EAAQ,aAAa,iBAAiB,EAAQ,gBAAgB,EAAO,KAAK,EAAY,SAAS,EAAE,SAAS,qBAAqB,CAAE,KAAK,CAAC,IAAM,EAAS,IAAI,IAAI,SAAS,CAAc,EAAE,EAAS,aAAa,IAAI,OAAO,CAAS,EAAE,EAAO,KAAK,EAAS,SAAS,EAAE,SAAS,qBAAqB,CAAE,CAAC,EAAmB,EAAK,CAAE,OAAO,EAAM,CAAC,QAAQ,MAAM,yCAAyC,CAAK,CAAE,QAAQ,CAAC,EAAe,EAAK,CAAE,CAAC,EAAE,CAAC,CAAa,CAAC,EAAQ,EAAY,EAAe,EAAc,MAAM,EAA8D,MAAzD,CAAC,GAAY,OAAO,SAAW,IAAoB,KAA0B,EAA0B,EAAMC,EAAU,CAAC,SAAS,CAAc,EAAM,MAAM,CAAC,MAAM,CAAC,SAAS,QAAQ,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,WAAW,UAAU,UAAU,QAAQ,KAAc,cAAc,EAAU,OAAO,OAAO,WAAW,mBAAmB,EAAE,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,CAAC,EAAE,YAAY,EAAa,EAAK,CAAC,CAAC,EAAE,EAAuB,EAAK,SAAS,CAAC,IAAI,EAAU,IAAI,EAAU,MAAM,eAAe,OAAO,GAAiB,MAAM,CAAC,MAAM,OAAO,OAAO,OAAO,OAAO,OAAO,SAAS,QAAQ,MAAM,EAAE,OAAO,EAAE,EAAE,MAAM,oDAAoD,CAAC,EAAE,IAAI,CAAC,CAAC,EAAe,EAAK,MAAM,CAAC,MAAM,CAAC,SAAS,QAAQ,MAAM,EAAE,OAAO,WAAW,QAAQ,EAAgB,OAAO,OAAO,WAAW,SAAS,eAAe,SAAS,QAAQ,GAAG,WAAW,uBAAuB,eAAe,aAAa,qBAAqB,YAAY,EAAE,YAAY,EAAmB,EAAK,EAAE,SAAsB,EAAM,MAAM,CAAC,MAAM,EAAkB,QAAQ,GAAO,EAAM,gBAAgB,EAAE,SAAS,CAAc,EAAK,MAAM,CAAC,MAAM,EAAqB,SAAS,eAAe,CAAC,EAAe,EAAK,KAAK,CAAC,MAAM,EAAmB,SAAS,CAAa,CAAC,EAAe,EAAK,IAAI,CAAC,MAAM,EAAkB,SAAS,EAAgB,QAAQ,WAAW,CAAW,CAAC,CAAC,EAAe,EAAM,MAAM,CAAC,MAAM,EAAoB,SAAS,CAAC,sBAAsB,EAAY,YAAY,CAAC,CAAC,CAAC,EAAe,EAAM,MAAM,CAAC,MAAM,EAAqB,SAAS,CAAc,EAAK,SAAS,CAAC,KAAK,SAAS,QAAQ,GAAmB,SAAS,EAAY,MAAM,EAA2B,SAAS,EAAY,eAAe,CAAiB,CAAC,EAAe,EAAK,SAAS,CAAC,KAAK,SAAS,QAAQ,EAAmB,MAAM,EAA6B,SAAS,CAAiB,CAAC,EAAe,EAAK,SAAS,CAAC,KAAK,SAAS,YAAY,EAAmB,EAAK,EAAE,MAAM,EAAyB,SAAS,CAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,CAAE,iDAAxhW,IAA4B,IAAoD,IAAoC,EAAO,EAAe,yCAA+C,EAAsB,IAAI,IAAI,CAAc,CAAC,CAAC,OAAa,EAA0B,IAAU,EAAY,qBAA2B,EAAc,CAAC,UAAU,YAAY,KAAK,cAAc,gBAAgB,gBAAgB,OAAO,cAAc,QAAQ,gBAAgB,KAAK,WAAW,QAAQ,UAAU,KAAK,eAAe,EAAqiV,EAAkB,CAAC,MAAM,mBAAmB,QAAQ,OAAO,IAAI,GAAG,QAAQ,iBAAiB,OAAO,iCAAiC,WAAW,iFAAiF,UAAU,oEAAoE,MAAM,UAAU,WAAW,6CAA6C,EAAQ,EAAqB,CAAC,SAAS,GAAG,cAAc,SAAS,cAAc,YAAY,MAAM,SAAS,EAAQ,EAAmB,CAAC,OAAO,EAAE,SAAS,GAAG,WAAW,KAAK,MAAM,UAAU,cAAc,WAAW,EAAQ,EAAkB,CAAC,OAAO,EAAE,SAAS,GAAG,WAAW,IAAI,MAAM,SAAS,EAAQ,EAAoB,CAAC,QAAQ,YAAY,OAAO,iCAAiC,WAAW,yBAAyB,MAAM,UAAU,SAAS,GAAG,cAAc,SAAS,cAAc,WAAW,EAAQ,EAAqB,CAAC,QAAQ,OAAO,IAAI,EAAE,EAAQ,EAA2B,CAAC,UAAU,GAAG,OAAO,iCAAiC,WAAW,UAAU,MAAM,UAAU,WAAW,8CAA8C,SAAS,GAAG,WAAW,IAAI,cAAc,SAAS,cAAc,YAAY,OAAO,UAAU,QAAQ,WAAW,EAAQ,EAA6B,CAAC,UAAU,GAAG,OAAO,iCAAiC,WAAW,sBAAsB,MAAM,UAAU,WAAW,8CAA8C,SAAS,GAAG,WAAW,IAAI,cAAc,SAAS,cAAc,YAAY,OAAO,UAAU,QAAQ,WAAW,EAAQ,EAAyB,CAAC,UAAU,GAAG,OAAO,sCAAsC,WAAW,cAAc,MAAM,UAAU,WAAW,8CAA8C,SAAS,GAAG,WAAW,IAAI,cAAc,SAAS,cAAc,YAAY,OAAO,UAAU,QAAQ,WAAW,EAAE,EAAoB,EAAc,CAAC,iBAAiB,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,aAAa,EAA0B,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,cAAc,CAAC,KAAK,EAAY,OAAO,MAAM,iBAAiB,aAAa,iCAAiC,EAAE,gBAAgB,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,aAAa,qGAAqG,EAAE,kBAAkB,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,iBAAiB,EAAE,kBAAkB,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,aAAa,eAAe,EAAE,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,aAAa,SAAS,CAAC,CAAC"}