handler-playable-sdk 0.3.13 → 0.3.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-SXURSNAQ.js → chunk-NYX6PJFK.js} +63 -34
- package/dist/index.cjs +60 -31
- package/dist/index.js +1 -1
- package/dist/pixi/index.cjs +9 -9
- package/dist/pixi/index.js +1 -1
- package/dist/three/index.cjs +35 -35
- package/dist/three/index.js +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"use strict";var Wg=Object.create;var ur=Object.defineProperty;var Yg=Object.getOwnPropertyDescriptor;var Vg=Object.getOwnPropertyNames;var Kg=Object.getPrototypeOf,Xg=Object.prototype.hasOwnProperty;var We=(e,t)=>()=>(e&&(t=e(e=0)),t);var k=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),nn=(e,t)=>{for(var i in t)ur(e,i,{get:t[i],enumerable:!0})},Tc=(e,t,i,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Vg(t))!Xg.call(e,r)&&r!==i&&ur(e,r,{get:()=>t[r],enumerable:!(n=Yg(t,r))||n.enumerable});return e};var li=(e,t,i)=>(i=e!=null?Wg(Kg(e)):{},Tc(t||!e||!e.__esModule?ur(i,"default",{value:e,enumerable:!0}):i,e)),Zg=e=>Tc(ur({},"__esModule",{value:!0}),e);var Ye,xs=We(()=>{"use strict";Ye=class{static get(t){var i;return(i=this.store.get(t))==null?void 0:i.data}static set(t,i){this.store.set(t,{data:i})}static has(t){return this.store.has(t)}static clear(){this.store.clear()}};Ye.store=new Map});function rm(){var e,t;try{let i=typeof window!="undefined"&&(document.querySelector('script[src*="inline-assets.js"]')||((t=(e=document.querySelector("script"))==null?void 0:e.textContent)==null?void 0:t.includes("inline-assets.js"))||window.INLINE_ASSETS),n=typeof window!="undefined"&&document.querySelector('link[href*="assets/"], script[src*="assets/"]');return!!(i&&!n)}catch{return!1}}async function am(){try{if(typeof window!="undefined"){let e=await fetch("./build-settings.json");if(e.ok){let t=await e.json();return console.log("[AssetLoader] Loaded build settings:",t),t}}}catch{}return null}function sm(){try{if(typeof window!="undefined"){let e=new XMLHttpRequest;if(e.open("GET","./build-settings.json",!1),e.send(),e.status===200&&e.responseText){let t=JSON.parse(e.responseText);return console.log("[AssetLoader] Loaded build settings (sync):",t),t}}}catch{}return null}async function om(){if(console.log(`[AssetLoader] getInlineAssets() called - Effective mode: ${Y}`),Object.keys(Ve).length>0)return console.log("[AssetLoader] Returning cached inline assets:",Object.keys(Ve)),Ve;if(typeof window!="undefined"&&window.INLINE_ASSETS)return console.log("[AssetLoader] Using pre-loaded INLINE_ASSETS from window:",Object.keys(window.INLINE_ASSETS)),Ve={...window.INLINE_ASSETS},Ve;if(!(Y==="publish"&&De!==!1))return console.log("[AssetLoader] Inline assets disabled for this build mode."),Ve;if(!ws){let t=typeof window!="undefined"?new URL("inline-assets.js",window.location.href).href:"./inline-assets.js";console.log("[AssetLoader] Loading inline assets from:",t),ws=(async()=>{try{try{let a=await import(t+"?t="+Date.now());if(a.INLINE_ASSETS)return console.log("[AssetLoader] Loaded INLINE_ASSETS via ES module:",Object.keys(a.INLINE_ASSETS)),a.INLINE_ASSETS}catch(a){console.warn("[AssetLoader] ES module import failed, trying text parse:",a)}let i=await fetch(t);if(!i.ok)throw new Error(`HTTP ${i.status}: ${i.statusText}`);let n=await i.text();console.log("[AssetLoader] Received JS code, length:",n.length);let r=n.match(/export\s+const\s+INLINE_ASSETS\s*=\s*({[\s\S]*?});?\s*$/m);if(r)try{let a=r[1];console.log("[AssetLoader] Found INLINE_ASSETS export, parsing...");let s=new Function("return "+a)();return console.log("[AssetLoader] Parsed inline assets:",Object.keys(s)),s}catch(a){return console.warn("[AssetLoader] Failed to parse inline assets:",a),{}}else return console.warn("[AssetLoader] INLINE_ASSETS export not found in response"),console.log("[AssetLoader] JS code preview:",n.substring(0,500)),{}}catch(i){return console.warn("[AssetLoader] Failed to load inline assets:",i),{}}})()}return Ve=await ws,console.log("[AssetLoader] Final inline assets cache:",Object.keys(Ve)),Ve}function _s(e){return e===null||typeof e!="object"||(Object.freeze(e),Object.values(e).forEach(t=>_s(t))),e}function lm(e=64,t=64,i=16711680){let n=document.createElement("canvas");n.width=e,n.height=t;let r=n.getContext("2d");return r.fillStyle=`#${i.toString(16).padStart(6,"0")}`,r.fillRect(0,0,e,t),r.strokeStyle="#000",r.strokeRect(0,0,e,t),r.fillStyle="#fff",r.font="10px sans-serif",r.textAlign="center",r.fillText("MISSING",e/2,t/2),Ke.Texture.from(n)}function Es(e,t){ad.set(e,t)}var Ke,nd,rd,Dt,Y,De,ht,Ve,ws,ad,zt,gr=We(()=>{"use strict";Ke=require("pixi.js");xs();nd=typeof __BUILD_MODE__!="undefined"?__BUILD_MODE__:"undefined",rd=rm(),Dt=typeof window!="undefined"?window.__BUILD_SETTINGS__:null,Y=rd?"publish":nd,De=Dt==null?void 0:Dt.assetsInlined;Dt!=null&&Dt.buildMode&&(Y=Dt.buildMode,console.log(`[AssetLoader] Build mode overridden by inline settings: ${Y}`));ht=sm();ht!=null&&ht.buildMode&&(Y=ht.buildMode,console.log(`[AssetLoader] Build mode overridden by sync settings: ${Y}`));(ht==null?void 0:ht.assetsInlined)!==void 0&&(De=ht.assetsInlined);am().then(e=>{e!=null&&e.buildMode&&e.buildMode!==Y&&(Y=e.buildMode,console.log(`[AssetLoader] Build mode overridden by settings: ${Y}`)),(e==null?void 0:e.assetsInlined)!==void 0&&(De=e.assetsInlined)}).catch(()=>{});console.log(`[AssetLoader] MODULE LOADED - Compile: ${nd}, Runtime: ${rd?"publish":"dev"}, Effective: ${Y}`);Ve={},ws=null;ad=new Map;zt=class{static async load(t,i,n,r){let a=`${t}:${i.path}`,s=Ye.get(a);if(s!==void 0)return s;console.log(`[AssetLoader] Loading asset: ${t}, type: ${i.type}, Effective mode: ${Y}`),console.log(`[AssetLoader] Window defined: ${typeof window!="undefined"}, INLINE_ASSETS exists: ${!!(typeof window!="undefined"&&window.INLINE_ASSETS)}, keys: ${typeof window!="undefined"&&window.INLINE_ASSETS?Object.keys(window.INLINE_ASSETS).length:"N/A"}`);let o=await om(),l=o[t];if(!l&&r&&(l=o[r],l&&console.log(`[AssetLoader] Found inline data for ${t} using configId: ${r}`)),!l&&i.path){let u=i.path.split("/");if(u.length>=2){let p=u[u.length-1].split(".")[0];o[p]&&(l=o[p],console.log(`[AssetLoader] Found inline data for ${t} using assetName: ${p}`))}}if(console.log("[AssetLoader] Inline data for",t,":",l?"FOUND":"NOT FOUND"),Y==="publish"&&De!==!1&&(console.log("[AssetLoader] \u26A0\uFE0F PUBLISH MODE DETECTED - inline assets are MANDATORY"),!l))throw new Error(`[AssetLoader] PUBLISH MODE: Inline asset required but NOT FOUND for object: ${t}, path: ${i.path}`);let d=ad.get(i.type);if(d)try{let u=await d(i.path,l,t,n);return Ye.set(a,u),u}catch(u){return this.handleFailure(t,i.type,u)}try{let u;switch(i.type){case"image":u=await this.loadImage(i.path,l);break;case"json":u=await this.loadJSON(i.path,l),u=_s(u);break;default:throw new Error(`Unknown asset type: ${i.type}`)}return Ye.set(a,u),u}catch(u){return this.handleFailure(t,i.type,u)}}static async loadImage(t,i){let n=Y==="publish",r=n&&De!==!1;if(console.log(`[AssetLoader] loadImage - Effective mode: ${Y}, isPublishMode: ${n}, inlineData: ${i?"EXISTS":"MISSING"}`),r){if(console.log("[AssetLoader] PUBLISH MODE ACTIVATED - inline assets are MANDATORY"),!i)throw new Error(`[AssetLoader] Publish mode: inline asset required but not found for object. Path: ${t}`);if(typeof i!="string"||!i.startsWith("data:"))throw new Error(`[AssetLoader] Publish mode: inline asset must be data URI string, got: ${typeof i}`);try{return await Ke.Assets.load(i)}catch(a){throw console.error("[AssetLoader] Failed to load texture from data URI:",a),a}}if(i&&typeof i=="string"&&i.startsWith("data:"))try{return await Ke.Assets.load(i)}catch(a){return console.error("[AssetLoader] Failed to load texture from data URI, falling back to path:",a),await Ke.Assets.load(t)}return await Ke.Assets.load(t)}static async loadJSON(t,i){let n=Y==="publish",r=n&&De!==!1;if(console.log(`[AssetLoader] loadJSON - Effective mode: ${Y}, isPublishMode: ${n}, inlineData: ${i?"EXISTS":"MISSING"}`),r){if(console.log("[AssetLoader] PUBLISH MODE ACTIVATED - inline assets are MANDATORY"),!i)throw new Error(`[AssetLoader] Publish mode: inline asset required but not found for path: ${t}`);if(typeof i=="object"&&i!==null)return i;if(typeof i=="string"&&i.startsWith("data:")){let s=atob(i.split(",")[1]);return JSON.parse(s)}return JSON.parse(i)}if(i){if(typeof i=="object"&&i!==null)return i;if(typeof i=="string"&&i.startsWith("data:")){let s=atob(i.split(",")[1]);return JSON.parse(s)}return JSON.parse(i)}let a=await fetch(t);if(!a.ok)throw new Error(`JSON fetch failed: ${t}`);return a.json()}static handleFailure(t,i,n){if(Y==="dev"){let a=i==="image"?lm():_s({__placeholder:!0,type:i});return Ye.set(t+":"+((n==null?void 0:n.path)||"missing"),a),a}throw n}};Es("image",async(e,t)=>{let i=Y==="publish",n=i&&De!==!1,r=Y==="brand",a=i&&De===!1;if(console.log(`[AssetLoader] registerType('image') - Effective mode: ${Y}, isPublishMode: ${i}, isBrandMode: ${r}, inlineData: ${t?"EXISTS":"MISSING"}`),n){if(console.log("[AssetLoader] PUBLISH MODE ACTIVATED - inline assets are MANDATORY"),!t)throw new Error(`[AssetLoader] Publish mode: inline asset required but not found for path: ${e}`);if(typeof t!="string"||!t.startsWith("data:"))throw new Error(`[AssetLoader] Publish mode: inline asset must be data URI string, got: ${typeof t}`);return Ke.Assets.load(t)}let s=e;return(r||a)&&e&&!e.startsWith("assets/")&&(typeof window!="undefined"&&!document.querySelector('link[href*="assets/"], script[src*="assets/"]')&&!document.querySelector('link[href*="configs/"], script[src*="configs/"]')?(s=e,console.log(`[AssetLoader] BRAND MODE: flattened build, using path "${e}" as-is`)):(s=`assets/${e}`,console.log(`[AssetLoader] BRAND MODE: transformed path "${e}" -> "${s}"`))),Ke.Assets.load(t||s)});Es("json",async(e,t)=>{let i=Y==="publish",n=i&&De!==!1,r=Y==="brand",a=i&&De===!1;if(console.log(`[AssetLoader] registerType('json') - Effective mode: ${Y}, isPublishMode: ${i}, isBrandMode: ${r}, inlineData: ${t?"EXISTS":"MISSING"}`),n){if(console.log("[AssetLoader] PUBLISH MODE ACTIVATED - inline assets are MANDATORY"),!t)throw new Error(`[AssetLoader] Publish mode: inline asset required but not found for path: ${e}`);return typeof t=="object"&&t!==null?t:typeof t=="string"&&t.startsWith("data:")?JSON.parse(atob(t.split(",")[1])):JSON.parse(t)}let s=e;if((r||a)&&e&&!e.startsWith("assets/")&&(typeof window!="undefined"&&!document.querySelector('link[href*="assets/"], script[src*="assets/"]')&&!document.querySelector('link[href*="configs/"], script[src*="configs/"]')?(s=e,console.log(`[AssetLoader] BRAND MODE: flattened build, using path "${e}" as-is`)):(s=`assets/${e}`,console.log(`[AssetLoader] BRAND MODE: transformed path "${e}" -> "${s}"`))),t)return typeof t=="object"&&t!==null?t:typeof t=="string"&&t.startsWith("data:")?JSON.parse(atob(t.split(",")[1])):JSON.parse(t);let o=await fetch(s);if(!o.ok)throw new Error(`JSON fetch failed: ${e}`);return o.json()})});var od={};nn(od,{AssetTextures:()=>ze,initAssetTextures:()=>Cs});function Cs(e,t){sd.init(e,t),typeof window!="undefined"&&(window.__AssetTextures=ze)}var As,sd,ze,pi=We(()=>{"use strict";gr();As=class{constructor(){this.textures=new Map;this.readyPromise=null;this.priorityReadyPromise=null;this.priorityReadyResolve=null;this.config=null;this.app=null;this.attempted=new Set;this.waiters=new Set}init(t,i){if(this.config===t&&this.app===i&&this.priorityReadyPromise){console.log("[AssetTextures] init called with same config/app; keeping existing state");return}this.textures.clear(),this.readyPromise=null,this.priorityReadyPromise=null,this.priorityReadyResolve=null,this.attempted.clear(),this.waiters.clear(),this.priorityReadyPromise=new Promise(n=>{this.priorityReadyResolve=n}),this.config=t,this.app=i,console.log("[AssetTextures] Initialized with config, cleared previous textures")}async ready(){if(this.readyPromise){await this.readyPromise;return}if(!this.config)throw new Error("[AssetTextures] Must call init() before ready() - config is null");if(!this.app)throw new Error("[AssetTextures] Must call init() before ready() - app is null");let t=this.config,i=this.app;return this.readyPromise=(async()=>{var s;console.log("[AssetTextures] Loading all assets...");let n=new Set(["background_loading_1"]),r=[],a=[];for(let[o,l]of t.objects.entries()){let c=(s=l.render)==null?void 0:s.asset;if(!c)continue;let d=async()=>{var u;try{let p=(u=l.identity)==null?void 0:u.id;console.log(`[AssetTextures] Loading ${c.type}: ${o} (${p})`);let f=await zt.load(o,c,i,p);this.textures.set(o,f),console.log(`[AssetTextures] \u2713 Loaded: ${o}`)}catch(p){console.error(`[AssetTextures] \u2717 Failed to load: ${o}`,p)}finally{this.attempted.add(o);try{for(let p of Array.from(this.waiters))p()}catch{}}};n.has(o)?r.push(d()):a.push(d())}r.length>0&&(console.log("[AssetTextures] Phase 1: Loading priority assets (loading screen)..."),await Promise.all(r),console.log("[AssetTextures] Phase 1: Priority assets ready")),this.priorityReadyResolve&&this.priorityReadyResolve(),console.log("[AssetTextures] Phase 2: Loading remaining assets..."),await Promise.all(a),console.log("[AssetTextures] All textures loaded:",Array.from(this.textures.keys()))})(),this.readyPromise}async priorityReady(){return this.priorityReadyPromise?this.priorityReadyPromise:Promise.resolve()}async waitFor(t,i={}){if(!this.config)throw new Error("[AssetTextures] Must call init() before waitFor() - config is null");if(!this.app)throw new Error("[AssetTextures] Must call init() before waitFor() - app is null");let r=Array.from(new Set((t||[]).filter(o=>typeof o=="string"&&o))).filter(o=>{var l,c,d,u;try{let p=(d=(c=(l=this.config)==null?void 0:l.objects)==null?void 0:c.get)==null?void 0:d.call(c,o);return!!((u=p==null?void 0:p.render)!=null&&u.asset)}catch{return!1}});if(r.length===0)return;this.ready().catch(()=>{});let a=()=>r.every(o=>this.textures.has(o)||this.attempted.has(o));if(a())return;let s=typeof i.timeoutMs=="number"?i.timeoutMs:15e3;await new Promise(o=>{let l=!1,c=()=>{l||a()&&(l=!0,this.waiters.delete(c),o())};this.waiters.add(c),c(),s>0&&setTimeout(()=>{l||(l=!0,this.waiters.delete(c),console.warn("[AssetTextures] waitFor timed out; continuing",{ids:r}),o())},s)})}get(t){return this.textures.get(t)}set(t,i){this.textures.set(t,i),console.log(`[AssetTextures] Updated texture: ${t}`)}clear(){this.textures.clear(),this.readyPromise=null,console.log("[AssetTextures] Cleared all textures")}getAllIds(){return Array.from(this.textures.keys())}},sd=new As,ze=new Proxy(sd,{get(e,t){return t in e&&typeof e[t]=="function"?e[t].bind(e):e.get(t)},set(e,t,i){return e.set(t,i),!0}})});var Or={};nn(Or,{applyConfigOverride:()=>mt,applyConfigOverrides:()=>bt,applyConfigsToDisk:()=>kr,clearConfigOverrides:()=>un,clearConfigOverridesForObject:()=>vd,configOverrideManager:()=>xd,deepClone:()=>ne,exportConfigsAsJSON:()=>Is,getConfigOverrides:()=>de,getConfigStateSummary:()=>Tr,getOverrideMode:()=>dn,removeConfigOverride:()=>Cr,resetToApplied:()=>pn,resetToOriginal:()=>Lr,setOverrideMode:()=>Os});function Sr(){return typeof window=="undefined"?null:window.__editableConfig||null}function hd(){return typeof window=="undefined"?null:window.__editableConfigBaseline||null}function pd(e,t){var i,n;if(!e)return null;try{if(e instanceof Map)return(i=e.get(t))!=null?i:null;if(typeof e=="object")return(n=e[t])!=null?n:null}catch{}return null}function Rm(e,t,i){if(e){if(e instanceof Map){e.set(t,i);return}typeof e=="object"&&(e[t]=i)}}function gd(e,t){for(let i of t)cn(e,i.path,i.value)}function md(e){var o;if(typeof window=="undefined")return;let t=Sr();if(!t)return;let i=hd(),n=(o=i?pd(i.objects,e):null)!=null?o:pd(t.objects,e);if(!n)return;let r=ne(n),a=de().filter(l=>l.objectId===e);try{gd(r,a)}catch(l){console.error("[CONFIG] Failed to reapply overrides for object",e,l);return}Rm(t.objects,e,r);let s=window.applyEditableObjectConfig;if(typeof s=="function")try{s(e,r)}catch{}}function Pm(){var r;if(typeof window=="undefined")return;let e=Sr();if(!(e!=null&&e.engine))return;let t=hd(),i=ne(((r=t==null?void 0:t.engine)!=null?r:e.engine)||{}),n=de().filter(a=>!a.objectId&&!a.sceneId);try{gd(i,n)}catch(a){console.error("[CONFIG] Failed to reapply engine overrides",a);return}try{let a=e.engine;for(let s of Object.keys(a))s in i||delete a[s];for(let[s,o]of Object.entries(i))a[s]=o}catch{e.engine=i}}function jm(){if(typeof window=="undefined")return"unknown";let e=window;return typeof e.__HANDLER_PROJECT_ID=="string"?e.__HANDLER_PROJECT_ID:"handler-default"}function bd(){return`handler_preview_config_overrides::${jm()}`}function Dm(){if(typeof window=="undefined")return[];try{let e=window.localStorage.getItem(bd());if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}function Ar(e){if(typeof window!="undefined")try{window.localStorage.setItem(bd(),JSON.stringify(e))}catch{}}function dn(){return typeof window=="undefined"?!1:window.__enableConfigOverrides===!0}function Os(e){if(typeof window!="undefined"){window.__enableConfigOverrides=e;try{window.localStorage.setItem(yd,e?"true":"false")}catch{}}}function mt(e,t={}){var p,f;let{objectId:i,path:n,value:r}=e,{silent:a=!1,persist:s=!0,emitEvent:o=!0}=t,l=Sr();if(!l){console.warn("[CONFIG] applyConfigOverride: No editable config found in window.__editableConfig");return}let c=i?(f=(p=l.objects)==null?void 0:p.get)==null?void 0:f.call(p,i):l.engine;if(!c){console.warn("[CONFIG] applyConfigOverride: Override target not found:",{objectId:i,path:n,hasObjects:!!l.objects});return}a||console.log("[CONFIG] applyConfigOverride: Target found, applying...",{objectId:i,path:n,value:r});let d;try{d=Nm(c,n),cn(c,n,r)}catch(m){console.error("[CONFIG] applyConfigOverride failed:",{objectId:i,path:n,value:r},m);return}window.__configChanges=window.__configChanges||[];let u=window.__configChanges;if(u.push({objectId:i,path:n,oldValue:d,newValue:r,ts:Date.now()}),u.length>zm&&u.shift(),s){let m=de(),h=m.findIndex(g=>g.objectId===i&&g.sceneId===e.sceneId&&g.path===n);h>=0?m[h].value=r:m.push(e),window.__configOverrides=m,Ar(m),dn()||Os(!0)}a||console.log("[CONFIG] Applied override:",e),o&&typeof window!="undefined"&&window.dispatchEvent(new CustomEvent("config:changed",{detail:e}))}function bt(e,t={}){let i=t.emitEvent!==!1,n=[];for(let r of e)r!=null&&r.objectId&&typeof r.objectId=="string"&&n.push(r.objectId),mt(r,{...t,emitEvent:!1});if(i&&typeof window!="undefined"){let r=Array.from(new Set(n));window.dispatchEvent(new CustomEvent("config:changed",{detail:{action:"batch",objectIds:r,count:e.length}}))}}function un(){window.__configOverrides=[],window.__configChanges=[],Ar([]),console.log("[CONFIG] Cleared all overrides")}function vd(e){let t=de().filter(n=>n.objectId!==e);window.__configOverrides=t,Ar(t);let i=window.__configChanges||[];window.__configChanges=i.filter(n=>n.objectId!==e),md(e),window.dispatchEvent(new CustomEvent("config:changed",{detail:{action:"clear_object",objectId:e}}))}function Cr(e,t){let i=de().filter(r=>r.objectId!==e||r.path!==t);window.__configOverrides=i,Ar(i);let n=window.__configChanges||[];window.__configChanges=n.filter(r=>r.objectId!==e||r.path!==t),e?md(e):Pm(),window.dispatchEvent(new CustomEvent("config:changed",{detail:{action:"remove",objectId:e,path:t}}))}function de(){return typeof window=="undefined"?[]:(window.__configOverrides||(window.__configOverrides=Dm()),window.__configOverrides||[])}function cn(e,t,i){var s;let n=t.split("."),r=n.pop(),a=e;for(let o of n){if(a[o]!==void 0&&typeof a[o]!="object")throw new Error(`Invalid override path: ${t} (hit primitive at ${o})`);a[o]=(s=a[o])!=null?s:{},a=a[o]}a[r]=i}function Nm(e,t){return t.split(".").reduce((i,n)=>i?i[n]:void 0,e)}function ne(e){if(e===null||typeof e!="object")return e;if(e instanceof Date)return new Date(e.getTime());if(e instanceof Set)return new Set([...e].map(i=>ne(i)));if(ArrayBuffer.isView(e))return e.slice();if(e instanceof Array)return e.map(i=>ne(i));if(e instanceof Map){let i=new Map;return e.forEach((n,r)=>i.set(r,ne(n))),i}let t={};for(let i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=ne(e[i]));return t}function Is(){let e=window.__editableConfigBaseline;if(!e){let t=window.__editableConfig;if(!t)throw new Error("Cannot export: no config loaded");return fd(t)}return fd(e)}function fd(e){let t={objects:{},scenes:{},engine:ne(e.engine||{})},i=e.objects;if(i instanceof Map)i.forEach((a,s)=>{t.objects[s]=ne(a)});else if(i&&typeof i=="object")for(let a in i)t.objects[a]=ne(i[a]);let n=e.scenes;if(n instanceof Map)n.forEach((a,s)=>{t.scenes[s]=ne(a)});else if(n&&typeof n=="object")for(let a in n)t.scenes[a]=ne(n[a]);let r=de();for(let a of r)a.objectId?(t.objects[a.objectId]||(t.objects[a.objectId]={}),cn(t.objects[a.objectId],a.path,a.value)):a.sceneId?(t.scenes[a.sceneId]||(t.scenes[a.sceneId]={}),cn(t.scenes[a.sceneId],a.path,a.value)):cn(t.engine,a.path,a.value);return t}function Tr(){let e=de(),t=new Set;for(let i of e)i.objectId?t.add(i.objectId):t.add("__engine__");return{modifiedObjects:Array.from(t),overrideCount:e.length,hasChanges:e.length>0,overrides:e}}async function kr(e){let t=Is(),i={};for(let[r,a]of Object.entries(t.objects)){let s=a,o=r;/^(json\.|ui\.|effects\.|engine\.)/.test(o)||(o=`json.${r}`),s&&typeof s=="object"&&(s.identity||(s.identity={}),s.identity.id=o),i[`objects/${o}.json`]=s}t.engine&&(t.engine.runtime&&(i["engine/engine.runtime.json"]=t.engine.runtime),t.engine.assets&&(i["engine/engine.assets.json"]=t.engine.assets),t.engine.splash&&(i["engine/engine.splash.json"]=t.engine.splash),t.engine.loading&&(i["engine/engine.loading.json"]=t.engine.loading),t.engine.start&&(i["engine/engine.start.json"]=t.engine.start),t.engine.tutorial&&(i["engine/engine.tutorial.json"]=t.engine.tutorial),t.engine.endgame&&(i["engine/engine.endgame.json"]=t.engine.endgame),!t.engine.runtime&&!t.engine.assets&&(i["engine/engine.json"]=t.engine));for(let[r,a]of Object.entries(t.scenes)){let s=r.startsWith("scene.")?r:`scene.${r}`;i[`scenes/${s}.json`]=a}let n=await fetch("/api/apply",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({configs:i,assets:{},hadCacheAtApply:de().length>0,versionName:e})});if(!n.ok){let r=await n.json();throw new Error(`Apply failed: ${r.error||"Unknown error"}`)}un();try{let r=Sr();r&&(window.__editableConfigBaseline=ne(r))}catch{}localStorage.setItem("handler_last_applied",Date.now().toString()),console.log("[Config Persistence] \u2705 Applied to disk successfully")}function pn(){un(),window.location.reload()}async function Lr(){if(!confirm("This will restore all configs to their original state. All uncommitted changes in cache AND applied changes will be lost. Continue?"))return;let t=await fetch("/api/reset-to-original",{method:"POST"});if(!t.ok){let i=await t.json();throw new Error(`Reset failed: ${i.error||"Unknown error"}`)}un(),window.location.reload()}var yd,zm,xd,Te=We(()=>{"use strict";yd="handler_preview_override_mode";if(typeof window!="undefined"){let e=window.localStorage.getItem(yd);window.__enableConfigOverrides=e===null?!0:e==="true"}zm=500;xd={getCurrentConfig(){return window.__editableConfig||null},getChanges(){return window.__configChanges||[]},clearChanges(){window.__configChanges=[]}}});function Bm(e,t){try{if(typeof e=="object"&&e!==null)return e;if(typeof e!="string")return null;if(e.startsWith("data:")){let n=e.indexOf(",");if(n===-1)return null;let r=e.slice(0,n);if(!r.includes("application/json")&&!r.includes("text/plain"))return null;let a=e.slice(n+1),s=r.includes("base64")?typeof atob=="function"?atob(a):a:decodeURIComponent(a);return JSON.parse(s)}let i=e.trim();return i.startsWith("{")||i.startsWith("[")?JSON.parse(e):null}catch{return null}}function Fm(e){if(typeof window=="undefined"||!window.INLINE_ASSETS)return null;let t=window.INLINE_ASSETS,i=e.replace(/^\.\/+/,""),n=i.split("/").pop()||i,r=[i,n,i.replace(/\.json$/,""),n.replace(/\.json$/,"")];for(let a of r){let s=t[a];if(s){let o=Bm(s,a);if(o!==null)return o}}return null}async function fn(e){if(Ms.has(e)&&!Rs)return console.log(`[CONFIG] Using cached config for: "${e}"`),Ms.get(e);if(console.log(`[CONFIG] loadConfigFile called with: "${e}", MODE: ${G.toUpperCase()}, CACHE: ${Rs?"DISABLED":"ENABLED"}`),G==="publish"){let n=Fm(e);return n?(console.log(`[CONFIG] \u2713 Loaded ${e} via INLINE_ASSETS`),n):(console.log(`[CONFIG] \u2139\uFE0F Optional config ${e} not in INLINE_ASSETS, skipping fetch in publish mode`),{})}G==="brand"||console.log(`[CONFIG] DEV MODE: Trying nested paths first, then flattened for "${e}"`);let t;G==="brand"?t=[`./${e.split("/").pop()||e}`,`./${e}`,`./${e.replace(/^configs\//,"")}`,`./${e.replace(/^configs\//,"").replace(/\//g,".")}`]:t=[`./${e}`,`./${e.replace(/^configs\//,"")}`,`./${e.replace(/^configs\//,"").replace(/\//g,".")}`],t=Array.from(new Set(t.flatMap(n=>n.startsWith("./")?[n,`/${n.slice(2)}`]:n.startsWith("/")?[n]:[n,`/${n}`]))),console.log("[CONFIG] Will try candidates:",t);let i=(async()=>{let n=Rs?"no-store":"force-cache";for(let r of t)try{let a=await fetch(r,{cache:n});if(!a.ok)continue;let s=await a.json();return console.log(`[CONFIG] \u2713 Loaded ${e} via ${r}`,s),s}catch(a){console.warn(`[CONFIG] \u2717 Failed to load ${r} (mode: ${G}):`,a)}return console.warn(`[CONFIG] \u2717 All attempts failed for ${e}; using defaults`),{}})();return Ms.set(e,i),i}async function Ir(){console.log("[CONFIG] Loading component schemas...");let e=["components/identity.schema.json","components/transform.schema.json","components/render.schema.json","components/motion.schema.json","components/effects.schema.json","components/interaction.schema.json","components/gameplay.rules.schema.json","components/gameplay.tuning.schema.json","components/visibility.schema.json","components/audio.schema.json","components/physics.schema.json","components/ui.schema.json"],t=new Map;for(let i of e)try{let n=G==="publish"||G==="brand"?i.split("/").pop()||i:`configs/${i}`,r=await fn(n);r.component&&(t.set(r.component,r),console.log(`[CONFIG] \u2713 Schema loaded: ${r.component} ${G==="publish"||G==="brand"?"(flattened)":"(nested)"}`))}catch(n){console.warn(`[CONFIG] \u2717 Failed to load schema ${i}:`,n)}return console.log(`[CONFIG] Loaded ${t.size} component schemas`),t}async function yt(e){console.log(`[CONFIG] Loading object config: ${e}`);let t=G==="publish"||G==="brand"?`${e}.json`:`configs/objects/${e}.json`;return await fn(t)}async function Mr(e){let t=new Map;if(e.objects&&Array.isArray(e.objects)){for(let i of e.objects)if(i.enabled&&i.object_config)try{let n=i.instance_id;/^(json\.|ui\.|effects\.|engine\.)/.test(n)||(n=`json.${n}`);let r=await yt(n);(!r||Object.keys(r).length===0)&&n!==i.instance_id&&(r=await yt(i.instance_id)),!r||Object.keys(r).length===0?(console.log(`[CONFIG] No instance snapshot for ${i.instance_id}, using template ${i.object_config}`),r=await yt(i.object_config)):console.log(`[CONFIG] \u2713 Loaded instance snapshot for ${i.instance_id}`),t.set(i.instance_id,{...r,instance_id:i.instance_id,object_config:i.object_config})}catch(n){console.warn(`Failed to load object ${i.object_config}:`,n)}}return t}async function Rr(){console.log("[CONFIG] Loading engine configs...");let e=["runtime","assets","splash","loading","start","tutorial","endgame"],t=await Promise.all(e.map(n=>{let r=`engine.${n}.json`,a=G==="publish"||G==="brand"?r:`configs/engine/${r}`;return fn(a)})),i=Object.fromEntries(e.map((n,r)=>[n,t[r]]));return console.log("[CONFIG] Engine configs loaded:",Object.fromEntries(e.map(n=>{var s;let r=(s=i[n])!=null?s:{},a=Object.keys(r);return[n,a.length>0?a:"empty"]}))),i}async function Ps(){return await fn(G==="publish"||G==="brand"?"game.prompt.json":"configs/engine/game.prompt.json")}async function Pr(e="scene.main"){console.log(`[CONFIG] Loading scene config: ${e}`);let t=G==="publish"||G==="brand"?`${e}.json`:`configs/scenes/${e}.json`;return await fn(t)}function fi(e,t){let i=[];if(!e.identity)return i.push("Missing required identity component"),{valid:!1,errors:i};let n=t.get("identity");if(n)for(let r of n.required||[])e.identity[r]||i.push(`Missing required identity field: ${r}`);for(let[r,a]of Object.entries(e)){if(r==="identity")continue;let s=t.get(r);if(s&&a&&typeof a=="object"){let o=a;for(let l of s.required||[])o[l]===void 0&&i.push(`Missing required field in ${r}: ${l}`);if(s.constraints&&typeof s.constraints=="object")for(let[l,c]of Object.entries(s.constraints)){let d=o[l];if(d!==void 0&&c&&typeof c=="object"){let u=c;typeof d=="number"&&(u.min!==void 0&&d<u.min&&i.push(`${r}.${l} value ${d} is below minimum ${u.min}`),u.max!==void 0&&d>u.max&&i.push(`${r}.${l} value ${d} is above maximum ${u.max}`))}}}}return{valid:i.length===0,errors:i}}function Bt(e,t){let i={...e},n=["identity","transform","render"];for(let[r,a]of t.entries())a.defaults&&Object.keys(a.defaults).length>0&&(n.includes(r)||i[r])&&(i[r]||(i[r]={}),i[r]={...a.defaults,...i[r]});return i}function xe(e,t,i,n){return typeof e!="number"||!Number.isFinite(e)?t:Math.min(Math.max(e,i),n)}function _d(e,t){if(Array.isArray(e))return{x:xe(e[0],t.x,-2e3,2e3),y:xe(e[1],t.y,-2e3,2e3)};if(!e||typeof e!="object")return t;let{x:i,y:n}=e;return{x:xe(i,t.x,-2e3,2e3),y:xe(n,t.y,-2e3,2e3)}}function Hm(e,t){if(Array.isArray(e))return{x:xe(e[0],t.x,0,1),y:xe(e[1],t.y,0,1)};if(!e||typeof e!="object")return t;let{x:i,y:n}=e;return{x:xe(i,t.x,0,1),y:xe(n,t.y,0,1)}}function $m(e){if(Array.isArray(e))return{x:xe(e[0],.5,-10,10),y:xe(e[1],.5,-10,10)};if(e&&typeof e=="object"){let{x:t,y:i}=e;return{x:xe(t,.5,-10,10),y:xe(i,.5,-10,10)}}return typeof e=="string"?e:null}async function Qe(e="scene.main",t){var l,c,d,u,p,f,m,h,g,b,y,v,x,w;console.log("[CONFIG] ===== Starting Object-Centric Config Load =====");let i=await Ir(),n=de();n.length>0&&console.log(`[CONFIG] Applying ${n.length} active overrides`);let r=await Pr(e);console.log(`[CONFIG] Scene config loaded: ${((l=r.objects)==null?void 0:l.length)||0} objects`);let a=await Rr();console.log("[CONFIG] Loading object configs...");let s=await Mr(r);console.log(`[CONFIG] Loaded ${s.size} object configs:`,Array.from(s.keys()));for(let[S,A]of s.entries()){let _=Bt(A,i),T=fi(_,i);T.valid||console.warn(`Object ${S} validation errors:`,T.errors),(c=_.transform)!=null&&c.position&&(_.transform.position=_d(_.transform.position,{x:0,y:0})),(d=_.transform)!=null&&d.offset&&(_.transform.offset=_d(_.transform.offset,{x:0,y:0})),((u=_.transform)==null?void 0:u.anchor)!==void 0&&(_.transform.anchor=$m(_.transform.anchor)),((p=_.transform)==null?void 0:p.position_ratio)!==void 0&&_.transform.position_ratio!==null&&(_.transform.position_ratio=Hm(_.transform.position_ratio,{x:.5,y:.5})),s.set(S,_)}if(t){if(t.objects)for(let[S,A]of t.objects.entries())s.set(S,A);t.engine&&(a.runtime={...a.runtime,...t.engine.runtime},a.assets={...a.assets,...t.engine.assets},a.splash={...(f=a.splash)!=null?f:{},...(m=t.engine.splash)!=null?m:{}})}let o={objects:s,engine:a,scene:r,schemas:i,theme:{background_color:"#ffffff",text_color:"#000000",square_color:"#cccccc",cta_background:"#007bff",cta_text:"#ffffff"},gameplay:{}};return typeof window!="undefined"&&(window.__editableConfig=o,window.__editableConfigBaseline||(window.__editableConfigBaseline=Bt(o,i))),n.length>0&&dn()&&bt(n,{silent:!0,persist:!1}),console.log("[CONFIG] ===== Object-Centric Config Load Complete ====="),console.log("[CONFIG] Summary:",{schemas:Array.from(i.keys()),objects:Array.from(s.keys()),engine:{runtime:Object.keys((h=a.runtime)!=null?h:{}),assets:Object.keys((g=a.assets)!=null?g:{}),splash:Object.keys((b=a.splash)!=null?b:{}),loading:Object.keys((y=a.loading)!=null?y:{}),start:Object.keys((v=a.start)!=null?v:{}),tutorial:Object.keys((x=a.tutorial)!=null?x:{}),endgame:Object.keys((w=a.endgame)!=null?w:{})},scene:r.scene_id||"unknown"}),o}function js(e){var i,n,r,a,s,o,l,c,d,u,p,f,m,h,g,b,y,v,x,w,S,A,_,T,R,E,L,z,D,B,O,P,C;let t={gameplay:{},ui:{},theme:{},assets:{}};for(let[I,j]of e.objects.entries()){let Q=((i=j.identity)==null?void 0:i.id)||I;Q.includes("character")&&(t.gameplay.character_pos=((n=j.transform)==null?void 0:n.position)||{x:0,y:0},t.gameplay.character_scale=((r=j.transform)==null?void 0:r.scale)||1,t.gameplay.character_anim_speed=((s=(a=j.gameplay)==null?void 0:a.tuning)==null?void 0:s.anim_speed)||.003,t.gameplay.character_relief_scale=((l=(o=j.gameplay)==null?void 0:o.tuning)==null?void 0:l.relief_scale)||1.22,t.gameplay.character_relief_speed=((d=(c=j.gameplay)==null?void 0:c.tuning)==null?void 0:d.relief_speed)||.22),(Q.includes("gun")||Q.includes("flame"))&&(t.gameplay.gun=j.gun||{},t.gameplay.gunmuzzle=((u=j.effects)==null?void 0:u.gunmuzzle)||{},t.gameplay.muzzle_levels=((p=j.effects)==null?void 0:p.muzzle_levels)||{},t.gameplay.flame=((f=j.effects)==null?void 0:f.flame)||{}),Q.includes("diamond")&&(t.gameplay.diamond=j),Q.includes("ice")&&(t.gameplay.melt=j.melt||{},t.gameplay.melt_anchor=((m=j.transform)==null?void 0:m.melt_anchor)||{x:0,y:0},t.gameplay.melt_pos=((h=j.transform)==null?void 0:h.position)||{x:0,y:0},t.gameplay.hybrid_melting=((g=j.effects)==null?void 0:g.hybrid_melting)||{},t.gameplay.physics_chunks=((b=j.effects)==null?void 0:b.physics_chunks)||{},t.gameplay.melting_particles=((y=j.effects)==null?void 0:y.melting_particles)||{},t.gameplay.hard_ice=j.hard_ice||{}),Q.includes("water")&&(t.gameplay.water_drops=j),Q.includes("crack")&&(t.gameplay.crack=j),Q.includes("hand")&&(t.gameplay.hand=((v=j.gameplay)==null?void 0:v.tuning)||{},t.gameplay.brush_start_pos=((x=j.transform)==null?void 0:x.brush_start_pos)||{x:0,y:-120},t.gameplay.hand_scale=((w=j.transform)==null?void 0:w.scale)||1.5),Q.includes("hazard")&&(t.gameplay.hazard=((S=j.gameplay)==null?void 0:S.tuning)||{},t.gameplay.danger_pos=((A=j.transform)==null?void 0:A.danger_pos)||{x:0,y:235},t.gameplay.danger_pulse=((T=(_=j.gameplay)==null?void 0:_.tuning)==null?void 0:T.danger_pulse)||{},t.gameplay.hazard_height=((E=(R=j.gameplay)==null?void 0:R.tuning)==null?void 0:E.hazard_height)||140)}return t.gameplay.timeline=((L=e.engine.runtime)==null?void 0:L.timeline)||{},t.gameplay.drag_surface=((z=e.engine.runtime)==null?void 0:z.drag_surface)||{},t.gameplay.background=((D=e.engine.runtime)==null?void 0:D.background)||{},t.gameplay.ui_styles=((B=e.engine.runtime)==null?void 0:B.ui_styles)||{},t.gameplay.label_pulse=((O=e.engine.runtime)==null?void 0:O.label_pulse)||{},t.ui=((P=e.engine.runtime)==null?void 0:P.ui)||{},t.theme=((C=e.engine.runtime)==null?void 0:C.theme)||{},t.assets=e.engine.assets||{},t}var wd,G,Ms,Rs,Ds=We(()=>{"use strict";Te();wd=null,G="dev";if(typeof window!="undefined"){let e=window.__BUILD_SETTINGS__;if(e!=null&&e.buildMode)wd=e,G=e.buildMode,console.log("[CONFIG] Loaded inline build settings:",e,"buildMode:",G);else try{let t=new XMLHttpRequest;if(t.open("GET","./build-settings.json",!1),t.send(),t.status===200&&t.responseText){let i=JSON.parse(t.responseText);wd=i,G=i.buildMode||"dev",console.log("[CONFIG] Loaded build settings:",i,"buildMode:",G)}else console.log("[CONFIG] No build-settings.json found, using default buildMode:",G)}catch(t){console.log("[CONFIG] Failed to load build-settings.json:",t instanceof Error?t.message:String(t))}}console.log("[CONFIG] Final buildMode:",G);Ms=new Map,Rs=G==="dev"||typeof window!="undefined"&&window.location.search.includes("hot-reload")});function zs(e,t){let i=[];function n(r,a,s=""){if(r!==a){if(typeof r!=typeof a){i.push(`${s}: type changed`);return}if(typeof r=="object"&&r!==null&&a!==null){let o=new Set([...Object.keys(r),...Object.keys(a)]);for(let l of o){let c=s?`${s}.${l}`:l;l in r?l in a?n(r[l],a[l],c):i.push(`${c}: removed`):i.push(`${c}: added`)}}else i.push(`${s}: changed`)}}return n(e,t),i}function Ns(e,t,i,n){let r={...i};for(let[a,s]of n.entries())r[a]&&s.defaults&&(r[a]={...s.defaults,...r[a]});return r}var hn,Ft,Bs=We(()=>{"use strict";hn=class{shouldFullReload(t){return t.type==="component"||t.type==="scene"}getAffectedObjects(t){return t.type==="object"&&t.objectId?[t.objectId]:[]}},Ft=class{constructor(t=1e3){this.pollingInterval=null;this.fileHashes=new Map;this.callbacks=new Map;this.intervalMs=t}watch(t,i){this.callbacks.set(t,i),this.pollingInterval===null&&(this.pollingInterval=window.setInterval(()=>{this.checkAllFiles()},this.intervalMs))}async checkAllFiles(){for(let[t,i]of this.callbacks.entries())try{let n=`${t}?t=${Date.now()}&r=${Math.random()}`,r=await fetch(n,{cache:"no-cache",headers:{"Cache-Control":"no-cache"}});if(r.ok){let a=await r.text(),s=this.hashString(a),o=this.fileHashes.get(t);if(o&&o!==s&&console.log(`[HOT-RELOAD] File changed: ${t}`),o&&o!==s){console.log(`[HOT-RELOAD] File changed: ${t}`);let l=this.determineEventType(t);i(l),this.fileHashes.set(t,s)}else o||this.fileHashes.set(t,s)}}catch(n){console.warn(`Failed to check ${t}:`,n)}}determineEventType(t){var i,n;return t.includes("/components/")?{type:"component",path:t,componentName:(i=t.split("/").pop())==null?void 0:i.replace(".schema.json","")}:t.includes("/engine/")?{type:"engine",path:t}:t.includes("/scenes/")?{type:"scene",path:t}:t.includes("/objects/")?{type:"object",path:t,objectId:(n=t.split("/").pop())==null?void 0:n.replace(".json","")}:{type:"object",path:t}}hashString(t){let i=0;for(let n=0;n<t.length;n++){let r=t.charCodeAt(n);i=(i<<5)-i+r,i=i&i}return i.toString()}unwatch(t){this.callbacks.delete(t),this.fileHashes.delete(t)}stop(){this.pollingInterval!==null&&(clearInterval(this.pollingInterval),this.pollingInterval=null),this.callbacks.clear(),this.fileHashes.clear()}}});function Hs(e){if(typeof window=="undefined")return;let t=typeof Fs!="undefined"&&!!Fs.hot,i=window.location.search.includes("hot-reload");if(!(t||i))return;let r=null,a=!1,s=null;if(i){s=new Ft;let m=window.__configWatcher;m!=null&&m.stop&&m.stop(),window.__configWatcher=s}let o=new Set,l=m=>{var b,y;if(!s)return;let h=new Set;h.add("configs/engine/engine.runtime.json"),h.add("configs/engine/engine.assets.json"),h.add("configs/engine/engine.splash.json"),h.add("configs/scenes/scene.main.json");let g=(y=(b=m.scene)==null?void 0:b.objects)!=null?y:[];for(let v of g)v!=null&&v.object_config&&h.add(`configs/objects/${v.object_config}.json`);for(let v of o)h.has(v)||s.unwatch(v);for(let v of h)o.has(v)||s.watch(v,x=>f(x));o=h},c=new Set,d=!1,u=async m=>{let h=await yt(m),g=Bt(h,e.activeConfig.schemas),b=fi(g,e.activeConfig.schemas);b.valid||console.warn(`[HOT-RELOAD] ${m} validation errors:`,b.errors),await e.liveEditBridge.applyObjectConfig(m,g)};async function p(m){if(!a){a=!0;try{if(d||c.size===0){e.audioSystem.destroy();let h=await Qe("scene.main");e.setActiveConfig(h),e.gameObjectManager.updateConfig(h),e.CustomAssets.updateConfig(h),await e.CustomAssets.ready();let g=e.createAudioSystem(h);e.setAudioSystem(g),window.__audioSystem=g,await g.start(),e.liveEditBridge.rebuildIndexes(),l(h),console.log(`[GAME] Hot-reload complete (${m})`)}else{let h=Array.from(c);c.clear();for(let g of h)await u(g);console.log(`[GAME] Hot-reload updated objects: ${h.join(", ")}`)}}catch(h){console.warn("[GAME] Hot-reload failed:",h)}finally{a=!1,d=!1,c.clear()}}}function f(m){m.type==="object"&&m.objectId?c.add(m.objectId):d=!0,r&&window.clearTimeout(r),r=window.setTimeout(()=>{p(m.type)},120)}t&&Fs.hot.on("config-change",()=>{f({type:"hmr"})}),i&&(l(e.activeConfig),console.log(`[GAME] Hot-reload watcher enabled (${o.size} files)`))}var Fs,Ed=We(()=>{"use strict";Bs();Ds();Fs={}});var Sd={};nn(Sd,{ConfigWatcher:()=>Ft,DefaultReloadStrategy:()=>hn,applyDefaults:()=>Bt,diffConfigs:()=>zs,loadAllObjectConfigs:()=>Mr,loadComponentSchemas:()=>Ir,loadEngineConfig:()=>Rr,loadGamePromptConfig:()=>Ps,loadObjectCentricConfig:()=>Qe,loadObjectConfig:()=>yt,loadSceneConfig:()=>Pr,rehydrateObject:()=>Ns,setupHotReload:()=>Hs,toLegacyFormat:()=>js,validateObjectConfig:()=>fi});var jr=We(()=>{"use strict";Ds();Bs();Ed()});var gn=k((l1,Gs)=>{"use strict";typeof process=="undefined"||!process.version||process.version.indexOf("v0.")===0||process.version.indexOf("v1.")===0&&process.version.indexOf("v1.8.")!==0?Gs.exports={nextTick:Gm}:Gs.exports=process;function Gm(e,t,i,n){if(typeof e!="function")throw new TypeError('"callback" argument must be a function');var r=arguments.length,a,s;switch(r){case 0:case 1:return process.nextTick(e);case 2:return process.nextTick(function(){e.call(null,t)});case 3:return process.nextTick(function(){e.call(null,t,i)});case 4:return process.nextTick(function(){e.call(null,t,i,n)});default:for(a=new Array(r-1),s=0;s<a.length;)a[s++]=arguments[s];return process.nextTick(function(){e.apply(null,a)})}}});var Cd=k((c1,Ad)=>{"use strict";var Wm={}.toString;Ad.exports=Array.isArray||function(e){return Wm.call(e)=="[object Array]"}});var Ws=k((d1,Td)=>{"use strict";Td.exports=require("stream")});var mn=k((Ys,Ld)=>{"use strict";var Zr=require("buffer"),et=Zr.Buffer;function kd(e,t){for(var i in e)t[i]=e[i]}et.from&&et.alloc&&et.allocUnsafe&&et.allocUnsafeSlow?Ld.exports=Zr:(kd(Zr,Ys),Ys.Buffer=gi);function gi(e,t,i){return et(e,t,i)}kd(et,gi);gi.from=function(e,t,i){if(typeof e=="number")throw new TypeError("Argument must not be a number");return et(e,t,i)};gi.alloc=function(e,t,i){if(typeof e!="number")throw new TypeError("Argument must be a number");var n=et(e);return t!==void 0?typeof i=="string"?n.fill(t,i):n.fill(t):n.fill(0),n};gi.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return et(e)};gi.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return Zr.SlowBuffer(e)}});var mi=k(oe=>{"use strict";function Ym(e){return Array.isArray?Array.isArray(e):Jr(e)==="[object Array]"}oe.isArray=Ym;function Vm(e){return typeof e=="boolean"}oe.isBoolean=Vm;function Km(e){return e===null}oe.isNull=Km;function Xm(e){return e==null}oe.isNullOrUndefined=Xm;function Zm(e){return typeof e=="number"}oe.isNumber=Zm;function Jm(e){return typeof e=="string"}oe.isString=Jm;function Qm(e){return typeof e=="symbol"}oe.isSymbol=Qm;function eb(e){return e===void 0}oe.isUndefined=eb;function tb(e){return Jr(e)==="[object RegExp]"}oe.isRegExp=tb;function ib(e){return typeof e=="object"&&e!==null}oe.isObject=ib;function nb(e){return Jr(e)==="[object Date]"}oe.isDate=nb;function rb(e){return Jr(e)==="[object Error]"||e instanceof Error}oe.isError=rb;function ab(e){return typeof e=="function"}oe.isFunction=ab;function sb(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"||typeof e=="symbol"||typeof e=="undefined"}oe.isPrimitive=sb;oe.isBuffer=require("buffer").Buffer.isBuffer;function Jr(e){return Object.prototype.toString.call(e)}});var Od=k((p1,Vs)=>{"use strict";typeof Object.create=="function"?Vs.exports=function(t,i){i&&(t.super_=i,t.prototype=Object.create(i.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:Vs.exports=function(t,i){if(i){t.super_=i;var n=function(){};n.prototype=i.prototype,t.prototype=new n,t.prototype.constructor=t}}});var bi=k((f1,Xs)=>{"use strict";try{if(Ks=require("util"),typeof Ks.inherits!="function")throw"";Xs.exports=Ks.inherits}catch{Xs.exports=Od()}var Ks});var Md=k((h1,Zs)=>{"use strict";function ob(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var Id=mn().Buffer,bn=require("util");function lb(e,t,i){e.copy(t,i)}Zs.exports=(function(){function e(){ob(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.push=function(i){var n={data:i,next:null};this.length>0?this.tail.next=n:this.head=n,this.tail=n,++this.length},e.prototype.unshift=function(i){var n={data:i,next:this.head};this.length===0&&(this.tail=n),this.head=n,++this.length},e.prototype.shift=function(){if(this.length!==0){var i=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,i}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(i){if(this.length===0)return"";for(var n=this.head,r=""+n.data;n=n.next;)r+=i+n.data;return r},e.prototype.concat=function(i){if(this.length===0)return Id.alloc(0);for(var n=Id.allocUnsafe(i>>>0),r=this.head,a=0;r;)lb(r.data,n,a),a+=r.data.length,r=r.next;return n},e})();bn&&bn.inspect&&bn.inspect.custom&&(Zs.exports.prototype[bn.inspect.custom]=function(){var e=bn.inspect({length:this.length});return this.constructor.name+" "+e})});var Js=k((g1,Rd)=>{"use strict";var Qr=gn();function cb(e,t){var i=this,n=this._readableState&&this._readableState.destroyed,r=this._writableState&&this._writableState.destroyed;return n||r?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,Qr.nextTick(ea,this,e)):Qr.nextTick(ea,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(a){!t&&a?i._writableState?i._writableState.errorEmitted||(i._writableState.errorEmitted=!0,Qr.nextTick(ea,i,a)):Qr.nextTick(ea,i,a):t&&t(a)}),this)}function db(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function ea(e,t){e.emit("error",t)}Rd.exports={destroy:cb,undestroy:db}});var jd=k((m1,Pd)=>{"use strict";Pd.exports=require("util").deprecate});var eo=k((b1,Ud)=>{"use strict";var $t=gn();Ud.exports=Z;function zd(e){var t=this;this.next=null,this.entry=null,this.finish=function(){kb(t,e)}}var ub=!process.browser&&["v0.10","v0.9."].indexOf(process.version.slice(0,5))>-1?setImmediate:$t.nextTick,yi;Z.WritableState=vn;var Nd=Object.create(mi());Nd.inherits=bi();var pb={deprecate:jd()},Bd=Ws(),ia=mn().Buffer,fb=(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:{}).Uint8Array||function(){};function hb(e){return ia.from(e)}function gb(e){return ia.isBuffer(e)||e instanceof fb}var Fd=Js();Nd.inherits(Z,Bd);function mb(){}function vn(e,t){yi=yi||Ut(),e=e||{};var i=t instanceof yi;this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var n=e.highWaterMark,r=e.writableHighWaterMark,a=this.objectMode?16:16*1024;n||n===0?this.highWaterMark=n:i&&(r||r===0)?this.highWaterMark=r:this.highWaterMark=a,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var s=e.decodeStrings===!1;this.decodeStrings=!s,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(o){Eb(t,o)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new zd(this)}vn.prototype.getBuffer=function(){for(var t=this.bufferedRequest,i=[];t;)i.push(t),t=t.next;return i};(function(){try{Object.defineProperty(vn.prototype,"buffer",{get:pb.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var ta;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(ta=Function.prototype[Symbol.hasInstance],Object.defineProperty(Z,Symbol.hasInstance,{value:function(e){return ta.call(this,e)?!0:this!==Z?!1:e&&e._writableState instanceof vn}})):ta=function(e){return e instanceof this};function Z(e){if(yi=yi||Ut(),!ta.call(Z,this)&&!(this instanceof yi))return new Z(e);this._writableState=new vn(e,this),this.writable=!0,e&&(typeof e.write=="function"&&(this._write=e.write),typeof e.writev=="function"&&(this._writev=e.writev),typeof e.destroy=="function"&&(this._destroy=e.destroy),typeof e.final=="function"&&(this._final=e.final)),Bd.call(this)}Z.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))};function bb(e,t){var i=new Error("write after end");e.emit("error",i),$t.nextTick(t,i)}function yb(e,t,i,n){var r=!0,a=!1;return i===null?a=new TypeError("May not write null values to stream"):typeof i!="string"&&i!==void 0&&!t.objectMode&&(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),$t.nextTick(n,a),r=!1),r}Z.prototype.write=function(e,t,i){var n=this._writableState,r=!1,a=!n.objectMode&&gb(e);return a&&!ia.isBuffer(e)&&(e=hb(e)),typeof t=="function"&&(i=t,t=null),a?t="buffer":t||(t=n.defaultEncoding),typeof i!="function"&&(i=mb),n.ended?bb(this,i):(a||yb(this,n,e,i))&&(n.pendingcb++,r=xb(this,n,a,e,t,i)),r};Z.prototype.cork=function(){var e=this._writableState;e.corked++};Z.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,!e.writing&&!e.corked&&!e.bufferProcessing&&e.bufferedRequest&&Hd(this,e))};Z.prototype.setDefaultEncoding=function(t){if(typeof t=="string"&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this};function vb(e,t,i){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=ia.from(t,i)),t}Object.defineProperty(Z.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function xb(e,t,i,n,r,a){if(!i){var s=vb(t,n,r);n!==s&&(i=!0,r="buffer",n=s)}var o=t.objectMode?1:n.length;t.length+=o;var l=t.length<t.highWaterMark;if(l||(t.needDrain=!0),t.writing||t.corked){var c=t.lastBufferedRequest;t.lastBufferedRequest={chunk:n,encoding:r,isBuf:i,callback:a,next:null},c?c.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else Qs(e,t,!1,o,n,r,a);return l}function Qs(e,t,i,n,r,a,s){t.writelen=n,t.writecb=s,t.writing=!0,t.sync=!0,i?e._writev(r,t.onwrite):e._write(r,a,t.onwrite),t.sync=!1}function wb(e,t,i,n,r){--t.pendingcb,i?($t.nextTick(r,n),$t.nextTick(yn,e,t),e._writableState.errorEmitted=!0,e.emit("error",n)):(r(n),e._writableState.errorEmitted=!0,e.emit("error",n),yn(e,t))}function _b(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}function Eb(e,t){var i=e._writableState,n=i.sync,r=i.writecb;if(_b(i),t)wb(e,i,n,t,r);else{var a=$d(i);!a&&!i.corked&&!i.bufferProcessing&&i.bufferedRequest&&Hd(e,i),n?ub(Dd,e,i,a,r):Dd(e,i,a,r)}}function Dd(e,t,i,n){i||Sb(e,t),t.pendingcb--,n(),yn(e,t)}function Sb(e,t){t.length===0&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}function Hd(e,t){t.bufferProcessing=!0;var i=t.bufferedRequest;if(e._writev&&i&&i.next){var n=t.bufferedRequestCount,r=new Array(n),a=t.corkedRequestsFree;a.entry=i;for(var s=0,o=!0;i;)r[s]=i,i.isBuf||(o=!1),i=i.next,s+=1;r.allBuffers=o,Qs(e,t,!0,t.length,r,"",a.finish),t.pendingcb++,t.lastBufferedRequest=null,a.next?(t.corkedRequestsFree=a.next,a.next=null):t.corkedRequestsFree=new zd(t),t.bufferedRequestCount=0}else{for(;i;){var l=i.chunk,c=i.encoding,d=i.callback,u=t.objectMode?1:l.length;if(Qs(e,t,!1,u,l,c,d),i=i.next,t.bufferedRequestCount--,t.writing)break}i===null&&(t.lastBufferedRequest=null)}t.bufferedRequest=i,t.bufferProcessing=!1}Z.prototype._write=function(e,t,i){i(new Error("_write() is not implemented"))};Z.prototype._writev=null;Z.prototype.end=function(e,t,i){var n=this._writableState;typeof e=="function"?(i=e,e=null,t=null):typeof t=="function"&&(i=t,t=null),e!=null&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||Tb(this,n,i)};function $d(e){return e.ending&&e.length===0&&e.bufferedRequest===null&&!e.finished&&!e.writing}function Ab(e,t){e._final(function(i){t.pendingcb--,i&&e.emit("error",i),t.prefinished=!0,e.emit("prefinish"),yn(e,t)})}function Cb(e,t){!t.prefinished&&!t.finalCalled&&(typeof e._final=="function"?(t.pendingcb++,t.finalCalled=!0,$t.nextTick(Ab,e,t)):(t.prefinished=!0,e.emit("prefinish")))}function yn(e,t){var i=$d(t);return i&&(Cb(e,t),t.pendingcb===0&&(t.finished=!0,e.emit("finish"))),i}function Tb(e,t,i){t.ending=!0,yn(e,t),i&&(t.finished?$t.nextTick(i):e.once("finish",i)),t.ended=!0,e.writable=!1}function kb(e,t,i){var n=e.entry;for(e.entry=null;n;){var r=n.callback;t.pendingcb--,r(i),n=n.next}t.corkedRequestsFree.next=e}Object.defineProperty(Z.prototype,"destroyed",{get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}});Z.prototype.destroy=Fd.destroy;Z.prototype._undestroy=Fd.undestroy;Z.prototype._destroy=function(e,t){this.end(),t(e)}});var Ut=k((y1,Yd)=>{"use strict";var qd=gn(),Lb=Object.keys||function(e){var t=[];for(var i in e)t.push(i);return t};Yd.exports=tt;var Gd=Object.create(mi());Gd.inherits=bi();var Wd=no(),io=eo();Gd.inherits(tt,Wd);for(to=Lb(io.prototype),na=0;na<to.length;na++)ra=to[na],tt.prototype[ra]||(tt.prototype[ra]=io.prototype[ra]);var to,ra,na;function tt(e){if(!(this instanceof tt))return new tt(e);Wd.call(this,e),io.call(this,e),e&&e.readable===!1&&(this.readable=!1),e&&e.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,e&&e.allowHalfOpen===!1&&(this.allowHalfOpen=!1),this.once("end",Ob)}Object.defineProperty(tt.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function Ob(){this.allowHalfOpen||this._writableState.ended||qd.nextTick(Ib,this)}function Ib(e){e.end()}Object.defineProperty(tt.prototype,"destroyed",{get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(e){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=e,this._writableState.destroyed=e)}});tt.prototype._destroy=function(e,t){this.push(null),this.end(),qd.nextTick(t,e)}});var so=k(Kd=>{"use strict";var ao=mn().Buffer,Vd=ao.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function Mb(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function Rb(e){var t=Mb(e);if(typeof t!="string"&&(ao.isEncoding===Vd||!Vd(e)))throw new Error("Unknown encoding: "+e);return t||e}Kd.StringDecoder=xn;function xn(e){this.encoding=Rb(e);var t;switch(this.encoding){case"utf16le":this.text=Bb,this.end=Fb,t=4;break;case"utf8":this.fillLast=Db,t=4;break;case"base64":this.text=Hb,this.end=$b,t=3;break;default:this.write=Ub,this.end=qb;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=ao.allocUnsafe(t)}xn.prototype.write=function(e){if(e.length===0)return"";var t,i;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";i=this.lastNeed,this.lastNeed=0}else i=0;return i<e.length?t?t+this.text(e,i):this.text(e,i):t||""};xn.prototype.end=Nb;xn.prototype.text=zb;xn.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length};function ro(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function Pb(e,t,i){var n=t.length-1;if(n<i)return 0;var r=ro(t[n]);return r>=0?(r>0&&(e.lastNeed=r-1),r):--n<i||r===-2?0:(r=ro(t[n]),r>=0?(r>0&&(e.lastNeed=r-2),r):--n<i||r===-2?0:(r=ro(t[n]),r>=0?(r>0&&(r===2?r=0:e.lastNeed=r-3),r):0))}function jb(e,t,i){if((t[0]&192)!==128)return e.lastNeed=0,"\uFFFD";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"\uFFFD";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"\uFFFD"}}function Db(e){var t=this.lastTotal-this.lastNeed,i=jb(this,e,t);if(i!==void 0)return i;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function zb(e,t){var i=Pb(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=i;var n=e.length-(i-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)}function Nb(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"\uFFFD":t}function Bb(e,t){if((e.length-t)%2===0){var i=e.toString("utf16le",t);if(i){var n=i.charCodeAt(i.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],i.slice(0,-1)}return i}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function Fb(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var i=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,i)}return t}function Hb(e,t){var i=(e.length-t)%3;return i===0?e.toString("base64",t):(this.lastNeed=3-i,this.lastTotal=3,i===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-i))}function $b(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function Ub(e){return e.toString(this.encoding)}function qb(e){return e&&e.length?this.write(e):""}});var no=k((w1,ou)=>{"use strict";var xi=gn();ou.exports=q;var Gb=Cd(),wn;q.ReadableState=iu;var x1=require("events").EventEmitter,Qd=function(e,t){return e.listeners(t).length},po=Ws(),_n=mn().Buffer,Wb=(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:{}).Uint8Array||function(){};function Yb(e){return _n.from(e)}function Vb(e){return _n.isBuffer(e)||e instanceof Wb}var eu=Object.create(mi());eu.inherits=bi();var oo=require("util"),H=void 0;oo&&oo.debuglog?H=oo.debuglog("stream"):H=function(){};var Kb=Md(),tu=Js(),vi;eu.inherits(q,po);var lo=["error","close","destroy","pause","resume"];function Xb(e,t,i){if(typeof e.prependListener=="function")return e.prependListener(t,i);!e._events||!e._events[t]?e.on(t,i):Gb(e._events[t])?e._events[t].unshift(i):e._events[t]=[i,e._events[t]]}function iu(e,t){wn=wn||Ut(),e=e||{};var i=t instanceof wn;this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var n=e.highWaterMark,r=e.readableHighWaterMark,a=this.objectMode?16:16*1024;n||n===0?this.highWaterMark=n:i&&(r||r===0)?this.highWaterMark=r:this.highWaterMark=a,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new Kb,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(vi||(vi=so().StringDecoder),this.decoder=new vi(e.encoding),this.encoding=e.encoding)}function q(e){if(wn=wn||Ut(),!(this instanceof q))return new q(e);this._readableState=new iu(e,this),this.readable=!0,e&&(typeof e.read=="function"&&(this._read=e.read),typeof e.destroy=="function"&&(this._destroy=e.destroy)),po.call(this)}Object.defineProperty(q.prototype,"destroyed",{get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}});q.prototype.destroy=tu.destroy;q.prototype._undestroy=tu.undestroy;q.prototype._destroy=function(e,t){this.push(null),t(e)};q.prototype.push=function(e,t){var i=this._readableState,n;return i.objectMode?n=!0:typeof e=="string"&&(t=t||i.defaultEncoding,t!==i.encoding&&(e=_n.from(e,t),t=""),n=!0),nu(this,e,t,!1,n)};q.prototype.unshift=function(e){return nu(this,e,null,!0,!1)};function nu(e,t,i,n,r){var a=e._readableState;if(t===null)a.reading=!1,ey(e,a);else{var s;r||(s=Zb(a,t)),s?e.emit("error",s):a.objectMode||t&&t.length>0?(typeof t!="string"&&!a.objectMode&&Object.getPrototypeOf(t)!==_n.prototype&&(t=Yb(t)),n?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):co(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!i?(t=a.decoder.write(t),a.objectMode||t.length!==0?co(e,a,t,!1):ru(e,a)):co(e,a,t,!1))):n||(a.reading=!1)}return Jb(a)}function co(e,t,i,n){t.flowing&&t.length===0&&!t.sync?(e.emit("data",i),e.read(0)):(t.length+=t.objectMode?1:i.length,n?t.buffer.unshift(i):t.buffer.push(i),t.needReadable&&aa(e)),ru(e,t)}function Zb(e,t){var i;return!Vb(t)&&typeof t!="string"&&t!==void 0&&!e.objectMode&&(i=new TypeError("Invalid non-string/buffer chunk")),i}function Jb(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||e.length===0)}q.prototype.isPaused=function(){return this._readableState.flowing===!1};q.prototype.setEncoding=function(e){return vi||(vi=so().StringDecoder),this._readableState.decoder=new vi(e),this._readableState.encoding=e,this};var Xd=8388608;function Qb(e){return e>=Xd?e=Xd:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function Zd(e,t){return e<=0||t.length===0&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=Qb(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}q.prototype.read=function(e){H("read",e),e=parseInt(e,10);var t=this._readableState,i=e;if(e!==0&&(t.emittedReadable=!1),e===0&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return H("read: emitReadable",t.length,t.ended),t.length===0&&t.ended?uo(this):aa(this),null;if(e=Zd(e,t),e===0&&t.ended)return t.length===0&&uo(this),null;var n=t.needReadable;H("need readable",n),(t.length===0||t.length-e<t.highWaterMark)&&(n=!0,H("length less than watermark",n)),t.ended||t.reading?(n=!1,H("reading or ended",n)):n&&(H("do read"),t.reading=!0,t.sync=!0,t.length===0&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=Zd(i,t)));var r;return e>0?r=au(e,t):r=null,r===null?(t.needReadable=!0,e=0):t.length-=e,t.length===0&&(t.ended||(t.needReadable=!0),i!==e&&t.ended&&uo(this)),r!==null&&this.emit("data",r),r};function ey(e,t){if(!t.ended){if(t.decoder){var i=t.decoder.end();i&&i.length&&(t.buffer.push(i),t.length+=t.objectMode?1:i.length)}t.ended=!0,aa(e)}}function aa(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(H("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?xi.nextTick(Jd,e):Jd(e))}function Jd(e){H("emit readable"),e.emit("readable"),fo(e)}function ru(e,t){t.readingMore||(t.readingMore=!0,xi.nextTick(ty,e,t))}function ty(e,t){for(var i=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(H("maybeReadMore read 0"),e.read(0),i!==t.length);)i=t.length;t.readingMore=!1}q.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))};q.prototype.pipe=function(e,t){var i=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=e;break;case 1:n.pipes=[n.pipes,e];break;default:n.pipes.push(e);break}n.pipesCount+=1,H("pipe count=%d opts=%j",n.pipesCount,t);var r=(!t||t.end!==!1)&&e!==process.stdout&&e!==process.stderr,a=r?o:g;n.endEmitted?xi.nextTick(a):i.once("end",a),e.on("unpipe",s);function s(b,y){H("onunpipe"),b===i&&y&&y.hasUnpiped===!1&&(y.hasUnpiped=!0,d())}function o(){H("onend"),e.end()}var l=iy(i);e.on("drain",l);var c=!1;function d(){H("cleanup"),e.removeListener("close",m),e.removeListener("finish",h),e.removeListener("drain",l),e.removeListener("error",f),e.removeListener("unpipe",s),i.removeListener("end",o),i.removeListener("end",g),i.removeListener("data",p),c=!0,n.awaitDrain&&(!e._writableState||e._writableState.needDrain)&&l()}var u=!1;i.on("data",p);function p(b){H("ondata"),u=!1;var y=e.write(b);y===!1&&!u&&((n.pipesCount===1&&n.pipes===e||n.pipesCount>1&&su(n.pipes,e)!==-1)&&!c&&(H("false write response, pause",n.awaitDrain),n.awaitDrain++,u=!0),i.pause())}function f(b){H("onerror",b),g(),e.removeListener("error",f),Qd(e,"error")===0&&e.emit("error",b)}Xb(e,"error",f);function m(){e.removeListener("finish",h),g()}e.once("close",m);function h(){H("onfinish"),e.removeListener("close",m),g()}e.once("finish",h);function g(){H("unpipe"),i.unpipe(e)}return e.emit("pipe",i),n.flowing||(H("pipe resume"),i.resume()),e};function iy(e){return function(){var t=e._readableState;H("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&Qd(e,"data")&&(t.flowing=!0,fo(e))}}q.prototype.unpipe=function(e){var t=this._readableState,i={hasUnpiped:!1};if(t.pipesCount===0)return this;if(t.pipesCount===1)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,i),this);if(!e){var n=t.pipes,r=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a<r;a++)n[a].emit("unpipe",this,{hasUnpiped:!1});return this}var s=su(t.pipes,e);return s===-1?this:(t.pipes.splice(s,1),t.pipesCount-=1,t.pipesCount===1&&(t.pipes=t.pipes[0]),e.emit("unpipe",this,i),this)};q.prototype.on=function(e,t){var i=po.prototype.on.call(this,e,t);if(e==="data")this._readableState.flowing!==!1&&this.resume();else if(e==="readable"){var n=this._readableState;!n.endEmitted&&!n.readableListening&&(n.readableListening=n.needReadable=!0,n.emittedReadable=!1,n.reading?n.length&&aa(this):xi.nextTick(ny,this))}return i};q.prototype.addListener=q.prototype.on;function ny(e){H("readable nexttick read 0"),e.read(0)}q.prototype.resume=function(){var e=this._readableState;return e.flowing||(H("resume"),e.flowing=!0,ry(this,e)),this};function ry(e,t){t.resumeScheduled||(t.resumeScheduled=!0,xi.nextTick(ay,e,t))}function ay(e,t){t.reading||(H("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),fo(e),t.flowing&&!t.reading&&e.read(0)}q.prototype.pause=function(){return H("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(H("pause"),this._readableState.flowing=!1,this.emit("pause")),this};function fo(e){var t=e._readableState;for(H("flow",t.flowing);t.flowing&&e.read()!==null;);}q.prototype.wrap=function(e){var t=this,i=this._readableState,n=!1;e.on("end",function(){if(H("wrapped end"),i.decoder&&!i.ended){var s=i.decoder.end();s&&s.length&&t.push(s)}t.push(null)}),e.on("data",function(s){if(H("wrapped data"),i.decoder&&(s=i.decoder.write(s)),!(i.objectMode&&s==null)&&!(!i.objectMode&&(!s||!s.length))){var o=t.push(s);o||(n=!0,e.pause())}});for(var r in e)this[r]===void 0&&typeof e[r]=="function"&&(this[r]=(function(s){return function(){return e[s].apply(e,arguments)}})(r));for(var a=0;a<lo.length;a++)e.on(lo[a],this.emit.bind(this,lo[a]));return this._read=function(s){H("wrapped _read",s),n&&(n=!1,e.resume())},this};Object.defineProperty(q.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}});q._fromList=au;function au(e,t){if(t.length===0)return null;var i;return t.objectMode?i=t.buffer.shift():!e||e>=t.length?(t.decoder?i=t.buffer.join(""):t.buffer.length===1?i=t.buffer.head.data:i=t.buffer.concat(t.length),t.buffer.clear()):i=sy(e,t.buffer,t.decoder),i}function sy(e,t,i){var n;return e<t.head.data.length?(n=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):e===t.head.data.length?n=t.shift():n=i?oy(e,t):ly(e,t),n}function oy(e,t){var i=t.head,n=1,r=i.data;for(e-=r.length;i=i.next;){var a=i.data,s=e>a.length?a.length:e;if(s===a.length?r+=a:r+=a.slice(0,e),e-=s,e===0){s===a.length?(++n,i.next?t.head=i.next:t.head=t.tail=null):(t.head=i,i.data=a.slice(s));break}++n}return t.length-=n,r}function ly(e,t){var i=_n.allocUnsafe(e),n=t.head,r=1;for(n.data.copy(i),e-=n.data.length;n=n.next;){var a=n.data,s=e>a.length?a.length:e;if(a.copy(i,i.length-e,0,s),e-=s,e===0){s===a.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=a.slice(s));break}++r}return t.length-=r,i}function uo(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,xi.nextTick(cy,t,e))}function cy(e,t){!e.endEmitted&&e.length===0&&(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function su(e,t){for(var i=0,n=e.length;i<n;i++)if(e[i]===t)return i;return-1}});var ho=k((_1,du)=>{"use strict";du.exports=it;var sa=Ut(),cu=Object.create(mi());cu.inherits=bi();cu.inherits(it,sa);function dy(e,t){var i=this._transformState;i.transforming=!1;var n=i.writecb;if(!n)return this.emit("error",new Error("write callback called multiple times"));i.writechunk=null,i.writecb=null,t!=null&&this.push(t),n(e);var r=this._readableState;r.reading=!1,(r.needReadable||r.length<r.highWaterMark)&&this._read(r.highWaterMark)}function it(e){if(!(this instanceof it))return new it(e);sa.call(this,e),this._transformState={afterTransform:dy.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(typeof e.transform=="function"&&(this._transform=e.transform),typeof e.flush=="function"&&(this._flush=e.flush)),this.on("prefinish",uy)}function uy(){var e=this;typeof this._flush=="function"?this._flush(function(t,i){lu(e,t,i)}):lu(this,null,null)}it.prototype.push=function(e,t){return this._transformState.needTransform=!1,sa.prototype.push.call(this,e,t)};it.prototype._transform=function(e,t,i){throw new Error("_transform() is not implemented")};it.prototype._write=function(e,t,i){var n=this._transformState;if(n.writecb=i,n.writechunk=e,n.writeencoding=t,!n.transforming){var r=this._readableState;(n.needTransform||r.needReadable||r.length<r.highWaterMark)&&this._read(r.highWaterMark)}};it.prototype._read=function(e){var t=this._transformState;t.writechunk!==null&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0};it.prototype._destroy=function(e,t){var i=this;sa.prototype._destroy.call(this,e,function(n){t(n),i.emit("close")})};function lu(e,t,i){if(t)return e.emit("error",t);if(i!=null&&e.push(i),e._writableState.length)throw new Error("Calling transform done when ws.length != 0");if(e._transformState.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}});var hu=k((E1,fu)=>{"use strict";fu.exports=En;var uu=ho(),pu=Object.create(mi());pu.inherits=bi();pu.inherits(En,uu);function En(e){if(!(this instanceof En))return new En(e);uu.call(this,e)}En.prototype._transform=function(e,t,i){i(null,e)}});var go=k((re,oa)=>{"use strict";var Ne=require("stream");process.env.READABLE_STREAM==="disable"&&Ne?(oa.exports=Ne,re=oa.exports=Ne.Readable,re.Readable=Ne.Readable,re.Writable=Ne.Writable,re.Duplex=Ne.Duplex,re.Transform=Ne.Transform,re.PassThrough=Ne.PassThrough,re.Stream=Ne):(re=oa.exports=no(),re.Stream=Ne||re,re.Readable=re,re.Writable=eo(),re.Duplex=Ut(),re.Transform=ho(),re.PassThrough=hu())});var nt=k(he=>{"use strict";he.base64=!0;he.array=!0;he.string=!0;he.arraybuffer=typeof ArrayBuffer!="undefined"&&typeof Uint8Array!="undefined";he.nodebuffer=typeof Buffer!="undefined";he.uint8array=typeof Uint8Array!="undefined";if(typeof ArrayBuffer=="undefined")he.blob=!1;else{mo=new ArrayBuffer(0);try{he.blob=new Blob([mo],{type:"application/zip"}).size===0}catch{try{gu=self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder,bo=new gu,bo.append(mo),he.blob=bo.getBlob("application/zip").size===0}catch{he.blob=!1}}}var mo,gu,bo;try{he.nodestream=!!go().Readable}catch{he.nodestream=!1}});var vo=k(yo=>{"use strict";var py=V(),fy=nt(),Be="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";yo.encode=function(e){for(var t=[],i,n,r,a,s,o,l,c=0,d=e.length,u=d,p=py.getTypeOf(e)!=="string";c<e.length;)u=d-c,p?(i=e[c++],n=c<d?e[c++]:0,r=c<d?e[c++]:0):(i=e.charCodeAt(c++),n=c<d?e.charCodeAt(c++):0,r=c<d?e.charCodeAt(c++):0),a=i>>2,s=(i&3)<<4|n>>4,o=u>1?(n&15)<<2|r>>6:64,l=u>2?r&63:64,t.push(Be.charAt(a)+Be.charAt(s)+Be.charAt(o)+Be.charAt(l));return t.join("")};yo.decode=function(e){var t,i,n,r,a,s,o,l=0,c=0,d="data:";if(e.substr(0,d.length)===d)throw new Error("Invalid base64 input, it looks like a data url.");e=e.replace(/[^A-Za-z0-9+/=]/g,"");var u=e.length*3/4;if(e.charAt(e.length-1)===Be.charAt(64)&&u--,e.charAt(e.length-2)===Be.charAt(64)&&u--,u%1!==0)throw new Error("Invalid base64 input, bad content length.");var p;for(fy.uint8array?p=new Uint8Array(u|0):p=new Array(u|0);l<e.length;)r=Be.indexOf(e.charAt(l++)),a=Be.indexOf(e.charAt(l++)),s=Be.indexOf(e.charAt(l++)),o=Be.indexOf(e.charAt(l++)),t=r<<2|a>>4,i=(a&15)<<4|s>>2,n=(s&3)<<6|o,p[c++]=t,s!==64&&(p[c++]=i),o!==64&&(p[c++]=n);return p}});var Sn=k((C1,mu)=>{"use strict";mu.exports={isNode:typeof Buffer!="undefined",newBufferFrom:function(e,t){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(e,t);if(typeof e=="number")throw new Error('The "data" argument must not be a number');return new Buffer(e,t)},allocBuffer:function(e){if(Buffer.alloc)return Buffer.alloc(e);var t=new Buffer(e);return t.fill(0),t},isBuffer:function(e){return Buffer.isBuffer(e)},isStream:function(e){return e&&typeof e.on=="function"&&typeof e.pause=="function"&&typeof e.resume=="function"}}});var xu=k((T1,vu)=>{"use strict";var bu=global.MutationObserver||global.WebKitMutationObserver,wi;process.browser?bu?(xo=0,yu=new bu(An),wo=global.document.createTextNode(""),yu.observe(wo,{characterData:!0}),wi=function(){wo.data=xo=++xo%2}):!global.setImmediate&&typeof global.MessageChannel!="undefined"?(_o=new global.MessageChannel,_o.port1.onmessage=An,wi=function(){_o.port2.postMessage(0)}):"document"in global&&"onreadystatechange"in global.document.createElement("script")?wi=function(){var e=global.document.createElement("script");e.onreadystatechange=function(){An(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},global.document.documentElement.appendChild(e)}:wi=function(){setTimeout(An,0)}:wi=function(){process.nextTick(An)};var xo,yu,wo,_o,Eo,Cn=[];function An(){Eo=!0;for(var e,t,i=Cn.length;i;){for(t=Cn,Cn=[],e=-1;++e<i;)t[e]();i=Cn.length}Eo=!1}vu.exports=hy;function hy(e){Cn.push(e)===1&&!Eo&&wi()}});var Tu=k((k1,Cu)=>{"use strict";var wu=xu();function _i(){}var le={},_u=["REJECTED"],So=["FULFILLED"],Eu=["PENDING"];process.browser||(Tn=["UNHANDLED"]);var Tn;Cu.exports=vt;function vt(e){if(typeof e!="function")throw new TypeError("resolver must be a function");this.state=Eu,this.queue=[],this.outcome=void 0,process.browser||(this.handled=Tn),e!==_i&&Su(this,e)}vt.prototype.finally=function(e){if(typeof e!="function")return this;var t=this.constructor;return this.then(i,n);function i(r){function a(){return r}return t.resolve(e()).then(a)}function n(r){function a(){throw r}return t.resolve(e()).then(a)}};vt.prototype.catch=function(e){return this.then(null,e)};vt.prototype.then=function(e,t){if(typeof e!="function"&&this.state===So||typeof t!="function"&&this.state===_u)return this;var i=new this.constructor(_i);if(process.browser||this.handled===Tn&&(this.handled=null),this.state!==Eu){var n=this.state===So?e:t;Ao(i,n,this.outcome)}else this.queue.push(new kn(i,e,t));return i};function kn(e,t,i){this.promise=e,typeof t=="function"&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),typeof i=="function"&&(this.onRejected=i,this.callRejected=this.otherCallRejected)}kn.prototype.callFulfilled=function(e){le.resolve(this.promise,e)};kn.prototype.otherCallFulfilled=function(e){Ao(this.promise,this.onFulfilled,e)};kn.prototype.callRejected=function(e){le.reject(this.promise,e)};kn.prototype.otherCallRejected=function(e){Ao(this.promise,this.onRejected,e)};function Ao(e,t,i){wu(function(){var n;try{n=t(i)}catch(r){return le.reject(e,r)}n===e?le.reject(e,new TypeError("Cannot resolve promise with itself")):le.resolve(e,n)})}le.resolve=function(e,t){var i=Au(gy,t);if(i.status==="error")return le.reject(e,i.value);var n=i.value;if(n)Su(e,n);else{e.state=So,e.outcome=t;for(var r=-1,a=e.queue.length;++r<a;)e.queue[r].callFulfilled(t)}return e};le.reject=function(e,t){e.state=_u,e.outcome=t,process.browser||e.handled===Tn&&wu(function(){e.handled===Tn&&process.emit("unhandledRejection",t,e)});for(var i=-1,n=e.queue.length;++i<n;)e.queue[i].callRejected(t);return e};function gy(e){var t=e&&e.then;if(e&&(typeof e=="object"||typeof e=="function")&&typeof t=="function")return function(){t.apply(e,arguments)}}function Su(e,t){var i=!1;function n(o){i||(i=!0,le.reject(e,o))}function r(o){i||(i=!0,le.resolve(e,o))}function a(){t(r,n)}var s=Au(a);s.status==="error"&&n(s.value)}function Au(e,t){var i={};try{i.value=e(t),i.status="success"}catch(n){i.status="error",i.value=n}return i}vt.resolve=my;function my(e){return e instanceof this?e:le.resolve(new this(_i),e)}vt.reject=by;function by(e){var t=new this(_i);return le.reject(t,e)}vt.all=yy;function yy(e){var t=this;if(Object.prototype.toString.call(e)!=="[object Array]")return this.reject(new TypeError("must be an array"));var i=e.length,n=!1;if(!i)return this.resolve([]);for(var r=new Array(i),a=0,s=-1,o=new this(_i);++s<i;)l(e[s],s);return o;function l(c,d){t.resolve(c).then(u,function(p){n||(n=!0,le.reject(o,p))});function u(p){r[d]=p,++a===i&&!n&&(n=!0,le.resolve(o,r))}}}vt.race=vy;function vy(e){var t=this;if(Object.prototype.toString.call(e)!=="[object Array]")return this.reject(new TypeError("must be an array"));var i=e.length,n=!1;if(!i)return this.resolve([]);for(var r=-1,a=new this(_i);++r<i;)s(e[r]);return a;function s(o){t.resolve(o).then(function(l){n||(n=!0,le.resolve(a,l))},function(l){n||(n=!0,le.reject(a,l))})}}});var Ei=k((L1,ku)=>{"use strict";var Co=null;typeof Promise!="undefined"?Co=Promise:Co=Tu();ku.exports={Promise:Co}});var Ou=k(Lu=>{"use strict";(function(e,t){"use strict";if(e.setImmediate)return;var i=1,n={},r=!1,a=e.document,s;function o(y){typeof y!="function"&&(y=new Function(""+y));for(var v=new Array(arguments.length-1),x=0;x<v.length;x++)v[x]=arguments[x+1];var w={callback:y,args:v};return n[i]=w,s(i),i++}function l(y){delete n[y]}function c(y){var v=y.callback,x=y.args;switch(x.length){case 0:v();break;case 1:v(x[0]);break;case 2:v(x[0],x[1]);break;case 3:v(x[0],x[1],x[2]);break;default:v.apply(t,x);break}}function d(y){if(r)setTimeout(d,0,y);else{var v=n[y];if(v){r=!0;try{c(v)}finally{l(y),r=!1}}}}function u(){s=function(y){process.nextTick(function(){d(y)})}}function p(){if(e.postMessage&&!e.importScripts){var y=!0,v=e.onmessage;return e.onmessage=function(){y=!1},e.postMessage("","*"),e.onmessage=v,y}}function f(){var y="setImmediate$"+Math.random()+"$",v=function(x){x.source===e&&typeof x.data=="string"&&x.data.indexOf(y)===0&&d(+x.data.slice(y.length))};e.addEventListener?e.addEventListener("message",v,!1):e.attachEvent("onmessage",v),s=function(x){e.postMessage(y+x,"*")}}function m(){var y=new MessageChannel;y.port1.onmessage=function(v){var x=v.data;d(x)},s=function(v){y.port2.postMessage(v)}}function h(){var y=a.documentElement;s=function(v){var x=a.createElement("script");x.onreadystatechange=function(){d(v),x.onreadystatechange=null,y.removeChild(x),x=null},y.appendChild(x)}}function g(){s=function(y){setTimeout(d,0,y)}}var b=Object.getPrototypeOf&&Object.getPrototypeOf(e);b=b&&b.setTimeout?b:e,{}.toString.call(e.process)==="[object process]"?u():p()?f():e.MessageChannel?m():a&&"onreadystatechange"in a.createElement("script")?h():g(),b.setImmediate=o,b.clearImmediate=l})(typeof self=="undefined"?typeof global=="undefined"?Lu:global:self)});var V=k(J=>{"use strict";var xt=nt(),xy=vo(),Si=Sn(),To=Ei();Ou();function wy(e){var t=null;return xt.uint8array?t=new Uint8Array(e.length):t=new Array(e.length),ca(e,t)}J.newBlob=function(e,t){J.checkSupport("blob");try{return new Blob([e],{type:t})}catch{try{var i=self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder,n=new i;return n.append(e),n.getBlob(t)}catch{throw new Error("Bug : can't construct the Blob.")}}};function Ln(e){return e}function ca(e,t){for(var i=0;i<e.length;++i)t[i]=e.charCodeAt(i)&255;return t}var la={stringifyByChunk:function(e,t,i){var n=[],r=0,a=e.length;if(a<=i)return String.fromCharCode.apply(null,e);for(;r<a;)t==="array"||t==="nodebuffer"?n.push(String.fromCharCode.apply(null,e.slice(r,Math.min(r+i,a)))):n.push(String.fromCharCode.apply(null,e.subarray(r,Math.min(r+i,a)))),r+=i;return n.join("")},stringifyByChar:function(e){for(var t="",i=0;i<e.length;i++)t+=String.fromCharCode(e[i]);return t},applyCanBeUsed:{uint8array:(function(){try{return xt.uint8array&&String.fromCharCode.apply(null,new Uint8Array(1)).length===1}catch{return!1}})(),nodebuffer:(function(){try{return xt.nodebuffer&&String.fromCharCode.apply(null,Si.allocBuffer(1)).length===1}catch{return!1}})()}};function On(e){var t=65536,i=J.getTypeOf(e),n=!0;if(i==="uint8array"?n=la.applyCanBeUsed.uint8array:i==="nodebuffer"&&(n=la.applyCanBeUsed.nodebuffer),n)for(;t>1;)try{return la.stringifyByChunk(e,i,t)}catch{t=Math.floor(t/2)}return la.stringifyByChar(e)}J.applyFromCharCode=On;function da(e,t){for(var i=0;i<e.length;i++)t[i]=e[i];return t}var wt={};wt.string={string:Ln,array:function(e){return ca(e,new Array(e.length))},arraybuffer:function(e){return wt.string.uint8array(e).buffer},uint8array:function(e){return ca(e,new Uint8Array(e.length))},nodebuffer:function(e){return ca(e,Si.allocBuffer(e.length))}};wt.array={string:On,array:Ln,arraybuffer:function(e){return new Uint8Array(e).buffer},uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return Si.newBufferFrom(e)}};wt.arraybuffer={string:function(e){return On(new Uint8Array(e))},array:function(e){return da(new Uint8Array(e),new Array(e.byteLength))},arraybuffer:Ln,uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return Si.newBufferFrom(new Uint8Array(e))}};wt.uint8array={string:On,array:function(e){return da(e,new Array(e.length))},arraybuffer:function(e){return e.buffer},uint8array:Ln,nodebuffer:function(e){return Si.newBufferFrom(e)}};wt.nodebuffer={string:On,array:function(e){return da(e,new Array(e.length))},arraybuffer:function(e){return wt.nodebuffer.uint8array(e).buffer},uint8array:function(e){return da(e,new Uint8Array(e.length))},nodebuffer:Ln};J.transformTo=function(e,t){if(t||(t=""),!e)return t;J.checkSupport(e);var i=J.getTypeOf(t),n=wt[i][e](t);return n};J.resolve=function(e){for(var t=e.split("/"),i=[],n=0;n<t.length;n++){var r=t[n];r==="."||r===""&&n!==0&&n!==t.length-1||(r===".."?i.pop():i.push(r))}return i.join("/")};J.getTypeOf=function(e){if(typeof e=="string")return"string";if(Object.prototype.toString.call(e)==="[object Array]")return"array";if(xt.nodebuffer&&Si.isBuffer(e))return"nodebuffer";if(xt.uint8array&&e instanceof Uint8Array)return"uint8array";if(xt.arraybuffer&&e instanceof ArrayBuffer)return"arraybuffer"};J.checkSupport=function(e){var t=xt[e.toLowerCase()];if(!t)throw new Error(e+" is not supported by this platform")};J.MAX_VALUE_16BITS=65535;J.MAX_VALUE_32BITS=-1;J.pretty=function(e){var t="",i,n;for(n=0;n<(e||"").length;n++)i=e.charCodeAt(n),t+="\\x"+(i<16?"0":"")+i.toString(16).toUpperCase();return t};J.delay=function(e,t,i){setImmediate(function(){e.apply(i||null,t||[])})};J.inherits=function(e,t){var i=function(){};i.prototype=t.prototype,e.prototype=new i};J.extend=function(){var e={},t,i;for(t=0;t<arguments.length;t++)for(i in arguments[t])Object.prototype.hasOwnProperty.call(arguments[t],i)&&typeof e[i]=="undefined"&&(e[i]=arguments[t][i]);return e};J.prepareContent=function(e,t,i,n,r){var a=To.Promise.resolve(t).then(function(s){var o=xt.blob&&(s instanceof Blob||["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(s))!==-1);return o&&typeof FileReader!="undefined"?new To.Promise(function(l,c){var d=new FileReader;d.onload=function(u){l(u.target.result)},d.onerror=function(u){c(u.target.error)},d.readAsArrayBuffer(s)}):s});return a.then(function(s){var o=J.getTypeOf(s);return o?(o==="arraybuffer"?s=J.transformTo("uint8array",s):o==="string"&&(r?s=xy.decode(s):i&&n!==!0&&(s=wy(s))),s):To.Promise.reject(new Error("Can't read the data of '"+e+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})}});var ge=k((M1,Mu)=>{"use strict";function Iu(e){this.name=e||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}Iu.prototype={push:function(e){this.emit("data",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit("error",e)}return!0},error:function(e){return this.isFinished?!1:(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit("error",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var i=0;i<this._listeners[e].length;i++)this._listeners[e][i].call(this,t)},pipe:function(e){return e.registerPrevious(this)},registerPrevious:function(e){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=e.streamInfo,this.mergeStreamInfo(),this.previous=e;var t=this;return e.on("data",function(i){t.processChunk(i)}),e.on("end",function(){t.end()}),e.on("error",function(i){t.error(i)}),this},pause:function(){return this.isPaused||this.isFinished?!1:(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;this.isPaused=!1;var e=!1;return this.generatedError&&(this.error(this.generatedError),e=!0),this.previous&&this.previous.resume(),!e},flush:function(){},processChunk:function(e){this.push(e)},withStreamInfo:function(e,t){return this.extraStreamInfo[e]=t,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var e in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,e)&&(this.streamInfo[e]=this.extraStreamInfo[e])},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var e="Worker "+this.name;return this.previous?this.previous+" -> "+e:e}};Mu.exports=Iu});var Ci=k(_t=>{"use strict";var Ai=V(),qt=nt(),_y=Sn(),ua=ge(),In=new Array(256);for(rt=0;rt<256;rt++)In[rt]=rt>=252?6:rt>=248?5:rt>=240?4:rt>=224?3:rt>=192?2:1;var rt;In[254]=In[254]=1;var Ey=function(e){var t,i,n,r,a,s=e.length,o=0;for(r=0;r<s;r++)i=e.charCodeAt(r),(i&64512)===55296&&r+1<s&&(n=e.charCodeAt(r+1),(n&64512)===56320&&(i=65536+(i-55296<<10)+(n-56320),r++)),o+=i<128?1:i<2048?2:i<65536?3:4;for(qt.uint8array?t=new Uint8Array(o):t=new Array(o),a=0,r=0;a<o;r++)i=e.charCodeAt(r),(i&64512)===55296&&r+1<s&&(n=e.charCodeAt(r+1),(n&64512)===56320&&(i=65536+(i-55296<<10)+(n-56320),r++)),i<128?t[a++]=i:i<2048?(t[a++]=192|i>>>6,t[a++]=128|i&63):i<65536?(t[a++]=224|i>>>12,t[a++]=128|i>>>6&63,t[a++]=128|i&63):(t[a++]=240|i>>>18,t[a++]=128|i>>>12&63,t[a++]=128|i>>>6&63,t[a++]=128|i&63);return t},Sy=function(e,t){var i;for(t=t||e.length,t>e.length&&(t=e.length),i=t-1;i>=0&&(e[i]&192)===128;)i--;return i<0||i===0?t:i+In[e[i]]>t?i:t},Ay=function(e){var t,i,n,r,a=e.length,s=new Array(a*2);for(i=0,t=0;t<a;){if(n=e[t++],n<128){s[i++]=n;continue}if(r=In[n],r>4){s[i++]=65533,t+=r-1;continue}for(n&=r===2?31:r===3?15:7;r>1&&t<a;)n=n<<6|e[t++]&63,r--;if(r>1){s[i++]=65533;continue}n<65536?s[i++]=n:(n-=65536,s[i++]=55296|n>>10&1023,s[i++]=56320|n&1023)}return s.length!==i&&(s.subarray?s=s.subarray(0,i):s.length=i),Ai.applyFromCharCode(s)};_t.utf8encode=function(t){return qt.nodebuffer?_y.newBufferFrom(t,"utf-8"):Ey(t)};_t.utf8decode=function(t){return qt.nodebuffer?Ai.transformTo("nodebuffer",t).toString("utf-8"):(t=Ai.transformTo(qt.uint8array?"uint8array":"array",t),Ay(t))};function pa(){ua.call(this,"utf-8 decode"),this.leftOver=null}Ai.inherits(pa,ua);pa.prototype.processChunk=function(e){var t=Ai.transformTo(qt.uint8array?"uint8array":"array",e.data);if(this.leftOver&&this.leftOver.length){if(qt.uint8array){var i=t;t=new Uint8Array(i.length+this.leftOver.length),t.set(this.leftOver,0),t.set(i,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var n=Sy(t),r=t;n!==t.length&&(qt.uint8array?(r=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(r=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:_t.utf8decode(r),meta:e.meta})};pa.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:_t.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)};_t.Utf8DecodeWorker=pa;function ko(){ua.call(this,"utf-8 encode")}Ai.inherits(ko,ua);ko.prototype.processChunk=function(e){this.push({data:_t.utf8encode(e.data),meta:e.meta})};_t.Utf8EncodeWorker=ko});var Du=k((P1,ju)=>{"use strict";var Ru=ge(),Pu=V();function Lo(e){Ru.call(this,"ConvertWorker to "+e),this.destType=e}Pu.inherits(Lo,Ru);Lo.prototype.processChunk=function(e){this.push({data:Pu.transformTo(this.destType,e.data),meta:e.meta})};ju.exports=Lo});var Bu=k((j1,Nu)=>{"use strict";var zu=go().Readable,Cy=V();Cy.inherits(Oo,zu);function Oo(e,t,i){zu.call(this,t),this._helper=e;var n=this;e.on("data",function(r,a){n.push(r)||n._helper.pause(),i&&i(a)}).on("error",function(r){n.emit("error",r)}).on("end",function(){n.push(null)})}Oo.prototype._read=function(){this._helper.resume()};Nu.exports=Oo});var Io=k((D1,$u)=>{"use strict";var Gt=V(),Ty=Du(),ky=ge(),Ly=vo(),Oy=nt(),Iy=Ei(),Fu=null;if(Oy.nodestream)try{Fu=Bu()}catch{}function My(e,t,i){switch(e){case"blob":return Gt.newBlob(Gt.transformTo("arraybuffer",t),i);case"base64":return Ly.encode(t);default:return Gt.transformTo(e,t)}}function Ry(e,t){var i,n=0,r=null,a=0;for(i=0;i<t.length;i++)a+=t[i].length;switch(e){case"string":return t.join("");case"array":return Array.prototype.concat.apply([],t);case"uint8array":for(r=new Uint8Array(a),i=0;i<t.length;i++)r.set(t[i],n),n+=t[i].length;return r;case"nodebuffer":return Buffer.concat(t);default:throw new Error("concat : unsupported type '"+e+"'")}}function Py(e,t){return new Iy.Promise(function(i,n){var r=[],a=e._internalType,s=e._outputType,o=e._mimeType;e.on("data",function(l,c){r.push(l),t&&t(c)}).on("error",function(l){r=[],n(l)}).on("end",function(){try{var l=My(s,Ry(a,r),o);i(l)}catch(c){n(c)}r=[]}).resume()})}function Hu(e,t,i){var n=t;switch(t){case"blob":case"arraybuffer":n="uint8array";break;case"base64":n="string";break}try{this._internalType=n,this._outputType=t,this._mimeType=i,Gt.checkSupport(n),this._worker=e.pipe(new Ty(n)),e.lock()}catch(r){this._worker=new ky("error"),this._worker.error(r)}}Hu.prototype={accumulate:function(e){return Py(this,e)},on:function(e,t){var i=this;return e==="data"?this._worker.on(e,function(n){t.call(i,n.data,n.meta)}):this._worker.on(e,function(){Gt.delay(t,arguments,i)}),this},resume:function(){return Gt.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(e){if(Gt.checkSupport("nodestream"),this._outputType!=="nodebuffer")throw new Error(this._outputType+" is not supported by this method");return new Fu(this,{objectMode:this._outputType!=="nodebuffer"},e)}};$u.exports=Hu});var Mo=k(ke=>{"use strict";ke.base64=!1;ke.binary=!1;ke.dir=!1;ke.createFolders=!0;ke.date=null;ke.compression=null;ke.compressionOptions=null;ke.comment=null;ke.unixPermissions=null;ke.dosPermissions=null});var Ro=k((N1,Uu)=>{"use strict";var fa=V(),ha=ge(),jy=16*1024;function Ti(e){ha.call(this,"DataWorker");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,e.then(function(i){t.dataIsReady=!0,t.data=i,t.max=i&&i.length||0,t.type=fa.getTypeOf(i),t.isPaused||t._tickAndRepeat()},function(i){t.error(i)})}fa.inherits(Ti,ha);Ti.prototype.cleanUp=function(){ha.prototype.cleanUp.call(this),this.data=null};Ti.prototype.resume=function(){return ha.prototype.resume.call(this)?(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,fa.delay(this._tickAndRepeat,[],this)),!0):!1};Ti.prototype._tickAndRepeat=function(){this._tickScheduled=!1,!(this.isPaused||this.isFinished)&&(this._tick(),this.isFinished||(fa.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))};Ti.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=jy,t=null,i=Math.min(this.max,this.index+e);if(this.index>=this.max)return this.end();switch(this.type){case"string":t=this.data.substring(this.index,i);break;case"uint8array":t=this.data.subarray(this.index,i);break;case"array":case"nodebuffer":t=this.data.slice(this.index,i);break}return this.index=i,this.push({data:t,meta:{percent:this.max?this.index/this.max*100:0}})};Uu.exports=Ti});var ga=k((B1,Gu)=>{"use strict";var Dy=V();function zy(){for(var e,t=[],i=0;i<256;i++){e=i;for(var n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;t[i]=e}return t}var qu=zy();function Ny(e,t,i,n){var r=qu,a=n+i;e=e^-1;for(var s=n;s<a;s++)e=e>>>8^r[(e^t[s])&255];return e^-1}function By(e,t,i,n){var r=qu,a=n+i;e=e^-1;for(var s=n;s<a;s++)e=e>>>8^r[(e^t.charCodeAt(s))&255];return e^-1}Gu.exports=function(t,i){if(typeof t=="undefined"||!t.length)return 0;var n=Dy.getTypeOf(t)!=="string";return n?Ny(i|0,t,t.length,0):By(i|0,t,t.length,0)}});var jo=k((F1,Yu)=>{"use strict";var Wu=ge(),Fy=ga(),Hy=V();function Po(){Wu.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}Hy.inherits(Po,Wu);Po.prototype.processChunk=function(e){this.streamInfo.crc32=Fy(e.data,this.streamInfo.crc32||0),this.push(e)};Yu.exports=Po});var Ku=k((H1,Vu)=>{"use strict";var $y=V(),Do=ge();function zo(e){Do.call(this,"DataLengthProbe for "+e),this.propName=e,this.withStreamInfo(e,0)}$y.inherits(zo,Do);zo.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}Do.prototype.processChunk.call(this,e)};Vu.exports=zo});var ma=k(($1,Ju)=>{"use strict";var Xu=Ei(),Zu=Ro(),Uy=jo(),No=Ku();function Bo(e,t,i,n,r){this.compressedSize=e,this.uncompressedSize=t,this.crc32=i,this.compression=n,this.compressedContent=r}Bo.prototype={getContentWorker:function(){var e=new Zu(Xu.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new No("data_length")),t=this;return e.on("end",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),e},getCompressedWorker:function(){return new Zu(Xu.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}};Bo.createWorkerFrom=function(e,t,i){return e.pipe(new Uy).pipe(new No("uncompressedSize")).pipe(t.compressWorker(i)).pipe(new No("compressedSize")).withStreamInfo("compression",t)};Ju.exports=Bo});var ip=k((U1,tp)=>{"use strict";var qy=Io(),Gy=Ro(),Fo=Ci(),Ho=ma(),Qu=ge(),$o=function(e,t,i){this.name=e,this.dir=i.dir,this.date=i.date,this.comment=i.comment,this.unixPermissions=i.unixPermissions,this.dosPermissions=i.dosPermissions,this._data=t,this._dataBinary=i.binary,this.options={compression:i.compression,compressionOptions:i.compressionOptions}};$o.prototype={internalStream:function(e){var t=null,i="string";try{if(!e)throw new Error("No output type specified.");i=e.toLowerCase();var n=i==="string"||i==="text";(i==="binarystring"||i==="text")&&(i="string"),t=this._decompressWorker();var r=!this._dataBinary;r&&!n&&(t=t.pipe(new Fo.Utf8EncodeWorker)),!r&&n&&(t=t.pipe(new Fo.Utf8DecodeWorker))}catch(a){t=new Qu("error"),t.error(a)}return new qy(t,i,"")},async:function(e,t){return this.internalStream(e).accumulate(t)},nodeStream:function(e,t){return this.internalStream(e||"nodebuffer").toNodejsStream(t)},_compressWorker:function(e,t){if(this._data instanceof Ho&&this._data.compression.magic===e.magic)return this._data.getCompressedWorker();var i=this._decompressWorker();return this._dataBinary||(i=i.pipe(new Fo.Utf8EncodeWorker)),Ho.createWorkerFrom(i,e,t)},_decompressWorker:function(){return this._data instanceof Ho?this._data.getContentWorker():this._data instanceof Qu?this._data:new Gy(this._data)}};var ep=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],Wy=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")};for(ba=0;ba<ep.length;ba++)$o.prototype[ep[ba]]=Wy;var ba;tp.exports=$o});var at=k(ue=>{"use strict";var Yy=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Int32Array!="undefined";function Vy(e,t){return Object.prototype.hasOwnProperty.call(e,t)}ue.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var i=t.shift();if(i){if(typeof i!="object")throw new TypeError(i+"must be non-object");for(var n in i)Vy(i,n)&&(e[n]=i[n])}}return e};ue.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var Ky={arraySet:function(e,t,i,n,r){if(t.subarray&&e.subarray){e.set(t.subarray(i,i+n),r);return}for(var a=0;a<n;a++)e[r+a]=t[i+a]},flattenChunks:function(e){var t,i,n,r,a,s;for(n=0,t=0,i=e.length;t<i;t++)n+=e[t].length;for(s=new Uint8Array(n),r=0,t=0,i=e.length;t<i;t++)a=e[t],s.set(a,r),r+=a.length;return s}},Xy={arraySet:function(e,t,i,n,r){for(var a=0;a<n;a++)e[r+a]=t[i+a]},flattenChunks:function(e){return[].concat.apply([],e)}};ue.setTyped=function(e){e?(ue.Buf8=Uint8Array,ue.Buf16=Uint16Array,ue.Buf32=Int32Array,ue.assign(ue,Ky)):(ue.Buf8=Array,ue.Buf16=Array,ue.Buf32=Array,ue.assign(ue,Xy))};ue.setTyped(Yy)});var Ap=k(Oi=>{"use strict";var Zy=at(),Jy=4,np=0,rp=1,Qy=2;function Li(e){for(var t=e.length;--t>=0;)e[t]=0}var ev=0,dp=1,tv=2,iv=3,nv=258,Ko=29,zn=256,Rn=zn+1+Ko,ki=30,Xo=19,up=2*Rn+1,Wt=15,Uo=16,rv=7,Zo=256,pp=16,fp=17,hp=18,Yo=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],ya=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],av=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],gp=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],sv=512,st=new Array((Rn+2)*2);Li(st);var Mn=new Array(ki*2);Li(Mn);var Pn=new Array(sv);Li(Pn);var jn=new Array(nv-iv+1);Li(jn);var Jo=new Array(Ko);Li(Jo);var va=new Array(ki);Li(va);function qo(e,t,i,n,r){this.static_tree=e,this.extra_bits=t,this.extra_base=i,this.elems=n,this.max_length=r,this.has_stree=e&&e.length}var mp,bp,yp;function Go(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function vp(e){return e<256?Pn[e]:Pn[256+(e>>>7)]}function Dn(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function fe(e,t,i){e.bi_valid>Uo-i?(e.bi_buf|=t<<e.bi_valid&65535,Dn(e,e.bi_buf),e.bi_buf=t>>Uo-e.bi_valid,e.bi_valid+=i-Uo):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=i)}function Fe(e,t,i){fe(e,i[t*2],i[t*2+1])}function xp(e,t){var i=0;do i|=e&1,e>>>=1,i<<=1;while(--t>0);return i>>>1}function ov(e){e.bi_valid===16?(Dn(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)}function lv(e,t){var i=t.dyn_tree,n=t.max_code,r=t.stat_desc.static_tree,a=t.stat_desc.has_stree,s=t.stat_desc.extra_bits,o=t.stat_desc.extra_base,l=t.stat_desc.max_length,c,d,u,p,f,m,h=0;for(p=0;p<=Wt;p++)e.bl_count[p]=0;for(i[e.heap[e.heap_max]*2+1]=0,c=e.heap_max+1;c<up;c++)d=e.heap[c],p=i[i[d*2+1]*2+1]+1,p>l&&(p=l,h++),i[d*2+1]=p,!(d>n)&&(e.bl_count[p]++,f=0,d>=o&&(f=s[d-o]),m=i[d*2],e.opt_len+=m*(p+f),a&&(e.static_len+=m*(r[d*2+1]+f)));if(h!==0){do{for(p=l-1;e.bl_count[p]===0;)p--;e.bl_count[p]--,e.bl_count[p+1]+=2,e.bl_count[l]--,h-=2}while(h>0);for(p=l;p!==0;p--)for(d=e.bl_count[p];d!==0;)u=e.heap[--c],!(u>n)&&(i[u*2+1]!==p&&(e.opt_len+=(p-i[u*2+1])*i[u*2],i[u*2+1]=p),d--)}}function wp(e,t,i){var n=new Array(Wt+1),r=0,a,s;for(a=1;a<=Wt;a++)n[a]=r=r+i[a-1]<<1;for(s=0;s<=t;s++){var o=e[s*2+1];o!==0&&(e[s*2]=xp(n[o]++,o))}}function cv(){var e,t,i,n,r,a=new Array(Wt+1);for(i=0,n=0;n<Ko-1;n++)for(Jo[n]=i,e=0;e<1<<Yo[n];e++)jn[i++]=n;for(jn[i-1]=n,r=0,n=0;n<16;n++)for(va[n]=r,e=0;e<1<<ya[n];e++)Pn[r++]=n;for(r>>=7;n<ki;n++)for(va[n]=r<<7,e=0;e<1<<ya[n]-7;e++)Pn[256+r++]=n;for(t=0;t<=Wt;t++)a[t]=0;for(e=0;e<=143;)st[e*2+1]=8,e++,a[8]++;for(;e<=255;)st[e*2+1]=9,e++,a[9]++;for(;e<=279;)st[e*2+1]=7,e++,a[7]++;for(;e<=287;)st[e*2+1]=8,e++,a[8]++;for(wp(st,Rn+1,a),e=0;e<ki;e++)Mn[e*2+1]=5,Mn[e*2]=xp(e,5);mp=new qo(st,Yo,zn+1,Rn,Wt),bp=new qo(Mn,ya,0,ki,Wt),yp=new qo(new Array(0),av,0,Xo,rv)}function _p(e){var t;for(t=0;t<Rn;t++)e.dyn_ltree[t*2]=0;for(t=0;t<ki;t++)e.dyn_dtree[t*2]=0;for(t=0;t<Xo;t++)e.bl_tree[t*2]=0;e.dyn_ltree[Zo*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function Ep(e){e.bi_valid>8?Dn(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function dv(e,t,i,n){Ep(e),n&&(Dn(e,i),Dn(e,~i)),Zy.arraySet(e.pending_buf,e.window,t,i,e.pending),e.pending+=i}function ap(e,t,i,n){var r=t*2,a=i*2;return e[r]<e[a]||e[r]===e[a]&&n[t]<=n[i]}function Wo(e,t,i){for(var n=e.heap[i],r=i<<1;r<=e.heap_len&&(r<e.heap_len&&ap(t,e.heap[r+1],e.heap[r],e.depth)&&r++,!ap(t,n,e.heap[r],e.depth));)e.heap[i]=e.heap[r],i=r,r<<=1;e.heap[i]=n}function sp(e,t,i){var n,r,a=0,s,o;if(e.last_lit!==0)do n=e.pending_buf[e.d_buf+a*2]<<8|e.pending_buf[e.d_buf+a*2+1],r=e.pending_buf[e.l_buf+a],a++,n===0?Fe(e,r,t):(s=jn[r],Fe(e,s+zn+1,t),o=Yo[s],o!==0&&(r-=Jo[s],fe(e,r,o)),n--,s=vp(n),Fe(e,s,i),o=ya[s],o!==0&&(n-=va[s],fe(e,n,o)));while(a<e.last_lit);Fe(e,Zo,t)}function Vo(e,t){var i=t.dyn_tree,n=t.stat_desc.static_tree,r=t.stat_desc.has_stree,a=t.stat_desc.elems,s,o,l=-1,c;for(e.heap_len=0,e.heap_max=up,s=0;s<a;s++)i[s*2]!==0?(e.heap[++e.heap_len]=l=s,e.depth[s]=0):i[s*2+1]=0;for(;e.heap_len<2;)c=e.heap[++e.heap_len]=l<2?++l:0,i[c*2]=1,e.depth[c]=0,e.opt_len--,r&&(e.static_len-=n[c*2+1]);for(t.max_code=l,s=e.heap_len>>1;s>=1;s--)Wo(e,i,s);c=a;do s=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Wo(e,i,1),o=e.heap[1],e.heap[--e.heap_max]=s,e.heap[--e.heap_max]=o,i[c*2]=i[s*2]+i[o*2],e.depth[c]=(e.depth[s]>=e.depth[o]?e.depth[s]:e.depth[o])+1,i[s*2+1]=i[o*2+1]=c,e.heap[1]=c++,Wo(e,i,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],lv(e,t),wp(i,l,e.bl_count)}function op(e,t,i){var n,r=-1,a,s=t[1],o=0,l=7,c=4;for(s===0&&(l=138,c=3),t[(i+1)*2+1]=65535,n=0;n<=i;n++)a=s,s=t[(n+1)*2+1],!(++o<l&&a===s)&&(o<c?e.bl_tree[a*2]+=o:a!==0?(a!==r&&e.bl_tree[a*2]++,e.bl_tree[pp*2]++):o<=10?e.bl_tree[fp*2]++:e.bl_tree[hp*2]++,o=0,r=a,s===0?(l=138,c=3):a===s?(l=6,c=3):(l=7,c=4))}function lp(e,t,i){var n,r=-1,a,s=t[1],o=0,l=7,c=4;for(s===0&&(l=138,c=3),n=0;n<=i;n++)if(a=s,s=t[(n+1)*2+1],!(++o<l&&a===s)){if(o<c)do Fe(e,a,e.bl_tree);while(--o!==0);else a!==0?(a!==r&&(Fe(e,a,e.bl_tree),o--),Fe(e,pp,e.bl_tree),fe(e,o-3,2)):o<=10?(Fe(e,fp,e.bl_tree),fe(e,o-3,3)):(Fe(e,hp,e.bl_tree),fe(e,o-11,7));o=0,r=a,s===0?(l=138,c=3):a===s?(l=6,c=3):(l=7,c=4)}}function uv(e){var t;for(op(e,e.dyn_ltree,e.l_desc.max_code),op(e,e.dyn_dtree,e.d_desc.max_code),Vo(e,e.bl_desc),t=Xo-1;t>=3&&e.bl_tree[gp[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function pv(e,t,i,n){var r;for(fe(e,t-257,5),fe(e,i-1,5),fe(e,n-4,4),r=0;r<n;r++)fe(e,e.bl_tree[gp[r]*2+1],3);lp(e,e.dyn_ltree,t-1),lp(e,e.dyn_dtree,i-1)}function fv(e){var t=4093624447,i;for(i=0;i<=31;i++,t>>>=1)if(t&1&&e.dyn_ltree[i*2]!==0)return np;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return rp;for(i=32;i<zn;i++)if(e.dyn_ltree[i*2]!==0)return rp;return np}var cp=!1;function hv(e){cp||(cv(),cp=!0),e.l_desc=new Go(e.dyn_ltree,mp),e.d_desc=new Go(e.dyn_dtree,bp),e.bl_desc=new Go(e.bl_tree,yp),e.bi_buf=0,e.bi_valid=0,_p(e)}function Sp(e,t,i,n){fe(e,(ev<<1)+(n?1:0),3),dv(e,t,i,!0)}function gv(e){fe(e,dp<<1,3),Fe(e,Zo,st),ov(e)}function mv(e,t,i,n){var r,a,s=0;e.level>0?(e.strm.data_type===Qy&&(e.strm.data_type=fv(e)),Vo(e,e.l_desc),Vo(e,e.d_desc),s=uv(e),r=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=r&&(r=a)):r=a=i+5,i+4<=r&&t!==-1?Sp(e,t,i,n):e.strategy===Jy||a===r?(fe(e,(dp<<1)+(n?1:0),3),sp(e,st,Mn)):(fe(e,(tv<<1)+(n?1:0),3),pv(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),sp(e,e.dyn_ltree,e.dyn_dtree)),_p(e),n&&Ep(e)}function bv(e,t,i){return e.pending_buf[e.d_buf+e.last_lit*2]=t>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=t&255,e.pending_buf[e.l_buf+e.last_lit]=i&255,e.last_lit++,t===0?e.dyn_ltree[i*2]++:(e.matches++,t--,e.dyn_ltree[(jn[i]+zn+1)*2]++,e.dyn_dtree[vp(t)*2]++),e.last_lit===e.lit_bufsize-1}Oi._tr_init=hv;Oi._tr_stored_block=Sp;Oi._tr_flush_block=mv;Oi._tr_tally=bv;Oi._tr_align=gv});var Qo=k((W1,Cp)=>{"use strict";function yv(e,t,i,n){for(var r=e&65535|0,a=e>>>16&65535|0,s=0;i!==0;){s=i>2e3?2e3:i,i-=s;do r=r+t[n++]|0,a=a+r|0;while(--s);r%=65521,a%=65521}return r|a<<16|0}Cp.exports=yv});var el=k((Y1,Tp)=>{"use strict";function vv(){for(var e,t=[],i=0;i<256;i++){e=i;for(var n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;t[i]=e}return t}var xv=vv();function wv(e,t,i,n){var r=xv,a=n+i;e^=-1;for(var s=n;s<a;s++)e=e>>>8^r[(e^t[s])&255];return e^-1}Tp.exports=wv});var xa=k((V1,kp)=>{"use strict";kp.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}});var zp=k(Ue=>{"use strict";var pe=at(),we=Ap(),Mp=Qo(),Et=el(),_v=xa(),Xt=0,Ev=1,Sv=3,kt=4,Lp=5,$e=0,Op=1,_e=-2,Av=-3,tl=-5,Cv=-1,Tv=1,wa=2,kv=3,Lv=4,Ov=0,Iv=2,Aa=8,Mv=9,Rv=15,Pv=8,jv=29,Dv=256,nl=Dv+1+jv,zv=30,Nv=19,Bv=2*nl+1,Fv=15,N=3,Ct=258,Le=Ct+N+1,Hv=32,Ca=42,rl=69,_a=73,Ea=91,Sa=103,Yt=113,Bn=666,ie=1,Fn=2,Vt=3,Ri=4,$v=3;function Tt(e,t){return e.msg=_v[t],t}function Ip(e){return(e<<1)-(e>4?9:0)}function At(e){for(var t=e.length;--t>=0;)e[t]=0}function St(e){var t=e.state,i=t.pending;i>e.avail_out&&(i=e.avail_out),i!==0&&(pe.arraySet(e.output,t.pending_buf,t.pending_out,i,e.next_out),e.next_out+=i,t.pending_out+=i,e.total_out+=i,e.avail_out-=i,t.pending-=i,t.pending===0&&(t.pending_out=0))}function ae(e,t){we._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,St(e.strm)}function F(e,t){e.pending_buf[e.pending++]=t}function Nn(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function Uv(e,t,i,n){var r=e.avail_in;return r>n&&(r=n),r===0?0:(e.avail_in-=r,pe.arraySet(t,e.input,e.next_in,r,i),e.state.wrap===1?e.adler=Mp(e.adler,t,r,i):e.state.wrap===2&&(e.adler=Et(e.adler,t,r,i)),e.next_in+=r,e.total_in+=r,r)}function Rp(e,t){var i=e.max_chain_length,n=e.strstart,r,a,s=e.prev_length,o=e.nice_match,l=e.strstart>e.w_size-Le?e.strstart-(e.w_size-Le):0,c=e.window,d=e.w_mask,u=e.prev,p=e.strstart+Ct,f=c[n+s-1],m=c[n+s];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do if(r=t,!(c[r+s]!==m||c[r+s-1]!==f||c[r]!==c[n]||c[++r]!==c[n+1])){n+=2,r++;do;while(c[++n]===c[++r]&&c[++n]===c[++r]&&c[++n]===c[++r]&&c[++n]===c[++r]&&c[++n]===c[++r]&&c[++n]===c[++r]&&c[++n]===c[++r]&&c[++n]===c[++r]&&n<p);if(a=Ct-(p-n),n=p-Ct,a>s){if(e.match_start=t,s=a,a>=o)break;f=c[n+s-1],m=c[n+s]}}while((t=u[t&d])>l&&--i!==0);return s<=e.lookahead?s:e.lookahead}function Kt(e){var t=e.w_size,i,n,r,a,s;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Le)){pe.arraySet(e.window,e.window,t,t,0),e.match_start-=t,e.strstart-=t,e.block_start-=t,n=e.hash_size,i=n;do r=e.head[--i],e.head[i]=r>=t?r-t:0;while(--n);n=t,i=n;do r=e.prev[--i],e.prev[i]=r>=t?r-t:0;while(--n);a+=t}if(e.strm.avail_in===0)break;if(n=Uv(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=n,e.lookahead+e.insert>=N)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+N-1])&e.hash_mask,e.prev[s&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=s,s++,e.insert--,!(e.lookahead+e.insert<N)););}while(e.lookahead<Le&&e.strm.avail_in!==0)}function qv(e,t){var i=65535;for(i>e.pending_buf_size-5&&(i=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Kt(e),e.lookahead===0&&t===Xt)return ie;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+i;if((e.strstart===0||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,ae(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-Le&&(ae(e,!1),e.strm.avail_out===0))return ie}return e.insert=0,t===kt?(ae(e,!0),e.strm.avail_out===0?Vt:Ri):(e.strstart>e.block_start&&(ae(e,!1),e.strm.avail_out===0),ie)}function il(e,t){for(var i,n;;){if(e.lookahead<Le){if(Kt(e),e.lookahead<Le&&t===Xt)return ie;if(e.lookahead===0)break}if(i=0,e.lookahead>=N&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+N-1])&e.hash_mask,i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),i!==0&&e.strstart-i<=e.w_size-Le&&(e.match_length=Rp(e,i)),e.match_length>=N)if(n=we._tr_tally(e,e.strstart-e.match_start,e.match_length-N),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=N){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+N-1])&e.hash_mask,i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else n=we._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(ae(e,!1),e.strm.avail_out===0))return ie}return e.insert=e.strstart<N-1?e.strstart:N-1,t===kt?(ae(e,!0),e.strm.avail_out===0?Vt:Ri):e.last_lit&&(ae(e,!1),e.strm.avail_out===0)?ie:Fn}function Ii(e,t){for(var i,n,r;;){if(e.lookahead<Le){if(Kt(e),e.lookahead<Le&&t===Xt)return ie;if(e.lookahead===0)break}if(i=0,e.lookahead>=N&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+N-1])&e.hash_mask,i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=N-1,i!==0&&e.prev_length<e.max_lazy_match&&e.strstart-i<=e.w_size-Le&&(e.match_length=Rp(e,i),e.match_length<=5&&(e.strategy===Tv||e.match_length===N&&e.strstart-e.match_start>4096)&&(e.match_length=N-1)),e.prev_length>=N&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-N,n=we._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-N),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=r&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+N-1])&e.hash_mask,i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=N-1,e.strstart++,n&&(ae(e,!1),e.strm.avail_out===0))return ie}else if(e.match_available){if(n=we._tr_tally(e,0,e.window[e.strstart-1]),n&&ae(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return ie}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=we._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<N-1?e.strstart:N-1,t===kt?(ae(e,!0),e.strm.avail_out===0?Vt:Ri):e.last_lit&&(ae(e,!1),e.strm.avail_out===0)?ie:Fn}function Gv(e,t){for(var i,n,r,a,s=e.window;;){if(e.lookahead<=Ct){if(Kt(e),e.lookahead<=Ct&&t===Xt)return ie;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=N&&e.strstart>0&&(r=e.strstart-1,n=s[r],n===s[++r]&&n===s[++r]&&n===s[++r])){a=e.strstart+Ct;do;while(n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&r<a);e.match_length=Ct-(a-r),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=N?(i=we._tr_tally(e,1,e.match_length-N),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(i=we._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),i&&(ae(e,!1),e.strm.avail_out===0))return ie}return e.insert=0,t===kt?(ae(e,!0),e.strm.avail_out===0?Vt:Ri):e.last_lit&&(ae(e,!1),e.strm.avail_out===0)?ie:Fn}function Wv(e,t){for(var i;;){if(e.lookahead===0&&(Kt(e),e.lookahead===0)){if(t===Xt)return ie;break}if(e.match_length=0,i=we._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,i&&(ae(e,!1),e.strm.avail_out===0))return ie}return e.insert=0,t===kt?(ae(e,!0),e.strm.avail_out===0?Vt:Ri):e.last_lit&&(ae(e,!1),e.strm.avail_out===0)?ie:Fn}function He(e,t,i,n,r){this.good_length=e,this.max_lazy=t,this.nice_length=i,this.max_chain=n,this.func=r}var Mi;Mi=[new He(0,0,0,0,qv),new He(4,4,8,4,il),new He(4,5,16,8,il),new He(4,6,32,32,il),new He(4,4,16,16,Ii),new He(8,16,32,32,Ii),new He(8,16,128,128,Ii),new He(8,32,128,256,Ii),new He(32,128,258,1024,Ii),new He(32,258,258,4096,Ii)];function Yv(e){e.window_size=2*e.w_size,At(e.head),e.max_lazy_match=Mi[e.level].max_lazy,e.good_match=Mi[e.level].good_length,e.nice_match=Mi[e.level].nice_length,e.max_chain_length=Mi[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=N-1,e.match_available=0,e.ins_h=0}function Vv(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Aa,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new pe.Buf16(Bv*2),this.dyn_dtree=new pe.Buf16((2*zv+1)*2),this.bl_tree=new pe.Buf16((2*Nv+1)*2),At(this.dyn_ltree),At(this.dyn_dtree),At(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new pe.Buf16(Fv+1),this.heap=new pe.Buf16(2*nl+1),At(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new pe.Buf16(2*nl+1),At(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function Pp(e){var t;return!e||!e.state?Tt(e,_e):(e.total_in=e.total_out=0,e.data_type=Iv,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?Ca:Yt,e.adler=t.wrap===2?0:1,t.last_flush=Xt,we._tr_init(t),$e)}function jp(e){var t=Pp(e);return t===$e&&Yv(e.state),t}function Kv(e,t){return!e||!e.state||e.state.wrap!==2?_e:(e.state.gzhead=t,$e)}function Dp(e,t,i,n,r,a){if(!e)return _e;var s=1;if(t===Cv&&(t=6),n<0?(s=0,n=-n):n>15&&(s=2,n-=16),r<1||r>Mv||i!==Aa||n<8||n>15||t<0||t>9||a<0||a>Lv)return Tt(e,_e);n===8&&(n=9);var o=new Vv;return e.state=o,o.strm=e,o.wrap=s,o.gzhead=null,o.w_bits=n,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=r+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+N-1)/N),o.window=new pe.Buf8(o.w_size*2),o.head=new pe.Buf16(o.hash_size),o.prev=new pe.Buf16(o.w_size),o.lit_bufsize=1<<r+6,o.pending_buf_size=o.lit_bufsize*4,o.pending_buf=new pe.Buf8(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=t,o.strategy=a,o.method=i,jp(e)}function Xv(e,t){return Dp(e,t,Aa,Rv,Pv,Ov)}function Zv(e,t){var i,n,r,a;if(!e||!e.state||t>Lp||t<0)return e?Tt(e,_e):_e;if(n=e.state,!e.output||!e.input&&e.avail_in!==0||n.status===Bn&&t!==kt)return Tt(e,e.avail_out===0?tl:_e);if(n.strm=e,i=n.last_flush,n.last_flush=t,n.status===Ca)if(n.wrap===2)e.adler=0,F(n,31),F(n,139),F(n,8),n.gzhead?(F(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),F(n,n.gzhead.time&255),F(n,n.gzhead.time>>8&255),F(n,n.gzhead.time>>16&255),F(n,n.gzhead.time>>24&255),F(n,n.level===9?2:n.strategy>=wa||n.level<2?4:0),F(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(F(n,n.gzhead.extra.length&255),F(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=Et(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=rl):(F(n,0),F(n,0),F(n,0),F(n,0),F(n,0),F(n,n.level===9?2:n.strategy>=wa||n.level<2?4:0),F(n,$v),n.status=Yt);else{var s=Aa+(n.w_bits-8<<4)<<8,o=-1;n.strategy>=wa||n.level<2?o=0:n.level<6?o=1:n.level===6?o=2:o=3,s|=o<<6,n.strstart!==0&&(s|=Hv),s+=31-s%31,n.status=Yt,Nn(n,s),n.strstart!==0&&(Nn(n,e.adler>>>16),Nn(n,e.adler&65535)),e.adler=1}if(n.status===rl)if(n.gzhead.extra){for(r=n.pending;n.gzindex<(n.gzhead.extra.length&65535)&&!(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>r&&(e.adler=Et(e.adler,n.pending_buf,n.pending-r,r)),St(e),r=n.pending,n.pending===n.pending_buf_size));)F(n,n.gzhead.extra[n.gzindex]&255),n.gzindex++;n.gzhead.hcrc&&n.pending>r&&(e.adler=Et(e.adler,n.pending_buf,n.pending-r,r)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=_a)}else n.status=_a;if(n.status===_a)if(n.gzhead.name){r=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>r&&(e.adler=Et(e.adler,n.pending_buf,n.pending-r,r)),St(e),r=n.pending,n.pending===n.pending_buf_size)){a=1;break}n.gzindex<n.gzhead.name.length?a=n.gzhead.name.charCodeAt(n.gzindex++)&255:a=0,F(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>r&&(e.adler=Et(e.adler,n.pending_buf,n.pending-r,r)),a===0&&(n.gzindex=0,n.status=Ea)}else n.status=Ea;if(n.status===Ea)if(n.gzhead.comment){r=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>r&&(e.adler=Et(e.adler,n.pending_buf,n.pending-r,r)),St(e),r=n.pending,n.pending===n.pending_buf_size)){a=1;break}n.gzindex<n.gzhead.comment.length?a=n.gzhead.comment.charCodeAt(n.gzindex++)&255:a=0,F(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>r&&(e.adler=Et(e.adler,n.pending_buf,n.pending-r,r)),a===0&&(n.status=Sa)}else n.status=Sa;if(n.status===Sa&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&St(e),n.pending+2<=n.pending_buf_size&&(F(n,e.adler&255),F(n,e.adler>>8&255),e.adler=0,n.status=Yt)):n.status=Yt),n.pending!==0){if(St(e),e.avail_out===0)return n.last_flush=-1,$e}else if(e.avail_in===0&&Ip(t)<=Ip(i)&&t!==kt)return Tt(e,tl);if(n.status===Bn&&e.avail_in!==0)return Tt(e,tl);if(e.avail_in!==0||n.lookahead!==0||t!==Xt&&n.status!==Bn){var l=n.strategy===wa?Wv(n,t):n.strategy===kv?Gv(n,t):Mi[n.level].func(n,t);if((l===Vt||l===Ri)&&(n.status=Bn),l===ie||l===Vt)return e.avail_out===0&&(n.last_flush=-1),$e;if(l===Fn&&(t===Ev?we._tr_align(n):t!==Lp&&(we._tr_stored_block(n,0,0,!1),t===Sv&&(At(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),St(e),e.avail_out===0))return n.last_flush=-1,$e}return t!==kt?$e:n.wrap<=0?Op:(n.wrap===2?(F(n,e.adler&255),F(n,e.adler>>8&255),F(n,e.adler>>16&255),F(n,e.adler>>24&255),F(n,e.total_in&255),F(n,e.total_in>>8&255),F(n,e.total_in>>16&255),F(n,e.total_in>>24&255)):(Nn(n,e.adler>>>16),Nn(n,e.adler&65535)),St(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?$e:Op)}function Jv(e){var t;return!e||!e.state?_e:(t=e.state.status,t!==Ca&&t!==rl&&t!==_a&&t!==Ea&&t!==Sa&&t!==Yt&&t!==Bn?Tt(e,_e):(e.state=null,t===Yt?Tt(e,Av):$e))}function Qv(e,t){var i=t.length,n,r,a,s,o,l,c,d;if(!e||!e.state||(n=e.state,s=n.wrap,s===2||s===1&&n.status!==Ca||n.lookahead))return _e;for(s===1&&(e.adler=Mp(e.adler,t,i,0)),n.wrap=0,i>=n.w_size&&(s===0&&(At(n.head),n.strstart=0,n.block_start=0,n.insert=0),d=new pe.Buf8(n.w_size),pe.arraySet(d,t,i-n.w_size,n.w_size,0),t=d,i=n.w_size),o=e.avail_in,l=e.next_in,c=e.input,e.avail_in=i,e.next_in=0,e.input=t,Kt(n);n.lookahead>=N;){r=n.strstart,a=n.lookahead-(N-1);do n.ins_h=(n.ins_h<<n.hash_shift^n.window[r+N-1])&n.hash_mask,n.prev[r&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=r,r++;while(--a);n.strstart=r,n.lookahead=N-1,Kt(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=N-1,n.match_available=0,e.next_in=l,e.input=c,e.avail_in=o,n.wrap=s,$e}Ue.deflateInit=Xv;Ue.deflateInit2=Dp;Ue.deflateReset=jp;Ue.deflateResetKeep=Pp;Ue.deflateSetHeader=Kv;Ue.deflate=Zv;Ue.deflateEnd=Jv;Ue.deflateSetDictionary=Qv;Ue.deflateInfo="pako deflate (from Nodeca project)"});var al=k(Pi=>{"use strict";var Ta=at(),Np=!0,Bp=!0;try{String.fromCharCode.apply(null,[0])}catch{Np=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Bp=!1}var Hn=new Ta.Buf8(256);for(ot=0;ot<256;ot++)Hn[ot]=ot>=252?6:ot>=248?5:ot>=240?4:ot>=224?3:ot>=192?2:1;var ot;Hn[254]=Hn[254]=1;Pi.string2buf=function(e){var t,i,n,r,a,s=e.length,o=0;for(r=0;r<s;r++)i=e.charCodeAt(r),(i&64512)===55296&&r+1<s&&(n=e.charCodeAt(r+1),(n&64512)===56320&&(i=65536+(i-55296<<10)+(n-56320),r++)),o+=i<128?1:i<2048?2:i<65536?3:4;for(t=new Ta.Buf8(o),a=0,r=0;a<o;r++)i=e.charCodeAt(r),(i&64512)===55296&&r+1<s&&(n=e.charCodeAt(r+1),(n&64512)===56320&&(i=65536+(i-55296<<10)+(n-56320),r++)),i<128?t[a++]=i:i<2048?(t[a++]=192|i>>>6,t[a++]=128|i&63):i<65536?(t[a++]=224|i>>>12,t[a++]=128|i>>>6&63,t[a++]=128|i&63):(t[a++]=240|i>>>18,t[a++]=128|i>>>12&63,t[a++]=128|i>>>6&63,t[a++]=128|i&63);return t};function Fp(e,t){if(t<65534&&(e.subarray&&Bp||!e.subarray&&Np))return String.fromCharCode.apply(null,Ta.shrinkBuf(e,t));for(var i="",n=0;n<t;n++)i+=String.fromCharCode(e[n]);return i}Pi.buf2binstring=function(e){return Fp(e,e.length)};Pi.binstring2buf=function(e){for(var t=new Ta.Buf8(e.length),i=0,n=t.length;i<n;i++)t[i]=e.charCodeAt(i);return t};Pi.buf2string=function(e,t){var i,n,r,a,s=t||e.length,o=new Array(s*2);for(n=0,i=0;i<s;){if(r=e[i++],r<128){o[n++]=r;continue}if(a=Hn[r],a>4){o[n++]=65533,i+=a-1;continue}for(r&=a===2?31:a===3?15:7;a>1&&i<s;)r=r<<6|e[i++]&63,a--;if(a>1){o[n++]=65533;continue}r<65536?o[n++]=r:(r-=65536,o[n++]=55296|r>>10&1023,o[n++]=56320|r&1023)}return Fp(o,n)};Pi.utf8border=function(e,t){var i;for(t=t||e.length,t>e.length&&(t=e.length),i=t-1;i>=0&&(e[i]&192)===128;)i--;return i<0||i===0?t:i+Hn[e[i]]>t?i:t}});var sl=k((Z1,Hp)=>{"use strict";function ex(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}Hp.exports=ex});var Gp=k(qn=>{"use strict";var $n=zp(),Un=at(),ll=al(),cl=xa(),tx=sl(),qp=Object.prototype.toString,ix=0,ol=4,ji=0,$p=1,Up=2,nx=-1,rx=0,ax=8;function Zt(e){if(!(this instanceof Zt))return new Zt(e);this.options=Un.assign({level:nx,method:ax,chunkSize:16384,windowBits:15,memLevel:8,strategy:rx,to:""},e||{});var t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new tx,this.strm.avail_out=0;var i=$n.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(i!==ji)throw new Error(cl[i]);if(t.header&&$n.deflateSetHeader(this.strm,t.header),t.dictionary){var n;if(typeof t.dictionary=="string"?n=ll.string2buf(t.dictionary):qp.call(t.dictionary)==="[object ArrayBuffer]"?n=new Uint8Array(t.dictionary):n=t.dictionary,i=$n.deflateSetDictionary(this.strm,n),i!==ji)throw new Error(cl[i]);this._dict_set=!0}}Zt.prototype.push=function(e,t){var i=this.strm,n=this.options.chunkSize,r,a;if(this.ended)return!1;a=t===~~t?t:t===!0?ol:ix,typeof e=="string"?i.input=ll.string2buf(e):qp.call(e)==="[object ArrayBuffer]"?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;do{if(i.avail_out===0&&(i.output=new Un.Buf8(n),i.next_out=0,i.avail_out=n),r=$n.deflate(i,a),r!==$p&&r!==ji)return this.onEnd(r),this.ended=!0,!1;(i.avail_out===0||i.avail_in===0&&(a===ol||a===Up))&&(this.options.to==="string"?this.onData(ll.buf2binstring(Un.shrinkBuf(i.output,i.next_out))):this.onData(Un.shrinkBuf(i.output,i.next_out)))}while((i.avail_in>0||i.avail_out===0)&&r!==$p);return a===ol?(r=$n.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===ji):(a===Up&&(this.onEnd(ji),i.avail_out=0),!0)};Zt.prototype.onData=function(e){this.chunks.push(e)};Zt.prototype.onEnd=function(e){e===ji&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Un.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function dl(e,t){var i=new Zt(t);if(i.push(e,!0),i.err)throw i.msg||cl[i.err];return i.result}function sx(e,t){return t=t||{},t.raw=!0,dl(e,t)}function ox(e,t){return t=t||{},t.gzip=!0,dl(e,t)}qn.Deflate=Zt;qn.deflate=dl;qn.deflateRaw=sx;qn.gzip=ox});var Yp=k((Q1,Wp)=>{"use strict";var ka=30,lx=12;Wp.exports=function(t,i){var n,r,a,s,o,l,c,d,u,p,f,m,h,g,b,y,v,x,w,S,A,_,T,R,E;n=t.state,r=t.next_in,R=t.input,a=r+(t.avail_in-5),s=t.next_out,E=t.output,o=s-(i-t.avail_out),l=s+(t.avail_out-257),c=n.dmax,d=n.wsize,u=n.whave,p=n.wnext,f=n.window,m=n.hold,h=n.bits,g=n.lencode,b=n.distcode,y=(1<<n.lenbits)-1,v=(1<<n.distbits)-1;e:do{h<15&&(m+=R[r++]<<h,h+=8,m+=R[r++]<<h,h+=8),x=g[m&y];t:for(;;){if(w=x>>>24,m>>>=w,h-=w,w=x>>>16&255,w===0)E[s++]=x&65535;else if(w&16){S=x&65535,w&=15,w&&(h<w&&(m+=R[r++]<<h,h+=8),S+=m&(1<<w)-1,m>>>=w,h-=w),h<15&&(m+=R[r++]<<h,h+=8,m+=R[r++]<<h,h+=8),x=b[m&v];i:for(;;){if(w=x>>>24,m>>>=w,h-=w,w=x>>>16&255,w&16){if(A=x&65535,w&=15,h<w&&(m+=R[r++]<<h,h+=8,h<w&&(m+=R[r++]<<h,h+=8)),A+=m&(1<<w)-1,A>c){t.msg="invalid distance too far back",n.mode=ka;break e}if(m>>>=w,h-=w,w=s-o,A>w){if(w=A-w,w>u&&n.sane){t.msg="invalid distance too far back",n.mode=ka;break e}if(_=0,T=f,p===0){if(_+=d-w,w<S){S-=w;do E[s++]=f[_++];while(--w);_=s-A,T=E}}else if(p<w){if(_+=d+p-w,w-=p,w<S){S-=w;do E[s++]=f[_++];while(--w);if(_=0,p<S){w=p,S-=w;do E[s++]=f[_++];while(--w);_=s-A,T=E}}}else if(_+=p-w,w<S){S-=w;do E[s++]=f[_++];while(--w);_=s-A,T=E}for(;S>2;)E[s++]=T[_++],E[s++]=T[_++],E[s++]=T[_++],S-=3;S&&(E[s++]=T[_++],S>1&&(E[s++]=T[_++]))}else{_=s-A;do E[s++]=E[_++],E[s++]=E[_++],E[s++]=E[_++],S-=3;while(S>2);S&&(E[s++]=E[_++],S>1&&(E[s++]=E[_++]))}}else if((w&64)===0){x=b[(x&65535)+(m&(1<<w)-1)];continue i}else{t.msg="invalid distance code",n.mode=ka;break e}break}}else if((w&64)===0){x=g[(x&65535)+(m&(1<<w)-1)];continue t}else if(w&32){n.mode=lx;break e}else{t.msg="invalid literal/length code",n.mode=ka;break e}break}}while(r<a&&s<l);S=h>>3,r-=S,h-=S<<3,m&=(1<<h)-1,t.next_in=r,t.next_out=s,t.avail_in=r<a?5+(a-r):5-(r-a),t.avail_out=s<l?257+(l-s):257-(s-l),n.hold=m,n.bits=h}});var ef=k((eE,Qp)=>{"use strict";var Vp=at(),Di=15,Kp=852,Xp=592,Zp=0,ul=1,Jp=2,cx=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],dx=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],ux=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],px=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];Qp.exports=function(t,i,n,r,a,s,o,l){var c=l.bits,d=0,u=0,p=0,f=0,m=0,h=0,g=0,b=0,y=0,v=0,x,w,S,A,_,T=null,R=0,E,L=new Vp.Buf16(Di+1),z=new Vp.Buf16(Di+1),D=null,B=0,O,P,C;for(d=0;d<=Di;d++)L[d]=0;for(u=0;u<r;u++)L[i[n+u]]++;for(m=c,f=Di;f>=1&&L[f]===0;f--);if(m>f&&(m=f),f===0)return a[s++]=1<<24|64<<16|0,a[s++]=1<<24|64<<16|0,l.bits=1,0;for(p=1;p<f&&L[p]===0;p++);for(m<p&&(m=p),b=1,d=1;d<=Di;d++)if(b<<=1,b-=L[d],b<0)return-1;if(b>0&&(t===Zp||f!==1))return-1;for(z[1]=0,d=1;d<Di;d++)z[d+1]=z[d]+L[d];for(u=0;u<r;u++)i[n+u]!==0&&(o[z[i[n+u]]++]=u);if(t===Zp?(T=D=o,E=19):t===ul?(T=cx,R-=257,D=dx,B-=257,E=256):(T=ux,D=px,E=-1),v=0,u=0,d=p,_=s,h=m,g=0,S=-1,y=1<<m,A=y-1,t===ul&&y>Kp||t===Jp&&y>Xp)return 1;for(;;){O=d-g,o[u]<E?(P=0,C=o[u]):o[u]>E?(P=D[B+o[u]],C=T[R+o[u]]):(P=96,C=0),x=1<<d-g,w=1<<h,p=w;do w-=x,a[_+(v>>g)+w]=O<<24|P<<16|C|0;while(w!==0);for(x=1<<d-1;v&x;)x>>=1;if(x!==0?(v&=x-1,v+=x):v=0,u++,--L[d]===0){if(d===f)break;d=i[n+o[u]]}if(d>m&&(v&A)!==S){for(g===0&&(g=m),_+=p,h=d-g,b=1<<h;h+g<f&&(b-=L[h+g],!(b<=0));)h++,b<<=1;if(y+=1<<h,t===ul&&y>Kp||t===Jp&&y>Xp)return 1;S=v&A,a[S]=m<<24|h<<16|_-s|0}}return v!==0&&(a[_+v]=d-g<<24|64<<16|0),l.bits=m,0}});var Df=k(Oe=>{"use strict";var me=at(),bl=Qo(),qe=el(),fx=Yp(),Gn=ef(),hx=0,Tf=1,kf=2,tf=4,gx=5,La=6,Jt=0,mx=1,bx=2,Ee=-2,Lf=-3,yl=-4,yx=-5,nf=8,Of=1,rf=2,af=3,sf=4,of=5,lf=6,cf=7,df=8,uf=9,pf=10,Ma=11,lt=12,pl=13,ff=14,fl=15,hf=16,gf=17,mf=18,bf=19,Oa=20,Ia=21,yf=22,vf=23,xf=24,wf=25,_f=26,hl=27,Ef=28,Sf=29,W=30,vl=31,vx=32,xx=852,wx=592,_x=15,Ex=_x;function Af(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function Sx(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new me.Buf16(320),this.work=new me.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function If(e){var t;return!e||!e.state?Ee:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=Of,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new me.Buf32(xx),t.distcode=t.distdyn=new me.Buf32(wx),t.sane=1,t.back=-1,Jt)}function Mf(e){var t;return!e||!e.state?Ee:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,If(e))}function Rf(e,t){var i,n;return!e||!e.state||(n=e.state,t<0?(i=0,t=-t):(i=(t>>4)+1,t<48&&(t&=15)),t&&(t<8||t>15))?Ee:(n.window!==null&&n.wbits!==t&&(n.window=null),n.wrap=i,n.wbits=t,Mf(e))}function Pf(e,t){var i,n;return e?(n=new Sx,e.state=n,n.window=null,i=Rf(e,t),i!==Jt&&(e.state=null),i):Ee}function Ax(e){return Pf(e,Ex)}var Cf=!0,gl,ml;function Cx(e){if(Cf){var t;for(gl=new me.Buf32(512),ml=new me.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Gn(Tf,e.lens,0,288,gl,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Gn(kf,e.lens,0,32,ml,0,e.work,{bits:5}),Cf=!1}e.lencode=gl,e.lenbits=9,e.distcode=ml,e.distbits=5}function jf(e,t,i,n){var r,a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new me.Buf8(a.wsize)),n>=a.wsize?(me.arraySet(a.window,t,i-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(r=a.wsize-a.wnext,r>n&&(r=n),me.arraySet(a.window,t,i-n,r,a.wnext),n-=r,n?(me.arraySet(a.window,t,i-n,n,0),a.wnext=n,a.whave=a.wsize):(a.wnext+=r,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=r))),0}function Tx(e,t){var i,n,r,a,s,o,l,c,d,u,p,f,m,h,g=0,b,y,v,x,w,S,A,_,T=new me.Buf8(4),R,E,L=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&e.avail_in!==0)return Ee;i=e.state,i.mode===lt&&(i.mode=pl),s=e.next_out,r=e.output,l=e.avail_out,a=e.next_in,n=e.input,o=e.avail_in,c=i.hold,d=i.bits,u=o,p=l,_=Jt;e:for(;;)switch(i.mode){case Of:if(i.wrap===0){i.mode=pl;break}for(;d<16;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}if(i.wrap&2&&c===35615){i.check=0,T[0]=c&255,T[1]=c>>>8&255,i.check=qe(i.check,T,2,0),c=0,d=0,i.mode=rf;break}if(i.flags=0,i.head&&(i.head.done=!1),!(i.wrap&1)||(((c&255)<<8)+(c>>8))%31){e.msg="incorrect header check",i.mode=W;break}if((c&15)!==nf){e.msg="unknown compression method",i.mode=W;break}if(c>>>=4,d-=4,A=(c&15)+8,i.wbits===0)i.wbits=A;else if(A>i.wbits){e.msg="invalid window size",i.mode=W;break}i.dmax=1<<A,e.adler=i.check=1,i.mode=c&512?pf:lt,c=0,d=0;break;case rf:for(;d<16;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}if(i.flags=c,(i.flags&255)!==nf){e.msg="unknown compression method",i.mode=W;break}if(i.flags&57344){e.msg="unknown header flags set",i.mode=W;break}i.head&&(i.head.text=c>>8&1),i.flags&512&&(T[0]=c&255,T[1]=c>>>8&255,i.check=qe(i.check,T,2,0)),c=0,d=0,i.mode=af;case af:for(;d<32;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}i.head&&(i.head.time=c),i.flags&512&&(T[0]=c&255,T[1]=c>>>8&255,T[2]=c>>>16&255,T[3]=c>>>24&255,i.check=qe(i.check,T,4,0)),c=0,d=0,i.mode=sf;case sf:for(;d<16;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}i.head&&(i.head.xflags=c&255,i.head.os=c>>8),i.flags&512&&(T[0]=c&255,T[1]=c>>>8&255,i.check=qe(i.check,T,2,0)),c=0,d=0,i.mode=of;case of:if(i.flags&1024){for(;d<16;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}i.length=c,i.head&&(i.head.extra_len=c),i.flags&512&&(T[0]=c&255,T[1]=c>>>8&255,i.check=qe(i.check,T,2,0)),c=0,d=0}else i.head&&(i.head.extra=null);i.mode=lf;case lf:if(i.flags&1024&&(f=i.length,f>o&&(f=o),f&&(i.head&&(A=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Array(i.head.extra_len)),me.arraySet(i.head.extra,n,a,f,A)),i.flags&512&&(i.check=qe(i.check,n,f,a)),o-=f,a+=f,i.length-=f),i.length))break e;i.length=0,i.mode=cf;case cf:if(i.flags&2048){if(o===0)break e;f=0;do A=n[a+f++],i.head&&A&&i.length<65536&&(i.head.name+=String.fromCharCode(A));while(A&&f<o);if(i.flags&512&&(i.check=qe(i.check,n,f,a)),o-=f,a+=f,A)break e}else i.head&&(i.head.name=null);i.length=0,i.mode=df;case df:if(i.flags&4096){if(o===0)break e;f=0;do A=n[a+f++],i.head&&A&&i.length<65536&&(i.head.comment+=String.fromCharCode(A));while(A&&f<o);if(i.flags&512&&(i.check=qe(i.check,n,f,a)),o-=f,a+=f,A)break e}else i.head&&(i.head.comment=null);i.mode=uf;case uf:if(i.flags&512){for(;d<16;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}if(c!==(i.check&65535)){e.msg="header crc mismatch",i.mode=W;break}c=0,d=0}i.head&&(i.head.hcrc=i.flags>>9&1,i.head.done=!0),e.adler=i.check=0,i.mode=lt;break;case pf:for(;d<32;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}e.adler=i.check=Af(c),c=0,d=0,i.mode=Ma;case Ma:if(i.havedict===0)return e.next_out=s,e.avail_out=l,e.next_in=a,e.avail_in=o,i.hold=c,i.bits=d,bx;e.adler=i.check=1,i.mode=lt;case lt:if(t===gx||t===La)break e;case pl:if(i.last){c>>>=d&7,d-=d&7,i.mode=hl;break}for(;d<3;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}switch(i.last=c&1,c>>>=1,d-=1,c&3){case 0:i.mode=ff;break;case 1:if(Cx(i),i.mode=Oa,t===La){c>>>=2,d-=2;break e}break;case 2:i.mode=gf;break;case 3:e.msg="invalid block type",i.mode=W}c>>>=2,d-=2;break;case ff:for(c>>>=d&7,d-=d&7;d<32;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}if((c&65535)!==(c>>>16^65535)){e.msg="invalid stored block lengths",i.mode=W;break}if(i.length=c&65535,c=0,d=0,i.mode=fl,t===La)break e;case fl:i.mode=hf;case hf:if(f=i.length,f){if(f>o&&(f=o),f>l&&(f=l),f===0)break e;me.arraySet(r,n,a,f,s),o-=f,a+=f,l-=f,s+=f,i.length-=f;break}i.mode=lt;break;case gf:for(;d<14;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}if(i.nlen=(c&31)+257,c>>>=5,d-=5,i.ndist=(c&31)+1,c>>>=5,d-=5,i.ncode=(c&15)+4,c>>>=4,d-=4,i.nlen>286||i.ndist>30){e.msg="too many length or distance symbols",i.mode=W;break}i.have=0,i.mode=mf;case mf:for(;i.have<i.ncode;){for(;d<3;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}i.lens[L[i.have++]]=c&7,c>>>=3,d-=3}for(;i.have<19;)i.lens[L[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,R={bits:i.lenbits},_=Gn(hx,i.lens,0,19,i.lencode,0,i.work,R),i.lenbits=R.bits,_){e.msg="invalid code lengths set",i.mode=W;break}i.have=0,i.mode=bf;case bf:for(;i.have<i.nlen+i.ndist;){for(;g=i.lencode[c&(1<<i.lenbits)-1],b=g>>>24,y=g>>>16&255,v=g&65535,!(b<=d);){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}if(v<16)c>>>=b,d-=b,i.lens[i.have++]=v;else{if(v===16){for(E=b+2;d<E;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}if(c>>>=b,d-=b,i.have===0){e.msg="invalid bit length repeat",i.mode=W;break}A=i.lens[i.have-1],f=3+(c&3),c>>>=2,d-=2}else if(v===17){for(E=b+3;d<E;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}c>>>=b,d-=b,A=0,f=3+(c&7),c>>>=3,d-=3}else{for(E=b+7;d<E;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}c>>>=b,d-=b,A=0,f=11+(c&127),c>>>=7,d-=7}if(i.have+f>i.nlen+i.ndist){e.msg="invalid bit length repeat",i.mode=W;break}for(;f--;)i.lens[i.have++]=A}}if(i.mode===W)break;if(i.lens[256]===0){e.msg="invalid code -- missing end-of-block",i.mode=W;break}if(i.lenbits=9,R={bits:i.lenbits},_=Gn(Tf,i.lens,0,i.nlen,i.lencode,0,i.work,R),i.lenbits=R.bits,_){e.msg="invalid literal/lengths set",i.mode=W;break}if(i.distbits=6,i.distcode=i.distdyn,R={bits:i.distbits},_=Gn(kf,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,R),i.distbits=R.bits,_){e.msg="invalid distances set",i.mode=W;break}if(i.mode=Oa,t===La)break e;case Oa:i.mode=Ia;case Ia:if(o>=6&&l>=258){e.next_out=s,e.avail_out=l,e.next_in=a,e.avail_in=o,i.hold=c,i.bits=d,fx(e,p),s=e.next_out,r=e.output,l=e.avail_out,a=e.next_in,n=e.input,o=e.avail_in,c=i.hold,d=i.bits,i.mode===lt&&(i.back=-1);break}for(i.back=0;g=i.lencode[c&(1<<i.lenbits)-1],b=g>>>24,y=g>>>16&255,v=g&65535,!(b<=d);){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}if(y&&(y&240)===0){for(x=b,w=y,S=v;g=i.lencode[S+((c&(1<<x+w)-1)>>x)],b=g>>>24,y=g>>>16&255,v=g&65535,!(x+b<=d);){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}c>>>=x,d-=x,i.back+=x}if(c>>>=b,d-=b,i.back+=b,i.length=v,y===0){i.mode=_f;break}if(y&32){i.back=-1,i.mode=lt;break}if(y&64){e.msg="invalid literal/length code",i.mode=W;break}i.extra=y&15,i.mode=yf;case yf:if(i.extra){for(E=i.extra;d<E;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}i.length+=c&(1<<i.extra)-1,c>>>=i.extra,d-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=vf;case vf:for(;g=i.distcode[c&(1<<i.distbits)-1],b=g>>>24,y=g>>>16&255,v=g&65535,!(b<=d);){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}if((y&240)===0){for(x=b,w=y,S=v;g=i.distcode[S+((c&(1<<x+w)-1)>>x)],b=g>>>24,y=g>>>16&255,v=g&65535,!(x+b<=d);){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}c>>>=x,d-=x,i.back+=x}if(c>>>=b,d-=b,i.back+=b,y&64){e.msg="invalid distance code",i.mode=W;break}i.offset=v,i.extra=y&15,i.mode=xf;case xf:if(i.extra){for(E=i.extra;d<E;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}i.offset+=c&(1<<i.extra)-1,c>>>=i.extra,d-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){e.msg="invalid distance too far back",i.mode=W;break}i.mode=wf;case wf:if(l===0)break e;if(f=p-l,i.offset>f){if(f=i.offset-f,f>i.whave&&i.sane){e.msg="invalid distance too far back",i.mode=W;break}f>i.wnext?(f-=i.wnext,m=i.wsize-f):m=i.wnext-f,f>i.length&&(f=i.length),h=i.window}else h=r,m=s-i.offset,f=i.length;f>l&&(f=l),l-=f,i.length-=f;do r[s++]=h[m++];while(--f);i.length===0&&(i.mode=Ia);break;case _f:if(l===0)break e;r[s++]=i.length,l--,i.mode=Ia;break;case hl:if(i.wrap){for(;d<32;){if(o===0)break e;o--,c|=n[a++]<<d,d+=8}if(p-=l,e.total_out+=p,i.total+=p,p&&(e.adler=i.check=i.flags?qe(i.check,r,p,s-p):bl(i.check,r,p,s-p)),p=l,(i.flags?c:Af(c))!==i.check){e.msg="incorrect data check",i.mode=W;break}c=0,d=0}i.mode=Ef;case Ef:if(i.wrap&&i.flags){for(;d<32;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}if(c!==(i.total&4294967295)){e.msg="incorrect length check",i.mode=W;break}c=0,d=0}i.mode=Sf;case Sf:_=mx;break e;case W:_=Lf;break e;case vl:return yl;case vx:default:return Ee}return e.next_out=s,e.avail_out=l,e.next_in=a,e.avail_in=o,i.hold=c,i.bits=d,(i.wsize||p!==e.avail_out&&i.mode<W&&(i.mode<hl||t!==tf))&&jf(e,e.output,e.next_out,p-e.avail_out)?(i.mode=vl,yl):(u-=e.avail_in,p-=e.avail_out,e.total_in+=u,e.total_out+=p,i.total+=p,i.wrap&&p&&(e.adler=i.check=i.flags?qe(i.check,r,p,e.next_out-p):bl(i.check,r,p,e.next_out-p)),e.data_type=i.bits+(i.last?64:0)+(i.mode===lt?128:0)+(i.mode===Oa||i.mode===fl?256:0),(u===0&&p===0||t===tf)&&_===Jt&&(_=yx),_)}function kx(e){if(!e||!e.state)return Ee;var t=e.state;return t.window&&(t.window=null),e.state=null,Jt}function Lx(e,t){var i;return!e||!e.state||(i=e.state,(i.wrap&2)===0)?Ee:(i.head=t,t.done=!1,Jt)}function Ox(e,t){var i=t.length,n,r,a;return!e||!e.state||(n=e.state,n.wrap!==0&&n.mode!==Ma)?Ee:n.mode===Ma&&(r=1,r=bl(r,t,i,0),r!==n.check)?Lf:(a=jf(e,t,i,i),a?(n.mode=vl,yl):(n.havedict=1,Jt))}Oe.inflateReset=Mf;Oe.inflateReset2=Rf;Oe.inflateResetKeep=If;Oe.inflateInit=Ax;Oe.inflateInit2=Pf;Oe.inflate=Tx;Oe.inflateEnd=kx;Oe.inflateGetHeader=Lx;Oe.inflateSetDictionary=Ox;Oe.inflateInfo="pako inflate (from Nodeca project)"});var xl=k((iE,zf)=>{"use strict";zf.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}});var Bf=k((nE,Nf)=>{"use strict";function Ix(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}Nf.exports=Ix});var Hf=k(Yn=>{"use strict";var zi=Df(),Wn=at(),Ra=al(),X=xl(),wl=xa(),Mx=sl(),Rx=Bf(),Ff=Object.prototype.toString;function Qt(e){if(!(this instanceof Qt))return new Qt(e);this.options=Wn.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15)===0&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Mx,this.strm.avail_out=0;var i=zi.inflateInit2(this.strm,t.windowBits);if(i!==X.Z_OK)throw new Error(wl[i]);if(this.header=new Rx,zi.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Ra.string2buf(t.dictionary):Ff.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(i=zi.inflateSetDictionary(this.strm,t.dictionary),i!==X.Z_OK)))throw new Error(wl[i])}Qt.prototype.push=function(e,t){var i=this.strm,n=this.options.chunkSize,r=this.options.dictionary,a,s,o,l,c,d=!1;if(this.ended)return!1;s=t===~~t?t:t===!0?X.Z_FINISH:X.Z_NO_FLUSH,typeof e=="string"?i.input=Ra.binstring2buf(e):Ff.call(e)==="[object ArrayBuffer]"?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;do{if(i.avail_out===0&&(i.output=new Wn.Buf8(n),i.next_out=0,i.avail_out=n),a=zi.inflate(i,X.Z_NO_FLUSH),a===X.Z_NEED_DICT&&r&&(a=zi.inflateSetDictionary(this.strm,r)),a===X.Z_BUF_ERROR&&d===!0&&(a=X.Z_OK,d=!1),a!==X.Z_STREAM_END&&a!==X.Z_OK)return this.onEnd(a),this.ended=!0,!1;i.next_out&&(i.avail_out===0||a===X.Z_STREAM_END||i.avail_in===0&&(s===X.Z_FINISH||s===X.Z_SYNC_FLUSH))&&(this.options.to==="string"?(o=Ra.utf8border(i.output,i.next_out),l=i.next_out-o,c=Ra.buf2string(i.output,o),i.next_out=l,i.avail_out=n-l,l&&Wn.arraySet(i.output,i.output,o,l,0),this.onData(c)):this.onData(Wn.shrinkBuf(i.output,i.next_out))),i.avail_in===0&&i.avail_out===0&&(d=!0)}while((i.avail_in>0||i.avail_out===0)&&a!==X.Z_STREAM_END);return a===X.Z_STREAM_END&&(s=X.Z_FINISH),s===X.Z_FINISH?(a=zi.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===X.Z_OK):(s===X.Z_SYNC_FLUSH&&(this.onEnd(X.Z_OK),i.avail_out=0),!0)};Qt.prototype.onData=function(e){this.chunks.push(e)};Qt.prototype.onEnd=function(e){e===X.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Wn.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function _l(e,t){var i=new Qt(t);if(i.push(e,!0),i.err)throw i.msg||wl[i.err];return i.result}function Px(e,t){return t=t||{},t.raw=!0,_l(e,t)}Yn.Inflate=Qt;Yn.inflate=_l;Yn.inflateRaw=Px;Yn.ungzip=_l});var qf=k((aE,Uf)=>{"use strict";var jx=at().assign,Dx=Gp(),zx=Hf(),Nx=xl(),$f={};jx($f,Dx,zx,Nx);Uf.exports=$f});var Wf=k(ja=>{"use strict";var Bx=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Uint32Array!="undefined",Fx=qf(),Gf=V(),Pa=ge(),Hx=Bx?"uint8array":"array";ja.magic="\b\0";function ei(e,t){Pa.call(this,"FlateWorker/"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}Gf.inherits(ei,Pa);ei.prototype.processChunk=function(e){this.meta=e.meta,this._pako===null&&this._createPako(),this._pako.push(Gf.transformTo(Hx,e.data),!1)};ei.prototype.flush=function(){Pa.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)};ei.prototype.cleanUp=function(){Pa.prototype.cleanUp.call(this),this._pako=null};ei.prototype._createPako=function(){this._pako=new Fx[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}};ja.compressWorker=function(e){return new ei("Deflate",e)};ja.uncompressWorker=function(){return new ei("Inflate",{})}});var Sl=k(El=>{"use strict";var Yf=ge();El.STORE={magic:"\0\0",compressWorker:function(){return new Yf("STORE compression")},uncompressWorker:function(){return new Yf("STORE decompression")}};El.DEFLATE=Wf()});var Al=k(ti=>{"use strict";ti.LOCAL_FILE_HEADER="PK";ti.CENTRAL_FILE_HEADER="PK";ti.CENTRAL_DIRECTORY_END="PK";ti.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07";ti.ZIP64_CENTRAL_DIRECTORY_END="PK";ti.DATA_DESCRIPTOR="PK\x07\b"});var Zf=k((cE,Xf)=>{"use strict";var Ni=V(),Bi=ge(),Cl=Ci(),Vf=ga(),Da=Al(),U=function(e,t){var i="",n;for(n=0;n<t;n++)i+=String.fromCharCode(e&255),e=e>>>8;return i},$x=function(e,t){var i=e;return e||(i=t?16893:33204),(i&65535)<<16},Ux=function(e){return(e||0)&63},Kf=function(e,t,i,n,r,a){var s=e.file,o=e.compression,l=a!==Cl.utf8encode,c=Ni.transformTo("string",a(s.name)),d=Ni.transformTo("string",Cl.utf8encode(s.name)),u=s.comment,p=Ni.transformTo("string",a(u)),f=Ni.transformTo("string",Cl.utf8encode(u)),m=d.length!==s.name.length,h=f.length!==u.length,g,b,y="",v="",x="",w=s.dir,S=s.date,A={crc32:0,compressedSize:0,uncompressedSize:0};(!t||i)&&(A.crc32=e.crc32,A.compressedSize=e.compressedSize,A.uncompressedSize=e.uncompressedSize);var _=0;t&&(_|=8),!l&&(m||h)&&(_|=2048);var T=0,R=0;w&&(T|=16),r==="UNIX"?(R=798,T|=$x(s.unixPermissions,w)):(R=20,T|=Ux(s.dosPermissions,w)),g=S.getUTCHours(),g=g<<6,g=g|S.getUTCMinutes(),g=g<<5,g=g|S.getUTCSeconds()/2,b=S.getUTCFullYear()-1980,b=b<<4,b=b|S.getUTCMonth()+1,b=b<<5,b=b|S.getUTCDate(),m&&(v=U(1,1)+U(Vf(c),4)+d,y+="up"+U(v.length,2)+v),h&&(x=U(1,1)+U(Vf(p),4)+f,y+="uc"+U(x.length,2)+x);var E="";E+=`
|
|
2
|
-
\0`,E+=U(_,2),E+=o.magic,E+=U(g,2),E+=U(b,2),E+=U(A.crc32,4),E+=U(A.compressedSize,4),E+=U(A.uncompressedSize,4),E+=U(c.length,2),E+=U(y.length,2);var L=Da.LOCAL_FILE_HEADER+E+c+y,z=Da.CENTRAL_FILE_HEADER+U(R,2)+E+U(p.length,2)+"\0\0\0\0"+U(T,4)+U(n,4)+c+y+p;return{fileRecord:L,dirRecord:z}},qx=function(e,t,i,n,r){var a="",s=Ni.transformTo("string",r(n));return a=Da.CENTRAL_DIRECTORY_END+"\0\0\0\0"+U(e,2)+U(e,2)+U(t,4)+U(i,4)+U(s.length,2)+s,a},Gx=function(e){var t="";return t=Da.DATA_DESCRIPTOR+U(e.crc32,4)+U(e.compressedSize,4)+U(e.uncompressedSize,4),t};function Ie(e,t,i,n){Bi.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=i,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}Ni.inherits(Ie,Bi);Ie.prototype.push=function(e){var t=e.meta.percent||0,i=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,Bi.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:i?(t+100*(i-n-1))/i:100}}))};Ie.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var i=Kf(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:i.fileRecord,meta:{percent:0}})}else this.accumulate=!0};Ie.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,i=Kf(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(i.dirRecord),t)this.push({data:Gx(e),meta:{percent:100}});else for(this.push({data:i.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null};Ie.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t<this.dirRecords.length;t++)this.push({data:this.dirRecords[t],meta:{percent:100}});var i=this.bytesWritten-e,n=qx(this.dirRecords.length,i,e,this.zipComment,this.encodeFileName);this.push({data:n,meta:{percent:100}})};Ie.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()};Ie.prototype.registerPrevious=function(e){this._sources.push(e);var t=this;return e.on("data",function(i){t.processChunk(i)}),e.on("end",function(){t.closedSource(t.previous.streamInfo),t._sources.length?t.prepareNextSource():t.end()}),e.on("error",function(i){t.error(i)}),this};Ie.prototype.resume=function(){if(!Bi.prototype.resume.call(this))return!1;if(!this.previous&&this._sources.length)return this.prepareNextSource(),!0;if(!this.previous&&!this._sources.length&&!this.generatedError)return this.end(),!0};Ie.prototype.error=function(e){var t=this._sources;if(!Bi.prototype.error.call(this,e))return!1;for(var i=0;i<t.length;i++)try{t[i].error(e)}catch{}return!0};Ie.prototype.lock=function(){Bi.prototype.lock.call(this);for(var e=this._sources,t=0;t<e.length;t++)e[t].lock()};Xf.exports=Ie});var Qf=k(Jf=>{"use strict";var Wx=Sl(),Yx=Zf(),Vx=function(e,t){var i=e||t,n=Wx[i];if(!n)throw new Error(i+" is not a valid compression method !");return n};Jf.generateWorker=function(e,t,i){var n=new Yx(t.streamFiles,i,t.platform,t.encodeFileName),r=0;try{e.forEach(function(a,s){r++;var o=Vx(s.options.compression,t.compression),l=s.options.compressionOptions||t.compressionOptions||{},c=s.dir,d=s.date;s._compressWorker(o,l).withStreamInfo("file",{name:a,dir:c,date:d,comment:s.comment||"",unixPermissions:s.unixPermissions,dosPermissions:s.dosPermissions}).pipe(n)}),n.entriesCount=r}catch(a){n.error(a)}return n}});var th=k((uE,eh)=>{"use strict";var Kx=V(),za=ge();function Vn(e,t){za.call(this,"Nodejs stream input adapter for "+e),this._upstreamEnded=!1,this._bindStream(t)}Kx.inherits(Vn,za);Vn.prototype._bindStream=function(e){var t=this;this._stream=e,e.pause(),e.on("data",function(i){t.push({data:i,meta:{percent:0}})}).on("error",function(i){t.isPaused?this.generatedError=i:t.error(i)}).on("end",function(){t.isPaused?t._upstreamEnded=!0:t.end()})};Vn.prototype.pause=function(){return za.prototype.pause.call(this)?(this._stream.pause(),!0):!1};Vn.prototype.resume=function(){return za.prototype.resume.call(this)?(this._upstreamEnded?this.end():this._stream.resume(),!0):!1};eh.exports=Vn});var uh=k((pE,dh)=>{"use strict";var Xx=Ci(),Kn=V(),ah=ge(),Zx=Io(),sh=Mo(),ih=ma(),Jx=ip(),Qx=Qf(),nh=Sn(),ew=th(),oh=function(e,t,i){var n=Kn.getTypeOf(t),r,a=Kn.extend(i||{},sh);a.date=a.date||new Date,a.compression!==null&&(a.compression=a.compression.toUpperCase()),typeof a.unixPermissions=="string"&&(a.unixPermissions=parseInt(a.unixPermissions,8)),a.unixPermissions&&a.unixPermissions&16384&&(a.dir=!0),a.dosPermissions&&a.dosPermissions&16&&(a.dir=!0),a.dir&&(e=lh(e)),a.createFolders&&(r=tw(e))&&ch.call(this,r,!0);var s=n==="string"&&a.binary===!1&&a.base64===!1;(!i||typeof i.binary=="undefined")&&(a.binary=!s);var o=t instanceof ih&&t.uncompressedSize===0;(o||a.dir||!t||t.length===0)&&(a.base64=!1,a.binary=!0,t="",a.compression="STORE",n="string");var l=null;t instanceof ih||t instanceof ah?l=t:nh.isNode&&nh.isStream(t)?l=new ew(e,t):l=Kn.prepareContent(e,t,a.binary,a.optimizedBinaryString,a.base64);var c=new Jx(e,l,a);this.files[e]=c},tw=function(e){e.slice(-1)==="/"&&(e=e.substring(0,e.length-1));var t=e.lastIndexOf("/");return t>0?e.substring(0,t):""},lh=function(e){return e.slice(-1)!=="/"&&(e+="/"),e},ch=function(e,t){return t=typeof t!="undefined"?t:sh.createFolders,e=lh(e),this.files[e]||oh.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]};function rh(e){return Object.prototype.toString.call(e)==="[object RegExp]"}var iw={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(e){var t,i,n;for(t in this.files)n=this.files[t],i=t.slice(this.root.length,t.length),i&&t.slice(0,this.root.length)===this.root&&e(i,n)},filter:function(e){var t=[];return this.forEach(function(i,n){e(i,n)&&t.push(n)}),t},file:function(e,t,i){if(arguments.length===1)if(rh(e)){var n=e;return this.filter(function(a,s){return!s.dir&&n.test(a)})}else{var r=this.files[this.root+e];return r&&!r.dir?r:null}else e=this.root+e,oh.call(this,e,t,i);return this},folder:function(e){if(!e)return this;if(rh(e))return this.filter(function(r,a){return a.dir&&e.test(r)});var t=this.root+e,i=ch.call(this,t),n=this.clone();return n.root=i.name,n},remove:function(e){e=this.root+e;var t=this.files[e];if(t||(e.slice(-1)!=="/"&&(e+="/"),t=this.files[e]),t&&!t.dir)delete this.files[e];else for(var i=this.filter(function(r,a){return a.name.slice(0,e.length)===e}),n=0;n<i.length;n++)delete this.files[i[n].name];return this},generate:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(e){var t,i={};try{if(i=Kn.extend(e||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:Xx.utf8encode}),i.type=i.type.toLowerCase(),i.compression=i.compression.toUpperCase(),i.type==="binarystring"&&(i.type="string"),!i.type)throw new Error("No output type specified.");Kn.checkSupport(i.type),(i.platform==="darwin"||i.platform==="freebsd"||i.platform==="linux"||i.platform==="sunos")&&(i.platform="UNIX"),i.platform==="win32"&&(i.platform="DOS");var n=i.comment||this.comment||"";t=Qx.generateWorker(this,i,n)}catch(r){t=new ah("error"),t.error(r)}return new Zx(t,i.type||"string",i.mimeType)},generateAsync:function(e,t){return this.generateInternalStream(e).accumulate(t)},generateNodeStream:function(e,t){return e=e||{},e.type||(e.type="nodebuffer"),this.generateInternalStream(e).toNodejsStream(t)}};dh.exports=iw});var Tl=k((fE,fh)=>{"use strict";var nw=V();function ph(e){this.data=e,this.length=e.length,this.index=0,this.zero=0}ph.prototype={checkOffset:function(e){this.checkIndex(this.index+e)},checkIndex:function(e){if(this.length<this.zero+e||e<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+e+"). Corrupted zip ?")},setIndex:function(e){this.checkIndex(e),this.index=e},skip:function(e){this.setIndex(this.index+e)},byteAt:function(){},readInt:function(e){var t=0,i;for(this.checkOffset(e),i=this.index+e-1;i>=this.index;i--)t=(t<<8)+this.byteAt(i);return this.index+=e,t},readString:function(e){return nw.transformTo("string",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC((e>>25&127)+1980,(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(e&31)<<1))}};fh.exports=ph});var kl=k((hE,gh)=>{"use strict";var hh=Tl(),rw=V();function Fi(e){hh.call(this,e);for(var t=0;t<this.data.length;t++)e[t]=e[t]&255}rw.inherits(Fi,hh);Fi.prototype.byteAt=function(e){return this.data[this.zero+e]};Fi.prototype.lastIndexOfSignature=function(e){for(var t=e.charCodeAt(0),i=e.charCodeAt(1),n=e.charCodeAt(2),r=e.charCodeAt(3),a=this.length-4;a>=0;--a)if(this.data[a]===t&&this.data[a+1]===i&&this.data[a+2]===n&&this.data[a+3]===r)return a-this.zero;return-1};Fi.prototype.readAndCheckSignature=function(e){var t=e.charCodeAt(0),i=e.charCodeAt(1),n=e.charCodeAt(2),r=e.charCodeAt(3),a=this.readData(4);return t===a[0]&&i===a[1]&&n===a[2]&&r===a[3]};Fi.prototype.readData=function(e){if(this.checkOffset(e),e===0)return[];var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t};gh.exports=Fi});var yh=k((gE,bh)=>{"use strict";var mh=Tl(),aw=V();function Hi(e){mh.call(this,e)}aw.inherits(Hi,mh);Hi.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)};Hi.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero};Hi.prototype.readAndCheckSignature=function(e){var t=this.readData(4);return e===t};Hi.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t};bh.exports=Hi});var Ol=k((mE,xh)=>{"use strict";var vh=kl(),sw=V();function Ll(e){vh.call(this,e)}sw.inherits(Ll,vh);Ll.prototype.readData=function(e){if(this.checkOffset(e),e===0)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t};xh.exports=Ll});var Eh=k((bE,_h)=>{"use strict";var wh=Ol(),ow=V();function Il(e){wh.call(this,e)}ow.inherits(Il,wh);Il.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t};_h.exports=Il});var Ml=k((yE,Ah)=>{"use strict";var Na=V(),Sh=nt(),lw=kl(),cw=yh(),dw=Eh(),uw=Ol();Ah.exports=function(e){var t=Na.getTypeOf(e);return Na.checkSupport(t),t==="string"&&!Sh.uint8array?new cw(e):t==="nodebuffer"?new dw(e):Sh.uint8array?new uw(Na.transformTo("uint8array",e)):new lw(Na.transformTo("array",e))}});var Lh=k((vE,kh)=>{"use strict";var Rl=Ml(),Lt=V(),pw=ma(),Ch=ga(),Ba=Ci(),Fa=Sl(),fw=nt(),hw=0,gw=3,mw=function(e){for(var t in Fa)if(Object.prototype.hasOwnProperty.call(Fa,t)&&Fa[t].magic===e)return Fa[t];return null};function Th(e,t){this.options=e,this.loadOptions=t}Th.prototype={isEncrypted:function(){return(this.bitFlag&1)===1},useUTF8:function(){return(this.bitFlag&2048)===2048},readLocalPart:function(e){var t,i;if(e.skip(22),this.fileNameLength=e.readInt(2),i=e.readInt(2),this.fileName=e.readData(this.fileNameLength),e.skip(i),this.compressedSize===-1||this.uncompressedSize===-1)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(t=mw(this.compressionMethod),t===null)throw new Error("Corrupted zip : compression "+Lt.pretty(this.compressionMethod)+" unknown (inner file : "+Lt.transformTo("string",this.fileName)+")");this.decompressed=new pw(this.compressedSize,this.uncompressedSize,this.crc32,t,e.readData(this.compressedSize))},readCentralPart:function(e){this.versionMadeBy=e.readInt(2),e.skip(2),this.bitFlag=e.readInt(2),this.compressionMethod=e.readString(2),this.date=e.readDate(),this.crc32=e.readInt(4),this.compressedSize=e.readInt(4),this.uncompressedSize=e.readInt(4);var t=e.readInt(2);if(this.extraFieldsLength=e.readInt(2),this.fileCommentLength=e.readInt(2),this.diskNumberStart=e.readInt(2),this.internalFileAttributes=e.readInt(2),this.externalFileAttributes=e.readInt(4),this.localHeaderOffset=e.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");e.skip(t),this.readExtraFields(e),this.parseZIP64ExtraField(e),this.fileComment=e.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var e=this.versionMadeBy>>8;this.dir=!!(this.externalFileAttributes&16),e===hw&&(this.dosPermissions=this.externalFileAttributes&63),e===gw&&(this.unixPermissions=this.externalFileAttributes>>16&65535),!this.dir&&this.fileNameStr.slice(-1)==="/"&&(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=Rl(this.extraFields[1].value);this.uncompressedSize===Lt.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===Lt.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===Lt.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===Lt.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t=e.index+this.extraFieldsLength,i,n,r;for(this.extraFields||(this.extraFields={});e.index+4<t;)i=e.readInt(2),n=e.readInt(2),r=e.readData(n),this.extraFields[i]={id:i,length:n,value:r};e.setIndex(t)},handleUTF8:function(){var e=fw.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=Ba.utf8decode(this.fileName),this.fileCommentStr=Ba.utf8decode(this.fileComment);else{var t=this.findExtraFieldUnicodePath();if(t!==null)this.fileNameStr=t;else{var i=Lt.transformTo(e,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(i)}var n=this.findExtraFieldUnicodeComment();if(n!==null)this.fileCommentStr=n;else{var r=Lt.transformTo(e,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(r)}}},findExtraFieldUnicodePath:function(){var e=this.extraFields[28789];if(e){var t=Rl(e.value);return t.readInt(1)!==1||Ch(this.fileName)!==t.readInt(4)?null:Ba.utf8decode(t.readData(e.length-5))}return null},findExtraFieldUnicodeComment:function(){var e=this.extraFields[25461];if(e){var t=Rl(e.value);return t.readInt(1)!==1||Ch(this.fileComment)!==t.readInt(4)?null:Ba.utf8decode(t.readData(e.length-5))}return null}};kh.exports=Th});var Mh=k((xE,Ih)=>{"use strict";var bw=Ml(),ct=V(),Me=Al(),yw=Lh(),vw=nt();function Oh(e){this.files=[],this.loadOptions=e}Oh.prototype={checkSignature:function(e){if(!this.reader.readAndCheckSignature(e)){this.reader.index-=4;var t=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+ct.pretty(t)+", expected "+ct.pretty(e)+")")}},isSignature:function(e,t){var i=this.reader.index;this.reader.setIndex(e);var n=this.reader.readString(4),r=n===t;return this.reader.setIndex(i),r},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var e=this.reader.readData(this.zipCommentLength),t=vw.uint8array?"uint8array":"array",i=ct.transformTo(t,e);this.zipComment=this.loadOptions.decodeFileName(i)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var e=this.zip64EndOfCentralSize-44,t=0,i,n,r;t<e;)i=this.reader.readInt(2),n=this.reader.readInt(4),r=this.reader.readData(n),this.zip64ExtensibleData[i]={id:i,length:n,value:r}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),this.disksCount>1)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var e,t;for(e=0;e<this.files.length;e++)t=this.files[e],this.reader.setIndex(t.localHeaderOffset),this.checkSignature(Me.LOCAL_FILE_HEADER),t.readLocalPart(this.reader),t.handleUTF8(),t.processAttributes()},readCentralDir:function(){var e;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(Me.CENTRAL_FILE_HEADER);)e=new yw({zip64:this.zip64},this.loadOptions),e.readCentralPart(this.reader),this.files.push(e);if(this.centralDirRecords!==this.files.length&&this.centralDirRecords!==0&&this.files.length===0)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var e=this.reader.lastIndexOfSignature(Me.CENTRAL_DIRECTORY_END);if(e<0){var t=!this.isSignature(0,Me.LOCAL_FILE_HEADER);throw t?new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html"):new Error("Corrupted zip: can't find end of central directory")}this.reader.setIndex(e);var i=e;if(this.checkSignature(Me.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===ct.MAX_VALUE_16BITS||this.diskWithCentralDirStart===ct.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===ct.MAX_VALUE_16BITS||this.centralDirRecords===ct.MAX_VALUE_16BITS||this.centralDirSize===ct.MAX_VALUE_32BITS||this.centralDirOffset===ct.MAX_VALUE_32BITS){if(this.zip64=!0,e=this.reader.lastIndexOfSignature(Me.ZIP64_CENTRAL_DIRECTORY_LOCATOR),e<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(e),this.checkSignature(Me.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,Me.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(Me.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(Me.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var n=this.centralDirOffset+this.centralDirSize;this.zip64&&(n+=20,n+=12+this.zip64EndOfCentralSize);var r=i-n;if(r>0)this.isSignature(i,Me.CENTRAL_FILE_HEADER)||(this.reader.zero=r);else if(r<0)throw new Error("Corrupted zip: missing "+Math.abs(r)+" bytes.")},prepareReader:function(e){this.reader=bw(e)},load:function(e){this.prepareReader(e),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}};Ih.exports=Oh});var jh=k((wE,Ph)=>{"use strict";var Pl=V(),Ha=Ei(),xw=Ci(),ww=Mh(),_w=jo(),Rh=Sn();function Ew(e){return new Ha.Promise(function(t,i){var n=e.decompressed.getContentWorker().pipe(new _w);n.on("error",function(r){i(r)}).on("end",function(){n.streamInfo.crc32!==e.decompressed.crc32?i(new Error("Corrupted zip : CRC32 mismatch")):t()}).resume()})}Ph.exports=function(e,t){var i=this;return t=Pl.extend(t||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:xw.utf8decode}),Rh.isNode&&Rh.isStream(e)?Ha.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):Pl.prepareContent("the loaded zip file",e,!0,t.optimizedBinaryString,t.base64).then(function(n){var r=new ww(t);return r.load(n),r}).then(function(r){var a=[Ha.Promise.resolve(r)],s=r.files;if(t.checkCRC32)for(var o=0;o<s.length;o++)a.push(Ew(s[o]));return Ha.Promise.all(a)}).then(function(r){for(var a=r.shift(),s=a.files,o=0;o<s.length;o++){var l=s[o],c=l.fileNameStr,d=Pl.resolve(l.fileNameStr);i.file(d,l.decompressed,{binary:!0,optimizedBinaryString:!0,date:l.date,dir:l.dir,comment:l.fileCommentStr.length?l.fileCommentStr:null,unixPermissions:l.unixPermissions,dosPermissions:l.dosPermissions,createFolders:t.createFolders}),l.dir||(i.file(d).unsafeOriginalName=c)}return a.zipComment.length&&(i.comment=a.zipComment),i})}});var zh=k((_E,Dh)=>{"use strict";function Se(){if(!(this instanceof Se))return new Se;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files=Object.create(null),this.comment=null,this.root="",this.clone=function(){var e=new Se;for(var t in this)typeof this[t]!="function"&&(e[t]=this[t]);return e}}Se.prototype=uh();Se.prototype.loadAsync=jh();Se.support=nt();Se.defaults=Mo();Se.version="3.10.1";Se.loadAsync=function(e,t){return new Se().loadAsync(e,t)};Se.external=Ei();Dh.exports=Se});var Eg={};nn(Eg,{AssetEditorModal:()=>oc});var oc,lc=We(()=>{"use strict";oc=class{constructor(){this.modal=null;this.currentObjectId=null;this.currentPath=null;this.currentAsset="";this.onApplyCallback=null}show(t,i,n,r){this.currentObjectId=t,this.currentPath=i,this.currentAsset=n,this.onApplyCallback=r,this.createModal(t,n),document.body.appendChild(this.modal),this.attachModalListeners()}createModal(t,i){let n=document.createElement("div");n.className="asset-editor-modal",n.innerHTML=`
|
|
1
|
+
"use strict";var Vg=Object.create;var ur=Object.defineProperty;var Kg=Object.getOwnPropertyDescriptor;var Xg=Object.getOwnPropertyNames;var Zg=Object.getPrototypeOf,Jg=Object.prototype.hasOwnProperty;var We=(e,t)=>()=>(e&&(t=e(e=0)),t);var k=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),nn=(e,t)=>{for(var i in t)ur(e,i,{get:t[i],enumerable:!0})},kc=(e,t,i,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Xg(t))!Jg.call(e,r)&&r!==i&&ur(e,r,{get:()=>t[r],enumerable:!(n=Kg(t,r))||n.enumerable});return e};var li=(e,t,i)=>(i=e!=null?Vg(Zg(e)):{},kc(t||!e||!e.__esModule?ur(i,"default",{value:e,enumerable:!0}):i,e)),Qg=e=>kc(ur({},"__esModule",{value:!0}),e);var Ye,ws=We(()=>{"use strict";Ye=class{static get(t){var i;return(i=this.store.get(t))==null?void 0:i.data}static set(t,i){this.store.set(t,{data:i})}static has(t){return this.store.has(t)}static clear(){this.store.clear()}};Ye.store=new Map});function om(){var e,t;try{let i=typeof window!="undefined"&&(document.querySelector('script[src*="inline-assets.js"]')||((t=(e=document.querySelector("script"))==null?void 0:e.textContent)==null?void 0:t.includes("inline-assets.js"))||window.INLINE_ASSETS),n=typeof window!="undefined"&&document.querySelector('link[href*="assets/"], script[src*="assets/"]');return!!(i&&!n)}catch{return!1}}async function lm(){try{if(typeof window!="undefined"){let e=await fetch("./build-settings.json");if(e.ok){let t=await e.json();return console.log("[AssetLoader] Loaded build settings:",t),t}}}catch{}return null}function cm(){try{if(typeof window!="undefined"){let e=new XMLHttpRequest;if(e.open("GET","./build-settings.json",!1),e.send(),e.status===200&&e.responseText){let t=JSON.parse(e.responseText);return console.log("[AssetLoader] Loaded build settings (sync):",t),t}}}catch{}return null}async function dm(){if(console.log(`[AssetLoader] getInlineAssets() called - Effective mode: ${Y}`),Object.keys(Ve).length>0)return console.log("[AssetLoader] Returning cached inline assets:",Object.keys(Ve)),Ve;if(typeof window!="undefined"&&window.INLINE_ASSETS)return console.log("[AssetLoader] Using pre-loaded INLINE_ASSETS from window:",Object.keys(window.INLINE_ASSETS)),Ve={...window.INLINE_ASSETS},Ve;if(!(Y==="publish"&&De!==!1))return console.log("[AssetLoader] Inline assets disabled for this build mode."),Ve;if(!_s){let t=typeof window!="undefined"?new URL("inline-assets.js",window.location.href).href:"./inline-assets.js";console.log("[AssetLoader] Loading inline assets from:",t),_s=(async()=>{try{try{let a=await import(t+"?t="+Date.now());if(a.INLINE_ASSETS)return console.log("[AssetLoader] Loaded INLINE_ASSETS via ES module:",Object.keys(a.INLINE_ASSETS)),a.INLINE_ASSETS}catch(a){console.warn("[AssetLoader] ES module import failed, trying text parse:",a)}let i=await fetch(t);if(!i.ok)throw new Error(`HTTP ${i.status}: ${i.statusText}`);let n=await i.text();console.log("[AssetLoader] Received JS code, length:",n.length);let r=n.match(/export\s+const\s+INLINE_ASSETS\s*=\s*({[\s\S]*?});?\s*$/m);if(r)try{let a=r[1];console.log("[AssetLoader] Found INLINE_ASSETS export, parsing...");let s=new Function("return "+a)();return console.log("[AssetLoader] Parsed inline assets:",Object.keys(s)),s}catch(a){return console.warn("[AssetLoader] Failed to parse inline assets:",a),{}}else return console.warn("[AssetLoader] INLINE_ASSETS export not found in response"),console.log("[AssetLoader] JS code preview:",n.substring(0,500)),{}}catch(i){return console.warn("[AssetLoader] Failed to load inline assets:",i),{}}})()}return Ve=await _s,console.log("[AssetLoader] Final inline assets cache:",Object.keys(Ve)),Ve}function Es(e){return e===null||typeof e!="object"||(Object.freeze(e),Object.values(e).forEach(t=>Es(t))),e}function um(e=64,t=64,i=16711680){let n=document.createElement("canvas");n.width=e,n.height=t;let r=n.getContext("2d");return r.fillStyle=`#${i.toString(16).padStart(6,"0")}`,r.fillRect(0,0,e,t),r.strokeStyle="#000",r.strokeRect(0,0,e,t),r.fillStyle="#fff",r.font="10px sans-serif",r.textAlign="center",r.fillText("MISSING",e/2,t/2),Ke.Texture.from(n)}function Ss(e,t){od.set(e,t)}var Ke,ad,sd,Dt,Y,De,ht,Ve,_s,od,zt,gr=We(()=>{"use strict";Ke=require("pixi.js");ws();ad=typeof __BUILD_MODE__!="undefined"?__BUILD_MODE__:"undefined",sd=om(),Dt=typeof window!="undefined"?window.__BUILD_SETTINGS__:null,Y=sd?"publish":ad,De=Dt==null?void 0:Dt.assetsInlined;Dt!=null&&Dt.buildMode&&(Y=Dt.buildMode,console.log(`[AssetLoader] Build mode overridden by inline settings: ${Y}`));ht=cm();ht!=null&&ht.buildMode&&(Y=ht.buildMode,console.log(`[AssetLoader] Build mode overridden by sync settings: ${Y}`));(ht==null?void 0:ht.assetsInlined)!==void 0&&(De=ht.assetsInlined);lm().then(e=>{e!=null&&e.buildMode&&e.buildMode!==Y&&(Y=e.buildMode,console.log(`[AssetLoader] Build mode overridden by settings: ${Y}`)),(e==null?void 0:e.assetsInlined)!==void 0&&(De=e.assetsInlined)}).catch(()=>{});console.log(`[AssetLoader] MODULE LOADED - Compile: ${ad}, Runtime: ${sd?"publish":"dev"}, Effective: ${Y}`);Ve={},_s=null;od=new Map;zt=class{static async load(t,i,n,r){let a=`${t}:${i.path}`,s=Ye.get(a);if(s!==void 0)return s;console.log(`[AssetLoader] Loading asset: ${t}, type: ${i.type}, Effective mode: ${Y}`),console.log(`[AssetLoader] Window defined: ${typeof window!="undefined"}, INLINE_ASSETS exists: ${!!(typeof window!="undefined"&&window.INLINE_ASSETS)}, keys: ${typeof window!="undefined"&&window.INLINE_ASSETS?Object.keys(window.INLINE_ASSETS).length:"N/A"}`);let o=await dm(),l=o[t];if(!l&&r&&(l=o[r],l&&console.log(`[AssetLoader] Found inline data for ${t} using configId: ${r}`)),!l&&i.path){let u=i.path.split("/");if(u.length>=2){let p=u[u.length-1].split(".")[0];o[p]&&(l=o[p],console.log(`[AssetLoader] Found inline data for ${t} using assetName: ${p}`))}}if(console.log("[AssetLoader] Inline data for",t,":",l?"FOUND":"NOT FOUND"),Y==="publish"&&De!==!1&&(console.log("[AssetLoader] \u26A0\uFE0F PUBLISH MODE DETECTED - inline assets are MANDATORY"),!l))throw new Error(`[AssetLoader] PUBLISH MODE: Inline asset required but NOT FOUND for object: ${t}, path: ${i.path}`);let d=od.get(i.type);if(d)try{let u=await d(i.path,l,t,n);return Ye.set(a,u),u}catch(u){return this.handleFailure(t,i.type,u)}try{let u;switch(i.type){case"image":u=await this.loadImage(i.path,l);break;case"json":u=await this.loadJSON(i.path,l),u=Es(u);break;default:throw new Error(`Unknown asset type: ${i.type}`)}return Ye.set(a,u),u}catch(u){return this.handleFailure(t,i.type,u)}}static async loadImage(t,i){let n=Y==="publish",r=n&&De!==!1;if(console.log(`[AssetLoader] loadImage - Effective mode: ${Y}, isPublishMode: ${n}, inlineData: ${i?"EXISTS":"MISSING"}`),r){if(console.log("[AssetLoader] PUBLISH MODE ACTIVATED - inline assets are MANDATORY"),!i)throw new Error(`[AssetLoader] Publish mode: inline asset required but not found for object. Path: ${t}`);if(typeof i!="string"||!i.startsWith("data:"))throw new Error(`[AssetLoader] Publish mode: inline asset must be data URI string, got: ${typeof i}`);try{return await Ke.Assets.load(i)}catch(a){throw console.error("[AssetLoader] Failed to load texture from data URI:",a),a}}if(i&&typeof i=="string"&&i.startsWith("data:"))try{return await Ke.Assets.load(i)}catch(a){return console.error("[AssetLoader] Failed to load texture from data URI, falling back to path:",a),await Ke.Assets.load(t)}return await Ke.Assets.load(t)}static async loadJSON(t,i){let n=Y==="publish",r=n&&De!==!1;if(console.log(`[AssetLoader] loadJSON - Effective mode: ${Y}, isPublishMode: ${n}, inlineData: ${i?"EXISTS":"MISSING"}`),r){if(console.log("[AssetLoader] PUBLISH MODE ACTIVATED - inline assets are MANDATORY"),!i)throw new Error(`[AssetLoader] Publish mode: inline asset required but not found for path: ${t}`);if(typeof i=="object"&&i!==null)return i;if(typeof i=="string"&&i.startsWith("data:")){let s=atob(i.split(",")[1]);return JSON.parse(s)}return JSON.parse(i)}if(i){if(typeof i=="object"&&i!==null)return i;if(typeof i=="string"&&i.startsWith("data:")){let s=atob(i.split(",")[1]);return JSON.parse(s)}return JSON.parse(i)}let a=await fetch(t);if(!a.ok)throw new Error(`JSON fetch failed: ${t}`);return a.json()}static handleFailure(t,i,n){if(Y==="dev"){let a=i==="image"?um():Es({__placeholder:!0,type:i});return Ye.set(t+":"+((n==null?void 0:n.path)||"missing"),a),a}throw n}};Ss("image",async(e,t)=>{let i=Y==="publish",n=i&&De!==!1,r=Y==="brand",a=i&&De===!1;if(console.log(`[AssetLoader] registerType('image') - Effective mode: ${Y}, isPublishMode: ${i}, isBrandMode: ${r}, inlineData: ${t?"EXISTS":"MISSING"}`),n){if(console.log("[AssetLoader] PUBLISH MODE ACTIVATED - inline assets are MANDATORY"),!t)throw new Error(`[AssetLoader] Publish mode: inline asset required but not found for path: ${e}`);if(typeof t!="string"||!t.startsWith("data:"))throw new Error(`[AssetLoader] Publish mode: inline asset must be data URI string, got: ${typeof t}`);return Ke.Assets.load(t)}let s=e;return(r||a)&&e&&!e.startsWith("assets/")&&(typeof window!="undefined"&&!document.querySelector('link[href*="assets/"], script[src*="assets/"]')&&!document.querySelector('link[href*="configs/"], script[src*="configs/"]')?(s=e,console.log(`[AssetLoader] BRAND MODE: flattened build, using path "${e}" as-is`)):(s=`assets/${e}`,console.log(`[AssetLoader] BRAND MODE: transformed path "${e}" -> "${s}"`))),Ke.Assets.load(t||s)});Ss("json",async(e,t)=>{let i=Y==="publish",n=i&&De!==!1,r=Y==="brand",a=i&&De===!1;if(console.log(`[AssetLoader] registerType('json') - Effective mode: ${Y}, isPublishMode: ${i}, isBrandMode: ${r}, inlineData: ${t?"EXISTS":"MISSING"}`),n){if(console.log("[AssetLoader] PUBLISH MODE ACTIVATED - inline assets are MANDATORY"),!t)throw new Error(`[AssetLoader] Publish mode: inline asset required but not found for path: ${e}`);return typeof t=="object"&&t!==null?t:typeof t=="string"&&t.startsWith("data:")?JSON.parse(atob(t.split(",")[1])):JSON.parse(t)}let s=e;if((r||a)&&e&&!e.startsWith("assets/")&&(typeof window!="undefined"&&!document.querySelector('link[href*="assets/"], script[src*="assets/"]')&&!document.querySelector('link[href*="configs/"], script[src*="configs/"]')?(s=e,console.log(`[AssetLoader] BRAND MODE: flattened build, using path "${e}" as-is`)):(s=`assets/${e}`,console.log(`[AssetLoader] BRAND MODE: transformed path "${e}" -> "${s}"`))),t)return typeof t=="object"&&t!==null?t:typeof t=="string"&&t.startsWith("data:")?JSON.parse(atob(t.split(",")[1])):JSON.parse(t);let o=await fetch(s);if(!o.ok)throw new Error(`JSON fetch failed: ${e}`);return o.json()})});var cd={};nn(cd,{AssetTextures:()=>ze,initAssetTextures:()=>Ts});function Ts(e,t){ld.init(e,t),typeof window!="undefined"&&(window.__AssetTextures=ze)}var Cs,ld,ze,pi=We(()=>{"use strict";gr();Cs=class{constructor(){this.textures=new Map;this.readyPromise=null;this.priorityReadyPromise=null;this.priorityReadyResolve=null;this.config=null;this.app=null;this.attempted=new Set;this.waiters=new Set}init(t,i){if(this.config===t&&this.app===i&&this.priorityReadyPromise){console.log("[AssetTextures] init called with same config/app; keeping existing state");return}this.textures.clear(),this.readyPromise=null,this.priorityReadyPromise=null,this.priorityReadyResolve=null,this.attempted.clear(),this.waiters.clear(),this.priorityReadyPromise=new Promise(n=>{this.priorityReadyResolve=n}),this.config=t,this.app=i,console.log("[AssetTextures] Initialized with config, cleared previous textures")}async ready(){if(this.readyPromise){await this.readyPromise;return}if(!this.config)throw new Error("[AssetTextures] Must call init() before ready() - config is null");if(!this.app)throw new Error("[AssetTextures] Must call init() before ready() - app is null");let t=this.config,i=this.app;return this.readyPromise=(async()=>{var s;console.log("[AssetTextures] Loading all assets...");let n=new Set(["background_loading_1"]),r=[],a=[];for(let[o,l]of t.objects.entries()){let c=(s=l.render)==null?void 0:s.asset;if(!c)continue;let d=async()=>{var u;try{let p=(u=l.identity)==null?void 0:u.id;console.log(`[AssetTextures] Loading ${c.type}: ${o} (${p})`);let f=await zt.load(o,c,i,p);this.textures.set(o,f),console.log(`[AssetTextures] \u2713 Loaded: ${o}`)}catch(p){console.error(`[AssetTextures] \u2717 Failed to load: ${o}`,p)}finally{this.attempted.add(o);try{for(let p of Array.from(this.waiters))p()}catch{}}};n.has(o)?r.push(d()):a.push(d())}r.length>0&&(console.log("[AssetTextures] Phase 1: Loading priority assets (loading screen)..."),await Promise.all(r),console.log("[AssetTextures] Phase 1: Priority assets ready")),this.priorityReadyResolve&&this.priorityReadyResolve(),console.log("[AssetTextures] Phase 2: Loading remaining assets..."),await Promise.all(a),console.log("[AssetTextures] All textures loaded:",Array.from(this.textures.keys()))})(),this.readyPromise}async priorityReady(){return this.priorityReadyPromise?this.priorityReadyPromise:Promise.resolve()}async waitFor(t,i={}){if(!this.config)throw new Error("[AssetTextures] Must call init() before waitFor() - config is null");if(!this.app)throw new Error("[AssetTextures] Must call init() before waitFor() - app is null");let r=Array.from(new Set((t||[]).filter(o=>typeof o=="string"&&o))).filter(o=>{var l,c,d,u;try{let p=(d=(c=(l=this.config)==null?void 0:l.objects)==null?void 0:c.get)==null?void 0:d.call(c,o);return!!((u=p==null?void 0:p.render)!=null&&u.asset)}catch{return!1}});if(r.length===0)return;this.ready().catch(()=>{});let a=()=>r.every(o=>this.textures.has(o)||this.attempted.has(o));if(a())return;let s=typeof i.timeoutMs=="number"?i.timeoutMs:15e3;await new Promise(o=>{let l=!1,c=()=>{l||a()&&(l=!0,this.waiters.delete(c),o())};this.waiters.add(c),c(),s>0&&setTimeout(()=>{l||(l=!0,this.waiters.delete(c),console.warn("[AssetTextures] waitFor timed out; continuing",{ids:r}),o())},s)})}get(t){return this.textures.get(t)}set(t,i){this.textures.set(t,i),console.log(`[AssetTextures] Updated texture: ${t}`)}clear(){this.textures.clear(),this.readyPromise=null,console.log("[AssetTextures] Cleared all textures")}getAllIds(){return Array.from(this.textures.keys())}},ld=new Cs,ze=new Proxy(ld,{get(e,t){return t in e&&typeof e[t]=="function"?e[t].bind(e):e.get(t)},set(e,t,i){return e.set(t,i),!0}})});var Or={};nn(Or,{applyConfigOverride:()=>mt,applyConfigOverrides:()=>bt,applyConfigsToDisk:()=>kr,clearConfigOverrides:()=>un,clearConfigOverridesForObject:()=>wd,configOverrideManager:()=>_d,deepClone:()=>ne,exportConfigsAsJSON:()=>Ms,getConfigOverrides:()=>de,getConfigStateSummary:()=>Tr,getOverrideMode:()=>dn,removeConfigOverride:()=>Cr,resetToApplied:()=>pn,resetToOriginal:()=>Lr,setOverrideMode:()=>Is});function Sr(){return typeof window=="undefined"?null:window.__editableConfig||null}function md(){return typeof window=="undefined"?null:window.__editableConfigBaseline||null}function hd(e,t){var i,n;if(!e)return null;try{if(e instanceof Map)return(i=e.get(t))!=null?i:null;if(typeof e=="object")return(n=e[t])!=null?n:null}catch{}return null}function Dm(e,t,i){if(e){if(e instanceof Map){e.set(t,i);return}typeof e=="object"&&(e[t]=i)}}function bd(e,t){for(let i of t)cn(e,i.path,i.value)}function yd(e){var o;if(typeof window=="undefined")return;let t=Sr();if(!t)return;let i=md(),n=(o=i?hd(i.objects,e):null)!=null?o:hd(t.objects,e);if(!n)return;let r=ne(n),a=de().filter(l=>l.objectId===e);try{bd(r,a)}catch(l){console.error("[CONFIG] Failed to reapply overrides for object",e,l);return}Dm(t.objects,e,r);let s=window.applyEditableObjectConfig;if(typeof s=="function")try{s(e,r)}catch{}}function zm(){var r;if(typeof window=="undefined")return;let e=Sr();if(!(e!=null&&e.engine))return;let t=md(),i=ne(((r=t==null?void 0:t.engine)!=null?r:e.engine)||{}),n=de().filter(a=>!a.objectId&&!a.sceneId);try{bd(i,n)}catch(a){console.error("[CONFIG] Failed to reapply engine overrides",a);return}try{let a=e.engine;for(let s of Object.keys(a))s in i||delete a[s];for(let[s,o]of Object.entries(i))a[s]=o}catch{e.engine=i}}function Nm(){if(typeof window=="undefined")return"unknown";let e=window;return typeof e.__HANDLER_PROJECT_ID=="string"?e.__HANDLER_PROJECT_ID:"handler-default"}function vd(){return`handler_preview_config_overrides::${Nm()}`}function Bm(){if(typeof window=="undefined")return[];try{let e=window.localStorage.getItem(vd());if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}function Ar(e){if(typeof window!="undefined")try{window.localStorage.setItem(vd(),JSON.stringify(e))}catch{}}function dn(){return typeof window=="undefined"?!1:window.__enableConfigOverrides===!0}function Is(e){if(typeof window!="undefined"){window.__enableConfigOverrides=e;try{window.localStorage.setItem(xd,e?"true":"false")}catch{}}}function mt(e,t={}){var p,f;let{objectId:i,path:n,value:r}=e,{silent:a=!1,persist:s=!0,emitEvent:o=!0}=t,l=Sr();if(!l){console.warn("[CONFIG] applyConfigOverride: No editable config found in window.__editableConfig");return}let c=i?(f=(p=l.objects)==null?void 0:p.get)==null?void 0:f.call(p,i):l.engine;if(!c){console.warn("[CONFIG] applyConfigOverride: Override target not found:",{objectId:i,path:n,hasObjects:!!l.objects});return}a||console.log("[CONFIG] applyConfigOverride: Target found, applying...",{objectId:i,path:n,value:r});let d;try{d=Hm(c,n),cn(c,n,r)}catch(m){console.error("[CONFIG] applyConfigOverride failed:",{objectId:i,path:n,value:r},m);return}window.__configChanges=window.__configChanges||[];let u=window.__configChanges;if(u.push({objectId:i,path:n,oldValue:d,newValue:r,ts:Date.now()}),u.length>Fm&&u.shift(),s){let m=de(),h=m.findIndex(g=>g.objectId===i&&g.sceneId===e.sceneId&&g.path===n);h>=0?m[h].value=r:m.push(e),window.__configOverrides=m,Ar(m),dn()||Is(!0)}a||console.log("[CONFIG] Applied override:",e),o&&typeof window!="undefined"&&window.dispatchEvent(new CustomEvent("config:changed",{detail:e}))}function bt(e,t={}){let i=t.emitEvent!==!1,n=[];for(let r of e)r!=null&&r.objectId&&typeof r.objectId=="string"&&n.push(r.objectId),mt(r,{...t,emitEvent:!1});if(i&&typeof window!="undefined"){let r=Array.from(new Set(n));window.dispatchEvent(new CustomEvent("config:changed",{detail:{action:"batch",objectIds:r,count:e.length}}))}}function un(){window.__configOverrides=[],window.__configChanges=[],Ar([]),console.log("[CONFIG] Cleared all overrides")}function wd(e){let t=de().filter(n=>n.objectId!==e);window.__configOverrides=t,Ar(t);let i=window.__configChanges||[];window.__configChanges=i.filter(n=>n.objectId!==e),yd(e),window.dispatchEvent(new CustomEvent("config:changed",{detail:{action:"clear_object",objectId:e}}))}function Cr(e,t){let i=de().filter(r=>r.objectId!==e||r.path!==t);window.__configOverrides=i,Ar(i);let n=window.__configChanges||[];window.__configChanges=n.filter(r=>r.objectId!==e||r.path!==t),e?yd(e):zm(),window.dispatchEvent(new CustomEvent("config:changed",{detail:{action:"remove",objectId:e,path:t}}))}function de(){return typeof window=="undefined"?[]:(window.__configOverrides||(window.__configOverrides=Bm()),window.__configOverrides||[])}function cn(e,t,i){var s;let n=t.split("."),r=n.pop(),a=e;for(let o of n){if(a[o]!==void 0&&typeof a[o]!="object")throw new Error(`Invalid override path: ${t} (hit primitive at ${o})`);a[o]=(s=a[o])!=null?s:{},a=a[o]}a[r]=i}function Hm(e,t){return t.split(".").reduce((i,n)=>i?i[n]:void 0,e)}function ne(e){if(e===null||typeof e!="object")return e;if(e instanceof Date)return new Date(e.getTime());if(e instanceof Set)return new Set([...e].map(i=>ne(i)));if(ArrayBuffer.isView(e))return e.slice();if(e instanceof Array)return e.map(i=>ne(i));if(e instanceof Map){let i=new Map;return e.forEach((n,r)=>i.set(r,ne(n))),i}let t={};for(let i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=ne(e[i]));return t}function Ms(){let e=window.__editableConfigBaseline;if(!e){let t=window.__editableConfig;if(!t)throw new Error("Cannot export: no config loaded");return gd(t)}return gd(e)}function gd(e){let t={objects:{},scenes:{},engine:ne(e.engine||{})},i=e.objects;if(i instanceof Map)i.forEach((a,s)=>{t.objects[s]=ne(a)});else if(i&&typeof i=="object")for(let a in i)t.objects[a]=ne(i[a]);let n=e.scenes;if(n instanceof Map)n.forEach((a,s)=>{t.scenes[s]=ne(a)});else if(n&&typeof n=="object")for(let a in n)t.scenes[a]=ne(n[a]);let r=de();for(let a of r)a.objectId?(t.objects[a.objectId]||(t.objects[a.objectId]={}),cn(t.objects[a.objectId],a.path,a.value)):a.sceneId?(t.scenes[a.sceneId]||(t.scenes[a.sceneId]={}),cn(t.scenes[a.sceneId],a.path,a.value)):cn(t.engine,a.path,a.value);return t}function Tr(){let e=de(),t=new Set;for(let i of e)i.objectId?t.add(i.objectId):t.add("__engine__");return{modifiedObjects:Array.from(t),overrideCount:e.length,hasChanges:e.length>0,overrides:e}}async function kr(e){let t=Ms(),i={};for(let[r,a]of Object.entries(t.objects)){let s=a,o=r;/^(json\.|ui\.|effects\.|engine\.)/.test(o)||(o=`json.${r}`),s&&typeof s=="object"&&(s.identity||(s.identity={}),s.identity.id=o),i[`objects/${o}.json`]=s}t.engine&&(t.engine.runtime&&(i["engine/engine.runtime.json"]=t.engine.runtime),t.engine.assets&&(i["engine/engine.assets.json"]=t.engine.assets),t.engine.splash&&(i["engine/engine.splash.json"]=t.engine.splash),t.engine.loading&&(i["engine/engine.loading.json"]=t.engine.loading),t.engine.start&&(i["engine/engine.start.json"]=t.engine.start),t.engine.tutorial&&(i["engine/engine.tutorial.json"]=t.engine.tutorial),t.engine.endgame&&(i["engine/engine.endgame.json"]=t.engine.endgame),!t.engine.runtime&&!t.engine.assets&&(i["engine/engine.json"]=t.engine));for(let[r,a]of Object.entries(t.scenes)){let s=r.startsWith("scene.")?r:`scene.${r}`;i[`scenes/${s}.json`]=a}let n=await fetch("/api/apply",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({configs:i,assets:{},hadCacheAtApply:de().length>0,versionName:e})});if(!n.ok){let r=await n.json();throw new Error(`Apply failed: ${r.error||"Unknown error"}`)}un();try{let r=Sr();r&&(window.__editableConfigBaseline=ne(r))}catch{}localStorage.setItem("handler_last_applied",Date.now().toString()),console.log("[Config Persistence] \u2705 Applied to disk successfully")}function pn(){un(),window.location.reload()}async function Lr(){if(!confirm("This will restore all configs to their original state. All uncommitted changes in cache AND applied changes will be lost. Continue?"))return;let t=await fetch("/api/reset-to-original",{method:"POST"});if(!t.ok){let i=await t.json();throw new Error(`Reset failed: ${i.error||"Unknown error"}`)}un(),window.location.reload()}var xd,Fm,_d,Te=We(()=>{"use strict";xd="handler_preview_override_mode";if(typeof window!="undefined"){let e=window.localStorage.getItem(xd);window.__enableConfigOverrides=e===null?!0:e==="true"}Fm=500;_d={getCurrentConfig(){return window.__editableConfig||null},getChanges(){return window.__configChanges||[]},clearChanges(){window.__configChanges=[]}}});function $m(e,t){try{if(typeof e=="object"&&e!==null)return e;if(typeof e!="string")return null;if(e.startsWith("data:")){let n=e.indexOf(",");if(n===-1)return null;let r=e.slice(0,n);if(!r.includes("application/json")&&!r.includes("text/plain"))return null;let a=e.slice(n+1),s=r.includes("base64")?typeof atob=="function"?atob(a):a:decodeURIComponent(a);return JSON.parse(s)}let i=e.trim();return i.startsWith("{")||i.startsWith("[")?JSON.parse(e):null}catch{return null}}function Um(e){if(typeof window=="undefined"||!window.INLINE_ASSETS)return null;let t=window.INLINE_ASSETS,i=e.replace(/^\.\/+/,""),n=i.split("/").pop()||i,r=[i,n,i.replace(/\.json$/,""),n.replace(/\.json$/,"")];for(let a of r){let s=t[a];if(s){let o=$m(s,a);if(o!==null)return o}}return null}async function fn(e){if(Rs.has(e)&&!Ps)return console.log(`[CONFIG] Using cached config for: "${e}"`),Rs.get(e);if(console.log(`[CONFIG] loadConfigFile called with: "${e}", MODE: ${G.toUpperCase()}, CACHE: ${Ps?"DISABLED":"ENABLED"}`),G==="publish"){let n=Um(e);return n?(console.log(`[CONFIG] \u2713 Loaded ${e} via INLINE_ASSETS`),n):(console.log(`[CONFIG] \u2139\uFE0F Optional config ${e} not in INLINE_ASSETS, skipping fetch in publish mode`),{})}G==="brand"||console.log(`[CONFIG] DEV MODE: Trying nested paths first, then flattened for "${e}"`);let t;G==="brand"?t=[`./${e.split("/").pop()||e}`,`./${e}`,`./${e.replace(/^configs\//,"")}`,`./${e.replace(/^configs\//,"").replace(/\//g,".")}`]:t=[`./${e}`,`./${e.replace(/^configs\//,"")}`,`./${e.replace(/^configs\//,"").replace(/\//g,".")}`],t=Array.from(new Set(t.flatMap(n=>n.startsWith("./")?[n,`/${n.slice(2)}`]:n.startsWith("/")?[n]:[n,`/${n}`]))),console.log("[CONFIG] Will try candidates:",t);let i=(async()=>{let n=Ps?"no-store":"force-cache";for(let r of t)try{let a=await fetch(r,{cache:n});if(!a.ok)continue;let s=await a.json();return console.log(`[CONFIG] \u2713 Loaded ${e} via ${r}`,s),s}catch(a){console.warn(`[CONFIG] \u2717 Failed to load ${r} (mode: ${G}):`,a)}return console.warn(`[CONFIG] \u2717 All attempts failed for ${e}; using defaults`),{}})();return Rs.set(e,i),i}async function Ir(){console.log("[CONFIG] Loading component schemas...");let e=["components/identity.schema.json","components/transform.schema.json","components/render.schema.json","components/motion.schema.json","components/effects.schema.json","components/interaction.schema.json","components/gameplay.rules.schema.json","components/gameplay.tuning.schema.json","components/visibility.schema.json","components/audio.schema.json","components/physics.schema.json","components/ui.schema.json"],t=new Map;for(let i of e)try{let n=G==="publish"||G==="brand"?i.split("/").pop()||i:`configs/${i}`,r=await fn(n);r.component&&(t.set(r.component,r),console.log(`[CONFIG] \u2713 Schema loaded: ${r.component} ${G==="publish"||G==="brand"?"(flattened)":"(nested)"}`))}catch(n){console.warn(`[CONFIG] \u2717 Failed to load schema ${i}:`,n)}return console.log(`[CONFIG] Loaded ${t.size} component schemas`),t}async function yt(e){console.log(`[CONFIG] Loading object config: ${e}`);let t=G==="publish"||G==="brand"?`${e}.json`:`configs/objects/${e}.json`;return await fn(t)}async function Mr(e){let t=new Map;if(e.objects&&Array.isArray(e.objects)){for(let i of e.objects)if(i.enabled&&i.object_config)try{let n=i.instance_id;/^(json\.|ui\.|effects\.|engine\.)/.test(n)||(n=`json.${n}`);let r=await yt(n);(!r||Object.keys(r).length===0)&&n!==i.instance_id&&(r=await yt(i.instance_id)),!r||Object.keys(r).length===0?(console.log(`[CONFIG] No instance snapshot for ${i.instance_id}, using template ${i.object_config}`),r=await yt(i.object_config)):console.log(`[CONFIG] \u2713 Loaded instance snapshot for ${i.instance_id}`),t.set(i.instance_id,{...r,instance_id:i.instance_id,object_config:i.object_config})}catch(n){console.warn(`Failed to load object ${i.object_config}:`,n)}}return t}async function Rr(){console.log("[CONFIG] Loading engine configs...");let e=["runtime","assets","splash","loading","start","tutorial","endgame"],t=await Promise.all(e.map(n=>{let r=`engine.${n}.json`,a=G==="publish"||G==="brand"?r:`configs/engine/${r}`;return fn(a)})),i=Object.fromEntries(e.map((n,r)=>[n,t[r]]));return console.log("[CONFIG] Engine configs loaded:",Object.fromEntries(e.map(n=>{var s;let r=(s=i[n])!=null?s:{},a=Object.keys(r);return[n,a.length>0?a:"empty"]}))),i}async function js(){return await fn(G==="publish"||G==="brand"?"game.prompt.json":"configs/engine/game.prompt.json")}async function Pr(e="scene.main"){console.log(`[CONFIG] Loading scene config: ${e}`);let t=G==="publish"||G==="brand"?`${e}.json`:`configs/scenes/${e}.json`;return await fn(t)}function fi(e,t){let i=[];if(!e.identity)return i.push("Missing required identity component"),{valid:!1,errors:i};let n=t.get("identity");if(n)for(let r of n.required||[])e.identity[r]||i.push(`Missing required identity field: ${r}`);for(let[r,a]of Object.entries(e)){if(r==="identity")continue;let s=t.get(r);if(s&&a&&typeof a=="object"){let o=a;for(let l of s.required||[])o[l]===void 0&&i.push(`Missing required field in ${r}: ${l}`);if(s.constraints&&typeof s.constraints=="object")for(let[l,c]of Object.entries(s.constraints)){let d=o[l];if(d!==void 0&&c&&typeof c=="object"){let u=c;typeof d=="number"&&(u.min!==void 0&&d<u.min&&i.push(`${r}.${l} value ${d} is below minimum ${u.min}`),u.max!==void 0&&d>u.max&&i.push(`${r}.${l} value ${d} is above maximum ${u.max}`))}}}}return{valid:i.length===0,errors:i}}function Bt(e,t){let i={...e},n=["identity","transform","render"];for(let[r,a]of t.entries())a.defaults&&Object.keys(a.defaults).length>0&&(n.includes(r)||i[r])&&(i[r]||(i[r]={}),i[r]={...a.defaults,...i[r]});return i}function xe(e,t,i,n){return typeof e!="number"||!Number.isFinite(e)?t:Math.min(Math.max(e,i),n)}function Sd(e,t){if(Array.isArray(e))return{x:xe(e[0],t.x,-2e3,2e3),y:xe(e[1],t.y,-2e3,2e3)};if(!e||typeof e!="object")return t;let{x:i,y:n}=e;return{x:xe(i,t.x,-2e3,2e3),y:xe(n,t.y,-2e3,2e3)}}function qm(e,t){if(Array.isArray(e))return{x:xe(e[0],t.x,0,1),y:xe(e[1],t.y,0,1)};if(!e||typeof e!="object")return t;let{x:i,y:n}=e;return{x:xe(i,t.x,0,1),y:xe(n,t.y,0,1)}}function Gm(e){if(Array.isArray(e))return{x:xe(e[0],.5,-10,10),y:xe(e[1],.5,-10,10)};if(e&&typeof e=="object"){let{x:t,y:i}=e;return{x:xe(t,.5,-10,10),y:xe(i,.5,-10,10)}}return typeof e=="string"?e:null}async function Qe(e="scene.main",t){var l,c,d,u,p,f,m,h,g,b,y,v,x,w;console.log("[CONFIG] ===== Starting Object-Centric Config Load =====");let i=await Ir(),n=de();n.length>0&&console.log(`[CONFIG] Applying ${n.length} active overrides`);let r=await Pr(e);console.log(`[CONFIG] Scene config loaded: ${((l=r.objects)==null?void 0:l.length)||0} objects`);let a=await Rr();console.log("[CONFIG] Loading object configs...");let s=await Mr(r);console.log(`[CONFIG] Loaded ${s.size} object configs:`,Array.from(s.keys()));for(let[S,A]of s.entries()){let _=Bt(A,i),T=fi(_,i);T.valid||console.warn(`Object ${S} validation errors:`,T.errors),(c=_.transform)!=null&&c.position&&(_.transform.position=Sd(_.transform.position,{x:0,y:0})),(d=_.transform)!=null&&d.offset&&(_.transform.offset=Sd(_.transform.offset,{x:0,y:0})),((u=_.transform)==null?void 0:u.anchor)!==void 0&&(_.transform.anchor=Gm(_.transform.anchor)),((p=_.transform)==null?void 0:p.position_ratio)!==void 0&&_.transform.position_ratio!==null&&(_.transform.position_ratio=qm(_.transform.position_ratio,{x:.5,y:.5})),s.set(S,_)}if(t){if(t.objects)for(let[S,A]of t.objects.entries())s.set(S,A);t.engine&&(a.runtime={...a.runtime,...t.engine.runtime},a.assets={...a.assets,...t.engine.assets},a.splash={...(f=a.splash)!=null?f:{},...(m=t.engine.splash)!=null?m:{}})}let o={objects:s,engine:a,scene:r,schemas:i,theme:{background_color:"#ffffff",text_color:"#000000",square_color:"#cccccc",cta_background:"#007bff",cta_text:"#ffffff"},gameplay:{}};return typeof window!="undefined"&&(window.__editableConfig=o,window.__editableConfigBaseline||(window.__editableConfigBaseline=Bt(o,i))),n.length>0&&dn()&&bt(n,{silent:!0,persist:!1}),console.log("[CONFIG] ===== Object-Centric Config Load Complete ====="),console.log("[CONFIG] Summary:",{schemas:Array.from(i.keys()),objects:Array.from(s.keys()),engine:{runtime:Object.keys((h=a.runtime)!=null?h:{}),assets:Object.keys((g=a.assets)!=null?g:{}),splash:Object.keys((b=a.splash)!=null?b:{}),loading:Object.keys((y=a.loading)!=null?y:{}),start:Object.keys((v=a.start)!=null?v:{}),tutorial:Object.keys((x=a.tutorial)!=null?x:{}),endgame:Object.keys((w=a.endgame)!=null?w:{})},scene:r.scene_id||"unknown"}),o}function Ds(e){var i,n,r,a,s,o,l,c,d,u,p,f,m,h,g,b,y,v,x,w,S,A,_,T,R,E,L,z,D,B,O,P,C;let t={gameplay:{},ui:{},theme:{},assets:{}};for(let[I,j]of e.objects.entries()){let Q=((i=j.identity)==null?void 0:i.id)||I;Q.includes("character")&&(t.gameplay.character_pos=((n=j.transform)==null?void 0:n.position)||{x:0,y:0},t.gameplay.character_scale=((r=j.transform)==null?void 0:r.scale)||1,t.gameplay.character_anim_speed=((s=(a=j.gameplay)==null?void 0:a.tuning)==null?void 0:s.anim_speed)||.003,t.gameplay.character_relief_scale=((l=(o=j.gameplay)==null?void 0:o.tuning)==null?void 0:l.relief_scale)||1.22,t.gameplay.character_relief_speed=((d=(c=j.gameplay)==null?void 0:c.tuning)==null?void 0:d.relief_speed)||.22),(Q.includes("gun")||Q.includes("flame"))&&(t.gameplay.gun=j.gun||{},t.gameplay.gunmuzzle=((u=j.effects)==null?void 0:u.gunmuzzle)||{},t.gameplay.muzzle_levels=((p=j.effects)==null?void 0:p.muzzle_levels)||{},t.gameplay.flame=((f=j.effects)==null?void 0:f.flame)||{}),Q.includes("diamond")&&(t.gameplay.diamond=j),Q.includes("ice")&&(t.gameplay.melt=j.melt||{},t.gameplay.melt_anchor=((m=j.transform)==null?void 0:m.melt_anchor)||{x:0,y:0},t.gameplay.melt_pos=((h=j.transform)==null?void 0:h.position)||{x:0,y:0},t.gameplay.hybrid_melting=((g=j.effects)==null?void 0:g.hybrid_melting)||{},t.gameplay.physics_chunks=((b=j.effects)==null?void 0:b.physics_chunks)||{},t.gameplay.melting_particles=((y=j.effects)==null?void 0:y.melting_particles)||{},t.gameplay.hard_ice=j.hard_ice||{}),Q.includes("water")&&(t.gameplay.water_drops=j),Q.includes("crack")&&(t.gameplay.crack=j),Q.includes("hand")&&(t.gameplay.hand=((v=j.gameplay)==null?void 0:v.tuning)||{},t.gameplay.brush_start_pos=((x=j.transform)==null?void 0:x.brush_start_pos)||{x:0,y:-120},t.gameplay.hand_scale=((w=j.transform)==null?void 0:w.scale)||1.5),Q.includes("hazard")&&(t.gameplay.hazard=((S=j.gameplay)==null?void 0:S.tuning)||{},t.gameplay.danger_pos=((A=j.transform)==null?void 0:A.danger_pos)||{x:0,y:235},t.gameplay.danger_pulse=((T=(_=j.gameplay)==null?void 0:_.tuning)==null?void 0:T.danger_pulse)||{},t.gameplay.hazard_height=((E=(R=j.gameplay)==null?void 0:R.tuning)==null?void 0:E.hazard_height)||140)}return t.gameplay.timeline=((L=e.engine.runtime)==null?void 0:L.timeline)||{},t.gameplay.drag_surface=((z=e.engine.runtime)==null?void 0:z.drag_surface)||{},t.gameplay.background=((D=e.engine.runtime)==null?void 0:D.background)||{},t.gameplay.ui_styles=((B=e.engine.runtime)==null?void 0:B.ui_styles)||{},t.gameplay.label_pulse=((O=e.engine.runtime)==null?void 0:O.label_pulse)||{},t.ui=((P=e.engine.runtime)==null?void 0:P.ui)||{},t.theme=((C=e.engine.runtime)==null?void 0:C.theme)||{},t.assets=e.engine.assets||{},t}var Ed,G,Rs,Ps,zs=We(()=>{"use strict";Te();Ed=null,G="dev";if(typeof window!="undefined"){let e=window.__BUILD_SETTINGS__;if(e!=null&&e.buildMode)Ed=e,G=e.buildMode,console.log("[CONFIG] Loaded inline build settings:",e,"buildMode:",G);else try{let t=new XMLHttpRequest;if(t.open("GET","./build-settings.json",!1),t.send(),t.status===200&&t.responseText){let i=JSON.parse(t.responseText);Ed=i,G=i.buildMode||"dev",console.log("[CONFIG] Loaded build settings:",i,"buildMode:",G)}else console.log("[CONFIG] No build-settings.json found, using default buildMode:",G)}catch(t){console.log("[CONFIG] Failed to load build-settings.json:",t instanceof Error?t.message:String(t))}}console.log("[CONFIG] Final buildMode:",G);Rs=new Map,Ps=G==="dev"||typeof window!="undefined"&&window.location.search.includes("hot-reload")});function Ns(e,t){let i=[];function n(r,a,s=""){if(r!==a){if(typeof r!=typeof a){i.push(`${s}: type changed`);return}if(typeof r=="object"&&r!==null&&a!==null){let o=new Set([...Object.keys(r),...Object.keys(a)]);for(let l of o){let c=s?`${s}.${l}`:l;l in r?l in a?n(r[l],a[l],c):i.push(`${c}: removed`):i.push(`${c}: added`)}}else i.push(`${s}: changed`)}}return n(e,t),i}function Bs(e,t,i,n){let r={...i};for(let[a,s]of n.entries())r[a]&&s.defaults&&(r[a]={...s.defaults,...r[a]});return r}var hn,Ft,Fs=We(()=>{"use strict";hn=class{shouldFullReload(t){return t.type==="component"||t.type==="scene"}getAffectedObjects(t){return t.type==="object"&&t.objectId?[t.objectId]:[]}},Ft=class{constructor(t=1e3){this.pollingInterval=null;this.fileHashes=new Map;this.callbacks=new Map;this.intervalMs=t}watch(t,i){this.callbacks.set(t,i),this.pollingInterval===null&&(this.pollingInterval=window.setInterval(()=>{this.checkAllFiles()},this.intervalMs))}async checkAllFiles(){for(let[t,i]of this.callbacks.entries())try{let n=`${t}?t=${Date.now()}&r=${Math.random()}`,r=await fetch(n,{cache:"no-cache",headers:{"Cache-Control":"no-cache"}});if(r.ok){let a=await r.text(),s=this.hashString(a),o=this.fileHashes.get(t);if(o&&o!==s&&console.log(`[HOT-RELOAD] File changed: ${t}`),o&&o!==s){console.log(`[HOT-RELOAD] File changed: ${t}`);let l=this.determineEventType(t);i(l),this.fileHashes.set(t,s)}else o||this.fileHashes.set(t,s)}}catch(n){console.warn(`Failed to check ${t}:`,n)}}determineEventType(t){var i,n;return t.includes("/components/")?{type:"component",path:t,componentName:(i=t.split("/").pop())==null?void 0:i.replace(".schema.json","")}:t.includes("/engine/")?{type:"engine",path:t}:t.includes("/scenes/")?{type:"scene",path:t}:t.includes("/objects/")?{type:"object",path:t,objectId:(n=t.split("/").pop())==null?void 0:n.replace(".json","")}:{type:"object",path:t}}hashString(t){let i=0;for(let n=0;n<t.length;n++){let r=t.charCodeAt(n);i=(i<<5)-i+r,i=i&i}return i.toString()}unwatch(t){this.callbacks.delete(t),this.fileHashes.delete(t)}stop(){this.pollingInterval!==null&&(clearInterval(this.pollingInterval),this.pollingInterval=null),this.callbacks.clear(),this.fileHashes.clear()}}});function $s(e){if(typeof window=="undefined")return;let t=typeof Hs!="undefined"&&!!Hs.hot,i=window.location.search.includes("hot-reload");if(!(t||i))return;let r=null,a=!1,s=null;if(i){s=new Ft;let m=window.__configWatcher;m!=null&&m.stop&&m.stop(),window.__configWatcher=s}let o=new Set,l=m=>{var b,y;if(!s)return;let h=new Set;h.add("configs/engine/engine.runtime.json"),h.add("configs/engine/engine.assets.json"),h.add("configs/engine/engine.splash.json"),h.add("configs/scenes/scene.main.json");let g=(y=(b=m.scene)==null?void 0:b.objects)!=null?y:[];for(let v of g)v!=null&&v.object_config&&h.add(`configs/objects/${v.object_config}.json`);for(let v of o)h.has(v)||s.unwatch(v);for(let v of h)o.has(v)||s.watch(v,x=>f(x));o=h},c=new Set,d=!1,u=async m=>{let h=await yt(m),g=Bt(h,e.activeConfig.schemas),b=fi(g,e.activeConfig.schemas);b.valid||console.warn(`[HOT-RELOAD] ${m} validation errors:`,b.errors),await e.liveEditBridge.applyObjectConfig(m,g)};async function p(m){if(!a){a=!0;try{if(d||c.size===0){e.audioSystem.destroy();let h=await Qe("scene.main");e.setActiveConfig(h),e.gameObjectManager.updateConfig(h),e.CustomAssets.updateConfig(h),await e.CustomAssets.ready();let g=e.createAudioSystem(h);e.setAudioSystem(g),window.__audioSystem=g,await g.start(),e.liveEditBridge.rebuildIndexes(),l(h),console.log(`[GAME] Hot-reload complete (${m})`)}else{let h=Array.from(c);c.clear();for(let g of h)await u(g);console.log(`[GAME] Hot-reload updated objects: ${h.join(", ")}`)}}catch(h){console.warn("[GAME] Hot-reload failed:",h)}finally{a=!1,d=!1,c.clear()}}}function f(m){m.type==="object"&&m.objectId?c.add(m.objectId):d=!0,r&&window.clearTimeout(r),r=window.setTimeout(()=>{p(m.type)},120)}t&&Hs.hot.on("config-change",()=>{f({type:"hmr"})}),i&&(l(e.activeConfig),console.log(`[GAME] Hot-reload watcher enabled (${o.size} files)`))}var Hs,Ad=We(()=>{"use strict";Fs();zs();Hs={}});var Cd={};nn(Cd,{ConfigWatcher:()=>Ft,DefaultReloadStrategy:()=>hn,applyDefaults:()=>Bt,diffConfigs:()=>Ns,loadAllObjectConfigs:()=>Mr,loadComponentSchemas:()=>Ir,loadEngineConfig:()=>Rr,loadGamePromptConfig:()=>js,loadObjectCentricConfig:()=>Qe,loadObjectConfig:()=>yt,loadSceneConfig:()=>Pr,rehydrateObject:()=>Bs,setupHotReload:()=>$s,toLegacyFormat:()=>Ds,validateObjectConfig:()=>fi});var jr=We(()=>{"use strict";zs();Fs();Ad()});var gn=k((h1,Ws)=>{"use strict";typeof process=="undefined"||!process.version||process.version.indexOf("v0.")===0||process.version.indexOf("v1.")===0&&process.version.indexOf("v1.8.")!==0?Ws.exports={nextTick:Vm}:Ws.exports=process;function Vm(e,t,i,n){if(typeof e!="function")throw new TypeError('"callback" argument must be a function');var r=arguments.length,a,s;switch(r){case 0:case 1:return process.nextTick(e);case 2:return process.nextTick(function(){e.call(null,t)});case 3:return process.nextTick(function(){e.call(null,t,i)});case 4:return process.nextTick(function(){e.call(null,t,i,n)});default:for(a=new Array(r-1),s=0;s<a.length;)a[s++]=arguments[s];return process.nextTick(function(){e.apply(null,a)})}}});var kd=k((g1,Td)=>{"use strict";var Km={}.toString;Td.exports=Array.isArray||function(e){return Km.call(e)=="[object Array]"}});var Ys=k((m1,Ld)=>{"use strict";Ld.exports=require("stream")});var mn=k((Vs,Id)=>{"use strict";var Jr=require("buffer"),et=Jr.Buffer;function Od(e,t){for(var i in e)t[i]=e[i]}et.from&&et.alloc&&et.allocUnsafe&&et.allocUnsafeSlow?Id.exports=Jr:(Od(Jr,Vs),Vs.Buffer=gi);function gi(e,t,i){return et(e,t,i)}Od(et,gi);gi.from=function(e,t,i){if(typeof e=="number")throw new TypeError("Argument must not be a number");return et(e,t,i)};gi.alloc=function(e,t,i){if(typeof e!="number")throw new TypeError("Argument must be a number");var n=et(e);return t!==void 0?typeof i=="string"?n.fill(t,i):n.fill(t):n.fill(0),n};gi.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return et(e)};gi.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return Jr.SlowBuffer(e)}});var mi=k(oe=>{"use strict";function Xm(e){return Array.isArray?Array.isArray(e):Qr(e)==="[object Array]"}oe.isArray=Xm;function Zm(e){return typeof e=="boolean"}oe.isBoolean=Zm;function Jm(e){return e===null}oe.isNull=Jm;function Qm(e){return e==null}oe.isNullOrUndefined=Qm;function eb(e){return typeof e=="number"}oe.isNumber=eb;function tb(e){return typeof e=="string"}oe.isString=tb;function ib(e){return typeof e=="symbol"}oe.isSymbol=ib;function nb(e){return e===void 0}oe.isUndefined=nb;function rb(e){return Qr(e)==="[object RegExp]"}oe.isRegExp=rb;function ab(e){return typeof e=="object"&&e!==null}oe.isObject=ab;function sb(e){return Qr(e)==="[object Date]"}oe.isDate=sb;function ob(e){return Qr(e)==="[object Error]"||e instanceof Error}oe.isError=ob;function lb(e){return typeof e=="function"}oe.isFunction=lb;function cb(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"||typeof e=="symbol"||typeof e=="undefined"}oe.isPrimitive=cb;oe.isBuffer=require("buffer").Buffer.isBuffer;function Qr(e){return Object.prototype.toString.call(e)}});var Md=k((y1,Ks)=>{"use strict";typeof Object.create=="function"?Ks.exports=function(t,i){i&&(t.super_=i,t.prototype=Object.create(i.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:Ks.exports=function(t,i){if(i){t.super_=i;var n=function(){};n.prototype=i.prototype,t.prototype=new n,t.prototype.constructor=t}}});var bi=k((v1,Zs)=>{"use strict";try{if(Xs=require("util"),typeof Xs.inherits!="function")throw"";Zs.exports=Xs.inherits}catch{Zs.exports=Md()}var Xs});var Pd=k((x1,Js)=>{"use strict";function db(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var Rd=mn().Buffer,bn=require("util");function ub(e,t,i){e.copy(t,i)}Js.exports=(function(){function e(){db(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.push=function(i){var n={data:i,next:null};this.length>0?this.tail.next=n:this.head=n,this.tail=n,++this.length},e.prototype.unshift=function(i){var n={data:i,next:this.head};this.length===0&&(this.tail=n),this.head=n,++this.length},e.prototype.shift=function(){if(this.length!==0){var i=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,i}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(i){if(this.length===0)return"";for(var n=this.head,r=""+n.data;n=n.next;)r+=i+n.data;return r},e.prototype.concat=function(i){if(this.length===0)return Rd.alloc(0);for(var n=Rd.allocUnsafe(i>>>0),r=this.head,a=0;r;)ub(r.data,n,a),a+=r.data.length,r=r.next;return n},e})();bn&&bn.inspect&&bn.inspect.custom&&(Js.exports.prototype[bn.inspect.custom]=function(){var e=bn.inspect({length:this.length});return this.constructor.name+" "+e})});var Qs=k((w1,jd)=>{"use strict";var ea=gn();function pb(e,t){var i=this,n=this._readableState&&this._readableState.destroyed,r=this._writableState&&this._writableState.destroyed;return n||r?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,ea.nextTick(ta,this,e)):ea.nextTick(ta,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(a){!t&&a?i._writableState?i._writableState.errorEmitted||(i._writableState.errorEmitted=!0,ea.nextTick(ta,i,a)):ea.nextTick(ta,i,a):t&&t(a)}),this)}function fb(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function ta(e,t){e.emit("error",t)}jd.exports={destroy:pb,undestroy:fb}});var zd=k((_1,Dd)=>{"use strict";Dd.exports=require("util").deprecate});var to=k((E1,Gd)=>{"use strict";var $t=gn();Gd.exports=Z;function Bd(e){var t=this;this.next=null,this.entry=null,this.finish=function(){Ib(t,e)}}var hb=!process.browser&&["v0.10","v0.9."].indexOf(process.version.slice(0,5))>-1?setImmediate:$t.nextTick,yi;Z.WritableState=vn;var Fd=Object.create(mi());Fd.inherits=bi();var gb={deprecate:zd()},Hd=Ys(),na=mn().Buffer,mb=(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:{}).Uint8Array||function(){};function bb(e){return na.from(e)}function yb(e){return na.isBuffer(e)||e instanceof mb}var $d=Qs();Fd.inherits(Z,Hd);function vb(){}function vn(e,t){yi=yi||Ut(),e=e||{};var i=t instanceof yi;this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var n=e.highWaterMark,r=e.writableHighWaterMark,a=this.objectMode?16:16*1024;n||n===0?this.highWaterMark=n:i&&(r||r===0)?this.highWaterMark=r:this.highWaterMark=a,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var s=e.decodeStrings===!1;this.decodeStrings=!s,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(o){Cb(t,o)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new Bd(this)}vn.prototype.getBuffer=function(){for(var t=this.bufferedRequest,i=[];t;)i.push(t),t=t.next;return i};(function(){try{Object.defineProperty(vn.prototype,"buffer",{get:gb.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var ia;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(ia=Function.prototype[Symbol.hasInstance],Object.defineProperty(Z,Symbol.hasInstance,{value:function(e){return ia.call(this,e)?!0:this!==Z?!1:e&&e._writableState instanceof vn}})):ia=function(e){return e instanceof this};function Z(e){if(yi=yi||Ut(),!ia.call(Z,this)&&!(this instanceof yi))return new Z(e);this._writableState=new vn(e,this),this.writable=!0,e&&(typeof e.write=="function"&&(this._write=e.write),typeof e.writev=="function"&&(this._writev=e.writev),typeof e.destroy=="function"&&(this._destroy=e.destroy),typeof e.final=="function"&&(this._final=e.final)),Hd.call(this)}Z.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))};function xb(e,t){var i=new Error("write after end");e.emit("error",i),$t.nextTick(t,i)}function wb(e,t,i,n){var r=!0,a=!1;return i===null?a=new TypeError("May not write null values to stream"):typeof i!="string"&&i!==void 0&&!t.objectMode&&(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),$t.nextTick(n,a),r=!1),r}Z.prototype.write=function(e,t,i){var n=this._writableState,r=!1,a=!n.objectMode&&yb(e);return a&&!na.isBuffer(e)&&(e=bb(e)),typeof t=="function"&&(i=t,t=null),a?t="buffer":t||(t=n.defaultEncoding),typeof i!="function"&&(i=vb),n.ended?xb(this,i):(a||wb(this,n,e,i))&&(n.pendingcb++,r=Eb(this,n,a,e,t,i)),r};Z.prototype.cork=function(){var e=this._writableState;e.corked++};Z.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,!e.writing&&!e.corked&&!e.bufferProcessing&&e.bufferedRequest&&Ud(this,e))};Z.prototype.setDefaultEncoding=function(t){if(typeof t=="string"&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+t);return this._writableState.defaultEncoding=t,this};function _b(e,t,i){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=na.from(t,i)),t}Object.defineProperty(Z.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function Eb(e,t,i,n,r,a){if(!i){var s=_b(t,n,r);n!==s&&(i=!0,r="buffer",n=s)}var o=t.objectMode?1:n.length;t.length+=o;var l=t.length<t.highWaterMark;if(l||(t.needDrain=!0),t.writing||t.corked){var c=t.lastBufferedRequest;t.lastBufferedRequest={chunk:n,encoding:r,isBuf:i,callback:a,next:null},c?c.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else eo(e,t,!1,o,n,r,a);return l}function eo(e,t,i,n,r,a,s){t.writelen=n,t.writecb=s,t.writing=!0,t.sync=!0,i?e._writev(r,t.onwrite):e._write(r,a,t.onwrite),t.sync=!1}function Sb(e,t,i,n,r){--t.pendingcb,i?($t.nextTick(r,n),$t.nextTick(yn,e,t),e._writableState.errorEmitted=!0,e.emit("error",n)):(r(n),e._writableState.errorEmitted=!0,e.emit("error",n),yn(e,t))}function Ab(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}function Cb(e,t){var i=e._writableState,n=i.sync,r=i.writecb;if(Ab(i),t)Sb(e,i,n,t,r);else{var a=qd(i);!a&&!i.corked&&!i.bufferProcessing&&i.bufferedRequest&&Ud(e,i),n?hb(Nd,e,i,a,r):Nd(e,i,a,r)}}function Nd(e,t,i,n){i||Tb(e,t),t.pendingcb--,n(),yn(e,t)}function Tb(e,t){t.length===0&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}function Ud(e,t){t.bufferProcessing=!0;var i=t.bufferedRequest;if(e._writev&&i&&i.next){var n=t.bufferedRequestCount,r=new Array(n),a=t.corkedRequestsFree;a.entry=i;for(var s=0,o=!0;i;)r[s]=i,i.isBuf||(o=!1),i=i.next,s+=1;r.allBuffers=o,eo(e,t,!0,t.length,r,"",a.finish),t.pendingcb++,t.lastBufferedRequest=null,a.next?(t.corkedRequestsFree=a.next,a.next=null):t.corkedRequestsFree=new Bd(t),t.bufferedRequestCount=0}else{for(;i;){var l=i.chunk,c=i.encoding,d=i.callback,u=t.objectMode?1:l.length;if(eo(e,t,!1,u,l,c,d),i=i.next,t.bufferedRequestCount--,t.writing)break}i===null&&(t.lastBufferedRequest=null)}t.bufferedRequest=i,t.bufferProcessing=!1}Z.prototype._write=function(e,t,i){i(new Error("_write() is not implemented"))};Z.prototype._writev=null;Z.prototype.end=function(e,t,i){var n=this._writableState;typeof e=="function"?(i=e,e=null,t=null):typeof t=="function"&&(i=t,t=null),e!=null&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||Ob(this,n,i)};function qd(e){return e.ending&&e.length===0&&e.bufferedRequest===null&&!e.finished&&!e.writing}function kb(e,t){e._final(function(i){t.pendingcb--,i&&e.emit("error",i),t.prefinished=!0,e.emit("prefinish"),yn(e,t)})}function Lb(e,t){!t.prefinished&&!t.finalCalled&&(typeof e._final=="function"?(t.pendingcb++,t.finalCalled=!0,$t.nextTick(kb,e,t)):(t.prefinished=!0,e.emit("prefinish")))}function yn(e,t){var i=qd(t);return i&&(Lb(e,t),t.pendingcb===0&&(t.finished=!0,e.emit("finish"))),i}function Ob(e,t,i){t.ending=!0,yn(e,t),i&&(t.finished?$t.nextTick(i):e.once("finish",i)),t.ended=!0,e.writable=!1}function Ib(e,t,i){var n=e.entry;for(e.entry=null;n;){var r=n.callback;t.pendingcb--,r(i),n=n.next}t.corkedRequestsFree.next=e}Object.defineProperty(Z.prototype,"destroyed",{get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}});Z.prototype.destroy=$d.destroy;Z.prototype._undestroy=$d.undestroy;Z.prototype._destroy=function(e,t){this.end(),t(e)}});var Ut=k((S1,Kd)=>{"use strict";var Wd=gn(),Mb=Object.keys||function(e){var t=[];for(var i in e)t.push(i);return t};Kd.exports=tt;var Yd=Object.create(mi());Yd.inherits=bi();var Vd=ro(),no=to();Yd.inherits(tt,Vd);for(io=Mb(no.prototype),ra=0;ra<io.length;ra++)aa=io[ra],tt.prototype[aa]||(tt.prototype[aa]=no.prototype[aa]);var io,aa,ra;function tt(e){if(!(this instanceof tt))return new tt(e);Vd.call(this,e),no.call(this,e),e&&e.readable===!1&&(this.readable=!1),e&&e.writable===!1&&(this.writable=!1),this.allowHalfOpen=!0,e&&e.allowHalfOpen===!1&&(this.allowHalfOpen=!1),this.once("end",Rb)}Object.defineProperty(tt.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function Rb(){this.allowHalfOpen||this._writableState.ended||Wd.nextTick(Pb,this)}function Pb(e){e.end()}Object.defineProperty(tt.prototype,"destroyed",{get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(e){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=e,this._writableState.destroyed=e)}});tt.prototype._destroy=function(e,t){this.push(null),this.end(),Wd.nextTick(t,e)}});var oo=k(Zd=>{"use strict";var so=mn().Buffer,Xd=so.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function jb(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function Db(e){var t=jb(e);if(typeof t!="string"&&(so.isEncoding===Xd||!Xd(e)))throw new Error("Unknown encoding: "+e);return t||e}Zd.StringDecoder=xn;function xn(e){this.encoding=Db(e);var t;switch(this.encoding){case"utf16le":this.text=$b,this.end=Ub,t=4;break;case"utf8":this.fillLast=Bb,t=4;break;case"base64":this.text=qb,this.end=Gb,t=3;break;default:this.write=Wb,this.end=Yb;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=so.allocUnsafe(t)}xn.prototype.write=function(e){if(e.length===0)return"";var t,i;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";i=this.lastNeed,this.lastNeed=0}else i=0;return i<e.length?t?t+this.text(e,i):this.text(e,i):t||""};xn.prototype.end=Hb;xn.prototype.text=Fb;xn.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length};function ao(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function zb(e,t,i){var n=t.length-1;if(n<i)return 0;var r=ao(t[n]);return r>=0?(r>0&&(e.lastNeed=r-1),r):--n<i||r===-2?0:(r=ao(t[n]),r>=0?(r>0&&(e.lastNeed=r-2),r):--n<i||r===-2?0:(r=ao(t[n]),r>=0?(r>0&&(r===2?r=0:e.lastNeed=r-3),r):0))}function Nb(e,t,i){if((t[0]&192)!==128)return e.lastNeed=0,"\uFFFD";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"\uFFFD";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"\uFFFD"}}function Bb(e){var t=this.lastTotal-this.lastNeed,i=Nb(this,e,t);if(i!==void 0)return i;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function Fb(e,t){var i=zb(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=i;var n=e.length-(i-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)}function Hb(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"\uFFFD":t}function $b(e,t){if((e.length-t)%2===0){var i=e.toString("utf16le",t);if(i){var n=i.charCodeAt(i.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],i.slice(0,-1)}return i}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function Ub(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var i=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,i)}return t}function qb(e,t){var i=(e.length-t)%3;return i===0?e.toString("base64",t):(this.lastNeed=3-i,this.lastTotal=3,i===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-i))}function Gb(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function Wb(e){return e.toString(this.encoding)}function Yb(e){return e&&e.length?this.write(e):""}});var ro=k((T1,cu)=>{"use strict";var xi=gn();cu.exports=q;var Vb=kd(),wn;q.ReadableState=ru;var C1=require("events").EventEmitter,tu=function(e,t){return e.listeners(t).length},fo=Ys(),_n=mn().Buffer,Kb=(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:{}).Uint8Array||function(){};function Xb(e){return _n.from(e)}function Zb(e){return _n.isBuffer(e)||e instanceof Kb}var iu=Object.create(mi());iu.inherits=bi();var lo=require("util"),H=void 0;lo&&lo.debuglog?H=lo.debuglog("stream"):H=function(){};var Jb=Pd(),nu=Qs(),vi;iu.inherits(q,fo);var co=["error","close","destroy","pause","resume"];function Qb(e,t,i){if(typeof e.prependListener=="function")return e.prependListener(t,i);!e._events||!e._events[t]?e.on(t,i):Vb(e._events[t])?e._events[t].unshift(i):e._events[t]=[i,e._events[t]]}function ru(e,t){wn=wn||Ut(),e=e||{};var i=t instanceof wn;this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var n=e.highWaterMark,r=e.readableHighWaterMark,a=this.objectMode?16:16*1024;n||n===0?this.highWaterMark=n:i&&(r||r===0)?this.highWaterMark=r:this.highWaterMark=a,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new Jb,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(vi||(vi=oo().StringDecoder),this.decoder=new vi(e.encoding),this.encoding=e.encoding)}function q(e){if(wn=wn||Ut(),!(this instanceof q))return new q(e);this._readableState=new ru(e,this),this.readable=!0,e&&(typeof e.read=="function"&&(this._read=e.read),typeof e.destroy=="function"&&(this._destroy=e.destroy)),fo.call(this)}Object.defineProperty(q.prototype,"destroyed",{get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}});q.prototype.destroy=nu.destroy;q.prototype._undestroy=nu.undestroy;q.prototype._destroy=function(e,t){this.push(null),t(e)};q.prototype.push=function(e,t){var i=this._readableState,n;return i.objectMode?n=!0:typeof e=="string"&&(t=t||i.defaultEncoding,t!==i.encoding&&(e=_n.from(e,t),t=""),n=!0),au(this,e,t,!1,n)};q.prototype.unshift=function(e){return au(this,e,null,!0,!1)};function au(e,t,i,n,r){var a=e._readableState;if(t===null)a.reading=!1,ny(e,a);else{var s;r||(s=ey(a,t)),s?e.emit("error",s):a.objectMode||t&&t.length>0?(typeof t!="string"&&!a.objectMode&&Object.getPrototypeOf(t)!==_n.prototype&&(t=Xb(t)),n?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):uo(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!i?(t=a.decoder.write(t),a.objectMode||t.length!==0?uo(e,a,t,!1):su(e,a)):uo(e,a,t,!1))):n||(a.reading=!1)}return ty(a)}function uo(e,t,i,n){t.flowing&&t.length===0&&!t.sync?(e.emit("data",i),e.read(0)):(t.length+=t.objectMode?1:i.length,n?t.buffer.unshift(i):t.buffer.push(i),t.needReadable&&sa(e)),su(e,t)}function ey(e,t){var i;return!Zb(t)&&typeof t!="string"&&t!==void 0&&!e.objectMode&&(i=new TypeError("Invalid non-string/buffer chunk")),i}function ty(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||e.length===0)}q.prototype.isPaused=function(){return this._readableState.flowing===!1};q.prototype.setEncoding=function(e){return vi||(vi=oo().StringDecoder),this._readableState.decoder=new vi(e),this._readableState.encoding=e,this};var Jd=8388608;function iy(e){return e>=Jd?e=Jd:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function Qd(e,t){return e<=0||t.length===0&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=iy(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}q.prototype.read=function(e){H("read",e),e=parseInt(e,10);var t=this._readableState,i=e;if(e!==0&&(t.emittedReadable=!1),e===0&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return H("read: emitReadable",t.length,t.ended),t.length===0&&t.ended?po(this):sa(this),null;if(e=Qd(e,t),e===0&&t.ended)return t.length===0&&po(this),null;var n=t.needReadable;H("need readable",n),(t.length===0||t.length-e<t.highWaterMark)&&(n=!0,H("length less than watermark",n)),t.ended||t.reading?(n=!1,H("reading or ended",n)):n&&(H("do read"),t.reading=!0,t.sync=!0,t.length===0&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=Qd(i,t)));var r;return e>0?r=ou(e,t):r=null,r===null?(t.needReadable=!0,e=0):t.length-=e,t.length===0&&(t.ended||(t.needReadable=!0),i!==e&&t.ended&&po(this)),r!==null&&this.emit("data",r),r};function ny(e,t){if(!t.ended){if(t.decoder){var i=t.decoder.end();i&&i.length&&(t.buffer.push(i),t.length+=t.objectMode?1:i.length)}t.ended=!0,sa(e)}}function sa(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(H("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?xi.nextTick(eu,e):eu(e))}function eu(e){H("emit readable"),e.emit("readable"),ho(e)}function su(e,t){t.readingMore||(t.readingMore=!0,xi.nextTick(ry,e,t))}function ry(e,t){for(var i=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(H("maybeReadMore read 0"),e.read(0),i!==t.length);)i=t.length;t.readingMore=!1}q.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))};q.prototype.pipe=function(e,t){var i=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=e;break;case 1:n.pipes=[n.pipes,e];break;default:n.pipes.push(e);break}n.pipesCount+=1,H("pipe count=%d opts=%j",n.pipesCount,t);var r=(!t||t.end!==!1)&&e!==process.stdout&&e!==process.stderr,a=r?o:g;n.endEmitted?xi.nextTick(a):i.once("end",a),e.on("unpipe",s);function s(b,y){H("onunpipe"),b===i&&y&&y.hasUnpiped===!1&&(y.hasUnpiped=!0,d())}function o(){H("onend"),e.end()}var l=ay(i);e.on("drain",l);var c=!1;function d(){H("cleanup"),e.removeListener("close",m),e.removeListener("finish",h),e.removeListener("drain",l),e.removeListener("error",f),e.removeListener("unpipe",s),i.removeListener("end",o),i.removeListener("end",g),i.removeListener("data",p),c=!0,n.awaitDrain&&(!e._writableState||e._writableState.needDrain)&&l()}var u=!1;i.on("data",p);function p(b){H("ondata"),u=!1;var y=e.write(b);y===!1&&!u&&((n.pipesCount===1&&n.pipes===e||n.pipesCount>1&&lu(n.pipes,e)!==-1)&&!c&&(H("false write response, pause",n.awaitDrain),n.awaitDrain++,u=!0),i.pause())}function f(b){H("onerror",b),g(),e.removeListener("error",f),tu(e,"error")===0&&e.emit("error",b)}Qb(e,"error",f);function m(){e.removeListener("finish",h),g()}e.once("close",m);function h(){H("onfinish"),e.removeListener("close",m),g()}e.once("finish",h);function g(){H("unpipe"),i.unpipe(e)}return e.emit("pipe",i),n.flowing||(H("pipe resume"),i.resume()),e};function ay(e){return function(){var t=e._readableState;H("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&tu(e,"data")&&(t.flowing=!0,ho(e))}}q.prototype.unpipe=function(e){var t=this._readableState,i={hasUnpiped:!1};if(t.pipesCount===0)return this;if(t.pipesCount===1)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,i),this);if(!e){var n=t.pipes,r=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a<r;a++)n[a].emit("unpipe",this,{hasUnpiped:!1});return this}var s=lu(t.pipes,e);return s===-1?this:(t.pipes.splice(s,1),t.pipesCount-=1,t.pipesCount===1&&(t.pipes=t.pipes[0]),e.emit("unpipe",this,i),this)};q.prototype.on=function(e,t){var i=fo.prototype.on.call(this,e,t);if(e==="data")this._readableState.flowing!==!1&&this.resume();else if(e==="readable"){var n=this._readableState;!n.endEmitted&&!n.readableListening&&(n.readableListening=n.needReadable=!0,n.emittedReadable=!1,n.reading?n.length&&sa(this):xi.nextTick(sy,this))}return i};q.prototype.addListener=q.prototype.on;function sy(e){H("readable nexttick read 0"),e.read(0)}q.prototype.resume=function(){var e=this._readableState;return e.flowing||(H("resume"),e.flowing=!0,oy(this,e)),this};function oy(e,t){t.resumeScheduled||(t.resumeScheduled=!0,xi.nextTick(ly,e,t))}function ly(e,t){t.reading||(H("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),ho(e),t.flowing&&!t.reading&&e.read(0)}q.prototype.pause=function(){return H("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(H("pause"),this._readableState.flowing=!1,this.emit("pause")),this};function ho(e){var t=e._readableState;for(H("flow",t.flowing);t.flowing&&e.read()!==null;);}q.prototype.wrap=function(e){var t=this,i=this._readableState,n=!1;e.on("end",function(){if(H("wrapped end"),i.decoder&&!i.ended){var s=i.decoder.end();s&&s.length&&t.push(s)}t.push(null)}),e.on("data",function(s){if(H("wrapped data"),i.decoder&&(s=i.decoder.write(s)),!(i.objectMode&&s==null)&&!(!i.objectMode&&(!s||!s.length))){var o=t.push(s);o||(n=!0,e.pause())}});for(var r in e)this[r]===void 0&&typeof e[r]=="function"&&(this[r]=(function(s){return function(){return e[s].apply(e,arguments)}})(r));for(var a=0;a<co.length;a++)e.on(co[a],this.emit.bind(this,co[a]));return this._read=function(s){H("wrapped _read",s),n&&(n=!1,e.resume())},this};Object.defineProperty(q.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}});q._fromList=ou;function ou(e,t){if(t.length===0)return null;var i;return t.objectMode?i=t.buffer.shift():!e||e>=t.length?(t.decoder?i=t.buffer.join(""):t.buffer.length===1?i=t.buffer.head.data:i=t.buffer.concat(t.length),t.buffer.clear()):i=cy(e,t.buffer,t.decoder),i}function cy(e,t,i){var n;return e<t.head.data.length?(n=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):e===t.head.data.length?n=t.shift():n=i?dy(e,t):uy(e,t),n}function dy(e,t){var i=t.head,n=1,r=i.data;for(e-=r.length;i=i.next;){var a=i.data,s=e>a.length?a.length:e;if(s===a.length?r+=a:r+=a.slice(0,e),e-=s,e===0){s===a.length?(++n,i.next?t.head=i.next:t.head=t.tail=null):(t.head=i,i.data=a.slice(s));break}++n}return t.length-=n,r}function uy(e,t){var i=_n.allocUnsafe(e),n=t.head,r=1;for(n.data.copy(i),e-=n.data.length;n=n.next;){var a=n.data,s=e>a.length?a.length:e;if(a.copy(i,i.length-e,0,s),e-=s,e===0){s===a.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=a.slice(s));break}++r}return t.length-=r,i}function po(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,xi.nextTick(py,t,e))}function py(e,t){!e.endEmitted&&e.length===0&&(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function lu(e,t){for(var i=0,n=e.length;i<n;i++)if(e[i]===t)return i;return-1}});var go=k((k1,pu)=>{"use strict";pu.exports=it;var oa=Ut(),uu=Object.create(mi());uu.inherits=bi();uu.inherits(it,oa);function fy(e,t){var i=this._transformState;i.transforming=!1;var n=i.writecb;if(!n)return this.emit("error",new Error("write callback called multiple times"));i.writechunk=null,i.writecb=null,t!=null&&this.push(t),n(e);var r=this._readableState;r.reading=!1,(r.needReadable||r.length<r.highWaterMark)&&this._read(r.highWaterMark)}function it(e){if(!(this instanceof it))return new it(e);oa.call(this,e),this._transformState={afterTransform:fy.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(typeof e.transform=="function"&&(this._transform=e.transform),typeof e.flush=="function"&&(this._flush=e.flush)),this.on("prefinish",hy)}function hy(){var e=this;typeof this._flush=="function"?this._flush(function(t,i){du(e,t,i)}):du(this,null,null)}it.prototype.push=function(e,t){return this._transformState.needTransform=!1,oa.prototype.push.call(this,e,t)};it.prototype._transform=function(e,t,i){throw new Error("_transform() is not implemented")};it.prototype._write=function(e,t,i){var n=this._transformState;if(n.writecb=i,n.writechunk=e,n.writeencoding=t,!n.transforming){var r=this._readableState;(n.needTransform||r.needReadable||r.length<r.highWaterMark)&&this._read(r.highWaterMark)}};it.prototype._read=function(e){var t=this._transformState;t.writechunk!==null&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0};it.prototype._destroy=function(e,t){var i=this;oa.prototype._destroy.call(this,e,function(n){t(n),i.emit("close")})};function du(e,t,i){if(t)return e.emit("error",t);if(i!=null&&e.push(i),e._writableState.length)throw new Error("Calling transform done when ws.length != 0");if(e._transformState.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}});var mu=k((L1,gu)=>{"use strict";gu.exports=En;var fu=go(),hu=Object.create(mi());hu.inherits=bi();hu.inherits(En,fu);function En(e){if(!(this instanceof En))return new En(e);fu.call(this,e)}En.prototype._transform=function(e,t,i){i(null,e)}});var mo=k((re,la)=>{"use strict";var Ne=require("stream");process.env.READABLE_STREAM==="disable"&&Ne?(la.exports=Ne,re=la.exports=Ne.Readable,re.Readable=Ne.Readable,re.Writable=Ne.Writable,re.Duplex=Ne.Duplex,re.Transform=Ne.Transform,re.PassThrough=Ne.PassThrough,re.Stream=Ne):(re=la.exports=ro(),re.Stream=Ne||re,re.Readable=re,re.Writable=to(),re.Duplex=Ut(),re.Transform=go(),re.PassThrough=mu())});var nt=k(he=>{"use strict";he.base64=!0;he.array=!0;he.string=!0;he.arraybuffer=typeof ArrayBuffer!="undefined"&&typeof Uint8Array!="undefined";he.nodebuffer=typeof Buffer!="undefined";he.uint8array=typeof Uint8Array!="undefined";if(typeof ArrayBuffer=="undefined")he.blob=!1;else{bo=new ArrayBuffer(0);try{he.blob=new Blob([bo],{type:"application/zip"}).size===0}catch{try{bu=self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder,yo=new bu,yo.append(bo),he.blob=yo.getBlob("application/zip").size===0}catch{he.blob=!1}}}var bo,bu,yo;try{he.nodestream=!!mo().Readable}catch{he.nodestream=!1}});var xo=k(vo=>{"use strict";var gy=V(),my=nt(),Be="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";vo.encode=function(e){for(var t=[],i,n,r,a,s,o,l,c=0,d=e.length,u=d,p=gy.getTypeOf(e)!=="string";c<e.length;)u=d-c,p?(i=e[c++],n=c<d?e[c++]:0,r=c<d?e[c++]:0):(i=e.charCodeAt(c++),n=c<d?e.charCodeAt(c++):0,r=c<d?e.charCodeAt(c++):0),a=i>>2,s=(i&3)<<4|n>>4,o=u>1?(n&15)<<2|r>>6:64,l=u>2?r&63:64,t.push(Be.charAt(a)+Be.charAt(s)+Be.charAt(o)+Be.charAt(l));return t.join("")};vo.decode=function(e){var t,i,n,r,a,s,o,l=0,c=0,d="data:";if(e.substr(0,d.length)===d)throw new Error("Invalid base64 input, it looks like a data url.");e=e.replace(/[^A-Za-z0-9+/=]/g,"");var u=e.length*3/4;if(e.charAt(e.length-1)===Be.charAt(64)&&u--,e.charAt(e.length-2)===Be.charAt(64)&&u--,u%1!==0)throw new Error("Invalid base64 input, bad content length.");var p;for(my.uint8array?p=new Uint8Array(u|0):p=new Array(u|0);l<e.length;)r=Be.indexOf(e.charAt(l++)),a=Be.indexOf(e.charAt(l++)),s=Be.indexOf(e.charAt(l++)),o=Be.indexOf(e.charAt(l++)),t=r<<2|a>>4,i=(a&15)<<4|s>>2,n=(s&3)<<6|o,p[c++]=t,s!==64&&(p[c++]=i),o!==64&&(p[c++]=n);return p}});var Sn=k((M1,yu)=>{"use strict";yu.exports={isNode:typeof Buffer!="undefined",newBufferFrom:function(e,t){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(e,t);if(typeof e=="number")throw new Error('The "data" argument must not be a number');return new Buffer(e,t)},allocBuffer:function(e){if(Buffer.alloc)return Buffer.alloc(e);var t=new Buffer(e);return t.fill(0),t},isBuffer:function(e){return Buffer.isBuffer(e)},isStream:function(e){return e&&typeof e.on=="function"&&typeof e.pause=="function"&&typeof e.resume=="function"}}});var _u=k((R1,wu)=>{"use strict";var vu=global.MutationObserver||global.WebKitMutationObserver,wi;process.browser?vu?(wo=0,xu=new vu(An),_o=global.document.createTextNode(""),xu.observe(_o,{characterData:!0}),wi=function(){_o.data=wo=++wo%2}):!global.setImmediate&&typeof global.MessageChannel!="undefined"?(Eo=new global.MessageChannel,Eo.port1.onmessage=An,wi=function(){Eo.port2.postMessage(0)}):"document"in global&&"onreadystatechange"in global.document.createElement("script")?wi=function(){var e=global.document.createElement("script");e.onreadystatechange=function(){An(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},global.document.documentElement.appendChild(e)}:wi=function(){setTimeout(An,0)}:wi=function(){process.nextTick(An)};var wo,xu,_o,Eo,So,Cn=[];function An(){So=!0;for(var e,t,i=Cn.length;i;){for(t=Cn,Cn=[],e=-1;++e<i;)t[e]();i=Cn.length}So=!1}wu.exports=by;function by(e){Cn.push(e)===1&&!So&&wi()}});var Lu=k((P1,ku)=>{"use strict";var Eu=_u();function _i(){}var le={},Su=["REJECTED"],Ao=["FULFILLED"],Au=["PENDING"];process.browser||(Tn=["UNHANDLED"]);var Tn;ku.exports=vt;function vt(e){if(typeof e!="function")throw new TypeError("resolver must be a function");this.state=Au,this.queue=[],this.outcome=void 0,process.browser||(this.handled=Tn),e!==_i&&Cu(this,e)}vt.prototype.finally=function(e){if(typeof e!="function")return this;var t=this.constructor;return this.then(i,n);function i(r){function a(){return r}return t.resolve(e()).then(a)}function n(r){function a(){throw r}return t.resolve(e()).then(a)}};vt.prototype.catch=function(e){return this.then(null,e)};vt.prototype.then=function(e,t){if(typeof e!="function"&&this.state===Ao||typeof t!="function"&&this.state===Su)return this;var i=new this.constructor(_i);if(process.browser||this.handled===Tn&&(this.handled=null),this.state!==Au){var n=this.state===Ao?e:t;Co(i,n,this.outcome)}else this.queue.push(new kn(i,e,t));return i};function kn(e,t,i){this.promise=e,typeof t=="function"&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),typeof i=="function"&&(this.onRejected=i,this.callRejected=this.otherCallRejected)}kn.prototype.callFulfilled=function(e){le.resolve(this.promise,e)};kn.prototype.otherCallFulfilled=function(e){Co(this.promise,this.onFulfilled,e)};kn.prototype.callRejected=function(e){le.reject(this.promise,e)};kn.prototype.otherCallRejected=function(e){Co(this.promise,this.onRejected,e)};function Co(e,t,i){Eu(function(){var n;try{n=t(i)}catch(r){return le.reject(e,r)}n===e?le.reject(e,new TypeError("Cannot resolve promise with itself")):le.resolve(e,n)})}le.resolve=function(e,t){var i=Tu(yy,t);if(i.status==="error")return le.reject(e,i.value);var n=i.value;if(n)Cu(e,n);else{e.state=Ao,e.outcome=t;for(var r=-1,a=e.queue.length;++r<a;)e.queue[r].callFulfilled(t)}return e};le.reject=function(e,t){e.state=Su,e.outcome=t,process.browser||e.handled===Tn&&Eu(function(){e.handled===Tn&&process.emit("unhandledRejection",t,e)});for(var i=-1,n=e.queue.length;++i<n;)e.queue[i].callRejected(t);return e};function yy(e){var t=e&&e.then;if(e&&(typeof e=="object"||typeof e=="function")&&typeof t=="function")return function(){t.apply(e,arguments)}}function Cu(e,t){var i=!1;function n(o){i||(i=!0,le.reject(e,o))}function r(o){i||(i=!0,le.resolve(e,o))}function a(){t(r,n)}var s=Tu(a);s.status==="error"&&n(s.value)}function Tu(e,t){var i={};try{i.value=e(t),i.status="success"}catch(n){i.status="error",i.value=n}return i}vt.resolve=vy;function vy(e){return e instanceof this?e:le.resolve(new this(_i),e)}vt.reject=xy;function xy(e){var t=new this(_i);return le.reject(t,e)}vt.all=wy;function wy(e){var t=this;if(Object.prototype.toString.call(e)!=="[object Array]")return this.reject(new TypeError("must be an array"));var i=e.length,n=!1;if(!i)return this.resolve([]);for(var r=new Array(i),a=0,s=-1,o=new this(_i);++s<i;)l(e[s],s);return o;function l(c,d){t.resolve(c).then(u,function(p){n||(n=!0,le.reject(o,p))});function u(p){r[d]=p,++a===i&&!n&&(n=!0,le.resolve(o,r))}}}vt.race=_y;function _y(e){var t=this;if(Object.prototype.toString.call(e)!=="[object Array]")return this.reject(new TypeError("must be an array"));var i=e.length,n=!1;if(!i)return this.resolve([]);for(var r=-1,a=new this(_i);++r<i;)s(e[r]);return a;function s(o){t.resolve(o).then(function(l){n||(n=!0,le.resolve(a,l))},function(l){n||(n=!0,le.reject(a,l))})}}});var Ei=k((j1,Ou)=>{"use strict";var To=null;typeof Promise!="undefined"?To=Promise:To=Lu();Ou.exports={Promise:To}});var Mu=k(Iu=>{"use strict";(function(e,t){"use strict";if(e.setImmediate)return;var i=1,n={},r=!1,a=e.document,s;function o(y){typeof y!="function"&&(y=new Function(""+y));for(var v=new Array(arguments.length-1),x=0;x<v.length;x++)v[x]=arguments[x+1];var w={callback:y,args:v};return n[i]=w,s(i),i++}function l(y){delete n[y]}function c(y){var v=y.callback,x=y.args;switch(x.length){case 0:v();break;case 1:v(x[0]);break;case 2:v(x[0],x[1]);break;case 3:v(x[0],x[1],x[2]);break;default:v.apply(t,x);break}}function d(y){if(r)setTimeout(d,0,y);else{var v=n[y];if(v){r=!0;try{c(v)}finally{l(y),r=!1}}}}function u(){s=function(y){process.nextTick(function(){d(y)})}}function p(){if(e.postMessage&&!e.importScripts){var y=!0,v=e.onmessage;return e.onmessage=function(){y=!1},e.postMessage("","*"),e.onmessage=v,y}}function f(){var y="setImmediate$"+Math.random()+"$",v=function(x){x.source===e&&typeof x.data=="string"&&x.data.indexOf(y)===0&&d(+x.data.slice(y.length))};e.addEventListener?e.addEventListener("message",v,!1):e.attachEvent("onmessage",v),s=function(x){e.postMessage(y+x,"*")}}function m(){var y=new MessageChannel;y.port1.onmessage=function(v){var x=v.data;d(x)},s=function(v){y.port2.postMessage(v)}}function h(){var y=a.documentElement;s=function(v){var x=a.createElement("script");x.onreadystatechange=function(){d(v),x.onreadystatechange=null,y.removeChild(x),x=null},y.appendChild(x)}}function g(){s=function(y){setTimeout(d,0,y)}}var b=Object.getPrototypeOf&&Object.getPrototypeOf(e);b=b&&b.setTimeout?b:e,{}.toString.call(e.process)==="[object process]"?u():p()?f():e.MessageChannel?m():a&&"onreadystatechange"in a.createElement("script")?h():g(),b.setImmediate=o,b.clearImmediate=l})(typeof self=="undefined"?typeof global=="undefined"?Iu:global:self)});var V=k(J=>{"use strict";var xt=nt(),Ey=xo(),Si=Sn(),ko=Ei();Mu();function Sy(e){var t=null;return xt.uint8array?t=new Uint8Array(e.length):t=new Array(e.length),da(e,t)}J.newBlob=function(e,t){J.checkSupport("blob");try{return new Blob([e],{type:t})}catch{try{var i=self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder,n=new i;return n.append(e),n.getBlob(t)}catch{throw new Error("Bug : can't construct the Blob.")}}};function Ln(e){return e}function da(e,t){for(var i=0;i<e.length;++i)t[i]=e.charCodeAt(i)&255;return t}var ca={stringifyByChunk:function(e,t,i){var n=[],r=0,a=e.length;if(a<=i)return String.fromCharCode.apply(null,e);for(;r<a;)t==="array"||t==="nodebuffer"?n.push(String.fromCharCode.apply(null,e.slice(r,Math.min(r+i,a)))):n.push(String.fromCharCode.apply(null,e.subarray(r,Math.min(r+i,a)))),r+=i;return n.join("")},stringifyByChar:function(e){for(var t="",i=0;i<e.length;i++)t+=String.fromCharCode(e[i]);return t},applyCanBeUsed:{uint8array:(function(){try{return xt.uint8array&&String.fromCharCode.apply(null,new Uint8Array(1)).length===1}catch{return!1}})(),nodebuffer:(function(){try{return xt.nodebuffer&&String.fromCharCode.apply(null,Si.allocBuffer(1)).length===1}catch{return!1}})()}};function On(e){var t=65536,i=J.getTypeOf(e),n=!0;if(i==="uint8array"?n=ca.applyCanBeUsed.uint8array:i==="nodebuffer"&&(n=ca.applyCanBeUsed.nodebuffer),n)for(;t>1;)try{return ca.stringifyByChunk(e,i,t)}catch{t=Math.floor(t/2)}return ca.stringifyByChar(e)}J.applyFromCharCode=On;function ua(e,t){for(var i=0;i<e.length;i++)t[i]=e[i];return t}var wt={};wt.string={string:Ln,array:function(e){return da(e,new Array(e.length))},arraybuffer:function(e){return wt.string.uint8array(e).buffer},uint8array:function(e){return da(e,new Uint8Array(e.length))},nodebuffer:function(e){return da(e,Si.allocBuffer(e.length))}};wt.array={string:On,array:Ln,arraybuffer:function(e){return new Uint8Array(e).buffer},uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return Si.newBufferFrom(e)}};wt.arraybuffer={string:function(e){return On(new Uint8Array(e))},array:function(e){return ua(new Uint8Array(e),new Array(e.byteLength))},arraybuffer:Ln,uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return Si.newBufferFrom(new Uint8Array(e))}};wt.uint8array={string:On,array:function(e){return ua(e,new Array(e.length))},arraybuffer:function(e){return e.buffer},uint8array:Ln,nodebuffer:function(e){return Si.newBufferFrom(e)}};wt.nodebuffer={string:On,array:function(e){return ua(e,new Array(e.length))},arraybuffer:function(e){return wt.nodebuffer.uint8array(e).buffer},uint8array:function(e){return ua(e,new Uint8Array(e.length))},nodebuffer:Ln};J.transformTo=function(e,t){if(t||(t=""),!e)return t;J.checkSupport(e);var i=J.getTypeOf(t),n=wt[i][e](t);return n};J.resolve=function(e){for(var t=e.split("/"),i=[],n=0;n<t.length;n++){var r=t[n];r==="."||r===""&&n!==0&&n!==t.length-1||(r===".."?i.pop():i.push(r))}return i.join("/")};J.getTypeOf=function(e){if(typeof e=="string")return"string";if(Object.prototype.toString.call(e)==="[object Array]")return"array";if(xt.nodebuffer&&Si.isBuffer(e))return"nodebuffer";if(xt.uint8array&&e instanceof Uint8Array)return"uint8array";if(xt.arraybuffer&&e instanceof ArrayBuffer)return"arraybuffer"};J.checkSupport=function(e){var t=xt[e.toLowerCase()];if(!t)throw new Error(e+" is not supported by this platform")};J.MAX_VALUE_16BITS=65535;J.MAX_VALUE_32BITS=-1;J.pretty=function(e){var t="",i,n;for(n=0;n<(e||"").length;n++)i=e.charCodeAt(n),t+="\\x"+(i<16?"0":"")+i.toString(16).toUpperCase();return t};J.delay=function(e,t,i){setImmediate(function(){e.apply(i||null,t||[])})};J.inherits=function(e,t){var i=function(){};i.prototype=t.prototype,e.prototype=new i};J.extend=function(){var e={},t,i;for(t=0;t<arguments.length;t++)for(i in arguments[t])Object.prototype.hasOwnProperty.call(arguments[t],i)&&typeof e[i]=="undefined"&&(e[i]=arguments[t][i]);return e};J.prepareContent=function(e,t,i,n,r){var a=ko.Promise.resolve(t).then(function(s){var o=xt.blob&&(s instanceof Blob||["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(s))!==-1);return o&&typeof FileReader!="undefined"?new ko.Promise(function(l,c){var d=new FileReader;d.onload=function(u){l(u.target.result)},d.onerror=function(u){c(u.target.error)},d.readAsArrayBuffer(s)}):s});return a.then(function(s){var o=J.getTypeOf(s);return o?(o==="arraybuffer"?s=J.transformTo("uint8array",s):o==="string"&&(r?s=Ey.decode(s):i&&n!==!0&&(s=Sy(s))),s):ko.Promise.reject(new Error("Can't read the data of '"+e+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})}});var ge=k((N1,Pu)=>{"use strict";function Ru(e){this.name=e||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}Ru.prototype={push:function(e){this.emit("data",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit("error",e)}return!0},error:function(e){return this.isFinished?!1:(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit("error",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var i=0;i<this._listeners[e].length;i++)this._listeners[e][i].call(this,t)},pipe:function(e){return e.registerPrevious(this)},registerPrevious:function(e){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=e.streamInfo,this.mergeStreamInfo(),this.previous=e;var t=this;return e.on("data",function(i){t.processChunk(i)}),e.on("end",function(){t.end()}),e.on("error",function(i){t.error(i)}),this},pause:function(){return this.isPaused||this.isFinished?!1:(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;this.isPaused=!1;var e=!1;return this.generatedError&&(this.error(this.generatedError),e=!0),this.previous&&this.previous.resume(),!e},flush:function(){},processChunk:function(e){this.push(e)},withStreamInfo:function(e,t){return this.extraStreamInfo[e]=t,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var e in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,e)&&(this.streamInfo[e]=this.extraStreamInfo[e])},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var e="Worker "+this.name;return this.previous?this.previous+" -> "+e:e}};Pu.exports=Ru});var Ci=k(_t=>{"use strict";var Ai=V(),qt=nt(),Ay=Sn(),pa=ge(),In=new Array(256);for(rt=0;rt<256;rt++)In[rt]=rt>=252?6:rt>=248?5:rt>=240?4:rt>=224?3:rt>=192?2:1;var rt;In[254]=In[254]=1;var Cy=function(e){var t,i,n,r,a,s=e.length,o=0;for(r=0;r<s;r++)i=e.charCodeAt(r),(i&64512)===55296&&r+1<s&&(n=e.charCodeAt(r+1),(n&64512)===56320&&(i=65536+(i-55296<<10)+(n-56320),r++)),o+=i<128?1:i<2048?2:i<65536?3:4;for(qt.uint8array?t=new Uint8Array(o):t=new Array(o),a=0,r=0;a<o;r++)i=e.charCodeAt(r),(i&64512)===55296&&r+1<s&&(n=e.charCodeAt(r+1),(n&64512)===56320&&(i=65536+(i-55296<<10)+(n-56320),r++)),i<128?t[a++]=i:i<2048?(t[a++]=192|i>>>6,t[a++]=128|i&63):i<65536?(t[a++]=224|i>>>12,t[a++]=128|i>>>6&63,t[a++]=128|i&63):(t[a++]=240|i>>>18,t[a++]=128|i>>>12&63,t[a++]=128|i>>>6&63,t[a++]=128|i&63);return t},Ty=function(e,t){var i;for(t=t||e.length,t>e.length&&(t=e.length),i=t-1;i>=0&&(e[i]&192)===128;)i--;return i<0||i===0?t:i+In[e[i]]>t?i:t},ky=function(e){var t,i,n,r,a=e.length,s=new Array(a*2);for(i=0,t=0;t<a;){if(n=e[t++],n<128){s[i++]=n;continue}if(r=In[n],r>4){s[i++]=65533,t+=r-1;continue}for(n&=r===2?31:r===3?15:7;r>1&&t<a;)n=n<<6|e[t++]&63,r--;if(r>1){s[i++]=65533;continue}n<65536?s[i++]=n:(n-=65536,s[i++]=55296|n>>10&1023,s[i++]=56320|n&1023)}return s.length!==i&&(s.subarray?s=s.subarray(0,i):s.length=i),Ai.applyFromCharCode(s)};_t.utf8encode=function(t){return qt.nodebuffer?Ay.newBufferFrom(t,"utf-8"):Cy(t)};_t.utf8decode=function(t){return qt.nodebuffer?Ai.transformTo("nodebuffer",t).toString("utf-8"):(t=Ai.transformTo(qt.uint8array?"uint8array":"array",t),ky(t))};function fa(){pa.call(this,"utf-8 decode"),this.leftOver=null}Ai.inherits(fa,pa);fa.prototype.processChunk=function(e){var t=Ai.transformTo(qt.uint8array?"uint8array":"array",e.data);if(this.leftOver&&this.leftOver.length){if(qt.uint8array){var i=t;t=new Uint8Array(i.length+this.leftOver.length),t.set(this.leftOver,0),t.set(i,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var n=Ty(t),r=t;n!==t.length&&(qt.uint8array?(r=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(r=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:_t.utf8decode(r),meta:e.meta})};fa.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:_t.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)};_t.Utf8DecodeWorker=fa;function Lo(){pa.call(this,"utf-8 encode")}Ai.inherits(Lo,pa);Lo.prototype.processChunk=function(e){this.push({data:_t.utf8encode(e.data),meta:e.meta})};_t.Utf8EncodeWorker=Lo});var Nu=k((F1,zu)=>{"use strict";var ju=ge(),Du=V();function Oo(e){ju.call(this,"ConvertWorker to "+e),this.destType=e}Du.inherits(Oo,ju);Oo.prototype.processChunk=function(e){this.push({data:Du.transformTo(this.destType,e.data),meta:e.meta})};zu.exports=Oo});var Hu=k((H1,Fu)=>{"use strict";var Bu=mo().Readable,Ly=V();Ly.inherits(Io,Bu);function Io(e,t,i){Bu.call(this,t),this._helper=e;var n=this;e.on("data",function(r,a){n.push(r)||n._helper.pause(),i&&i(a)}).on("error",function(r){n.emit("error",r)}).on("end",function(){n.push(null)})}Io.prototype._read=function(){this._helper.resume()};Fu.exports=Io});var Mo=k(($1,qu)=>{"use strict";var Gt=V(),Oy=Nu(),Iy=ge(),My=xo(),Ry=nt(),Py=Ei(),$u=null;if(Ry.nodestream)try{$u=Hu()}catch{}function jy(e,t,i){switch(e){case"blob":return Gt.newBlob(Gt.transformTo("arraybuffer",t),i);case"base64":return My.encode(t);default:return Gt.transformTo(e,t)}}function Dy(e,t){var i,n=0,r=null,a=0;for(i=0;i<t.length;i++)a+=t[i].length;switch(e){case"string":return t.join("");case"array":return Array.prototype.concat.apply([],t);case"uint8array":for(r=new Uint8Array(a),i=0;i<t.length;i++)r.set(t[i],n),n+=t[i].length;return r;case"nodebuffer":return Buffer.concat(t);default:throw new Error("concat : unsupported type '"+e+"'")}}function zy(e,t){return new Py.Promise(function(i,n){var r=[],a=e._internalType,s=e._outputType,o=e._mimeType;e.on("data",function(l,c){r.push(l),t&&t(c)}).on("error",function(l){r=[],n(l)}).on("end",function(){try{var l=jy(s,Dy(a,r),o);i(l)}catch(c){n(c)}r=[]}).resume()})}function Uu(e,t,i){var n=t;switch(t){case"blob":case"arraybuffer":n="uint8array";break;case"base64":n="string";break}try{this._internalType=n,this._outputType=t,this._mimeType=i,Gt.checkSupport(n),this._worker=e.pipe(new Oy(n)),e.lock()}catch(r){this._worker=new Iy("error"),this._worker.error(r)}}Uu.prototype={accumulate:function(e){return zy(this,e)},on:function(e,t){var i=this;return e==="data"?this._worker.on(e,function(n){t.call(i,n.data,n.meta)}):this._worker.on(e,function(){Gt.delay(t,arguments,i)}),this},resume:function(){return Gt.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(e){if(Gt.checkSupport("nodestream"),this._outputType!=="nodebuffer")throw new Error(this._outputType+" is not supported by this method");return new $u(this,{objectMode:this._outputType!=="nodebuffer"},e)}};qu.exports=Uu});var Ro=k(ke=>{"use strict";ke.base64=!1;ke.binary=!1;ke.dir=!1;ke.createFolders=!0;ke.date=null;ke.compression=null;ke.compressionOptions=null;ke.comment=null;ke.unixPermissions=null;ke.dosPermissions=null});var Po=k((q1,Gu)=>{"use strict";var ha=V(),ga=ge(),Ny=16*1024;function Ti(e){ga.call(this,"DataWorker");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,e.then(function(i){t.dataIsReady=!0,t.data=i,t.max=i&&i.length||0,t.type=ha.getTypeOf(i),t.isPaused||t._tickAndRepeat()},function(i){t.error(i)})}ha.inherits(Ti,ga);Ti.prototype.cleanUp=function(){ga.prototype.cleanUp.call(this),this.data=null};Ti.prototype.resume=function(){return ga.prototype.resume.call(this)?(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,ha.delay(this._tickAndRepeat,[],this)),!0):!1};Ti.prototype._tickAndRepeat=function(){this._tickScheduled=!1,!(this.isPaused||this.isFinished)&&(this._tick(),this.isFinished||(ha.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))};Ti.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=Ny,t=null,i=Math.min(this.max,this.index+e);if(this.index>=this.max)return this.end();switch(this.type){case"string":t=this.data.substring(this.index,i);break;case"uint8array":t=this.data.subarray(this.index,i);break;case"array":case"nodebuffer":t=this.data.slice(this.index,i);break}return this.index=i,this.push({data:t,meta:{percent:this.max?this.index/this.max*100:0}})};Gu.exports=Ti});var ma=k((G1,Yu)=>{"use strict";var By=V();function Fy(){for(var e,t=[],i=0;i<256;i++){e=i;for(var n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;t[i]=e}return t}var Wu=Fy();function Hy(e,t,i,n){var r=Wu,a=n+i;e=e^-1;for(var s=n;s<a;s++)e=e>>>8^r[(e^t[s])&255];return e^-1}function $y(e,t,i,n){var r=Wu,a=n+i;e=e^-1;for(var s=n;s<a;s++)e=e>>>8^r[(e^t.charCodeAt(s))&255];return e^-1}Yu.exports=function(t,i){if(typeof t=="undefined"||!t.length)return 0;var n=By.getTypeOf(t)!=="string";return n?Hy(i|0,t,t.length,0):$y(i|0,t,t.length,0)}});var Do=k((W1,Ku)=>{"use strict";var Vu=ge(),Uy=ma(),qy=V();function jo(){Vu.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}qy.inherits(jo,Vu);jo.prototype.processChunk=function(e){this.streamInfo.crc32=Uy(e.data,this.streamInfo.crc32||0),this.push(e)};Ku.exports=jo});var Zu=k((Y1,Xu)=>{"use strict";var Gy=V(),zo=ge();function No(e){zo.call(this,"DataLengthProbe for "+e),this.propName=e,this.withStreamInfo(e,0)}Gy.inherits(No,zo);No.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}zo.prototype.processChunk.call(this,e)};Xu.exports=No});var ba=k((V1,ep)=>{"use strict";var Ju=Ei(),Qu=Po(),Wy=Do(),Bo=Zu();function Fo(e,t,i,n,r){this.compressedSize=e,this.uncompressedSize=t,this.crc32=i,this.compression=n,this.compressedContent=r}Fo.prototype={getContentWorker:function(){var e=new Qu(Ju.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new Bo("data_length")),t=this;return e.on("end",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),e},getCompressedWorker:function(){return new Qu(Ju.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}};Fo.createWorkerFrom=function(e,t,i){return e.pipe(new Wy).pipe(new Bo("uncompressedSize")).pipe(t.compressWorker(i)).pipe(new Bo("compressedSize")).withStreamInfo("compression",t)};ep.exports=Fo});var rp=k((K1,np)=>{"use strict";var Yy=Mo(),Vy=Po(),Ho=Ci(),$o=ba(),tp=ge(),Uo=function(e,t,i){this.name=e,this.dir=i.dir,this.date=i.date,this.comment=i.comment,this.unixPermissions=i.unixPermissions,this.dosPermissions=i.dosPermissions,this._data=t,this._dataBinary=i.binary,this.options={compression:i.compression,compressionOptions:i.compressionOptions}};Uo.prototype={internalStream:function(e){var t=null,i="string";try{if(!e)throw new Error("No output type specified.");i=e.toLowerCase();var n=i==="string"||i==="text";(i==="binarystring"||i==="text")&&(i="string"),t=this._decompressWorker();var r=!this._dataBinary;r&&!n&&(t=t.pipe(new Ho.Utf8EncodeWorker)),!r&&n&&(t=t.pipe(new Ho.Utf8DecodeWorker))}catch(a){t=new tp("error"),t.error(a)}return new Yy(t,i,"")},async:function(e,t){return this.internalStream(e).accumulate(t)},nodeStream:function(e,t){return this.internalStream(e||"nodebuffer").toNodejsStream(t)},_compressWorker:function(e,t){if(this._data instanceof $o&&this._data.compression.magic===e.magic)return this._data.getCompressedWorker();var i=this._decompressWorker();return this._dataBinary||(i=i.pipe(new Ho.Utf8EncodeWorker)),$o.createWorkerFrom(i,e,t)},_decompressWorker:function(){return this._data instanceof $o?this._data.getContentWorker():this._data instanceof tp?this._data:new Vy(this._data)}};var ip=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],Ky=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")};for(ya=0;ya<ip.length;ya++)Uo.prototype[ip[ya]]=Ky;var ya;np.exports=Uo});var at=k(ue=>{"use strict";var Xy=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Int32Array!="undefined";function Zy(e,t){return Object.prototype.hasOwnProperty.call(e,t)}ue.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var i=t.shift();if(i){if(typeof i!="object")throw new TypeError(i+"must be non-object");for(var n in i)Zy(i,n)&&(e[n]=i[n])}}return e};ue.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var Jy={arraySet:function(e,t,i,n,r){if(t.subarray&&e.subarray){e.set(t.subarray(i,i+n),r);return}for(var a=0;a<n;a++)e[r+a]=t[i+a]},flattenChunks:function(e){var t,i,n,r,a,s;for(n=0,t=0,i=e.length;t<i;t++)n+=e[t].length;for(s=new Uint8Array(n),r=0,t=0,i=e.length;t<i;t++)a=e[t],s.set(a,r),r+=a.length;return s}},Qy={arraySet:function(e,t,i,n,r){for(var a=0;a<n;a++)e[r+a]=t[i+a]},flattenChunks:function(e){return[].concat.apply([],e)}};ue.setTyped=function(e){e?(ue.Buf8=Uint8Array,ue.Buf16=Uint16Array,ue.Buf32=Int32Array,ue.assign(ue,Jy)):(ue.Buf8=Array,ue.Buf16=Array,ue.Buf32=Array,ue.assign(ue,Qy))};ue.setTyped(Xy)});var Tp=k(Oi=>{"use strict";var ev=at(),tv=4,ap=0,sp=1,iv=2;function Li(e){for(var t=e.length;--t>=0;)e[t]=0}var nv=0,pp=1,rv=2,av=3,sv=258,Xo=29,zn=256,Rn=zn+1+Xo,ki=30,Zo=19,fp=2*Rn+1,Wt=15,qo=16,ov=7,Jo=256,hp=16,gp=17,mp=18,Vo=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],va=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],lv=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],bp=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],cv=512,st=new Array((Rn+2)*2);Li(st);var Mn=new Array(ki*2);Li(Mn);var Pn=new Array(cv);Li(Pn);var jn=new Array(sv-av+1);Li(jn);var Qo=new Array(Xo);Li(Qo);var xa=new Array(ki);Li(xa);function Go(e,t,i,n,r){this.static_tree=e,this.extra_bits=t,this.extra_base=i,this.elems=n,this.max_length=r,this.has_stree=e&&e.length}var yp,vp,xp;function Wo(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function wp(e){return e<256?Pn[e]:Pn[256+(e>>>7)]}function Dn(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function fe(e,t,i){e.bi_valid>qo-i?(e.bi_buf|=t<<e.bi_valid&65535,Dn(e,e.bi_buf),e.bi_buf=t>>qo-e.bi_valid,e.bi_valid+=i-qo):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=i)}function Fe(e,t,i){fe(e,i[t*2],i[t*2+1])}function _p(e,t){var i=0;do i|=e&1,e>>>=1,i<<=1;while(--t>0);return i>>>1}function dv(e){e.bi_valid===16?(Dn(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)}function uv(e,t){var i=t.dyn_tree,n=t.max_code,r=t.stat_desc.static_tree,a=t.stat_desc.has_stree,s=t.stat_desc.extra_bits,o=t.stat_desc.extra_base,l=t.stat_desc.max_length,c,d,u,p,f,m,h=0;for(p=0;p<=Wt;p++)e.bl_count[p]=0;for(i[e.heap[e.heap_max]*2+1]=0,c=e.heap_max+1;c<fp;c++)d=e.heap[c],p=i[i[d*2+1]*2+1]+1,p>l&&(p=l,h++),i[d*2+1]=p,!(d>n)&&(e.bl_count[p]++,f=0,d>=o&&(f=s[d-o]),m=i[d*2],e.opt_len+=m*(p+f),a&&(e.static_len+=m*(r[d*2+1]+f)));if(h!==0){do{for(p=l-1;e.bl_count[p]===0;)p--;e.bl_count[p]--,e.bl_count[p+1]+=2,e.bl_count[l]--,h-=2}while(h>0);for(p=l;p!==0;p--)for(d=e.bl_count[p];d!==0;)u=e.heap[--c],!(u>n)&&(i[u*2+1]!==p&&(e.opt_len+=(p-i[u*2+1])*i[u*2],i[u*2+1]=p),d--)}}function Ep(e,t,i){var n=new Array(Wt+1),r=0,a,s;for(a=1;a<=Wt;a++)n[a]=r=r+i[a-1]<<1;for(s=0;s<=t;s++){var o=e[s*2+1];o!==0&&(e[s*2]=_p(n[o]++,o))}}function pv(){var e,t,i,n,r,a=new Array(Wt+1);for(i=0,n=0;n<Xo-1;n++)for(Qo[n]=i,e=0;e<1<<Vo[n];e++)jn[i++]=n;for(jn[i-1]=n,r=0,n=0;n<16;n++)for(xa[n]=r,e=0;e<1<<va[n];e++)Pn[r++]=n;for(r>>=7;n<ki;n++)for(xa[n]=r<<7,e=0;e<1<<va[n]-7;e++)Pn[256+r++]=n;for(t=0;t<=Wt;t++)a[t]=0;for(e=0;e<=143;)st[e*2+1]=8,e++,a[8]++;for(;e<=255;)st[e*2+1]=9,e++,a[9]++;for(;e<=279;)st[e*2+1]=7,e++,a[7]++;for(;e<=287;)st[e*2+1]=8,e++,a[8]++;for(Ep(st,Rn+1,a),e=0;e<ki;e++)Mn[e*2+1]=5,Mn[e*2]=_p(e,5);yp=new Go(st,Vo,zn+1,Rn,Wt),vp=new Go(Mn,va,0,ki,Wt),xp=new Go(new Array(0),lv,0,Zo,ov)}function Sp(e){var t;for(t=0;t<Rn;t++)e.dyn_ltree[t*2]=0;for(t=0;t<ki;t++)e.dyn_dtree[t*2]=0;for(t=0;t<Zo;t++)e.bl_tree[t*2]=0;e.dyn_ltree[Jo*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function Ap(e){e.bi_valid>8?Dn(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function fv(e,t,i,n){Ap(e),n&&(Dn(e,i),Dn(e,~i)),ev.arraySet(e.pending_buf,e.window,t,i,e.pending),e.pending+=i}function op(e,t,i,n){var r=t*2,a=i*2;return e[r]<e[a]||e[r]===e[a]&&n[t]<=n[i]}function Yo(e,t,i){for(var n=e.heap[i],r=i<<1;r<=e.heap_len&&(r<e.heap_len&&op(t,e.heap[r+1],e.heap[r],e.depth)&&r++,!op(t,n,e.heap[r],e.depth));)e.heap[i]=e.heap[r],i=r,r<<=1;e.heap[i]=n}function lp(e,t,i){var n,r,a=0,s,o;if(e.last_lit!==0)do n=e.pending_buf[e.d_buf+a*2]<<8|e.pending_buf[e.d_buf+a*2+1],r=e.pending_buf[e.l_buf+a],a++,n===0?Fe(e,r,t):(s=jn[r],Fe(e,s+zn+1,t),o=Vo[s],o!==0&&(r-=Qo[s],fe(e,r,o)),n--,s=wp(n),Fe(e,s,i),o=va[s],o!==0&&(n-=xa[s],fe(e,n,o)));while(a<e.last_lit);Fe(e,Jo,t)}function Ko(e,t){var i=t.dyn_tree,n=t.stat_desc.static_tree,r=t.stat_desc.has_stree,a=t.stat_desc.elems,s,o,l=-1,c;for(e.heap_len=0,e.heap_max=fp,s=0;s<a;s++)i[s*2]!==0?(e.heap[++e.heap_len]=l=s,e.depth[s]=0):i[s*2+1]=0;for(;e.heap_len<2;)c=e.heap[++e.heap_len]=l<2?++l:0,i[c*2]=1,e.depth[c]=0,e.opt_len--,r&&(e.static_len-=n[c*2+1]);for(t.max_code=l,s=e.heap_len>>1;s>=1;s--)Yo(e,i,s);c=a;do s=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Yo(e,i,1),o=e.heap[1],e.heap[--e.heap_max]=s,e.heap[--e.heap_max]=o,i[c*2]=i[s*2]+i[o*2],e.depth[c]=(e.depth[s]>=e.depth[o]?e.depth[s]:e.depth[o])+1,i[s*2+1]=i[o*2+1]=c,e.heap[1]=c++,Yo(e,i,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],uv(e,t),Ep(i,l,e.bl_count)}function cp(e,t,i){var n,r=-1,a,s=t[1],o=0,l=7,c=4;for(s===0&&(l=138,c=3),t[(i+1)*2+1]=65535,n=0;n<=i;n++)a=s,s=t[(n+1)*2+1],!(++o<l&&a===s)&&(o<c?e.bl_tree[a*2]+=o:a!==0?(a!==r&&e.bl_tree[a*2]++,e.bl_tree[hp*2]++):o<=10?e.bl_tree[gp*2]++:e.bl_tree[mp*2]++,o=0,r=a,s===0?(l=138,c=3):a===s?(l=6,c=3):(l=7,c=4))}function dp(e,t,i){var n,r=-1,a,s=t[1],o=0,l=7,c=4;for(s===0&&(l=138,c=3),n=0;n<=i;n++)if(a=s,s=t[(n+1)*2+1],!(++o<l&&a===s)){if(o<c)do Fe(e,a,e.bl_tree);while(--o!==0);else a!==0?(a!==r&&(Fe(e,a,e.bl_tree),o--),Fe(e,hp,e.bl_tree),fe(e,o-3,2)):o<=10?(Fe(e,gp,e.bl_tree),fe(e,o-3,3)):(Fe(e,mp,e.bl_tree),fe(e,o-11,7));o=0,r=a,s===0?(l=138,c=3):a===s?(l=6,c=3):(l=7,c=4)}}function hv(e){var t;for(cp(e,e.dyn_ltree,e.l_desc.max_code),cp(e,e.dyn_dtree,e.d_desc.max_code),Ko(e,e.bl_desc),t=Zo-1;t>=3&&e.bl_tree[bp[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function gv(e,t,i,n){var r;for(fe(e,t-257,5),fe(e,i-1,5),fe(e,n-4,4),r=0;r<n;r++)fe(e,e.bl_tree[bp[r]*2+1],3);dp(e,e.dyn_ltree,t-1),dp(e,e.dyn_dtree,i-1)}function mv(e){var t=4093624447,i;for(i=0;i<=31;i++,t>>>=1)if(t&1&&e.dyn_ltree[i*2]!==0)return ap;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return sp;for(i=32;i<zn;i++)if(e.dyn_ltree[i*2]!==0)return sp;return ap}var up=!1;function bv(e){up||(pv(),up=!0),e.l_desc=new Wo(e.dyn_ltree,yp),e.d_desc=new Wo(e.dyn_dtree,vp),e.bl_desc=new Wo(e.bl_tree,xp),e.bi_buf=0,e.bi_valid=0,Sp(e)}function Cp(e,t,i,n){fe(e,(nv<<1)+(n?1:0),3),fv(e,t,i,!0)}function yv(e){fe(e,pp<<1,3),Fe(e,Jo,st),dv(e)}function vv(e,t,i,n){var r,a,s=0;e.level>0?(e.strm.data_type===iv&&(e.strm.data_type=mv(e)),Ko(e,e.l_desc),Ko(e,e.d_desc),s=hv(e),r=e.opt_len+3+7>>>3,a=e.static_len+3+7>>>3,a<=r&&(r=a)):r=a=i+5,i+4<=r&&t!==-1?Cp(e,t,i,n):e.strategy===tv||a===r?(fe(e,(pp<<1)+(n?1:0),3),lp(e,st,Mn)):(fe(e,(rv<<1)+(n?1:0),3),gv(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),lp(e,e.dyn_ltree,e.dyn_dtree)),Sp(e),n&&Ap(e)}function xv(e,t,i){return e.pending_buf[e.d_buf+e.last_lit*2]=t>>>8&255,e.pending_buf[e.d_buf+e.last_lit*2+1]=t&255,e.pending_buf[e.l_buf+e.last_lit]=i&255,e.last_lit++,t===0?e.dyn_ltree[i*2]++:(e.matches++,t--,e.dyn_ltree[(jn[i]+zn+1)*2]++,e.dyn_dtree[wp(t)*2]++),e.last_lit===e.lit_bufsize-1}Oi._tr_init=bv;Oi._tr_stored_block=Cp;Oi._tr_flush_block=vv;Oi._tr_tally=xv;Oi._tr_align=yv});var el=k((J1,kp)=>{"use strict";function wv(e,t,i,n){for(var r=e&65535|0,a=e>>>16&65535|0,s=0;i!==0;){s=i>2e3?2e3:i,i-=s;do r=r+t[n++]|0,a=a+r|0;while(--s);r%=65521,a%=65521}return r|a<<16|0}kp.exports=wv});var tl=k((Q1,Lp)=>{"use strict";function _v(){for(var e,t=[],i=0;i<256;i++){e=i;for(var n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;t[i]=e}return t}var Ev=_v();function Sv(e,t,i,n){var r=Ev,a=n+i;e^=-1;for(var s=n;s<a;s++)e=e>>>8^r[(e^t[s])&255];return e^-1}Lp.exports=Sv});var wa=k((eE,Op)=>{"use strict";Op.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}});var Bp=k(Ue=>{"use strict";var pe=at(),we=Tp(),Pp=el(),Et=tl(),Av=wa(),Xt=0,Cv=1,Tv=3,kt=4,Ip=5,$e=0,Mp=1,_e=-2,kv=-3,il=-5,Lv=-1,Ov=1,_a=2,Iv=3,Mv=4,Rv=0,Pv=2,Ca=8,jv=9,Dv=15,zv=8,Nv=29,Bv=256,rl=Bv+1+Nv,Fv=30,Hv=19,$v=2*rl+1,Uv=15,N=3,Ct=258,Le=Ct+N+1,qv=32,Ta=42,al=69,Ea=73,Sa=91,Aa=103,Yt=113,Bn=666,ie=1,Fn=2,Vt=3,Ri=4,Gv=3;function Tt(e,t){return e.msg=Av[t],t}function Rp(e){return(e<<1)-(e>4?9:0)}function At(e){for(var t=e.length;--t>=0;)e[t]=0}function St(e){var t=e.state,i=t.pending;i>e.avail_out&&(i=e.avail_out),i!==0&&(pe.arraySet(e.output,t.pending_buf,t.pending_out,i,e.next_out),e.next_out+=i,t.pending_out+=i,e.total_out+=i,e.avail_out-=i,t.pending-=i,t.pending===0&&(t.pending_out=0))}function ae(e,t){we._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,St(e.strm)}function F(e,t){e.pending_buf[e.pending++]=t}function Nn(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function Wv(e,t,i,n){var r=e.avail_in;return r>n&&(r=n),r===0?0:(e.avail_in-=r,pe.arraySet(t,e.input,e.next_in,r,i),e.state.wrap===1?e.adler=Pp(e.adler,t,r,i):e.state.wrap===2&&(e.adler=Et(e.adler,t,r,i)),e.next_in+=r,e.total_in+=r,r)}function jp(e,t){var i=e.max_chain_length,n=e.strstart,r,a,s=e.prev_length,o=e.nice_match,l=e.strstart>e.w_size-Le?e.strstart-(e.w_size-Le):0,c=e.window,d=e.w_mask,u=e.prev,p=e.strstart+Ct,f=c[n+s-1],m=c[n+s];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do if(r=t,!(c[r+s]!==m||c[r+s-1]!==f||c[r]!==c[n]||c[++r]!==c[n+1])){n+=2,r++;do;while(c[++n]===c[++r]&&c[++n]===c[++r]&&c[++n]===c[++r]&&c[++n]===c[++r]&&c[++n]===c[++r]&&c[++n]===c[++r]&&c[++n]===c[++r]&&c[++n]===c[++r]&&n<p);if(a=Ct-(p-n),n=p-Ct,a>s){if(e.match_start=t,s=a,a>=o)break;f=c[n+s-1],m=c[n+s]}}while((t=u[t&d])>l&&--i!==0);return s<=e.lookahead?s:e.lookahead}function Kt(e){var t=e.w_size,i,n,r,a,s;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Le)){pe.arraySet(e.window,e.window,t,t,0),e.match_start-=t,e.strstart-=t,e.block_start-=t,n=e.hash_size,i=n;do r=e.head[--i],e.head[i]=r>=t?r-t:0;while(--n);n=t,i=n;do r=e.prev[--i],e.prev[i]=r>=t?r-t:0;while(--n);a+=t}if(e.strm.avail_in===0)break;if(n=Wv(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=n,e.lookahead+e.insert>=N)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+N-1])&e.hash_mask,e.prev[s&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=s,s++,e.insert--,!(e.lookahead+e.insert<N)););}while(e.lookahead<Le&&e.strm.avail_in!==0)}function Yv(e,t){var i=65535;for(i>e.pending_buf_size-5&&(i=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Kt(e),e.lookahead===0&&t===Xt)return ie;if(e.lookahead===0)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+i;if((e.strstart===0||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,ae(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-Le&&(ae(e,!1),e.strm.avail_out===0))return ie}return e.insert=0,t===kt?(ae(e,!0),e.strm.avail_out===0?Vt:Ri):(e.strstart>e.block_start&&(ae(e,!1),e.strm.avail_out===0),ie)}function nl(e,t){for(var i,n;;){if(e.lookahead<Le){if(Kt(e),e.lookahead<Le&&t===Xt)return ie;if(e.lookahead===0)break}if(i=0,e.lookahead>=N&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+N-1])&e.hash_mask,i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),i!==0&&e.strstart-i<=e.w_size-Le&&(e.match_length=jp(e,i)),e.match_length>=N)if(n=we._tr_tally(e,e.strstart-e.match_start,e.match_length-N),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=N){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+N-1])&e.hash_mask,i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else n=we._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(ae(e,!1),e.strm.avail_out===0))return ie}return e.insert=e.strstart<N-1?e.strstart:N-1,t===kt?(ae(e,!0),e.strm.avail_out===0?Vt:Ri):e.last_lit&&(ae(e,!1),e.strm.avail_out===0)?ie:Fn}function Ii(e,t){for(var i,n,r;;){if(e.lookahead<Le){if(Kt(e),e.lookahead<Le&&t===Xt)return ie;if(e.lookahead===0)break}if(i=0,e.lookahead>=N&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+N-1])&e.hash_mask,i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=N-1,i!==0&&e.prev_length<e.max_lazy_match&&e.strstart-i<=e.w_size-Le&&(e.match_length=jp(e,i),e.match_length<=5&&(e.strategy===Ov||e.match_length===N&&e.strstart-e.match_start>4096)&&(e.match_length=N-1)),e.prev_length>=N&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-N,n=we._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-N),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=r&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+N-1])&e.hash_mask,i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=N-1,e.strstart++,n&&(ae(e,!1),e.strm.avail_out===0))return ie}else if(e.match_available){if(n=we._tr_tally(e,0,e.window[e.strstart-1]),n&&ae(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return ie}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=we._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<N-1?e.strstart:N-1,t===kt?(ae(e,!0),e.strm.avail_out===0?Vt:Ri):e.last_lit&&(ae(e,!1),e.strm.avail_out===0)?ie:Fn}function Vv(e,t){for(var i,n,r,a,s=e.window;;){if(e.lookahead<=Ct){if(Kt(e),e.lookahead<=Ct&&t===Xt)return ie;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=N&&e.strstart>0&&(r=e.strstart-1,n=s[r],n===s[++r]&&n===s[++r]&&n===s[++r])){a=e.strstart+Ct;do;while(n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&r<a);e.match_length=Ct-(a-r),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=N?(i=we._tr_tally(e,1,e.match_length-N),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(i=we._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),i&&(ae(e,!1),e.strm.avail_out===0))return ie}return e.insert=0,t===kt?(ae(e,!0),e.strm.avail_out===0?Vt:Ri):e.last_lit&&(ae(e,!1),e.strm.avail_out===0)?ie:Fn}function Kv(e,t){for(var i;;){if(e.lookahead===0&&(Kt(e),e.lookahead===0)){if(t===Xt)return ie;break}if(e.match_length=0,i=we._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,i&&(ae(e,!1),e.strm.avail_out===0))return ie}return e.insert=0,t===kt?(ae(e,!0),e.strm.avail_out===0?Vt:Ri):e.last_lit&&(ae(e,!1),e.strm.avail_out===0)?ie:Fn}function He(e,t,i,n,r){this.good_length=e,this.max_lazy=t,this.nice_length=i,this.max_chain=n,this.func=r}var Mi;Mi=[new He(0,0,0,0,Yv),new He(4,4,8,4,nl),new He(4,5,16,8,nl),new He(4,6,32,32,nl),new He(4,4,16,16,Ii),new He(8,16,32,32,Ii),new He(8,16,128,128,Ii),new He(8,32,128,256,Ii),new He(32,128,258,1024,Ii),new He(32,258,258,4096,Ii)];function Xv(e){e.window_size=2*e.w_size,At(e.head),e.max_lazy_match=Mi[e.level].max_lazy,e.good_match=Mi[e.level].good_length,e.nice_match=Mi[e.level].nice_length,e.max_chain_length=Mi[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=N-1,e.match_available=0,e.ins_h=0}function Zv(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Ca,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new pe.Buf16($v*2),this.dyn_dtree=new pe.Buf16((2*Fv+1)*2),this.bl_tree=new pe.Buf16((2*Hv+1)*2),At(this.dyn_ltree),At(this.dyn_dtree),At(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new pe.Buf16(Uv+1),this.heap=new pe.Buf16(2*rl+1),At(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new pe.Buf16(2*rl+1),At(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function Dp(e){var t;return!e||!e.state?Tt(e,_e):(e.total_in=e.total_out=0,e.data_type=Pv,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?Ta:Yt,e.adler=t.wrap===2?0:1,t.last_flush=Xt,we._tr_init(t),$e)}function zp(e){var t=Dp(e);return t===$e&&Xv(e.state),t}function Jv(e,t){return!e||!e.state||e.state.wrap!==2?_e:(e.state.gzhead=t,$e)}function Np(e,t,i,n,r,a){if(!e)return _e;var s=1;if(t===Lv&&(t=6),n<0?(s=0,n=-n):n>15&&(s=2,n-=16),r<1||r>jv||i!==Ca||n<8||n>15||t<0||t>9||a<0||a>Mv)return Tt(e,_e);n===8&&(n=9);var o=new Zv;return e.state=o,o.strm=e,o.wrap=s,o.gzhead=null,o.w_bits=n,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=r+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+N-1)/N),o.window=new pe.Buf8(o.w_size*2),o.head=new pe.Buf16(o.hash_size),o.prev=new pe.Buf16(o.w_size),o.lit_bufsize=1<<r+6,o.pending_buf_size=o.lit_bufsize*4,o.pending_buf=new pe.Buf8(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=t,o.strategy=a,o.method=i,zp(e)}function Qv(e,t){return Np(e,t,Ca,Dv,zv,Rv)}function ex(e,t){var i,n,r,a;if(!e||!e.state||t>Ip||t<0)return e?Tt(e,_e):_e;if(n=e.state,!e.output||!e.input&&e.avail_in!==0||n.status===Bn&&t!==kt)return Tt(e,e.avail_out===0?il:_e);if(n.strm=e,i=n.last_flush,n.last_flush=t,n.status===Ta)if(n.wrap===2)e.adler=0,F(n,31),F(n,139),F(n,8),n.gzhead?(F(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),F(n,n.gzhead.time&255),F(n,n.gzhead.time>>8&255),F(n,n.gzhead.time>>16&255),F(n,n.gzhead.time>>24&255),F(n,n.level===9?2:n.strategy>=_a||n.level<2?4:0),F(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(F(n,n.gzhead.extra.length&255),F(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=Et(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=al):(F(n,0),F(n,0),F(n,0),F(n,0),F(n,0),F(n,n.level===9?2:n.strategy>=_a||n.level<2?4:0),F(n,Gv),n.status=Yt);else{var s=Ca+(n.w_bits-8<<4)<<8,o=-1;n.strategy>=_a||n.level<2?o=0:n.level<6?o=1:n.level===6?o=2:o=3,s|=o<<6,n.strstart!==0&&(s|=qv),s+=31-s%31,n.status=Yt,Nn(n,s),n.strstart!==0&&(Nn(n,e.adler>>>16),Nn(n,e.adler&65535)),e.adler=1}if(n.status===al)if(n.gzhead.extra){for(r=n.pending;n.gzindex<(n.gzhead.extra.length&65535)&&!(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>r&&(e.adler=Et(e.adler,n.pending_buf,n.pending-r,r)),St(e),r=n.pending,n.pending===n.pending_buf_size));)F(n,n.gzhead.extra[n.gzindex]&255),n.gzindex++;n.gzhead.hcrc&&n.pending>r&&(e.adler=Et(e.adler,n.pending_buf,n.pending-r,r)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=Ea)}else n.status=Ea;if(n.status===Ea)if(n.gzhead.name){r=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>r&&(e.adler=Et(e.adler,n.pending_buf,n.pending-r,r)),St(e),r=n.pending,n.pending===n.pending_buf_size)){a=1;break}n.gzindex<n.gzhead.name.length?a=n.gzhead.name.charCodeAt(n.gzindex++)&255:a=0,F(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>r&&(e.adler=Et(e.adler,n.pending_buf,n.pending-r,r)),a===0&&(n.gzindex=0,n.status=Sa)}else n.status=Sa;if(n.status===Sa)if(n.gzhead.comment){r=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>r&&(e.adler=Et(e.adler,n.pending_buf,n.pending-r,r)),St(e),r=n.pending,n.pending===n.pending_buf_size)){a=1;break}n.gzindex<n.gzhead.comment.length?a=n.gzhead.comment.charCodeAt(n.gzindex++)&255:a=0,F(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>r&&(e.adler=Et(e.adler,n.pending_buf,n.pending-r,r)),a===0&&(n.status=Aa)}else n.status=Aa;if(n.status===Aa&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&St(e),n.pending+2<=n.pending_buf_size&&(F(n,e.adler&255),F(n,e.adler>>8&255),e.adler=0,n.status=Yt)):n.status=Yt),n.pending!==0){if(St(e),e.avail_out===0)return n.last_flush=-1,$e}else if(e.avail_in===0&&Rp(t)<=Rp(i)&&t!==kt)return Tt(e,il);if(n.status===Bn&&e.avail_in!==0)return Tt(e,il);if(e.avail_in!==0||n.lookahead!==0||t!==Xt&&n.status!==Bn){var l=n.strategy===_a?Kv(n,t):n.strategy===Iv?Vv(n,t):Mi[n.level].func(n,t);if((l===Vt||l===Ri)&&(n.status=Bn),l===ie||l===Vt)return e.avail_out===0&&(n.last_flush=-1),$e;if(l===Fn&&(t===Cv?we._tr_align(n):t!==Ip&&(we._tr_stored_block(n,0,0,!1),t===Tv&&(At(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),St(e),e.avail_out===0))return n.last_flush=-1,$e}return t!==kt?$e:n.wrap<=0?Mp:(n.wrap===2?(F(n,e.adler&255),F(n,e.adler>>8&255),F(n,e.adler>>16&255),F(n,e.adler>>24&255),F(n,e.total_in&255),F(n,e.total_in>>8&255),F(n,e.total_in>>16&255),F(n,e.total_in>>24&255)):(Nn(n,e.adler>>>16),Nn(n,e.adler&65535)),St(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?$e:Mp)}function tx(e){var t;return!e||!e.state?_e:(t=e.state.status,t!==Ta&&t!==al&&t!==Ea&&t!==Sa&&t!==Aa&&t!==Yt&&t!==Bn?Tt(e,_e):(e.state=null,t===Yt?Tt(e,kv):$e))}function ix(e,t){var i=t.length,n,r,a,s,o,l,c,d;if(!e||!e.state||(n=e.state,s=n.wrap,s===2||s===1&&n.status!==Ta||n.lookahead))return _e;for(s===1&&(e.adler=Pp(e.adler,t,i,0)),n.wrap=0,i>=n.w_size&&(s===0&&(At(n.head),n.strstart=0,n.block_start=0,n.insert=0),d=new pe.Buf8(n.w_size),pe.arraySet(d,t,i-n.w_size,n.w_size,0),t=d,i=n.w_size),o=e.avail_in,l=e.next_in,c=e.input,e.avail_in=i,e.next_in=0,e.input=t,Kt(n);n.lookahead>=N;){r=n.strstart,a=n.lookahead-(N-1);do n.ins_h=(n.ins_h<<n.hash_shift^n.window[r+N-1])&n.hash_mask,n.prev[r&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=r,r++;while(--a);n.strstart=r,n.lookahead=N-1,Kt(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=N-1,n.match_available=0,e.next_in=l,e.input=c,e.avail_in=o,n.wrap=s,$e}Ue.deflateInit=Qv;Ue.deflateInit2=Np;Ue.deflateReset=zp;Ue.deflateResetKeep=Dp;Ue.deflateSetHeader=Jv;Ue.deflate=ex;Ue.deflateEnd=tx;Ue.deflateSetDictionary=ix;Ue.deflateInfo="pako deflate (from Nodeca project)"});var sl=k(Pi=>{"use strict";var ka=at(),Fp=!0,Hp=!0;try{String.fromCharCode.apply(null,[0])}catch{Fp=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Hp=!1}var Hn=new ka.Buf8(256);for(ot=0;ot<256;ot++)Hn[ot]=ot>=252?6:ot>=248?5:ot>=240?4:ot>=224?3:ot>=192?2:1;var ot;Hn[254]=Hn[254]=1;Pi.string2buf=function(e){var t,i,n,r,a,s=e.length,o=0;for(r=0;r<s;r++)i=e.charCodeAt(r),(i&64512)===55296&&r+1<s&&(n=e.charCodeAt(r+1),(n&64512)===56320&&(i=65536+(i-55296<<10)+(n-56320),r++)),o+=i<128?1:i<2048?2:i<65536?3:4;for(t=new ka.Buf8(o),a=0,r=0;a<o;r++)i=e.charCodeAt(r),(i&64512)===55296&&r+1<s&&(n=e.charCodeAt(r+1),(n&64512)===56320&&(i=65536+(i-55296<<10)+(n-56320),r++)),i<128?t[a++]=i:i<2048?(t[a++]=192|i>>>6,t[a++]=128|i&63):i<65536?(t[a++]=224|i>>>12,t[a++]=128|i>>>6&63,t[a++]=128|i&63):(t[a++]=240|i>>>18,t[a++]=128|i>>>12&63,t[a++]=128|i>>>6&63,t[a++]=128|i&63);return t};function $p(e,t){if(t<65534&&(e.subarray&&Hp||!e.subarray&&Fp))return String.fromCharCode.apply(null,ka.shrinkBuf(e,t));for(var i="",n=0;n<t;n++)i+=String.fromCharCode(e[n]);return i}Pi.buf2binstring=function(e){return $p(e,e.length)};Pi.binstring2buf=function(e){for(var t=new ka.Buf8(e.length),i=0,n=t.length;i<n;i++)t[i]=e.charCodeAt(i);return t};Pi.buf2string=function(e,t){var i,n,r,a,s=t||e.length,o=new Array(s*2);for(n=0,i=0;i<s;){if(r=e[i++],r<128){o[n++]=r;continue}if(a=Hn[r],a>4){o[n++]=65533,i+=a-1;continue}for(r&=a===2?31:a===3?15:7;a>1&&i<s;)r=r<<6|e[i++]&63,a--;if(a>1){o[n++]=65533;continue}r<65536?o[n++]=r:(r-=65536,o[n++]=55296|r>>10&1023,o[n++]=56320|r&1023)}return $p(o,n)};Pi.utf8border=function(e,t){var i;for(t=t||e.length,t>e.length&&(t=e.length),i=t-1;i>=0&&(e[i]&192)===128;)i--;return i<0||i===0?t:i+Hn[e[i]]>t?i:t}});var ol=k((nE,Up)=>{"use strict";function nx(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}Up.exports=nx});var Yp=k(qn=>{"use strict";var $n=Bp(),Un=at(),cl=sl(),dl=wa(),rx=ol(),Wp=Object.prototype.toString,ax=0,ll=4,ji=0,qp=1,Gp=2,sx=-1,ox=0,lx=8;function Zt(e){if(!(this instanceof Zt))return new Zt(e);this.options=Un.assign({level:sx,method:lx,chunkSize:16384,windowBits:15,memLevel:8,strategy:ox,to:""},e||{});var t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new rx,this.strm.avail_out=0;var i=$n.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(i!==ji)throw new Error(dl[i]);if(t.header&&$n.deflateSetHeader(this.strm,t.header),t.dictionary){var n;if(typeof t.dictionary=="string"?n=cl.string2buf(t.dictionary):Wp.call(t.dictionary)==="[object ArrayBuffer]"?n=new Uint8Array(t.dictionary):n=t.dictionary,i=$n.deflateSetDictionary(this.strm,n),i!==ji)throw new Error(dl[i]);this._dict_set=!0}}Zt.prototype.push=function(e,t){var i=this.strm,n=this.options.chunkSize,r,a;if(this.ended)return!1;a=t===~~t?t:t===!0?ll:ax,typeof e=="string"?i.input=cl.string2buf(e):Wp.call(e)==="[object ArrayBuffer]"?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;do{if(i.avail_out===0&&(i.output=new Un.Buf8(n),i.next_out=0,i.avail_out=n),r=$n.deflate(i,a),r!==qp&&r!==ji)return this.onEnd(r),this.ended=!0,!1;(i.avail_out===0||i.avail_in===0&&(a===ll||a===Gp))&&(this.options.to==="string"?this.onData(cl.buf2binstring(Un.shrinkBuf(i.output,i.next_out))):this.onData(Un.shrinkBuf(i.output,i.next_out)))}while((i.avail_in>0||i.avail_out===0)&&r!==qp);return a===ll?(r=$n.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===ji):(a===Gp&&(this.onEnd(ji),i.avail_out=0),!0)};Zt.prototype.onData=function(e){this.chunks.push(e)};Zt.prototype.onEnd=function(e){e===ji&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Un.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function ul(e,t){var i=new Zt(t);if(i.push(e,!0),i.err)throw i.msg||dl[i.err];return i.result}function cx(e,t){return t=t||{},t.raw=!0,ul(e,t)}function dx(e,t){return t=t||{},t.gzip=!0,ul(e,t)}qn.Deflate=Zt;qn.deflate=ul;qn.deflateRaw=cx;qn.gzip=dx});var Kp=k((aE,Vp)=>{"use strict";var La=30,ux=12;Vp.exports=function(t,i){var n,r,a,s,o,l,c,d,u,p,f,m,h,g,b,y,v,x,w,S,A,_,T,R,E;n=t.state,r=t.next_in,R=t.input,a=r+(t.avail_in-5),s=t.next_out,E=t.output,o=s-(i-t.avail_out),l=s+(t.avail_out-257),c=n.dmax,d=n.wsize,u=n.whave,p=n.wnext,f=n.window,m=n.hold,h=n.bits,g=n.lencode,b=n.distcode,y=(1<<n.lenbits)-1,v=(1<<n.distbits)-1;e:do{h<15&&(m+=R[r++]<<h,h+=8,m+=R[r++]<<h,h+=8),x=g[m&y];t:for(;;){if(w=x>>>24,m>>>=w,h-=w,w=x>>>16&255,w===0)E[s++]=x&65535;else if(w&16){S=x&65535,w&=15,w&&(h<w&&(m+=R[r++]<<h,h+=8),S+=m&(1<<w)-1,m>>>=w,h-=w),h<15&&(m+=R[r++]<<h,h+=8,m+=R[r++]<<h,h+=8),x=b[m&v];i:for(;;){if(w=x>>>24,m>>>=w,h-=w,w=x>>>16&255,w&16){if(A=x&65535,w&=15,h<w&&(m+=R[r++]<<h,h+=8,h<w&&(m+=R[r++]<<h,h+=8)),A+=m&(1<<w)-1,A>c){t.msg="invalid distance too far back",n.mode=La;break e}if(m>>>=w,h-=w,w=s-o,A>w){if(w=A-w,w>u&&n.sane){t.msg="invalid distance too far back",n.mode=La;break e}if(_=0,T=f,p===0){if(_+=d-w,w<S){S-=w;do E[s++]=f[_++];while(--w);_=s-A,T=E}}else if(p<w){if(_+=d+p-w,w-=p,w<S){S-=w;do E[s++]=f[_++];while(--w);if(_=0,p<S){w=p,S-=w;do E[s++]=f[_++];while(--w);_=s-A,T=E}}}else if(_+=p-w,w<S){S-=w;do E[s++]=f[_++];while(--w);_=s-A,T=E}for(;S>2;)E[s++]=T[_++],E[s++]=T[_++],E[s++]=T[_++],S-=3;S&&(E[s++]=T[_++],S>1&&(E[s++]=T[_++]))}else{_=s-A;do E[s++]=E[_++],E[s++]=E[_++],E[s++]=E[_++],S-=3;while(S>2);S&&(E[s++]=E[_++],S>1&&(E[s++]=E[_++]))}}else if((w&64)===0){x=b[(x&65535)+(m&(1<<w)-1)];continue i}else{t.msg="invalid distance code",n.mode=La;break e}break}}else if((w&64)===0){x=g[(x&65535)+(m&(1<<w)-1)];continue t}else if(w&32){n.mode=ux;break e}else{t.msg="invalid literal/length code",n.mode=La;break e}break}}while(r<a&&s<l);S=h>>3,r-=S,h-=S<<3,m&=(1<<h)-1,t.next_in=r,t.next_out=s,t.avail_in=r<a?5+(a-r):5-(r-a),t.avail_out=s<l?257+(l-s):257-(s-l),n.hold=m,n.bits=h}});var nf=k((sE,tf)=>{"use strict";var Xp=at(),Di=15,Zp=852,Jp=592,Qp=0,pl=1,ef=2,px=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],fx=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],hx=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],gx=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];tf.exports=function(t,i,n,r,a,s,o,l){var c=l.bits,d=0,u=0,p=0,f=0,m=0,h=0,g=0,b=0,y=0,v=0,x,w,S,A,_,T=null,R=0,E,L=new Xp.Buf16(Di+1),z=new Xp.Buf16(Di+1),D=null,B=0,O,P,C;for(d=0;d<=Di;d++)L[d]=0;for(u=0;u<r;u++)L[i[n+u]]++;for(m=c,f=Di;f>=1&&L[f]===0;f--);if(m>f&&(m=f),f===0)return a[s++]=1<<24|64<<16|0,a[s++]=1<<24|64<<16|0,l.bits=1,0;for(p=1;p<f&&L[p]===0;p++);for(m<p&&(m=p),b=1,d=1;d<=Di;d++)if(b<<=1,b-=L[d],b<0)return-1;if(b>0&&(t===Qp||f!==1))return-1;for(z[1]=0,d=1;d<Di;d++)z[d+1]=z[d]+L[d];for(u=0;u<r;u++)i[n+u]!==0&&(o[z[i[n+u]]++]=u);if(t===Qp?(T=D=o,E=19):t===pl?(T=px,R-=257,D=fx,B-=257,E=256):(T=hx,D=gx,E=-1),v=0,u=0,d=p,_=s,h=m,g=0,S=-1,y=1<<m,A=y-1,t===pl&&y>Zp||t===ef&&y>Jp)return 1;for(;;){O=d-g,o[u]<E?(P=0,C=o[u]):o[u]>E?(P=D[B+o[u]],C=T[R+o[u]]):(P=96,C=0),x=1<<d-g,w=1<<h,p=w;do w-=x,a[_+(v>>g)+w]=O<<24|P<<16|C|0;while(w!==0);for(x=1<<d-1;v&x;)x>>=1;if(x!==0?(v&=x-1,v+=x):v=0,u++,--L[d]===0){if(d===f)break;d=i[n+o[u]]}if(d>m&&(v&A)!==S){for(g===0&&(g=m),_+=p,h=d-g,b=1<<h;h+g<f&&(b-=L[h+g],!(b<=0));)h++,b<<=1;if(y+=1<<h,t===pl&&y>Zp||t===ef&&y>Jp)return 1;S=v&A,a[S]=m<<24|h<<16|_-s|0}}return v!==0&&(a[_+v]=d-g<<24|64<<16|0),l.bits=m,0}});var Nf=k(Oe=>{"use strict";var me=at(),yl=el(),qe=tl(),mx=Kp(),Gn=nf(),bx=0,Lf=1,Of=2,rf=4,yx=5,Oa=6,Jt=0,vx=1,xx=2,Ee=-2,If=-3,vl=-4,wx=-5,af=8,Mf=1,sf=2,of=3,lf=4,cf=5,df=6,uf=7,pf=8,ff=9,hf=10,Ra=11,lt=12,fl=13,gf=14,hl=15,mf=16,bf=17,yf=18,vf=19,Ia=20,Ma=21,xf=22,wf=23,_f=24,Ef=25,Sf=26,gl=27,Af=28,Cf=29,W=30,xl=31,_x=32,Ex=852,Sx=592,Ax=15,Cx=Ax;function Tf(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function Tx(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new me.Buf16(320),this.work=new me.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Rf(e){var t;return!e||!e.state?Ee:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=Mf,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new me.Buf32(Ex),t.distcode=t.distdyn=new me.Buf32(Sx),t.sane=1,t.back=-1,Jt)}function Pf(e){var t;return!e||!e.state?Ee:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,Rf(e))}function jf(e,t){var i,n;return!e||!e.state||(n=e.state,t<0?(i=0,t=-t):(i=(t>>4)+1,t<48&&(t&=15)),t&&(t<8||t>15))?Ee:(n.window!==null&&n.wbits!==t&&(n.window=null),n.wrap=i,n.wbits=t,Pf(e))}function Df(e,t){var i,n;return e?(n=new Tx,e.state=n,n.window=null,i=jf(e,t),i!==Jt&&(e.state=null),i):Ee}function kx(e){return Df(e,Cx)}var kf=!0,ml,bl;function Lx(e){if(kf){var t;for(ml=new me.Buf32(512),bl=new me.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Gn(Lf,e.lens,0,288,ml,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Gn(Of,e.lens,0,32,bl,0,e.work,{bits:5}),kf=!1}e.lencode=ml,e.lenbits=9,e.distcode=bl,e.distbits=5}function zf(e,t,i,n){var r,a=e.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new me.Buf8(a.wsize)),n>=a.wsize?(me.arraySet(a.window,t,i-a.wsize,a.wsize,0),a.wnext=0,a.whave=a.wsize):(r=a.wsize-a.wnext,r>n&&(r=n),me.arraySet(a.window,t,i-n,r,a.wnext),n-=r,n?(me.arraySet(a.window,t,i-n,n,0),a.wnext=n,a.whave=a.wsize):(a.wnext+=r,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=r))),0}function Ox(e,t){var i,n,r,a,s,o,l,c,d,u,p,f,m,h,g=0,b,y,v,x,w,S,A,_,T=new me.Buf8(4),R,E,L=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&e.avail_in!==0)return Ee;i=e.state,i.mode===lt&&(i.mode=fl),s=e.next_out,r=e.output,l=e.avail_out,a=e.next_in,n=e.input,o=e.avail_in,c=i.hold,d=i.bits,u=o,p=l,_=Jt;e:for(;;)switch(i.mode){case Mf:if(i.wrap===0){i.mode=fl;break}for(;d<16;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}if(i.wrap&2&&c===35615){i.check=0,T[0]=c&255,T[1]=c>>>8&255,i.check=qe(i.check,T,2,0),c=0,d=0,i.mode=sf;break}if(i.flags=0,i.head&&(i.head.done=!1),!(i.wrap&1)||(((c&255)<<8)+(c>>8))%31){e.msg="incorrect header check",i.mode=W;break}if((c&15)!==af){e.msg="unknown compression method",i.mode=W;break}if(c>>>=4,d-=4,A=(c&15)+8,i.wbits===0)i.wbits=A;else if(A>i.wbits){e.msg="invalid window size",i.mode=W;break}i.dmax=1<<A,e.adler=i.check=1,i.mode=c&512?hf:lt,c=0,d=0;break;case sf:for(;d<16;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}if(i.flags=c,(i.flags&255)!==af){e.msg="unknown compression method",i.mode=W;break}if(i.flags&57344){e.msg="unknown header flags set",i.mode=W;break}i.head&&(i.head.text=c>>8&1),i.flags&512&&(T[0]=c&255,T[1]=c>>>8&255,i.check=qe(i.check,T,2,0)),c=0,d=0,i.mode=of;case of:for(;d<32;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}i.head&&(i.head.time=c),i.flags&512&&(T[0]=c&255,T[1]=c>>>8&255,T[2]=c>>>16&255,T[3]=c>>>24&255,i.check=qe(i.check,T,4,0)),c=0,d=0,i.mode=lf;case lf:for(;d<16;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}i.head&&(i.head.xflags=c&255,i.head.os=c>>8),i.flags&512&&(T[0]=c&255,T[1]=c>>>8&255,i.check=qe(i.check,T,2,0)),c=0,d=0,i.mode=cf;case cf:if(i.flags&1024){for(;d<16;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}i.length=c,i.head&&(i.head.extra_len=c),i.flags&512&&(T[0]=c&255,T[1]=c>>>8&255,i.check=qe(i.check,T,2,0)),c=0,d=0}else i.head&&(i.head.extra=null);i.mode=df;case df:if(i.flags&1024&&(f=i.length,f>o&&(f=o),f&&(i.head&&(A=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Array(i.head.extra_len)),me.arraySet(i.head.extra,n,a,f,A)),i.flags&512&&(i.check=qe(i.check,n,f,a)),o-=f,a+=f,i.length-=f),i.length))break e;i.length=0,i.mode=uf;case uf:if(i.flags&2048){if(o===0)break e;f=0;do A=n[a+f++],i.head&&A&&i.length<65536&&(i.head.name+=String.fromCharCode(A));while(A&&f<o);if(i.flags&512&&(i.check=qe(i.check,n,f,a)),o-=f,a+=f,A)break e}else i.head&&(i.head.name=null);i.length=0,i.mode=pf;case pf:if(i.flags&4096){if(o===0)break e;f=0;do A=n[a+f++],i.head&&A&&i.length<65536&&(i.head.comment+=String.fromCharCode(A));while(A&&f<o);if(i.flags&512&&(i.check=qe(i.check,n,f,a)),o-=f,a+=f,A)break e}else i.head&&(i.head.comment=null);i.mode=ff;case ff:if(i.flags&512){for(;d<16;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}if(c!==(i.check&65535)){e.msg="header crc mismatch",i.mode=W;break}c=0,d=0}i.head&&(i.head.hcrc=i.flags>>9&1,i.head.done=!0),e.adler=i.check=0,i.mode=lt;break;case hf:for(;d<32;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}e.adler=i.check=Tf(c),c=0,d=0,i.mode=Ra;case Ra:if(i.havedict===0)return e.next_out=s,e.avail_out=l,e.next_in=a,e.avail_in=o,i.hold=c,i.bits=d,xx;e.adler=i.check=1,i.mode=lt;case lt:if(t===yx||t===Oa)break e;case fl:if(i.last){c>>>=d&7,d-=d&7,i.mode=gl;break}for(;d<3;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}switch(i.last=c&1,c>>>=1,d-=1,c&3){case 0:i.mode=gf;break;case 1:if(Lx(i),i.mode=Ia,t===Oa){c>>>=2,d-=2;break e}break;case 2:i.mode=bf;break;case 3:e.msg="invalid block type",i.mode=W}c>>>=2,d-=2;break;case gf:for(c>>>=d&7,d-=d&7;d<32;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}if((c&65535)!==(c>>>16^65535)){e.msg="invalid stored block lengths",i.mode=W;break}if(i.length=c&65535,c=0,d=0,i.mode=hl,t===Oa)break e;case hl:i.mode=mf;case mf:if(f=i.length,f){if(f>o&&(f=o),f>l&&(f=l),f===0)break e;me.arraySet(r,n,a,f,s),o-=f,a+=f,l-=f,s+=f,i.length-=f;break}i.mode=lt;break;case bf:for(;d<14;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}if(i.nlen=(c&31)+257,c>>>=5,d-=5,i.ndist=(c&31)+1,c>>>=5,d-=5,i.ncode=(c&15)+4,c>>>=4,d-=4,i.nlen>286||i.ndist>30){e.msg="too many length or distance symbols",i.mode=W;break}i.have=0,i.mode=yf;case yf:for(;i.have<i.ncode;){for(;d<3;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}i.lens[L[i.have++]]=c&7,c>>>=3,d-=3}for(;i.have<19;)i.lens[L[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,R={bits:i.lenbits},_=Gn(bx,i.lens,0,19,i.lencode,0,i.work,R),i.lenbits=R.bits,_){e.msg="invalid code lengths set",i.mode=W;break}i.have=0,i.mode=vf;case vf:for(;i.have<i.nlen+i.ndist;){for(;g=i.lencode[c&(1<<i.lenbits)-1],b=g>>>24,y=g>>>16&255,v=g&65535,!(b<=d);){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}if(v<16)c>>>=b,d-=b,i.lens[i.have++]=v;else{if(v===16){for(E=b+2;d<E;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}if(c>>>=b,d-=b,i.have===0){e.msg="invalid bit length repeat",i.mode=W;break}A=i.lens[i.have-1],f=3+(c&3),c>>>=2,d-=2}else if(v===17){for(E=b+3;d<E;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}c>>>=b,d-=b,A=0,f=3+(c&7),c>>>=3,d-=3}else{for(E=b+7;d<E;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}c>>>=b,d-=b,A=0,f=11+(c&127),c>>>=7,d-=7}if(i.have+f>i.nlen+i.ndist){e.msg="invalid bit length repeat",i.mode=W;break}for(;f--;)i.lens[i.have++]=A}}if(i.mode===W)break;if(i.lens[256]===0){e.msg="invalid code -- missing end-of-block",i.mode=W;break}if(i.lenbits=9,R={bits:i.lenbits},_=Gn(Lf,i.lens,0,i.nlen,i.lencode,0,i.work,R),i.lenbits=R.bits,_){e.msg="invalid literal/lengths set",i.mode=W;break}if(i.distbits=6,i.distcode=i.distdyn,R={bits:i.distbits},_=Gn(Of,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,R),i.distbits=R.bits,_){e.msg="invalid distances set",i.mode=W;break}if(i.mode=Ia,t===Oa)break e;case Ia:i.mode=Ma;case Ma:if(o>=6&&l>=258){e.next_out=s,e.avail_out=l,e.next_in=a,e.avail_in=o,i.hold=c,i.bits=d,mx(e,p),s=e.next_out,r=e.output,l=e.avail_out,a=e.next_in,n=e.input,o=e.avail_in,c=i.hold,d=i.bits,i.mode===lt&&(i.back=-1);break}for(i.back=0;g=i.lencode[c&(1<<i.lenbits)-1],b=g>>>24,y=g>>>16&255,v=g&65535,!(b<=d);){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}if(y&&(y&240)===0){for(x=b,w=y,S=v;g=i.lencode[S+((c&(1<<x+w)-1)>>x)],b=g>>>24,y=g>>>16&255,v=g&65535,!(x+b<=d);){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}c>>>=x,d-=x,i.back+=x}if(c>>>=b,d-=b,i.back+=b,i.length=v,y===0){i.mode=Sf;break}if(y&32){i.back=-1,i.mode=lt;break}if(y&64){e.msg="invalid literal/length code",i.mode=W;break}i.extra=y&15,i.mode=xf;case xf:if(i.extra){for(E=i.extra;d<E;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}i.length+=c&(1<<i.extra)-1,c>>>=i.extra,d-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=wf;case wf:for(;g=i.distcode[c&(1<<i.distbits)-1],b=g>>>24,y=g>>>16&255,v=g&65535,!(b<=d);){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}if((y&240)===0){for(x=b,w=y,S=v;g=i.distcode[S+((c&(1<<x+w)-1)>>x)],b=g>>>24,y=g>>>16&255,v=g&65535,!(x+b<=d);){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}c>>>=x,d-=x,i.back+=x}if(c>>>=b,d-=b,i.back+=b,y&64){e.msg="invalid distance code",i.mode=W;break}i.offset=v,i.extra=y&15,i.mode=_f;case _f:if(i.extra){for(E=i.extra;d<E;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}i.offset+=c&(1<<i.extra)-1,c>>>=i.extra,d-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){e.msg="invalid distance too far back",i.mode=W;break}i.mode=Ef;case Ef:if(l===0)break e;if(f=p-l,i.offset>f){if(f=i.offset-f,f>i.whave&&i.sane){e.msg="invalid distance too far back",i.mode=W;break}f>i.wnext?(f-=i.wnext,m=i.wsize-f):m=i.wnext-f,f>i.length&&(f=i.length),h=i.window}else h=r,m=s-i.offset,f=i.length;f>l&&(f=l),l-=f,i.length-=f;do r[s++]=h[m++];while(--f);i.length===0&&(i.mode=Ma);break;case Sf:if(l===0)break e;r[s++]=i.length,l--,i.mode=Ma;break;case gl:if(i.wrap){for(;d<32;){if(o===0)break e;o--,c|=n[a++]<<d,d+=8}if(p-=l,e.total_out+=p,i.total+=p,p&&(e.adler=i.check=i.flags?qe(i.check,r,p,s-p):yl(i.check,r,p,s-p)),p=l,(i.flags?c:Tf(c))!==i.check){e.msg="incorrect data check",i.mode=W;break}c=0,d=0}i.mode=Af;case Af:if(i.wrap&&i.flags){for(;d<32;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}if(c!==(i.total&4294967295)){e.msg="incorrect length check",i.mode=W;break}c=0,d=0}i.mode=Cf;case Cf:_=vx;break e;case W:_=If;break e;case xl:return vl;case _x:default:return Ee}return e.next_out=s,e.avail_out=l,e.next_in=a,e.avail_in=o,i.hold=c,i.bits=d,(i.wsize||p!==e.avail_out&&i.mode<W&&(i.mode<gl||t!==rf))&&zf(e,e.output,e.next_out,p-e.avail_out)?(i.mode=xl,vl):(u-=e.avail_in,p-=e.avail_out,e.total_in+=u,e.total_out+=p,i.total+=p,i.wrap&&p&&(e.adler=i.check=i.flags?qe(i.check,r,p,e.next_out-p):yl(i.check,r,p,e.next_out-p)),e.data_type=i.bits+(i.last?64:0)+(i.mode===lt?128:0)+(i.mode===Ia||i.mode===hl?256:0),(u===0&&p===0||t===rf)&&_===Jt&&(_=wx),_)}function Ix(e){if(!e||!e.state)return Ee;var t=e.state;return t.window&&(t.window=null),e.state=null,Jt}function Mx(e,t){var i;return!e||!e.state||(i=e.state,(i.wrap&2)===0)?Ee:(i.head=t,t.done=!1,Jt)}function Rx(e,t){var i=t.length,n,r,a;return!e||!e.state||(n=e.state,n.wrap!==0&&n.mode!==Ra)?Ee:n.mode===Ra&&(r=1,r=yl(r,t,i,0),r!==n.check)?If:(a=zf(e,t,i,i),a?(n.mode=xl,vl):(n.havedict=1,Jt))}Oe.inflateReset=Pf;Oe.inflateReset2=jf;Oe.inflateResetKeep=Rf;Oe.inflateInit=kx;Oe.inflateInit2=Df;Oe.inflate=Ox;Oe.inflateEnd=Ix;Oe.inflateGetHeader=Mx;Oe.inflateSetDictionary=Rx;Oe.inflateInfo="pako inflate (from Nodeca project)"});var wl=k((lE,Bf)=>{"use strict";Bf.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}});var Hf=k((cE,Ff)=>{"use strict";function Px(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}Ff.exports=Px});var Uf=k(Yn=>{"use strict";var zi=Nf(),Wn=at(),Pa=sl(),X=wl(),_l=wa(),jx=ol(),Dx=Hf(),$f=Object.prototype.toString;function Qt(e){if(!(this instanceof Qt))return new Qt(e);this.options=Wn.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15)===0&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new jx,this.strm.avail_out=0;var i=zi.inflateInit2(this.strm,t.windowBits);if(i!==X.Z_OK)throw new Error(_l[i]);if(this.header=new Dx,zi.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Pa.string2buf(t.dictionary):$f.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(i=zi.inflateSetDictionary(this.strm,t.dictionary),i!==X.Z_OK)))throw new Error(_l[i])}Qt.prototype.push=function(e,t){var i=this.strm,n=this.options.chunkSize,r=this.options.dictionary,a,s,o,l,c,d=!1;if(this.ended)return!1;s=t===~~t?t:t===!0?X.Z_FINISH:X.Z_NO_FLUSH,typeof e=="string"?i.input=Pa.binstring2buf(e):$f.call(e)==="[object ArrayBuffer]"?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;do{if(i.avail_out===0&&(i.output=new Wn.Buf8(n),i.next_out=0,i.avail_out=n),a=zi.inflate(i,X.Z_NO_FLUSH),a===X.Z_NEED_DICT&&r&&(a=zi.inflateSetDictionary(this.strm,r)),a===X.Z_BUF_ERROR&&d===!0&&(a=X.Z_OK,d=!1),a!==X.Z_STREAM_END&&a!==X.Z_OK)return this.onEnd(a),this.ended=!0,!1;i.next_out&&(i.avail_out===0||a===X.Z_STREAM_END||i.avail_in===0&&(s===X.Z_FINISH||s===X.Z_SYNC_FLUSH))&&(this.options.to==="string"?(o=Pa.utf8border(i.output,i.next_out),l=i.next_out-o,c=Pa.buf2string(i.output,o),i.next_out=l,i.avail_out=n-l,l&&Wn.arraySet(i.output,i.output,o,l,0),this.onData(c)):this.onData(Wn.shrinkBuf(i.output,i.next_out))),i.avail_in===0&&i.avail_out===0&&(d=!0)}while((i.avail_in>0||i.avail_out===0)&&a!==X.Z_STREAM_END);return a===X.Z_STREAM_END&&(s=X.Z_FINISH),s===X.Z_FINISH?(a=zi.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===X.Z_OK):(s===X.Z_SYNC_FLUSH&&(this.onEnd(X.Z_OK),i.avail_out=0),!0)};Qt.prototype.onData=function(e){this.chunks.push(e)};Qt.prototype.onEnd=function(e){e===X.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Wn.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function El(e,t){var i=new Qt(t);if(i.push(e,!0),i.err)throw i.msg||_l[i.err];return i.result}function zx(e,t){return t=t||{},t.raw=!0,El(e,t)}Yn.Inflate=Qt;Yn.inflate=El;Yn.inflateRaw=zx;Yn.ungzip=El});var Wf=k((uE,Gf)=>{"use strict";var Nx=at().assign,Bx=Yp(),Fx=Uf(),Hx=wl(),qf={};Nx(qf,Bx,Fx,Hx);Gf.exports=qf});var Vf=k(Da=>{"use strict";var $x=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Uint32Array!="undefined",Ux=Wf(),Yf=V(),ja=ge(),qx=$x?"uint8array":"array";Da.magic="\b\0";function ei(e,t){ja.call(this,"FlateWorker/"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}Yf.inherits(ei,ja);ei.prototype.processChunk=function(e){this.meta=e.meta,this._pako===null&&this._createPako(),this._pako.push(Yf.transformTo(qx,e.data),!1)};ei.prototype.flush=function(){ja.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)};ei.prototype.cleanUp=function(){ja.prototype.cleanUp.call(this),this._pako=null};ei.prototype._createPako=function(){this._pako=new Ux[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}};Da.compressWorker=function(e){return new ei("Deflate",e)};Da.uncompressWorker=function(){return new ei("Inflate",{})}});var Al=k(Sl=>{"use strict";var Kf=ge();Sl.STORE={magic:"\0\0",compressWorker:function(){return new Kf("STORE compression")},uncompressWorker:function(){return new Kf("STORE decompression")}};Sl.DEFLATE=Vf()});var Cl=k(ti=>{"use strict";ti.LOCAL_FILE_HEADER="PK";ti.CENTRAL_FILE_HEADER="PK";ti.CENTRAL_DIRECTORY_END="PK";ti.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07";ti.ZIP64_CENTRAL_DIRECTORY_END="PK";ti.DATA_DESCRIPTOR="PK\x07\b"});var Qf=k((gE,Jf)=>{"use strict";var Ni=V(),Bi=ge(),Tl=Ci(),Xf=ma(),za=Cl(),U=function(e,t){var i="",n;for(n=0;n<t;n++)i+=String.fromCharCode(e&255),e=e>>>8;return i},Gx=function(e,t){var i=e;return e||(i=t?16893:33204),(i&65535)<<16},Wx=function(e){return(e||0)&63},Zf=function(e,t,i,n,r,a){var s=e.file,o=e.compression,l=a!==Tl.utf8encode,c=Ni.transformTo("string",a(s.name)),d=Ni.transformTo("string",Tl.utf8encode(s.name)),u=s.comment,p=Ni.transformTo("string",a(u)),f=Ni.transformTo("string",Tl.utf8encode(u)),m=d.length!==s.name.length,h=f.length!==u.length,g,b,y="",v="",x="",w=s.dir,S=s.date,A={crc32:0,compressedSize:0,uncompressedSize:0};(!t||i)&&(A.crc32=e.crc32,A.compressedSize=e.compressedSize,A.uncompressedSize=e.uncompressedSize);var _=0;t&&(_|=8),!l&&(m||h)&&(_|=2048);var T=0,R=0;w&&(T|=16),r==="UNIX"?(R=798,T|=Gx(s.unixPermissions,w)):(R=20,T|=Wx(s.dosPermissions,w)),g=S.getUTCHours(),g=g<<6,g=g|S.getUTCMinutes(),g=g<<5,g=g|S.getUTCSeconds()/2,b=S.getUTCFullYear()-1980,b=b<<4,b=b|S.getUTCMonth()+1,b=b<<5,b=b|S.getUTCDate(),m&&(v=U(1,1)+U(Xf(c),4)+d,y+="up"+U(v.length,2)+v),h&&(x=U(1,1)+U(Xf(p),4)+f,y+="uc"+U(x.length,2)+x);var E="";E+=`
|
|
2
|
+
\0`,E+=U(_,2),E+=o.magic,E+=U(g,2),E+=U(b,2),E+=U(A.crc32,4),E+=U(A.compressedSize,4),E+=U(A.uncompressedSize,4),E+=U(c.length,2),E+=U(y.length,2);var L=za.LOCAL_FILE_HEADER+E+c+y,z=za.CENTRAL_FILE_HEADER+U(R,2)+E+U(p.length,2)+"\0\0\0\0"+U(T,4)+U(n,4)+c+y+p;return{fileRecord:L,dirRecord:z}},Yx=function(e,t,i,n,r){var a="",s=Ni.transformTo("string",r(n));return a=za.CENTRAL_DIRECTORY_END+"\0\0\0\0"+U(e,2)+U(e,2)+U(t,4)+U(i,4)+U(s.length,2)+s,a},Vx=function(e){var t="";return t=za.DATA_DESCRIPTOR+U(e.crc32,4)+U(e.compressedSize,4)+U(e.uncompressedSize,4),t};function Ie(e,t,i,n){Bi.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=i,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}Ni.inherits(Ie,Bi);Ie.prototype.push=function(e){var t=e.meta.percent||0,i=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,Bi.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:i?(t+100*(i-n-1))/i:100}}))};Ie.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var i=Zf(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:i.fileRecord,meta:{percent:0}})}else this.accumulate=!0};Ie.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,i=Zf(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(i.dirRecord),t)this.push({data:Vx(e),meta:{percent:100}});else for(this.push({data:i.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null};Ie.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t<this.dirRecords.length;t++)this.push({data:this.dirRecords[t],meta:{percent:100}});var i=this.bytesWritten-e,n=Yx(this.dirRecords.length,i,e,this.zipComment,this.encodeFileName);this.push({data:n,meta:{percent:100}})};Ie.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()};Ie.prototype.registerPrevious=function(e){this._sources.push(e);var t=this;return e.on("data",function(i){t.processChunk(i)}),e.on("end",function(){t.closedSource(t.previous.streamInfo),t._sources.length?t.prepareNextSource():t.end()}),e.on("error",function(i){t.error(i)}),this};Ie.prototype.resume=function(){if(!Bi.prototype.resume.call(this))return!1;if(!this.previous&&this._sources.length)return this.prepareNextSource(),!0;if(!this.previous&&!this._sources.length&&!this.generatedError)return this.end(),!0};Ie.prototype.error=function(e){var t=this._sources;if(!Bi.prototype.error.call(this,e))return!1;for(var i=0;i<t.length;i++)try{t[i].error(e)}catch{}return!0};Ie.prototype.lock=function(){Bi.prototype.lock.call(this);for(var e=this._sources,t=0;t<e.length;t++)e[t].lock()};Jf.exports=Ie});var th=k(eh=>{"use strict";var Kx=Al(),Xx=Qf(),Zx=function(e,t){var i=e||t,n=Kx[i];if(!n)throw new Error(i+" is not a valid compression method !");return n};eh.generateWorker=function(e,t,i){var n=new Xx(t.streamFiles,i,t.platform,t.encodeFileName),r=0;try{e.forEach(function(a,s){r++;var o=Zx(s.options.compression,t.compression),l=s.options.compressionOptions||t.compressionOptions||{},c=s.dir,d=s.date;s._compressWorker(o,l).withStreamInfo("file",{name:a,dir:c,date:d,comment:s.comment||"",unixPermissions:s.unixPermissions,dosPermissions:s.dosPermissions}).pipe(n)}),n.entriesCount=r}catch(a){n.error(a)}return n}});var nh=k((bE,ih)=>{"use strict";var Jx=V(),Na=ge();function Vn(e,t){Na.call(this,"Nodejs stream input adapter for "+e),this._upstreamEnded=!1,this._bindStream(t)}Jx.inherits(Vn,Na);Vn.prototype._bindStream=function(e){var t=this;this._stream=e,e.pause(),e.on("data",function(i){t.push({data:i,meta:{percent:0}})}).on("error",function(i){t.isPaused?this.generatedError=i:t.error(i)}).on("end",function(){t.isPaused?t._upstreamEnded=!0:t.end()})};Vn.prototype.pause=function(){return Na.prototype.pause.call(this)?(this._stream.pause(),!0):!1};Vn.prototype.resume=function(){return Na.prototype.resume.call(this)?(this._upstreamEnded?this.end():this._stream.resume(),!0):!1};ih.exports=Vn});var fh=k((yE,ph)=>{"use strict";var Qx=Ci(),Kn=V(),oh=ge(),ew=Mo(),lh=Ro(),rh=ba(),tw=rp(),iw=th(),ah=Sn(),nw=nh(),ch=function(e,t,i){var n=Kn.getTypeOf(t),r,a=Kn.extend(i||{},lh);a.date=a.date||new Date,a.compression!==null&&(a.compression=a.compression.toUpperCase()),typeof a.unixPermissions=="string"&&(a.unixPermissions=parseInt(a.unixPermissions,8)),a.unixPermissions&&a.unixPermissions&16384&&(a.dir=!0),a.dosPermissions&&a.dosPermissions&16&&(a.dir=!0),a.dir&&(e=dh(e)),a.createFolders&&(r=rw(e))&&uh.call(this,r,!0);var s=n==="string"&&a.binary===!1&&a.base64===!1;(!i||typeof i.binary=="undefined")&&(a.binary=!s);var o=t instanceof rh&&t.uncompressedSize===0;(o||a.dir||!t||t.length===0)&&(a.base64=!1,a.binary=!0,t="",a.compression="STORE",n="string");var l=null;t instanceof rh||t instanceof oh?l=t:ah.isNode&&ah.isStream(t)?l=new nw(e,t):l=Kn.prepareContent(e,t,a.binary,a.optimizedBinaryString,a.base64);var c=new tw(e,l,a);this.files[e]=c},rw=function(e){e.slice(-1)==="/"&&(e=e.substring(0,e.length-1));var t=e.lastIndexOf("/");return t>0?e.substring(0,t):""},dh=function(e){return e.slice(-1)!=="/"&&(e+="/"),e},uh=function(e,t){return t=typeof t!="undefined"?t:lh.createFolders,e=dh(e),this.files[e]||ch.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]};function sh(e){return Object.prototype.toString.call(e)==="[object RegExp]"}var aw={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(e){var t,i,n;for(t in this.files)n=this.files[t],i=t.slice(this.root.length,t.length),i&&t.slice(0,this.root.length)===this.root&&e(i,n)},filter:function(e){var t=[];return this.forEach(function(i,n){e(i,n)&&t.push(n)}),t},file:function(e,t,i){if(arguments.length===1)if(sh(e)){var n=e;return this.filter(function(a,s){return!s.dir&&n.test(a)})}else{var r=this.files[this.root+e];return r&&!r.dir?r:null}else e=this.root+e,ch.call(this,e,t,i);return this},folder:function(e){if(!e)return this;if(sh(e))return this.filter(function(r,a){return a.dir&&e.test(r)});var t=this.root+e,i=uh.call(this,t),n=this.clone();return n.root=i.name,n},remove:function(e){e=this.root+e;var t=this.files[e];if(t||(e.slice(-1)!=="/"&&(e+="/"),t=this.files[e]),t&&!t.dir)delete this.files[e];else for(var i=this.filter(function(r,a){return a.name.slice(0,e.length)===e}),n=0;n<i.length;n++)delete this.files[i[n].name];return this},generate:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(e){var t,i={};try{if(i=Kn.extend(e||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:Qx.utf8encode}),i.type=i.type.toLowerCase(),i.compression=i.compression.toUpperCase(),i.type==="binarystring"&&(i.type="string"),!i.type)throw new Error("No output type specified.");Kn.checkSupport(i.type),(i.platform==="darwin"||i.platform==="freebsd"||i.platform==="linux"||i.platform==="sunos")&&(i.platform="UNIX"),i.platform==="win32"&&(i.platform="DOS");var n=i.comment||this.comment||"";t=iw.generateWorker(this,i,n)}catch(r){t=new oh("error"),t.error(r)}return new ew(t,i.type||"string",i.mimeType)},generateAsync:function(e,t){return this.generateInternalStream(e).accumulate(t)},generateNodeStream:function(e,t){return e=e||{},e.type||(e.type="nodebuffer"),this.generateInternalStream(e).toNodejsStream(t)}};ph.exports=aw});var kl=k((vE,gh)=>{"use strict";var sw=V();function hh(e){this.data=e,this.length=e.length,this.index=0,this.zero=0}hh.prototype={checkOffset:function(e){this.checkIndex(this.index+e)},checkIndex:function(e){if(this.length<this.zero+e||e<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+e+"). Corrupted zip ?")},setIndex:function(e){this.checkIndex(e),this.index=e},skip:function(e){this.setIndex(this.index+e)},byteAt:function(){},readInt:function(e){var t=0,i;for(this.checkOffset(e),i=this.index+e-1;i>=this.index;i--)t=(t<<8)+this.byteAt(i);return this.index+=e,t},readString:function(e){return sw.transformTo("string",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC((e>>25&127)+1980,(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(e&31)<<1))}};gh.exports=hh});var Ll=k((xE,bh)=>{"use strict";var mh=kl(),ow=V();function Fi(e){mh.call(this,e);for(var t=0;t<this.data.length;t++)e[t]=e[t]&255}ow.inherits(Fi,mh);Fi.prototype.byteAt=function(e){return this.data[this.zero+e]};Fi.prototype.lastIndexOfSignature=function(e){for(var t=e.charCodeAt(0),i=e.charCodeAt(1),n=e.charCodeAt(2),r=e.charCodeAt(3),a=this.length-4;a>=0;--a)if(this.data[a]===t&&this.data[a+1]===i&&this.data[a+2]===n&&this.data[a+3]===r)return a-this.zero;return-1};Fi.prototype.readAndCheckSignature=function(e){var t=e.charCodeAt(0),i=e.charCodeAt(1),n=e.charCodeAt(2),r=e.charCodeAt(3),a=this.readData(4);return t===a[0]&&i===a[1]&&n===a[2]&&r===a[3]};Fi.prototype.readData=function(e){if(this.checkOffset(e),e===0)return[];var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t};bh.exports=Fi});var xh=k((wE,vh)=>{"use strict";var yh=kl(),lw=V();function Hi(e){yh.call(this,e)}lw.inherits(Hi,yh);Hi.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)};Hi.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero};Hi.prototype.readAndCheckSignature=function(e){var t=this.readData(4);return e===t};Hi.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t};vh.exports=Hi});var Il=k((_E,_h)=>{"use strict";var wh=Ll(),cw=V();function Ol(e){wh.call(this,e)}cw.inherits(Ol,wh);Ol.prototype.readData=function(e){if(this.checkOffset(e),e===0)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t};_h.exports=Ol});var Ah=k((EE,Sh)=>{"use strict";var Eh=Il(),dw=V();function Ml(e){Eh.call(this,e)}dw.inherits(Ml,Eh);Ml.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t};Sh.exports=Ml});var Rl=k((SE,Th)=>{"use strict";var Ba=V(),Ch=nt(),uw=Ll(),pw=xh(),fw=Ah(),hw=Il();Th.exports=function(e){var t=Ba.getTypeOf(e);return Ba.checkSupport(t),t==="string"&&!Ch.uint8array?new pw(e):t==="nodebuffer"?new fw(e):Ch.uint8array?new hw(Ba.transformTo("uint8array",e)):new uw(Ba.transformTo("array",e))}});var Ih=k((AE,Oh)=>{"use strict";var Pl=Rl(),Lt=V(),gw=ba(),kh=ma(),Fa=Ci(),Ha=Al(),mw=nt(),bw=0,yw=3,vw=function(e){for(var t in Ha)if(Object.prototype.hasOwnProperty.call(Ha,t)&&Ha[t].magic===e)return Ha[t];return null};function Lh(e,t){this.options=e,this.loadOptions=t}Lh.prototype={isEncrypted:function(){return(this.bitFlag&1)===1},useUTF8:function(){return(this.bitFlag&2048)===2048},readLocalPart:function(e){var t,i;if(e.skip(22),this.fileNameLength=e.readInt(2),i=e.readInt(2),this.fileName=e.readData(this.fileNameLength),e.skip(i),this.compressedSize===-1||this.uncompressedSize===-1)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(t=vw(this.compressionMethod),t===null)throw new Error("Corrupted zip : compression "+Lt.pretty(this.compressionMethod)+" unknown (inner file : "+Lt.transformTo("string",this.fileName)+")");this.decompressed=new gw(this.compressedSize,this.uncompressedSize,this.crc32,t,e.readData(this.compressedSize))},readCentralPart:function(e){this.versionMadeBy=e.readInt(2),e.skip(2),this.bitFlag=e.readInt(2),this.compressionMethod=e.readString(2),this.date=e.readDate(),this.crc32=e.readInt(4),this.compressedSize=e.readInt(4),this.uncompressedSize=e.readInt(4);var t=e.readInt(2);if(this.extraFieldsLength=e.readInt(2),this.fileCommentLength=e.readInt(2),this.diskNumberStart=e.readInt(2),this.internalFileAttributes=e.readInt(2),this.externalFileAttributes=e.readInt(4),this.localHeaderOffset=e.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");e.skip(t),this.readExtraFields(e),this.parseZIP64ExtraField(e),this.fileComment=e.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var e=this.versionMadeBy>>8;this.dir=!!(this.externalFileAttributes&16),e===bw&&(this.dosPermissions=this.externalFileAttributes&63),e===yw&&(this.unixPermissions=this.externalFileAttributes>>16&65535),!this.dir&&this.fileNameStr.slice(-1)==="/"&&(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=Pl(this.extraFields[1].value);this.uncompressedSize===Lt.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===Lt.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===Lt.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===Lt.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t=e.index+this.extraFieldsLength,i,n,r;for(this.extraFields||(this.extraFields={});e.index+4<t;)i=e.readInt(2),n=e.readInt(2),r=e.readData(n),this.extraFields[i]={id:i,length:n,value:r};e.setIndex(t)},handleUTF8:function(){var e=mw.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=Fa.utf8decode(this.fileName),this.fileCommentStr=Fa.utf8decode(this.fileComment);else{var t=this.findExtraFieldUnicodePath();if(t!==null)this.fileNameStr=t;else{var i=Lt.transformTo(e,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(i)}var n=this.findExtraFieldUnicodeComment();if(n!==null)this.fileCommentStr=n;else{var r=Lt.transformTo(e,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(r)}}},findExtraFieldUnicodePath:function(){var e=this.extraFields[28789];if(e){var t=Pl(e.value);return t.readInt(1)!==1||kh(this.fileName)!==t.readInt(4)?null:Fa.utf8decode(t.readData(e.length-5))}return null},findExtraFieldUnicodeComment:function(){var e=this.extraFields[25461];if(e){var t=Pl(e.value);return t.readInt(1)!==1||kh(this.fileComment)!==t.readInt(4)?null:Fa.utf8decode(t.readData(e.length-5))}return null}};Oh.exports=Lh});var Ph=k((CE,Rh)=>{"use strict";var xw=Rl(),ct=V(),Me=Cl(),ww=Ih(),_w=nt();function Mh(e){this.files=[],this.loadOptions=e}Mh.prototype={checkSignature:function(e){if(!this.reader.readAndCheckSignature(e)){this.reader.index-=4;var t=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+ct.pretty(t)+", expected "+ct.pretty(e)+")")}},isSignature:function(e,t){var i=this.reader.index;this.reader.setIndex(e);var n=this.reader.readString(4),r=n===t;return this.reader.setIndex(i),r},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var e=this.reader.readData(this.zipCommentLength),t=_w.uint8array?"uint8array":"array",i=ct.transformTo(t,e);this.zipComment=this.loadOptions.decodeFileName(i)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var e=this.zip64EndOfCentralSize-44,t=0,i,n,r;t<e;)i=this.reader.readInt(2),n=this.reader.readInt(4),r=this.reader.readData(n),this.zip64ExtensibleData[i]={id:i,length:n,value:r}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),this.disksCount>1)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var e,t;for(e=0;e<this.files.length;e++)t=this.files[e],this.reader.setIndex(t.localHeaderOffset),this.checkSignature(Me.LOCAL_FILE_HEADER),t.readLocalPart(this.reader),t.handleUTF8(),t.processAttributes()},readCentralDir:function(){var e;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(Me.CENTRAL_FILE_HEADER);)e=new ww({zip64:this.zip64},this.loadOptions),e.readCentralPart(this.reader),this.files.push(e);if(this.centralDirRecords!==this.files.length&&this.centralDirRecords!==0&&this.files.length===0)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var e=this.reader.lastIndexOfSignature(Me.CENTRAL_DIRECTORY_END);if(e<0){var t=!this.isSignature(0,Me.LOCAL_FILE_HEADER);throw t?new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html"):new Error("Corrupted zip: can't find end of central directory")}this.reader.setIndex(e);var i=e;if(this.checkSignature(Me.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===ct.MAX_VALUE_16BITS||this.diskWithCentralDirStart===ct.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===ct.MAX_VALUE_16BITS||this.centralDirRecords===ct.MAX_VALUE_16BITS||this.centralDirSize===ct.MAX_VALUE_32BITS||this.centralDirOffset===ct.MAX_VALUE_32BITS){if(this.zip64=!0,e=this.reader.lastIndexOfSignature(Me.ZIP64_CENTRAL_DIRECTORY_LOCATOR),e<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(e),this.checkSignature(Me.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,Me.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(Me.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(Me.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var n=this.centralDirOffset+this.centralDirSize;this.zip64&&(n+=20,n+=12+this.zip64EndOfCentralSize);var r=i-n;if(r>0)this.isSignature(i,Me.CENTRAL_FILE_HEADER)||(this.reader.zero=r);else if(r<0)throw new Error("Corrupted zip: missing "+Math.abs(r)+" bytes.")},prepareReader:function(e){this.reader=xw(e)},load:function(e){this.prepareReader(e),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}};Rh.exports=Mh});var zh=k((TE,Dh)=>{"use strict";var jl=V(),$a=Ei(),Ew=Ci(),Sw=Ph(),Aw=Do(),jh=Sn();function Cw(e){return new $a.Promise(function(t,i){var n=e.decompressed.getContentWorker().pipe(new Aw);n.on("error",function(r){i(r)}).on("end",function(){n.streamInfo.crc32!==e.decompressed.crc32?i(new Error("Corrupted zip : CRC32 mismatch")):t()}).resume()})}Dh.exports=function(e,t){var i=this;return t=jl.extend(t||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:Ew.utf8decode}),jh.isNode&&jh.isStream(e)?$a.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):jl.prepareContent("the loaded zip file",e,!0,t.optimizedBinaryString,t.base64).then(function(n){var r=new Sw(t);return r.load(n),r}).then(function(r){var a=[$a.Promise.resolve(r)],s=r.files;if(t.checkCRC32)for(var o=0;o<s.length;o++)a.push(Cw(s[o]));return $a.Promise.all(a)}).then(function(r){for(var a=r.shift(),s=a.files,o=0;o<s.length;o++){var l=s[o],c=l.fileNameStr,d=jl.resolve(l.fileNameStr);i.file(d,l.decompressed,{binary:!0,optimizedBinaryString:!0,date:l.date,dir:l.dir,comment:l.fileCommentStr.length?l.fileCommentStr:null,unixPermissions:l.unixPermissions,dosPermissions:l.dosPermissions,createFolders:t.createFolders}),l.dir||(i.file(d).unsafeOriginalName=c)}return a.zipComment.length&&(i.comment=a.zipComment),i})}});var Bh=k((kE,Nh)=>{"use strict";function Se(){if(!(this instanceof Se))return new Se;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files=Object.create(null),this.comment=null,this.root="",this.clone=function(){var e=new Se;for(var t in this)typeof this[t]!="function"&&(e[t]=this[t]);return e}}Se.prototype=fh();Se.prototype.loadAsync=zh();Se.support=nt();Se.defaults=Ro();Se.version="3.10.1";Se.loadAsync=function(e,t){return new Se().loadAsync(e,t)};Se.external=Ei();Nh.exports=Se});var Ag={};nn(Ag,{AssetEditorModal:()=>lc});var lc,cc=We(()=>{"use strict";lc=class{constructor(){this.modal=null;this.currentObjectId=null;this.currentPath=null;this.currentAsset="";this.onApplyCallback=null}show(t,i,n,r){this.currentObjectId=t,this.currentPath=i,this.currentAsset=n,this.onApplyCallback=r,this.createModal(t,n),document.body.appendChild(this.modal),this.attachModalListeners()}createModal(t,i){let n=document.createElement("div");n.className="asset-editor-modal",n.innerHTML=`
|
|
3
3
|
<div class="asset-editor-card">
|
|
4
4
|
<div class="asset-editor-header">
|
|
5
5
|
<div>
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
<button class="debug-btn primary" data-modal-apply>Apply</button>
|
|
45
45
|
</div>
|
|
46
46
|
</div>
|
|
47
|
-
`,this.modal=n}attachModalListeners(){if(!this.modal)return;this.modal.querySelectorAll("[data-modal-close]").forEach(s=>{s.addEventListener("click",()=>this.close())}),this.modal.querySelectorAll("[data-tab]").forEach(s=>{s.addEventListener("click",o=>{let c=o.target.dataset.tab;c&&this.switchTab(c)})});let n=this.modal.querySelector("[data-ai-generate]");n==null||n.addEventListener("click",()=>{this.openAiEditor("generate")});let r=this.modal.querySelector("[data-ai-edit]");r==null||r.addEventListener("click",()=>{this.openAiEditor("edit")});let a=this.modal.querySelector("[data-modal-apply]");a==null||a.addEventListener("click",()=>{this.apply()}),this.modal.addEventListener("click",s=>{s.target===this.modal&&this.close()})}switchTab(t){if(!this.modal)return;this.modal.querySelectorAll("[data-tab]").forEach(r=>{r.classList.toggle("active",r.getAttribute("data-tab")===t)}),this.modal.querySelectorAll("[data-tab-panel]").forEach(r=>{r.classList.toggle("active",r.getAttribute("data-tab-panel")===t)})}openAiEditor(t){let i=window.__openAiEditor;if(typeof i!="function"){alert("AI Editor not available. Please check your setup.");return}let n="";t==="edit"&&this.currentAsset?n=`Edit this image: ${this.currentObjectId}`:n=`Create an image for: ${this.currentObjectId}`,i(this.currentObjectId||"unknown",n,this.currentAsset,{path:this.currentPath,onApply:r=>{this.onApplyCallback&&this.onApplyCallback(r),this.close()}})}apply(){this.onApplyCallback&&this.onApplyCallback("library/placeholder.png"),this.close()}close(){this.modal&&this.modal.parentNode&&this.modal.parentNode.removeChild(this.modal),this.modal=null,this.currentObjectId=null,this.currentPath=null,this.onApplyCallback=null}}});var t0={};nn(t0,{ConfigWatcher:()=>Ft,DebugPanel:()=>tr,DefaultReloadStrategy:()=>hn,Handler:()=>Re,PreviewShell:()=>es,applyConfigOverride:()=>mt,applyConfigOverrides:()=>bt,applyConfigsToDisk:()=>kr,applyDefaults:()=>Bt,baseLottie:()=>bs,bootstrap:()=>qw,clearConfigOverrides:()=>un,clearConfigOverridesForObject:()=>vd,configOverrideManager:()=>xd,createPreviewShell:()=>uc,deepClone:()=>ne,default:()=>jt,defaultPreset:()=>Dr,deviceGroups:()=>qs,devicePresets:()=>Us,diffConfigs:()=>zs,exportConfigsAsJSON:()=>Is,getConfigOverrides:()=>de,getConfigStateSummary:()=>Tr,getOverrideMode:()=>dn,getPresetById:()=>Ht,getPresetsByCategory:()=>Um,loadAllObjectConfigs:()=>Mr,loadComponentSchemas:()=>Ir,loadEngineConfig:()=>Rr,loadGamePromptConfig:()=>Ps,loadObjectCentricConfig:()=>Qe,loadObjectConfig:()=>yt,loadSceneConfig:()=>Pr,rehydrateObject:()=>Ns,removeConfigOverride:()=>Cr,resetToApplied:()=>pn,resetToOriginal:()=>Lr,setBootstrapDependencies:()=>$w,setOverrideMode:()=>Os,setupHotReload:()=>Hs,setupLiveEditBridge:()=>ts,toLegacyFormat:()=>js,validateObjectConfig:()=>fi});module.exports=Zg(t0);var ft={};function pr(e,t,i=!1){ft[e]||(ft[e]=[]),ft[e].push({fn:t,once:i})}function fs(e,t){if(ft[e]){if(!t){delete ft[e];return}ft[e]=ft[e].filter(i=>i.fn!==t)}}function fr(e,...t){let i=ft[e];if(i)for(let n of[...i])n.fn(...t),n.once&&fs(e,n.fn)}function be(e,t){pr(e,t,!0)}var ee=null,Ce=[],ci=null;function Oc(e){ee=e,Ce=[],ci!==null&&(clearTimeout(ci),ci=null)}function Ic(){var e,t,i;return{endpoint:(ee==null?void 0:ee.endpoint)||"",transport:(ee==null?void 0:ee.transport)||"beacon",batchSize:(e=ee==null?void 0:ee.batchSize)!=null?e:10,flushIntervalMs:(t=ee==null?void 0:ee.flushIntervalMs)!=null?t:300,maxQueue:(i=ee==null?void 0:ee.maxQueue)!=null?i:200,debug:!!(ee!=null&&ee.debug)}}async function kc(e,t,i,n){let r=JSON.stringify(t);if(i==="beacon"&&typeof navigator!="undefined"&&typeof navigator.sendBeacon=="function")try{let a=navigator.sendBeacon(e,new Blob([r],{type:"application/json"}));n&&console.log("[handler.telemetry] beacon",a,t);return}catch(a){n&&console.warn("[handler.telemetry] beacon failed, fallback to fetch",a)}try{await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:r,keepalive:!0}),n&&console.log("[handler.telemetry] fetch",t)}catch(a){n&&console.warn("[handler.telemetry] fetch failed",a)}}function hs(e,t){let i=Ic();if(t&&i.endpoint){if(Ce.push(e),Ce.length>i.maxQueue&&(Ce=Ce.slice(Ce.length-i.maxQueue)),Ce.length>=i.batchSize){Lc();return}ci===null&&(ci=window.setTimeout(()=>{ci=null,Lc()},i.flushIntervalMs))}}async function Lc(){let e=Ic();if(!e.endpoint||Ce.length===0)return;let t=Ce.splice(0,e.batchSize);await kc(e.endpoint,{events:t},e.transport,e.debug),Ce.length>0&&await kc(e.endpoint,{events:Ce.splice(0,e.batchSize)},e.transport,e.debug)}function Mc(e){return Math.max(0,Math.min(1,e))}function Jg(e){let t=String(e!=null?e:"power2.out");if(t==="linear")return i=>i;if(t==="sine.inOut")return i=>.5-Math.cos(Math.PI*i)/2;if(t==="power2.out"||t==="easeOutQuad")return i=>1-(1-i)*(1-i);if(t.startsWith("back.out")){let i=t.match(/back\.out\(([\d.]+)\)/),n=i?Number(i[1]):1.8;return r=>1+(n+1)*Math.pow(r-1,3)+n*Math.pow(r-1,2)}return i=>1-(1-i)*(1-i)}function rn(){return typeof performance!="undefined"&&performance.now?performance.now():Date.now()}function Qg(e,t){let i=e==null?void 0:e[t];return typeof i=="number"?i:0}function Rc(e,t,i){try{e[t]=i}catch{}}function em(e){let t=e==null?void 0:e.scale;if(!t)return null;let i=typeof t.x=="number"?t.x:1,n=typeof t.y=="number"?t.y:1;return{x:i,y:n}}function Pc(e,t){let i=e==null?void 0:e.scale;if(i)try{typeof i.set=="function"?i.set(t.x,t.y):(typeof i.x=="number"&&(i.x=t.x),typeof i.y=="number"&&(i.y=t.y))}catch{}}function jc(e,t){let i=em(e);if(!i)return{from:null,to:null};let n=null,r=null;return typeof t.scale=="number"?(n=t.scale,r=t.scale):t.scale&&typeof t.scale=="object"&&(typeof t.scale.x=="number"&&(n=t.scale.x),typeof t.scale.y=="number"&&(r=t.scale.y)),typeof t.scaleX=="number"&&(n=t.scaleX),typeof t.scaleY=="number"&&(r=t.scaleY),n===null&&r===null?{from:null,to:null}:{from:{x:i.x,y:i.y},to:{x:n!=null?n:i.x,y:r!=null?r:i.y}}}function Dc(){let e=new Set,t=new WeakMap,i=null,n=()=>{if(i!=null)return;i=requestAnimationFrame(()=>{i=null,o(),e.size>0&&n()})},r=d=>{var p;e.add(d);let u=(p=t.get(d.target))!=null?p:new Set;u.add(d),t.set(d.target,u),n()},a=d=>{e.delete(d);let u=t.get(d.target);u&&(u.delete(d),u.size===0&&t.delete(d.target))},s=d=>{d.killed||(d.killed=!0,a(d))},o=()=>{var u,p;let d=rn();for(let f of Array.from(e)){if(f.killed||f.paused)continue;let m=d-f.startMs-f.delayMs;if(m<0)continue;let h=f.durationMs>0?m/f.durationMs:1,g=Mc(h),b=f.repeat>=0?f.repeat+1:1,y=f.repeat>0?Math.min(Math.floor(h),b-1):0;if(f.repeat>0&&h>=1){let w=h-y;g=Mc(w)}let v=f.ease(g);f.yoyo&&y%2===1&&(v=1-v);for(let w of f.props)Rc(f.target,w.key,w.from+(w.to-w.from)*v);f.scaleFrom&&f.scaleTo&&Pc(f.target,{x:f.scaleFrom.x+(f.scaleTo.x-f.scaleFrom.x)*v,y:f.scaleFrom.y+(f.scaleTo.y-f.scaleFrom.y)*v});try{(u=f.onUpdate)==null||u.call(f)}catch{}if(h>=b){s(f);try{(p=f.onComplete)==null||p.call(f)}catch{}}}},l=(d,u,p)=>{var w;let f=Math.max(0,(typeof u.duration=="number"?u.duration:.5)*1e3),m=Math.max(0,(typeof u.delay=="number"?u.delay:0)*1e3+((w=p==null?void 0:p.delayMsOverride)!=null?w:0)),h=Jg(u.ease),g=typeof u.repeat=="number"?Math.max(0,u.repeat|0):0,b=u.yoyo===!0,y=new Set(["duration","delay","ease","repeat","yoyo","onUpdate","onComplete","scale","scaleX","scaleY"]),v=[];for(let S of Object.keys(u)){if(y.has(S))continue;let A=u[S];typeof A=="number"&&v.push({key:S,from:Qg(d,S),to:A})}let x=jc(d,u);return{target:d,startMs:rn(),delayMs:m,durationMs:f,ease:h,props:v,scaleFrom:x.from,scaleTo:x.to,repeat:g,yoyo:b,onUpdate:typeof u.onUpdate=="function"?u.onUpdate:void 0,onComplete:typeof u.onComplete=="function"?u.onComplete:void 0,killed:!1,paused:!1,pauseAtMs:null}},c={to(d,u){let p=l(d,u);return r(p),{kill:()=>s(p),pause:()=>{p.paused||(p.paused=!0,p.pauseAtMs=rn())},resume:()=>{var h;if(!p.paused)return;let f=(h=p.pauseAtMs)!=null?h:rn(),m=rn()-f;p.startMs+=m,p.paused=!1,p.pauseAtMs=null},isActive:()=>!p.killed&&!p.paused}},fromTo(d,u,p){return c.set(d,u),c.to(d,p)},set(d,u){if(!d||!u)return;for(let f of Object.keys(u)){let m=u[f];f==="scale"||f==="scaleX"||f==="scaleY"||typeof m=="number"&&Rc(d,f,m)}let p=jc(d,u);p.to&&Pc(d,p.to)},killTweensOf(d){let u=t.get(d);if(u)for(let p of Array.from(u))s(p)},timeline(d={}){let u=[],p=0,f=!1,m=[],h=y=>{if(typeof y=="number")return Math.max(0,y*1e3);let v=typeof y=="string"?y.trim():"";return v.startsWith("+=")?p+Math.max(0,Number(v.slice(2))*1e3||0):v?Math.max(0,Number(v)*1e3||0):p},g=y=>{u.push(y);let v=Math.max(0,(typeof y.vars.duration=="number"?y.vars.duration:.5)*1e3);p=Math.max(p,y.atMs+v)},b={to(y,v,x){return g({kind:"to",target:y,vars:v,atMs:h(x)}),b},fromTo(y,v,x,w){return g({kind:"fromTo",target:y,vars:x,from:v,atMs:h(w)}),b},play(){var y,v;if(f)return b;f=!0,m=[];for(let x of u)x.kind==="fromTo"&&c.set(x.target,(y=x.from)!=null?y:{}),m.push(c.to(x.target,{...x.vars,delay:x.atMs/1e3+((v=x.vars.delay)!=null?v:0)}));return b},pause(){for(let y of m)y.pause();return b},kill(){for(let y of m)y.kill();m=[],f=!1}};return d.paused||b.play(),b}};return c}function zc(){if(typeof window=="undefined")return;let e=window;if(!e.gsap)try{e.gsap=Dc()}catch{}}var ye=0,tm=ye++,Nc=ye++,Bc=ye++,Fc=ye++,Hc=ye++,$c=ye++,Uc=ye++,qc=ye++,Gc=ye++,Wc=ye++,Yc=ye++,Vc=ye++,K=tm;function Kc(){return K===Nc}function Xc(){return K===Bc}function Zc(){return K===Fc}function Jc(){return K===Hc}function di(){return K===$c}function ui(){return K===Uc}function Qc(){return K===qc}function ed(){return K===Gc}function td(){return K===Wc}function gs(){return K===Yc}function ms(){return K===Vc}function id(){let e=typeof AD_PROTOCOL!="undefined"?AD_PROTOCOL:"none",t=typeof AD_NETWORK!="undefined"?AD_NETWORK:"web_embed";if(e==="mraid")try{mraid.getState(),K=Nc;return}catch{}else if(e==="dapi")try{dapi.isReady(),K=Bc;return}catch{}if(t==="facebook")try{typeof FbPlayableAd!="undefined"&&(K=Fc)}catch{}else if(t==="google")try{typeof ExitApi!="undefined"&&(K=Hc)}catch{}else if(t==="mintegral")window.gameReady&&(K=$c);else if(t==="tapjoy")window.TJ_API&&(K=Uc);else if(t==="tiktok")window.openAppStore&&(K=qc);else if(t==="smadex")try{window.smxTracking&&(K=Gc)}catch{}else if(t==="snapchat")try{window.ScPlayableAd&&(K=Wc)}catch{}else t==="vungle"?K=Yc:(e==="nucleo"||t==="nucleo")&&(K=Vc)}var hr=li(require("lottie-web"),1),bs=hr.default;typeof window!="undefined"&&(window.lottie=hr.default,window.__baseLottie=hr.default);var im=require("pixi.js");var ys=require("pixi.js");var nm=null;function vs(e){nm=e}gr();xs();var an=require("pixi.js");gr();var cm=typeof __BUILD_MODE__!="undefined"?__BUILD_MODE__:"undefined",Ss=cm;if(typeof window!="undefined")try{let e=new XMLHttpRequest;if(e.open("GET","./build-settings.json",!1),e.send(),e.status===200&&e.responseText){let t=JSON.parse(e.responseText);t!=null&&t.buildMode&&(Ss=t.buildMode,console.log(`[ObjectFactory] Build mode overridden by settings: ${Ss}`))}}catch{}var gt=class{static async create(t,i,n){var l,c,d,u,p,f,m;console.log(`[ObjectFactory] create() called for: ${t}, __BUILD_MODE__: ${Ss}`);let r=(l=i==null?void 0:i.render)==null?void 0:l.asset;if(!r){console.log(`[ObjectFactory] No asset definition for: ${t}, returning empty container`);let h=new an.Container;return this.applyTransform(h,i==null?void 0:i.transform),h}let a=(c=i==null?void 0:i.identity)==null?void 0:c.id;console.log(`[ObjectFactory] Calling AssetLoader.load() for: ${t}, configId: ${a}, type: ${r.type}, path: ${r.path}`);let s=await zt.load(t,r,n,a);console.log(`[ObjectFactory] AssetLoader.load() completed for: ${t}, rawAsset type: ${(d=s==null?void 0:s.constructor)==null?void 0:d.name}`);let o;if(r.type==="image")console.log("[ObjectFactory] Creating Sprite from texture:",s,"for object:",t),o=new an.Sprite(s),console.log("[ObjectFactory] Created object:",o,"type:",(u=o==null?void 0:o.constructor)==null?void 0:u.name),this.applyTransform(o,i==null?void 0:i.transform);else if(r.type==="json")if(console.log("[ObjectFactory] JSON asset for",t,"rawAsset type:",(p=s==null?void 0:s.constructor)==null?void 0:p.name,s),s&&(((f=s.constructor)==null?void 0:f.name)==="Container"||s instanceof an.Container)){console.warn("[ObjectFactory] JSON asset is Container (from cache), reloading JSON directly");let h=[r.path,`/assets/${r.path}`,`assets/${r.path}`,`../assets/${r.path}`],g=!1;for(let b of h)try{let y=await fetch(b);if(y.ok){o=await y.json(),console.log("[ObjectFactory] Reloaded JSON directly from:",b,"type:",(m=o==null?void 0:o.constructor)==null?void 0:m.name),g=!0;break}}catch{continue}g||(console.error("[ObjectFactory] Failed to reload JSON from any path"),o=s)}else o=s;else o=s,o&&typeof o=="object"&&("x"in o||"position"in o)&&this.applyTransform(o,i==null?void 0:i.transform);return o}static applyTransform(t,i){var n,r,a,s;!i||!t||(i.position&&("x"in t&&"y"in t?(t.x=(n=i.position.x)!=null?n:0,t.y=(r=i.position.y)!=null?r:0):"position"in t&&t.position&&t.position.set((a=i.position.x)!=null?a:0,(s=i.position.y)!=null?s:0)),i.scale!==void 0&&"scale"in t&&t.scale&&(typeof t.scale=="object"&&"set"in t.scale?t.scale.set(i.scale):t.scale=i.scale),i.rotation!==void 0&&"rotation"in t&&(t.rotation=i.rotation),i.anchor&&"anchor"in t&&t.anchor&&Array.isArray(i.anchor)&&("set"in t.anchor?t.anchor.set(i.anchor[0],i.anchor[1]):(t.anchor.x=i.anchor[0],t.anchor.y=i.anchor[1])))}};var sn=class{constructor(){this.config=null}init(t){this.config=t}get(t){if(!this.config)throw new Error("RuntimeObjectRegistry not initialized. Call init() first.");return this.config.objects.get(t)}getAllIds(){if(!this.config)throw new Error("RuntimeObjectRegistry not initialized. Call init() first.");return Array.from(this.config.objects.keys())}has(t){return this.config?this.config.objects.has(t):!1}};var pm=li(require("pixi.js"),1);typeof window!="undefined"&&(window.__basePixi=pm);pi();var mr=require("pixi.js");pi();var Ts=class{constructor(){this.instanceCache=new Map;this.readyPromise=null;this.app=null;this.registry=new sn}init(t,i){this.registry.init(t),this.app=i}updateConfig(t){this.registry.init(t),this.instanceCache.clear(),this.readyPromise=null}async ready(){this.readyPromise&&await this.readyPromise;let i=this.registry.getAllIds().filter(r=>!this.instanceCache.has(r));if(i.length===0)return;let n=async r=>{r.length&&(console.log("[Assets] Loading objects:",r),await Promise.all(r.map(async a=>{var o;let s=this.registry.get(a);if(!s){console.warn("[Assets] No config found for object:",a);return}try{let l=await gt.create(a,s,this.app);this.instanceCache.set(a,l),console.log("[Assets] Loaded object:",a,(o=l==null?void 0:l.constructor)==null?void 0:o.name)}catch(l){console.error("[Assets] Failed to load object:",a,l)}})))};return this.readyPromise=(async()=>{await n(i);let r=this.registry.getAllIds().filter(a=>!this.instanceCache.has(a));r.length>0&&(console.warn("[Assets] Retrying missing assets:",r),await n(r)),console.log("[Assets] Ready. Cached objects:",Array.from(this.instanceCache.keys()))})(),this.readyPromise}resetScene(){this.instanceCache.clear(),this.readyPromise=null}async reloadObject(t){let i=this.registry.get(t);if(i){let n=await gt.create(t,i,this.app);this.instanceCache.set(t,n)}}get(t){return this.instanceCache.get(t)}},fm=new Ts,hm=new Proxy(fm,{get(e,t){if(t in e&&typeof e[t]=="function")return e[t].bind(e);if(e.get(t))return e.get(t)}});pi();var ld=require("pixi.js"),Xe={width:400,height:600,designWidth:400,scaleFactor:1},yr={scale:1,position:1},Ls=[];function mm(e,t,i,n,r,a,s){Ls.push({element:e,originalScale:a,positionHelper:t,heightPercent:r}),t(e,i,n,r,a,s,!1)}function bm(){Ls.forEach(({element:e,originalScale:t,positionHelper:i,heightPercent:n})=>{let r=t*Xe.scaleFactor;i(e,Xe.width,Xe.height,n,r,!0,!1)})}function ks(e,t){console.log(`[SCREEN] updateScreenState called: ${e}x${t}`),Xe.width=e,Xe.height=t,Xe.scaleFactor=Math.min(e/Xe.designWidth,1.15),yr.scale=Xe.scaleFactor,yr.position=1,console.log(`[SCREEN] Global multipliers - scale: ${yr.scale.toFixed(3)}`),bm()}var ln={layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:1,screen_scale_y:1},engine:{scale:1,background_scale:1.05,background_offset_y:0,background_alpha:.98,label_pulse_speed:3,label_pulse_intensity:.03}};function ym(e,t,i){let n=ln[e];n&&n[t]!==void 0&&(n[t]=i,console.log(`Updated ${e}.${t} = ${i}`))}function vm(){return ln}var xm={center:{x:.5,y:.5},"center-center":{x:.5,y:.5},middle:{x:.5,y:.5},"middle-center":{x:.5,y:.5},"top-left":{x:0,y:0},"top-center":{x:.5,y:0},"top-right":{x:1,y:0},"bottom-left":{x:0,y:1},"bottom-center":{x:.5,y:1},"bottom-right":{x:1,y:1},"left-center":{x:0,y:.5},"right-center":{x:1,y:.5},"center-left":{x:0,y:.5},"center-right":{x:1,y:.5},left:{x:0,y:.5},right:{x:1,y:.5},top:{x:.5,y:0},bottom:{x:.5,y:1}};function br(e,t){return typeof e=="number"&&Number.isFinite(e)?e:t}function vr(e,t={x:.5,y:.5}){var i;if(Array.isArray(e))return{x:br(e[0],t.x),y:br(e[1],t.y)};if(e&&typeof e=="object"){let n=e;return{x:br(n.x,t.x),y:br(n.y,t.y)}}if(typeof e=="string"){let n=e.trim().toLowerCase();return(i=xm[n])!=null?i:t}return t}function cd(e,t,i,n={}){var f,m,h,g,b,y;let r=vr(i),a=(f=n.inset)!=null?f:{},s=(m=n.padding)!=null?m:{x:0,y:0},o=((h=a.left)!=null?h:0)+s.x,l=((g=a.right)!=null?g:0)+s.x,c=((b=a.top)!=null?b:0)+s.y,d=((y=a.bottom)!=null?y:0)+s.y,u=Math.max(0,e-o-l),p=Math.max(0,t-c-d);return{x:o+u*r.x,y:c+p*r.y}}function dd(e,t,i,n={}){var h,g,b,y,v,x;let r=(h=n.inset)!=null?h:{},a=(g=n.padding)!=null?g:{x:0,y:0},s=((b=r.left)!=null?b:0)+a.x,o=((y=r.right)!=null?y:0)+a.x,l=((v=r.top)!=null?v:0)+a.y,c=((x=r.bottom)!=null?x:0)+a.y,d=Math.max(0,e-s-o),u=Math.max(0,t-l-c),p=vr(i,{x:.5,y:.5}),f=Math.min(Math.max(p.x,0),1),m=Math.min(Math.max(p.y,0),1);return{x:s+d*f,y:l+u*m}}if(typeof window!="undefined"){let e=window.innerWidth,t=window.innerHeight,i=()=>{let n=window.innerWidth,r=window.innerHeight;(n!==e||r!==t)&&(e=n,t=r,ks(n,r))};window.addEventListener("resize",i),window.addEventListener("orientationchange",()=>{setTimeout(i,100)}),window.mraid&&(window.mraid.addEventListener("viewableChange",i),window.mraid.addEventListener("sizeChange",i)),ks(window.innerWidth,window.innerHeight),window.updateDebugConfig=ym,window.getDebugConfig=vm,window.copyConfig=Im,window.applyConfig=on,window.applyConfigForRatio=Mm,window.positionAtBottom=ud,window.positionAtTop=Em,window.positionAtCenter=Sm,window.positionAtLeft=Am,window.positionAtRight=Cm,window.positionAtBottomLeft=Tm,window.positionAtBottomRight=km,window.positionAtTopLeft=Lm,window.positionAtTopRight=Om,window.applyPositionContract=_m,console.log("\u{1F3AE} Debug Config Functions Available:"),console.log("\u2022 updateDebugConfig(category, key, value)"),console.log("\u2022 getDebugConfig()"),console.log("\u2022 copyConfig(presetName)"),console.log("\u2022 applyConfig(config)"),console.log("\u2022 applyConfigForRatio(width, height)"),console.log("\u{1F4CD} Positioning Helpers Available (with scale):"),console.log("\u2022 positionAtBottom(element, w, h, percent, scale)"),console.log("\u2022 positionAtTop(element, w, h, percent, scale)"),console.log("\u2022 positionAtCenter(element, w, h, offsetX, offsetY, scale)"),console.log("\u2022 positionAtLeft/Right(element, w, h, percent, scale)"),console.log("\u2022 Corner positions: BottomLeft/Right, TopLeft/Right (all with scale)"),console.log("\u2022 applyPositionContract(element, w, h, contract)"),console.log("Example: positionAtCenter(mySprite, 400, 600, 0, -50, 1.2)")}function xr(e,t,i=0){return e*t+i}function wr(e,t,i=0){return e*(1-t)+i}function _r(e,t,i=0){return e*t+i}function Er(e,t,i=0){return e*(1-t)+i}function ve(e,t=0){return e/2+t}function wm(e,t){return e*t}function _m(e,t,i,n){var s,o,l,c,d,u,p,f,m,h,g,b,y,v,x,w,S,A,_,T;let r=0,a=0;switch(n.type){case"top":r=ve(t,(o=(s=n.offset)==null?void 0:s.x)!=null?o:0),a=xr(i,n.percent,(c=(l=n.offset)==null?void 0:l.y)!=null?c:0);break;case"bottom":r=ve(t,(u=(d=n.offset)==null?void 0:d.x)!=null?u:0),a=wr(i,n.percent,(f=(p=n.offset)==null?void 0:p.y)!=null?f:0);break;case"left":r=_r(t,n.percent,(h=(m=n.offset)==null?void 0:m.x)!=null?h:0),a=ve(i,(b=(g=n.offset)==null?void 0:g.y)!=null?b:0);break;case"right":r=Er(t,n.percent,(v=(y=n.offset)==null?void 0:y.x)!=null?v:0),a=ve(i,(w=(x=n.offset)==null?void 0:x.y)!=null?w:0);break;case"center":r=ve(t,(A=(S=n.offset)==null?void 0:S.x)!=null?A:0),a=ve(i,(T=(_=n.offset)==null?void 0:_.y)!=null?T:0);break}e.position?e.position.set(r,a):(e.x=r,e.y=a),n.scale!==void 0&&n.scale!==1&&e.scale&&(typeof e.scale.set=="function"?e.scale.set(n.scale,n.scale):(e.scale.x=n.scale,e.scale.y=n.scale))}function ud(e,t,i,n=.2,r=1,a=!0,s=!1){let o=wm(i,n),l=wr(i,n/2);Ze(e,ve(t),l);let c=a?r*Xe.scaleFactor:r;Je(e,c),s&&!Ls.find(d=>d.element===e)&&mm(e,ud,t,i,n,r,a)}function Em(e,t,i,n=.1,r=1){Ze(e,ve(t),xr(i,n)),Je(e,r)}function Sm(e,t,i,n=0,r=0,a=1){Ze(e,ve(t,n),ve(i,r)),Je(e,a)}function Am(e,t,i,n=.1,r=1){Ze(e,_r(t,n),ve(i)),Je(e,r)}function Cm(e,t,i,n=.1,r=1){Ze(e,Er(t,n),ve(i)),Je(e,r)}function Tm(e,t,i,n=.05,r=.05,a=1){Ze(e,_r(t,r),wr(i,n)),Je(e,a)}function km(e,t,i,n=.05,r=.05,a=1){Ze(e,Er(t,r),wr(i,n)),Je(e,a)}function Lm(e,t,i,n=.05,r=.05,a=1){Ze(e,_r(t,r),xr(i,n)),Je(e,a)}function Om(e,t,i,n=.05,r=.05,a=1){Ze(e,Er(t,r),xr(i,n)),Je(e,a)}function Ze(e,t,i){e&&e.position?typeof e.position.set=="function"?e.position.set(t,i):(e.position.x=t,e.position.y=i):e&&(e.x=t,e.y=i)}function Je(e,t){t!==1&&e&&e.scale&&(typeof e.scale.set=="function"?e.scale.set(t,t):e.scale.x!==void 0&&e.scale.y!==void 0&&(e.scale.x=t,e.scale.y=t))}var Nt={default:{layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:1,screen_scale_y:1},engine:{scale:1,background_scale:1.05,background_offset_y:0,background_alpha:.98,label_pulse_speed:3,label_pulse_intensity:.03}},wide:{layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:.9,screen_scale_y:1.1},engine:{scale:1,background_scale:1.1,background_offset_y:0,background_alpha:.95,label_pulse_speed:3,label_pulse_intensity:.03}},square:{layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:.85,screen_scale_y:.85},engine:{scale:1,background_scale:1,background_offset_y:0,background_alpha:1,label_pulse_speed:3,label_pulse_intensity:.03}},tall:{layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:1.1,screen_scale_y:.9},engine:{scale:1,background_scale:.95,background_offset_y:0,background_alpha:1,label_pulse_speed:3,label_pulse_intensity:.03}}};function Im(e){return e&&Nt[e]?JSON.parse(JSON.stringify(Nt[e])):JSON.parse(JSON.stringify(ln))}function on(e){Object.keys(e).forEach(t=>{let i=t;ln[i]&&e[i]&&Object.assign(ln[i],e[i])}),console.log("Config applied:",e)}function Mm(e,t){let i=e/t;i>1.6?(on(Nt.wide),console.log("Applied WIDE config for ratio:",i)):i<.7?(on(Nt.tall),console.log("Applied TALL config for ratio:",i)):i>.8&&i<1.2?(on(Nt.square),console.log("Applied SQUARE config for ratio:",i)):(on(Nt.default),console.log("Applied DEFAULT config for ratio:",i))}if(typeof window!="undefined"){let e=window;e.configPresets=Nt,e.resolveAnchorVec2=e.resolveAnchorVec2||vr,e.resolveScreenAnchorPoint=e.resolveScreenAnchorPoint||cd,e.resolveScreenRatioPoint=e.resolveScreenRatioPoint||dd}jr();function te(e,t){let i=(r,a)=>a===0?r:i(a,r%a),n=i(e,t);return`${e/n}:${t/n}`}var k_=[{id:"iphone-15-pro-max",label:"iPhone 15 Pro Max",width:430,height:932,category:"iphone",ratio:te(430,932)},{id:"iphone-15-pro",label:"iPhone 15 Pro",width:393,height:852,category:"iphone",ratio:te(393,852)},{id:"iphone-15",label:"iPhone 15",width:393,height:852,category:"iphone",ratio:te(393,852)},{id:"iphone-14",label:"iPhone 14",width:390,height:844,category:"iphone",ratio:te(390,844)},{id:"iphone-se",label:"iPhone SE",width:375,height:667,category:"iphone",ratio:te(375,667)},{id:"iphone-12-mini",label:"iPhone 12 Mini",width:360,height:780,category:"iphone",ratio:te(360,780)}],L_=[{id:"pixel-8-pro",label:"Pixel 8 Pro",width:448,height:998,category:"android",ratio:te(448,998)},{id:"pixel-8",label:"Pixel 8",width:412,height:915,category:"android",ratio:te(412,915)},{id:"samsung-s24-ultra",label:"Samsung S24 Ultra",width:412,height:915,category:"android",ratio:te(412,915)},{id:"samsung-s24",label:"Samsung S24",width:360,height:780,category:"android",ratio:te(360,780)},{id:"samsung-a54",label:"Samsung A54",width:412,height:915,category:"android",ratio:te(412,915)},{id:"oneplus-12",label:"OnePlus 12",width:412,height:915,category:"android",ratio:te(412,915)}],O_=[{id:"ipad-pro-12",label:'iPad Pro 12.9"',width:1024,height:1366,category:"tablet",ratio:te(1024,1366)},{id:"ipad-pro-11",label:'iPad Pro 11"',width:834,height:1194,category:"tablet",ratio:te(834,1194)},{id:"ipad-air",label:"iPad Air",width:820,height:1180,category:"tablet",ratio:te(820,1180)},{id:"ipad-mini",label:"iPad Mini",width:768,height:1024,category:"tablet",ratio:te(768,1024)},{id:"samsung-tab-s9",label:"Samsung Tab S9",width:800,height:1280,category:"tablet",ratio:te(800,1280)}],$s=[{id:"playable-portrait",label:"Playable Portrait",width:320,height:480,category:"playable",ratio:"2:3",mraidScale:1},{id:"mraid-320x480",label:"MRAID 320\xD7480",width:320,height:480,category:"playable",ratio:"2:3",mraidScale:1},{id:"iphone-14",label:"iPhone 14",width:390,height:844,category:"playable",ratio:te(390,844),mraidScale:.7},{id:"ipad-mini",label:"iPad Mini",width:768,height:1024,category:"playable",ratio:te(768,1024),mraidScale:.7}];var Us=[...$s],qs=[{category:"playable",label:"Playable Ad",devices:$s}],Dr=$s[0];function Ht(e){return Us.find(t=>t.id===e)||Dr}function Um(e){return Us.filter(t=>t.category===e)}var zr=class{constructor(){this.root=null;this.listContainer=null;this.searchInput=null;this.selectedId=null;this.options=null;this.retryTimer=null;this.screenFilter="all"}getScreenFilterStorageKey(){return`handler_preview_screen_filter::${typeof window!="undefined"&&window.__HANDLER_PROJECT_ID||"default"}`}render(){return`
|
|
47
|
+
`,this.modal=n}attachModalListeners(){if(!this.modal)return;this.modal.querySelectorAll("[data-modal-close]").forEach(s=>{s.addEventListener("click",()=>this.close())}),this.modal.querySelectorAll("[data-tab]").forEach(s=>{s.addEventListener("click",o=>{let c=o.target.dataset.tab;c&&this.switchTab(c)})});let n=this.modal.querySelector("[data-ai-generate]");n==null||n.addEventListener("click",()=>{this.openAiEditor("generate")});let r=this.modal.querySelector("[data-ai-edit]");r==null||r.addEventListener("click",()=>{this.openAiEditor("edit")});let a=this.modal.querySelector("[data-modal-apply]");a==null||a.addEventListener("click",()=>{this.apply()}),this.modal.addEventListener("click",s=>{s.target===this.modal&&this.close()})}switchTab(t){if(!this.modal)return;this.modal.querySelectorAll("[data-tab]").forEach(r=>{r.classList.toggle("active",r.getAttribute("data-tab")===t)}),this.modal.querySelectorAll("[data-tab-panel]").forEach(r=>{r.classList.toggle("active",r.getAttribute("data-tab-panel")===t)})}openAiEditor(t){let i=window.__openAiEditor;if(typeof i!="function"){alert("AI Editor not available. Please check your setup.");return}let n="";t==="edit"&&this.currentAsset?n=`Edit this image: ${this.currentObjectId}`:n=`Create an image for: ${this.currentObjectId}`,i(this.currentObjectId||"unknown",n,this.currentAsset,{path:this.currentPath,onApply:r=>{this.onApplyCallback&&this.onApplyCallback(r),this.close()}})}apply(){this.onApplyCallback&&this.onApplyCallback("library/placeholder.png"),this.close()}close(){this.modal&&this.modal.parentNode&&this.modal.parentNode.removeChild(this.modal),this.modal=null,this.currentObjectId=null,this.currentPath=null,this.onApplyCallback=null}}});var r0={};nn(r0,{ConfigWatcher:()=>Ft,DebugPanel:()=>tr,DefaultReloadStrategy:()=>hn,Handler:()=>Re,PreviewShell:()=>ts,applyConfigOverride:()=>mt,applyConfigOverrides:()=>bt,applyConfigsToDisk:()=>kr,applyDefaults:()=>Bt,baseLottie:()=>ys,bootstrap:()=>Yw,clearConfigOverrides:()=>un,clearConfigOverridesForObject:()=>wd,configOverrideManager:()=>_d,createPreviewShell:()=>pc,deepClone:()=>ne,default:()=>jt,defaultPreset:()=>Dr,deviceGroups:()=>Gs,devicePresets:()=>qs,diffConfigs:()=>Ns,exportConfigsAsJSON:()=>Ms,getConfigOverrides:()=>de,getConfigStateSummary:()=>Tr,getOverrideMode:()=>dn,getPresetById:()=>Ht,getPresetsByCategory:()=>Wm,loadAllObjectConfigs:()=>Mr,loadComponentSchemas:()=>Ir,loadEngineConfig:()=>Rr,loadGamePromptConfig:()=>js,loadObjectCentricConfig:()=>Qe,loadObjectConfig:()=>yt,loadSceneConfig:()=>Pr,rehydrateObject:()=>Bs,removeConfigOverride:()=>Cr,resetToApplied:()=>pn,resetToOriginal:()=>Lr,setBootstrapDependencies:()=>Gw,setOverrideMode:()=>Is,setupHotReload:()=>$s,setupLiveEditBridge:()=>is,toLegacyFormat:()=>Ds,validateObjectConfig:()=>fi});module.exports=Qg(r0);var ft={};function pr(e,t,i=!1){ft[e]||(ft[e]=[]),ft[e].push({fn:t,once:i})}function hs(e,t){if(ft[e]){if(!t){delete ft[e];return}ft[e]=ft[e].filter(i=>i.fn!==t)}}function fr(e,...t){let i=ft[e];if(i)for(let n of[...i])n.fn(...t),n.once&&hs(e,n.fn)}function be(e,t){pr(e,t,!0)}var ee=null,Ce=[],ci=null;function Ic(e){ee=e,Ce=[],ci!==null&&(clearTimeout(ci),ci=null)}function Mc(){var e,t,i;return{endpoint:(ee==null?void 0:ee.endpoint)||"",transport:(ee==null?void 0:ee.transport)||"beacon",batchSize:(e=ee==null?void 0:ee.batchSize)!=null?e:10,flushIntervalMs:(t=ee==null?void 0:ee.flushIntervalMs)!=null?t:300,maxQueue:(i=ee==null?void 0:ee.maxQueue)!=null?i:200,debug:!!(ee!=null&&ee.debug)}}async function Lc(e,t,i,n){let r=JSON.stringify(t);if(i==="beacon"&&typeof navigator!="undefined"&&typeof navigator.sendBeacon=="function")try{let a=navigator.sendBeacon(e,new Blob([r],{type:"application/json"}));n&&console.log("[handler.telemetry] beacon",a,t);return}catch(a){n&&console.warn("[handler.telemetry] beacon failed, fallback to fetch",a)}try{await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:r,keepalive:!0}),n&&console.log("[handler.telemetry] fetch",t)}catch(a){n&&console.warn("[handler.telemetry] fetch failed",a)}}function gs(e,t){let i=Mc();if(t&&i.endpoint){if(Ce.push(e),Ce.length>i.maxQueue&&(Ce=Ce.slice(Ce.length-i.maxQueue)),Ce.length>=i.batchSize){Oc();return}ci===null&&(ci=window.setTimeout(()=>{ci=null,Oc()},i.flushIntervalMs))}}async function Oc(){let e=Mc();if(!e.endpoint||Ce.length===0)return;let t=Ce.splice(0,e.batchSize);await Lc(e.endpoint,{events:t},e.transport,e.debug),Ce.length>0&&await Lc(e.endpoint,{events:Ce.splice(0,e.batchSize)},e.transport,e.debug)}function Rc(e){return Math.max(0,Math.min(1,e))}function em(e){let t=String(e!=null?e:"power2.out");if(t==="linear")return i=>i;if(t==="sine.inOut")return i=>.5-Math.cos(Math.PI*i)/2;if(t==="power2.out"||t==="easeOutQuad")return i=>1-(1-i)*(1-i);if(t.startsWith("back.out")){let i=t.match(/back\.out\(([\d.]+)\)/),n=i?Number(i[1]):1.8;return r=>1+(n+1)*Math.pow(r-1,3)+n*Math.pow(r-1,2)}return i=>1-(1-i)*(1-i)}function rn(){return typeof performance!="undefined"&&performance.now?performance.now():Date.now()}function tm(e,t){let i=e==null?void 0:e[t];return typeof i=="number"?i:0}function Pc(e,t,i){try{e[t]=i}catch{}}function im(e){let t=e==null?void 0:e.scale;if(!t)return null;let i=typeof t.x=="number"?t.x:1,n=typeof t.y=="number"?t.y:1;return{x:i,y:n}}function jc(e,t){let i=e==null?void 0:e.scale;if(i)try{typeof i.set=="function"?i.set(t.x,t.y):(typeof i.x=="number"&&(i.x=t.x),typeof i.y=="number"&&(i.y=t.y))}catch{}}function Dc(e,t){let i=im(e);if(!i)return{from:null,to:null};let n=null,r=null;return typeof t.scale=="number"?(n=t.scale,r=t.scale):t.scale&&typeof t.scale=="object"&&(typeof t.scale.x=="number"&&(n=t.scale.x),typeof t.scale.y=="number"&&(r=t.scale.y)),typeof t.scaleX=="number"&&(n=t.scaleX),typeof t.scaleY=="number"&&(r=t.scaleY),n===null&&r===null?{from:null,to:null}:{from:{x:i.x,y:i.y},to:{x:n!=null?n:i.x,y:r!=null?r:i.y}}}function zc(){let e=new Set,t=new WeakMap,i=null,n=()=>{if(i!=null)return;i=requestAnimationFrame(()=>{i=null,o(),e.size>0&&n()})},r=d=>{var p;e.add(d);let u=(p=t.get(d.target))!=null?p:new Set;u.add(d),t.set(d.target,u),n()},a=d=>{e.delete(d);let u=t.get(d.target);u&&(u.delete(d),u.size===0&&t.delete(d.target))},s=d=>{d.killed||(d.killed=!0,a(d))},o=()=>{var u,p;let d=rn();for(let f of Array.from(e)){if(f.killed||f.paused)continue;let m=d-f.startMs-f.delayMs;if(m<0)continue;let h=f.durationMs>0?m/f.durationMs:1,g=Rc(h),b=f.repeat>=0?f.repeat+1:1,y=f.repeat>0?Math.min(Math.floor(h),b-1):0;if(f.repeat>0&&h>=1){let w=h-y;g=Rc(w)}let v=f.ease(g);f.yoyo&&y%2===1&&(v=1-v);for(let w of f.props)Pc(f.target,w.key,w.from+(w.to-w.from)*v);f.scaleFrom&&f.scaleTo&&jc(f.target,{x:f.scaleFrom.x+(f.scaleTo.x-f.scaleFrom.x)*v,y:f.scaleFrom.y+(f.scaleTo.y-f.scaleFrom.y)*v});try{(u=f.onUpdate)==null||u.call(f)}catch{}if(h>=b){s(f);try{(p=f.onComplete)==null||p.call(f)}catch{}}}},l=(d,u,p)=>{var w;let f=Math.max(0,(typeof u.duration=="number"?u.duration:.5)*1e3),m=Math.max(0,(typeof u.delay=="number"?u.delay:0)*1e3+((w=p==null?void 0:p.delayMsOverride)!=null?w:0)),h=em(u.ease),g=typeof u.repeat=="number"?Math.max(0,u.repeat|0):0,b=u.yoyo===!0,y=new Set(["duration","delay","ease","repeat","yoyo","onUpdate","onComplete","scale","scaleX","scaleY"]),v=[];for(let S of Object.keys(u)){if(y.has(S))continue;let A=u[S];typeof A=="number"&&v.push({key:S,from:tm(d,S),to:A})}let x=Dc(d,u);return{target:d,startMs:rn(),delayMs:m,durationMs:f,ease:h,props:v,scaleFrom:x.from,scaleTo:x.to,repeat:g,yoyo:b,onUpdate:typeof u.onUpdate=="function"?u.onUpdate:void 0,onComplete:typeof u.onComplete=="function"?u.onComplete:void 0,killed:!1,paused:!1,pauseAtMs:null}},c={to(d,u){let p=l(d,u);return r(p),{kill:()=>s(p),pause:()=>{p.paused||(p.paused=!0,p.pauseAtMs=rn())},resume:()=>{var h;if(!p.paused)return;let f=(h=p.pauseAtMs)!=null?h:rn(),m=rn()-f;p.startMs+=m,p.paused=!1,p.pauseAtMs=null},isActive:()=>!p.killed&&!p.paused}},fromTo(d,u,p){return c.set(d,u),c.to(d,p)},set(d,u){if(!d||!u)return;for(let f of Object.keys(u)){let m=u[f];f==="scale"||f==="scaleX"||f==="scaleY"||typeof m=="number"&&Pc(d,f,m)}let p=Dc(d,u);p.to&&jc(d,p.to)},killTweensOf(d){let u=t.get(d);if(u)for(let p of Array.from(u))s(p)},timeline(d={}){let u=[],p=0,f=!1,m=[],h=y=>{if(typeof y=="number")return Math.max(0,y*1e3);let v=typeof y=="string"?y.trim():"";return v.startsWith("+=")?p+Math.max(0,Number(v.slice(2))*1e3||0):v?Math.max(0,Number(v)*1e3||0):p},g=y=>{u.push(y);let v=Math.max(0,(typeof y.vars.duration=="number"?y.vars.duration:.5)*1e3);p=Math.max(p,y.atMs+v)},b={to(y,v,x){return g({kind:"to",target:y,vars:v,atMs:h(x)}),b},fromTo(y,v,x,w){return g({kind:"fromTo",target:y,vars:x,from:v,atMs:h(w)}),b},play(){var y,v;if(f)return b;f=!0,m=[];for(let x of u)x.kind==="fromTo"&&c.set(x.target,(y=x.from)!=null?y:{}),m.push(c.to(x.target,{...x.vars,delay:x.atMs/1e3+((v=x.vars.delay)!=null?v:0)}));return b},pause(){for(let y of m)y.pause();return b},kill(){for(let y of m)y.kill();m=[],f=!1}};return d.paused||b.play(),b}};return c}function Nc(){if(typeof window=="undefined")return;let e=window;if(!e.gsap)try{e.gsap=zc()}catch{}}var Bc={name:"handler-playable-sdk",version:"0.3.16",type:"module",description:"Handler Playable SDK v0.1 with contract-aligned surface (root sandbox, canonical event envelope).",main:"dist/index.cjs",module:"dist/index.js",types:"dist/index.d.ts",exports:{".":{types:"./dist/index.d.ts",import:"./dist/index.js",require:"./dist/index.cjs"},"./pixi":{types:"./dist/pixi/index.d.ts",import:"./dist/pixi/index.js",require:"./dist/pixi/index.cjs"},"./pixi/index.css":{import:"./dist/pixi/index.css",require:"./dist/pixi/index.css"},"./three":{types:"./dist/three/index.d.ts",import:"./dist/three/index.js",require:"./dist/three/index.cjs"}},scripts:{prebuild:"python3 src/preview/build-css.py",build:"tsup src/index.ts src/pixi/index.ts src/three/index.ts --format cjs,esm --dts --clean --minify --external lottie-web && npm run create-mjs-symlinks && npm run obfuscate && npm run postbuild",postbuild:"python3 src/preview/copy-css-to-dist.py","create-mjs-symlinks":"cd dist && ln -sf index.js index.mjs && cd pixi && ln -sf index.js index.mjs && cd ../three && ln -sf index.js index.mjs","build:dev":"tsup src/index.ts src/pixi/index.ts src/three/index.ts --format cjs,esm --dts --clean --external lottie-web && npm run create-mjs-symlinks",obfuscate:"javascript-obfuscator dist/pixi/index.js --output dist/pixi/index.js --config obfuscator.config.json && javascript-obfuscator dist/three/index.js --output dist/three/index.js --config obfuscator.config.json",lint:"eslint 'src/**/*.{ts,tsx}'",typecheck:"tsc --noEmit",prepublishOnly:"npm run build","publish:update":"node scripts/publish-and-update.cjs patch","publish:update:minor":"node scripts/publish-and-update.cjs minor","publish:update:major":"node scripts/publish-and-update.cjs major"},author:"Handler",license:"MIT",publishConfig:{access:"public"},repository:{type:"git",url:"https://github.com/HandlerAIGames/handler-playable-sdk.git"},files:["dist","LICENSE","README.md"],peerDependencies:{"lottie-web":"^5.0.0","pixi.js":"^8.0.0",three:"^0.182.0"},peerDependenciesMeta:{"pixi.js":{optional:!0},three:{optional:!0},"lottie-web":{optional:!0}},devDependencies:{"@types/three":"^0.182.0",eslint:"^9.39.2","javascript-obfuscator":"^5.1.0","pixi.js":"8.8.1",three:"^0.182.0","ts-node":"^10.9.2",tsup:"^8.4.0",typescript:"^5.7.2","typescript-eslint":"^8.53.0"},dependencies:{"@google/genai":"^1.35.0","@google/generative-ai":"^0.24.1",sharp:"^0.34.5"}};var ye=0,rm=ye++,Fc=ye++,Hc=ye++,$c=ye++,Uc=ye++,qc=ye++,Gc=ye++,Wc=ye++,Yc=ye++,Vc=ye++,Kc=ye++,Xc=ye++,K=rm;function Zc(){return K===Fc}function Jc(){return K===Hc}function Qc(){return K===$c}function ed(){return K===Uc}function di(){return K===qc}function ui(){return K===Gc}function td(){return K===Wc}function id(){return K===Yc}function nd(){return K===Vc}function ms(){return K===Kc}function bs(){return K===Xc}function rd(){let e=typeof AD_PROTOCOL!="undefined"?AD_PROTOCOL:"none",t=typeof AD_NETWORK!="undefined"?AD_NETWORK:"web_embed";if(e==="mraid")try{mraid.getState(),K=Fc;return}catch{}else if(e==="dapi")try{dapi.isReady(),K=Hc;return}catch{}if(t==="facebook")try{typeof FbPlayableAd!="undefined"&&(K=$c)}catch{}else if(t==="google")try{typeof ExitApi!="undefined"&&(K=Uc)}catch{}else if(t==="mintegral")window.gameReady&&(K=qc);else if(t==="tapjoy")window.TJ_API&&(K=Gc);else if(t==="tiktok")window.openAppStore&&(K=Wc);else if(t==="smadex")try{window.smxTracking&&(K=Yc)}catch{}else if(t==="snapchat")try{window.ScPlayableAd&&(K=Vc)}catch{}else t==="vungle"?K=Kc:(e==="nucleo"||t==="nucleo")&&(K=Xc)}var hr=li(require("lottie-web"),1),ys=hr.default;typeof window!="undefined"&&(window.lottie=hr.default,window.__baseLottie=hr.default);var am=require("pixi.js");var vs=require("pixi.js");var sm=null;function xs(e){sm=e}gr();ws();var an=require("pixi.js");gr();var pm=typeof __BUILD_MODE__!="undefined"?__BUILD_MODE__:"undefined",As=pm;if(typeof window!="undefined")try{let e=new XMLHttpRequest;if(e.open("GET","./build-settings.json",!1),e.send(),e.status===200&&e.responseText){let t=JSON.parse(e.responseText);t!=null&&t.buildMode&&(As=t.buildMode,console.log(`[ObjectFactory] Build mode overridden by settings: ${As}`))}}catch{}var gt=class{static async create(t,i,n){var l,c,d,u,p,f,m;console.log(`[ObjectFactory] create() called for: ${t}, __BUILD_MODE__: ${As}`);let r=(l=i==null?void 0:i.render)==null?void 0:l.asset;if(!r){console.log(`[ObjectFactory] No asset definition for: ${t}, returning empty container`);let h=new an.Container;return this.applyTransform(h,i==null?void 0:i.transform),h}let a=(c=i==null?void 0:i.identity)==null?void 0:c.id;console.log(`[ObjectFactory] Calling AssetLoader.load() for: ${t}, configId: ${a}, type: ${r.type}, path: ${r.path}`);let s=await zt.load(t,r,n,a);console.log(`[ObjectFactory] AssetLoader.load() completed for: ${t}, rawAsset type: ${(d=s==null?void 0:s.constructor)==null?void 0:d.name}`);let o;if(r.type==="image")console.log("[ObjectFactory] Creating Sprite from texture:",s,"for object:",t),o=new an.Sprite(s),console.log("[ObjectFactory] Created object:",o,"type:",(u=o==null?void 0:o.constructor)==null?void 0:u.name),this.applyTransform(o,i==null?void 0:i.transform);else if(r.type==="json")if(console.log("[ObjectFactory] JSON asset for",t,"rawAsset type:",(p=s==null?void 0:s.constructor)==null?void 0:p.name,s),s&&(((f=s.constructor)==null?void 0:f.name)==="Container"||s instanceof an.Container)){console.warn("[ObjectFactory] JSON asset is Container (from cache), reloading JSON directly");let h=[r.path,`/assets/${r.path}`,`assets/${r.path}`,`../assets/${r.path}`],g=!1;for(let b of h)try{let y=await fetch(b);if(y.ok){o=await y.json(),console.log("[ObjectFactory] Reloaded JSON directly from:",b,"type:",(m=o==null?void 0:o.constructor)==null?void 0:m.name),g=!0;break}}catch{continue}g||(console.error("[ObjectFactory] Failed to reload JSON from any path"),o=s)}else o=s;else o=s,o&&typeof o=="object"&&("x"in o||"position"in o)&&this.applyTransform(o,i==null?void 0:i.transform);return o}static applyTransform(t,i){var n,r,a,s;!i||!t||(i.position&&("x"in t&&"y"in t?(t.x=(n=i.position.x)!=null?n:0,t.y=(r=i.position.y)!=null?r:0):"position"in t&&t.position&&t.position.set((a=i.position.x)!=null?a:0,(s=i.position.y)!=null?s:0)),i.scale!==void 0&&"scale"in t&&t.scale&&(typeof t.scale=="object"&&"set"in t.scale?t.scale.set(i.scale):t.scale=i.scale),i.rotation!==void 0&&"rotation"in t&&(t.rotation=i.rotation),i.anchor&&"anchor"in t&&t.anchor&&Array.isArray(i.anchor)&&("set"in t.anchor?t.anchor.set(i.anchor[0],i.anchor[1]):(t.anchor.x=i.anchor[0],t.anchor.y=i.anchor[1])))}};var sn=class{constructor(){this.config=null}init(t){this.config=t}get(t){if(!this.config)throw new Error("RuntimeObjectRegistry not initialized. Call init() first.");return this.config.objects.get(t)}getAllIds(){if(!this.config)throw new Error("RuntimeObjectRegistry not initialized. Call init() first.");return Array.from(this.config.objects.keys())}has(t){return this.config?this.config.objects.has(t):!1}};var gm=li(require("pixi.js"),1);typeof window!="undefined"&&(window.__basePixi=gm);pi();var mr=require("pixi.js");pi();var ks=class{constructor(){this.instanceCache=new Map;this.readyPromise=null;this.app=null;this.registry=new sn}init(t,i){this.registry.init(t),this.app=i}updateConfig(t){this.registry.init(t),this.instanceCache.clear(),this.readyPromise=null}async ready(){this.readyPromise&&await this.readyPromise;let i=this.registry.getAllIds().filter(r=>!this.instanceCache.has(r));if(i.length===0)return;let n=async r=>{r.length&&(console.log("[Assets] Loading objects:",r),await Promise.all(r.map(async a=>{var o;let s=this.registry.get(a);if(!s){console.warn("[Assets] No config found for object:",a);return}try{let l=await gt.create(a,s,this.app);this.instanceCache.set(a,l),console.log("[Assets] Loaded object:",a,(o=l==null?void 0:l.constructor)==null?void 0:o.name)}catch(l){console.error("[Assets] Failed to load object:",a,l)}})))};return this.readyPromise=(async()=>{await n(i);let r=this.registry.getAllIds().filter(a=>!this.instanceCache.has(a));r.length>0&&(console.warn("[Assets] Retrying missing assets:",r),await n(r)),console.log("[Assets] Ready. Cached objects:",Array.from(this.instanceCache.keys()))})(),this.readyPromise}resetScene(){this.instanceCache.clear(),this.readyPromise=null}async reloadObject(t){let i=this.registry.get(t);if(i){let n=await gt.create(t,i,this.app);this.instanceCache.set(t,n)}}get(t){return this.instanceCache.get(t)}},mm=new ks,bm=new Proxy(mm,{get(e,t){if(t in e&&typeof e[t]=="function")return e[t].bind(e);if(e.get(t))return e.get(t)}});pi();var dd=require("pixi.js"),Xe={width:400,height:600,designWidth:400,scaleFactor:1},yr={scale:1,position:1},Os=[];function vm(e,t,i,n,r,a,s){Os.push({element:e,originalScale:a,positionHelper:t,heightPercent:r}),t(e,i,n,r,a,s,!1)}function xm(){Os.forEach(({element:e,originalScale:t,positionHelper:i,heightPercent:n})=>{let r=t*Xe.scaleFactor;i(e,Xe.width,Xe.height,n,r,!0,!1)})}function Ls(e,t){console.log(`[SCREEN] updateScreenState called: ${e}x${t}`),Xe.width=e,Xe.height=t,Xe.scaleFactor=Math.min(e/Xe.designWidth,1.15),yr.scale=Xe.scaleFactor,yr.position=1,console.log(`[SCREEN] Global multipliers - scale: ${yr.scale.toFixed(3)}`),xm()}var ln={layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:1,screen_scale_y:1},engine:{scale:1,background_scale:1.05,background_offset_y:0,background_alpha:.98,label_pulse_speed:3,label_pulse_intensity:.03}};function wm(e,t,i){let n=ln[e];n&&n[t]!==void 0&&(n[t]=i,console.log(`Updated ${e}.${t} = ${i}`))}function _m(){return ln}var Em={center:{x:.5,y:.5},"center-center":{x:.5,y:.5},middle:{x:.5,y:.5},"middle-center":{x:.5,y:.5},"top-left":{x:0,y:0},"top-center":{x:.5,y:0},"top-right":{x:1,y:0},"bottom-left":{x:0,y:1},"bottom-center":{x:.5,y:1},"bottom-right":{x:1,y:1},"left-center":{x:0,y:.5},"right-center":{x:1,y:.5},"center-left":{x:0,y:.5},"center-right":{x:1,y:.5},left:{x:0,y:.5},right:{x:1,y:.5},top:{x:.5,y:0},bottom:{x:.5,y:1}};function br(e,t){return typeof e=="number"&&Number.isFinite(e)?e:t}function vr(e,t={x:.5,y:.5}){var i;if(Array.isArray(e))return{x:br(e[0],t.x),y:br(e[1],t.y)};if(e&&typeof e=="object"){let n=e;return{x:br(n.x,t.x),y:br(n.y,t.y)}}if(typeof e=="string"){let n=e.trim().toLowerCase();return(i=Em[n])!=null?i:t}return t}function ud(e,t,i,n={}){var f,m,h,g,b,y;let r=vr(i),a=(f=n.inset)!=null?f:{},s=(m=n.padding)!=null?m:{x:0,y:0},o=((h=a.left)!=null?h:0)+s.x,l=((g=a.right)!=null?g:0)+s.x,c=((b=a.top)!=null?b:0)+s.y,d=((y=a.bottom)!=null?y:0)+s.y,u=Math.max(0,e-o-l),p=Math.max(0,t-c-d);return{x:o+u*r.x,y:c+p*r.y}}function pd(e,t,i,n={}){var h,g,b,y,v,x;let r=(h=n.inset)!=null?h:{},a=(g=n.padding)!=null?g:{x:0,y:0},s=((b=r.left)!=null?b:0)+a.x,o=((y=r.right)!=null?y:0)+a.x,l=((v=r.top)!=null?v:0)+a.y,c=((x=r.bottom)!=null?x:0)+a.y,d=Math.max(0,e-s-o),u=Math.max(0,t-l-c),p=vr(i,{x:.5,y:.5}),f=Math.min(Math.max(p.x,0),1),m=Math.min(Math.max(p.y,0),1);return{x:s+d*f,y:l+u*m}}if(typeof window!="undefined"){let e=window.innerWidth,t=window.innerHeight,i=()=>{let n=window.innerWidth,r=window.innerHeight;(n!==e||r!==t)&&(e=n,t=r,Ls(n,r))};window.addEventListener("resize",i),window.addEventListener("orientationchange",()=>{setTimeout(i,100)}),window.mraid&&(window.mraid.addEventListener("viewableChange",i),window.mraid.addEventListener("sizeChange",i)),Ls(window.innerWidth,window.innerHeight),window.updateDebugConfig=wm,window.getDebugConfig=_m,window.copyConfig=Pm,window.applyConfig=on,window.applyConfigForRatio=jm,window.positionAtBottom=fd,window.positionAtTop=Cm,window.positionAtCenter=Tm,window.positionAtLeft=km,window.positionAtRight=Lm,window.positionAtBottomLeft=Om,window.positionAtBottomRight=Im,window.positionAtTopLeft=Mm,window.positionAtTopRight=Rm,window.applyPositionContract=Am,console.log("\u{1F3AE} Debug Config Functions Available:"),console.log("\u2022 updateDebugConfig(category, key, value)"),console.log("\u2022 getDebugConfig()"),console.log("\u2022 copyConfig(presetName)"),console.log("\u2022 applyConfig(config)"),console.log("\u2022 applyConfigForRatio(width, height)"),console.log("\u{1F4CD} Positioning Helpers Available (with scale):"),console.log("\u2022 positionAtBottom(element, w, h, percent, scale)"),console.log("\u2022 positionAtTop(element, w, h, percent, scale)"),console.log("\u2022 positionAtCenter(element, w, h, offsetX, offsetY, scale)"),console.log("\u2022 positionAtLeft/Right(element, w, h, percent, scale)"),console.log("\u2022 Corner positions: BottomLeft/Right, TopLeft/Right (all with scale)"),console.log("\u2022 applyPositionContract(element, w, h, contract)"),console.log("Example: positionAtCenter(mySprite, 400, 600, 0, -50, 1.2)")}function xr(e,t,i=0){return e*t+i}function wr(e,t,i=0){return e*(1-t)+i}function _r(e,t,i=0){return e*t+i}function Er(e,t,i=0){return e*(1-t)+i}function ve(e,t=0){return e/2+t}function Sm(e,t){return e*t}function Am(e,t,i,n){var s,o,l,c,d,u,p,f,m,h,g,b,y,v,x,w,S,A,_,T;let r=0,a=0;switch(n.type){case"top":r=ve(t,(o=(s=n.offset)==null?void 0:s.x)!=null?o:0),a=xr(i,n.percent,(c=(l=n.offset)==null?void 0:l.y)!=null?c:0);break;case"bottom":r=ve(t,(u=(d=n.offset)==null?void 0:d.x)!=null?u:0),a=wr(i,n.percent,(f=(p=n.offset)==null?void 0:p.y)!=null?f:0);break;case"left":r=_r(t,n.percent,(h=(m=n.offset)==null?void 0:m.x)!=null?h:0),a=ve(i,(b=(g=n.offset)==null?void 0:g.y)!=null?b:0);break;case"right":r=Er(t,n.percent,(v=(y=n.offset)==null?void 0:y.x)!=null?v:0),a=ve(i,(w=(x=n.offset)==null?void 0:x.y)!=null?w:0);break;case"center":r=ve(t,(A=(S=n.offset)==null?void 0:S.x)!=null?A:0),a=ve(i,(T=(_=n.offset)==null?void 0:_.y)!=null?T:0);break}e.position?e.position.set(r,a):(e.x=r,e.y=a),n.scale!==void 0&&n.scale!==1&&e.scale&&(typeof e.scale.set=="function"?e.scale.set(n.scale,n.scale):(e.scale.x=n.scale,e.scale.y=n.scale))}function fd(e,t,i,n=.2,r=1,a=!0,s=!1){let o=Sm(i,n),l=wr(i,n/2);Ze(e,ve(t),l);let c=a?r*Xe.scaleFactor:r;Je(e,c),s&&!Os.find(d=>d.element===e)&&vm(e,fd,t,i,n,r,a)}function Cm(e,t,i,n=.1,r=1){Ze(e,ve(t),xr(i,n)),Je(e,r)}function Tm(e,t,i,n=0,r=0,a=1){Ze(e,ve(t,n),ve(i,r)),Je(e,a)}function km(e,t,i,n=.1,r=1){Ze(e,_r(t,n),ve(i)),Je(e,r)}function Lm(e,t,i,n=.1,r=1){Ze(e,Er(t,n),ve(i)),Je(e,r)}function Om(e,t,i,n=.05,r=.05,a=1){Ze(e,_r(t,r),wr(i,n)),Je(e,a)}function Im(e,t,i,n=.05,r=.05,a=1){Ze(e,Er(t,r),wr(i,n)),Je(e,a)}function Mm(e,t,i,n=.05,r=.05,a=1){Ze(e,_r(t,r),xr(i,n)),Je(e,a)}function Rm(e,t,i,n=.05,r=.05,a=1){Ze(e,Er(t,r),xr(i,n)),Je(e,a)}function Ze(e,t,i){e&&e.position?typeof e.position.set=="function"?e.position.set(t,i):(e.position.x=t,e.position.y=i):e&&(e.x=t,e.y=i)}function Je(e,t){t!==1&&e&&e.scale&&(typeof e.scale.set=="function"?e.scale.set(t,t):e.scale.x!==void 0&&e.scale.y!==void 0&&(e.scale.x=t,e.scale.y=t))}var Nt={default:{layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:1,screen_scale_y:1},engine:{scale:1,background_scale:1.05,background_offset_y:0,background_alpha:.98,label_pulse_speed:3,label_pulse_intensity:.03}},wide:{layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:.9,screen_scale_y:1.1},engine:{scale:1,background_scale:1.1,background_offset_y:0,background_alpha:.95,label_pulse_speed:3,label_pulse_intensity:.03}},square:{layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:.85,screen_scale_y:.85},engine:{scale:1,background_scale:1,background_offset_y:0,background_alpha:1,label_pulse_speed:3,label_pulse_intensity:.03}},tall:{layout:{scale_multiplier:1,position_offset:{x:0,y:0},debug_rect_visible:!0,debug_rect_color:16711680,debug_rect_thickness:4,debug_rect_scale_x:1,debug_rect_scale_y:1,screen_scale_x:1.1,screen_scale_y:.9},engine:{scale:1,background_scale:.95,background_offset_y:0,background_alpha:1,label_pulse_speed:3,label_pulse_intensity:.03}}};function Pm(e){return e&&Nt[e]?JSON.parse(JSON.stringify(Nt[e])):JSON.parse(JSON.stringify(ln))}function on(e){Object.keys(e).forEach(t=>{let i=t;ln[i]&&e[i]&&Object.assign(ln[i],e[i])}),console.log("Config applied:",e)}function jm(e,t){let i=e/t;i>1.6?(on(Nt.wide),console.log("Applied WIDE config for ratio:",i)):i<.7?(on(Nt.tall),console.log("Applied TALL config for ratio:",i)):i>.8&&i<1.2?(on(Nt.square),console.log("Applied SQUARE config for ratio:",i)):(on(Nt.default),console.log("Applied DEFAULT config for ratio:",i))}if(typeof window!="undefined"){let e=window;e.configPresets=Nt,e.resolveAnchorVec2=e.resolveAnchorVec2||vr,e.resolveScreenAnchorPoint=e.resolveScreenAnchorPoint||ud,e.resolveScreenRatioPoint=e.resolveScreenRatioPoint||pd}jr();function te(e,t){let i=(r,a)=>a===0?r:i(a,r%a),n=i(e,t);return`${e/n}:${t/n}`}var M_=[{id:"iphone-15-pro-max",label:"iPhone 15 Pro Max",width:430,height:932,category:"iphone",ratio:te(430,932)},{id:"iphone-15-pro",label:"iPhone 15 Pro",width:393,height:852,category:"iphone",ratio:te(393,852)},{id:"iphone-15",label:"iPhone 15",width:393,height:852,category:"iphone",ratio:te(393,852)},{id:"iphone-14",label:"iPhone 14",width:390,height:844,category:"iphone",ratio:te(390,844)},{id:"iphone-se",label:"iPhone SE",width:375,height:667,category:"iphone",ratio:te(375,667)},{id:"iphone-12-mini",label:"iPhone 12 Mini",width:360,height:780,category:"iphone",ratio:te(360,780)}],R_=[{id:"pixel-8-pro",label:"Pixel 8 Pro",width:448,height:998,category:"android",ratio:te(448,998)},{id:"pixel-8",label:"Pixel 8",width:412,height:915,category:"android",ratio:te(412,915)},{id:"samsung-s24-ultra",label:"Samsung S24 Ultra",width:412,height:915,category:"android",ratio:te(412,915)},{id:"samsung-s24",label:"Samsung S24",width:360,height:780,category:"android",ratio:te(360,780)},{id:"samsung-a54",label:"Samsung A54",width:412,height:915,category:"android",ratio:te(412,915)},{id:"oneplus-12",label:"OnePlus 12",width:412,height:915,category:"android",ratio:te(412,915)}],P_=[{id:"ipad-pro-12",label:'iPad Pro 12.9"',width:1024,height:1366,category:"tablet",ratio:te(1024,1366)},{id:"ipad-pro-11",label:'iPad Pro 11"',width:834,height:1194,category:"tablet",ratio:te(834,1194)},{id:"ipad-air",label:"iPad Air",width:820,height:1180,category:"tablet",ratio:te(820,1180)},{id:"ipad-mini",label:"iPad Mini",width:768,height:1024,category:"tablet",ratio:te(768,1024)},{id:"samsung-tab-s9",label:"Samsung Tab S9",width:800,height:1280,category:"tablet",ratio:te(800,1280)}],Us=[{id:"playable-portrait",label:"Playable Portrait",width:320,height:480,category:"playable",ratio:"2:3",mraidScale:1},{id:"mraid-320x480",label:"MRAID 320\xD7480",width:320,height:480,category:"playable",ratio:"2:3",mraidScale:1},{id:"iphone-14",label:"iPhone 14",width:390,height:844,category:"playable",ratio:te(390,844),mraidScale:.7},{id:"ipad-mini",label:"iPad Mini",width:768,height:1024,category:"playable",ratio:te(768,1024),mraidScale:.7}];var qs=[...Us],Gs=[{category:"playable",label:"Playable Ad",devices:Us}],Dr=Us[0];function Ht(e){return qs.find(t=>t.id===e)||Dr}function Wm(e){return qs.filter(t=>t.category===e)}var zr=class{constructor(){this.root=null;this.listContainer=null;this.searchInput=null;this.selectedId=null;this.options=null;this.retryTimer=null;this.screenFilter="all"}getScreenFilterStorageKey(){return`handler_preview_screen_filter::${typeof window!="undefined"&&window.__HANDLER_PROJECT_ID||"default"}`}render(){return`
|
|
48
48
|
<div class="scene-panel scene-objects panel-accent-teal" data-panel="scene-objects" style="left:16px; top:72px;">
|
|
49
49
|
<div class="scene-panel-header" data-panel-handle>
|
|
50
50
|
<div class="panel-title">
|
|
@@ -389,7 +389,7 @@
|
|
|
389
389
|
${a.join("")}
|
|
390
390
|
</div>
|
|
391
391
|
</div>
|
|
392
|
-
`}renderLogic(t,i,n,r){let a=[],s=typeof(n==null?void 0:n.id)=="string"?n.id:"",o=(()=>{let c=window,
|
|
392
|
+
`}renderLogic(t,i,n,r){let a=[],s=typeof(n==null?void 0:n.id)=="string"?n.id:"",o=(()=>{try{let u=window,p=u==null?void 0:u.__HANDLER_LOGIC_META;return s&&p&&typeof p=="object"?p[s]:null}catch{return null}})(),l=o!=null&&o.enums&&typeof o.enums=="object"?o.enums:{},c=(()=>{let u=window,p=Array.isArray(u==null?void 0:u.__HANDLER_LOGIC_OPTIONS)?u.__HANDLER_LOGIC_OPTIONS:[],m=[...["DragToWin","SwerveMove","DragSnap","JoystickMove","GsapEntrance"],...p].map(h=>String(h)).filter(h=>h.trim().length>0);return Array.from(new Set(m)).sort((h,g)=>h.localeCompare(g))})(),d=s&&!c.includes(s)?[s,...c]:c;a.push(`
|
|
393
393
|
<div class="inspector-property inspector-property-text">
|
|
394
394
|
<label class="inspector-property-label">Id</label>
|
|
395
395
|
<div class="inspector-input-group">
|
|
@@ -397,18 +397,47 @@
|
|
|
397
397
|
data-property-path="${r}.id"
|
|
398
398
|
data-object-id="${t}">
|
|
399
399
|
<option value="" ${s?"":"selected"}>None</option>
|
|
400
|
-
${
|
|
400
|
+
${d.map(u=>`<option value="${u}" ${u===s?"selected":""}>${u}</option>`).join("")}
|
|
401
401
|
</select>
|
|
402
402
|
</div>
|
|
403
403
|
</div>
|
|
404
|
-
`);for(let
|
|
404
|
+
`);for(let u in n){if(u==="id")continue;let p=n[u],f=`${r}.${u}`;if(u==="props"&&p&&typeof p=="object"){let h=[];for(let g in p){let b=p[g],y=`${f}.${g}`,v=l==null?void 0:l[g];if(Array.isArray(v)&&v.length)h.push(`
|
|
405
|
+
<div class="inspector-property inspector-property-text">
|
|
406
|
+
<label class="inspector-property-label">${this.formatLabel(g)}</label>
|
|
407
|
+
<div class="inspector-input-group">
|
|
408
|
+
<select class="inspector-component-select inspector-input"
|
|
409
|
+
data-property-path="${y}"
|
|
410
|
+
data-object-id="${t}">
|
|
411
|
+
${v.map(x=>`<option value="${String(x)}" ${String(x)===String(b)?"selected":""}>${String(x)}</option>`).join("")}
|
|
412
|
+
</select>
|
|
413
|
+
</div>
|
|
414
|
+
</div>
|
|
415
|
+
`);else{let x=this.registry.renderProperty(t,g,b,y);x&&h.push(x)}}h.length&&a.push(`
|
|
416
|
+
<div class="inspector-property inspector-property-object">
|
|
417
|
+
<div class="inspector-object-header">Props</div>
|
|
418
|
+
<div class="inspector-object-body">
|
|
419
|
+
${h.join("")}
|
|
420
|
+
</div>
|
|
421
|
+
</div>
|
|
422
|
+
`);continue}let m=this.registry.renderProperty(t,u,p,f);m&&a.push(m)}return a.length===0?"":`
|
|
405
423
|
<div class="inspector-property inspector-property-object">
|
|
406
424
|
<div class="inspector-object-header">${this.formatLabel(i)}</div>
|
|
407
425
|
<div class="inspector-object-body">
|
|
408
426
|
${a.join("")}
|
|
409
427
|
</div>
|
|
410
428
|
</div>
|
|
411
|
-
`}formatLabel(t){return t.replace(/_/g," ").replace(/([a-z])([A-Z])/g,"$1 $2").replace(/\b\w/g,i=>i.toUpperCase())}};var Vr=class{
|
|
429
|
+
`}formatLabel(t){return t.replace(/_/g," ").replace(/([a-z])([A-Z])/g,"$1 $2").replace(/\b\w/g,i=>i.toUpperCase())}};var Vr=class{render(t,i,n,r,a){let s=n==null?"":String(n),o=Array.from(new Set(a.map(c=>String(c)))),l=s&&!o.includes(s)?[s,...o]:o;return`
|
|
430
|
+
<div class="inspector-property inspector-property-text">
|
|
431
|
+
<label class="inspector-property-label">${this.formatLabel(i)}</label>
|
|
432
|
+
<div class="inspector-input-group">
|
|
433
|
+
<select class="inspector-component-select inspector-input"
|
|
434
|
+
data-property-path="${r}"
|
|
435
|
+
data-object-id="${t}">
|
|
436
|
+
${l.map(c=>`<option value="${c}" ${c===s?"selected":""}>${c}</option>`).join("")}
|
|
437
|
+
</select>
|
|
438
|
+
</div>
|
|
439
|
+
</div>
|
|
440
|
+
`}formatLabel(t){return t.replace(/_/g," ").replace(/([a-z])([A-Z])/g,"$1 $2").replace(/\b\w/g,i=>i.toUpperCase())}};var Kr=class{constructor(){this.typeDetector=new Fr,this.imageRenderer=new Hr,this.colorRenderer=new $r,this.numberRenderer=new Ur,this.textRenderer=new qr,this.booleanRenderer=new Gr,this.arrayRenderer=new Wr,this.objectRenderer=new Yr(this),this.selectRenderer=new Vr}getEnumOptionsFromSchemas(t){var i;try{let n=window,r=n==null?void 0:n.__editableConfig,a=r==null?void 0:r.schemas;if(!a)return null;let s=String(t||"").split(".").filter(Boolean);if(s.length<2)return null;let o=s[0],l=s.slice(1).join("."),c=a instanceof Map?a.get(o):a==null?void 0:a[o];if(!c)return null;let d=(i=c==null?void 0:c.types)==null?void 0:i[l];if(typeof d!="string"||!d.startsWith("enum:"))return null;let p=d.slice(5).split("|").map(f=>f.trim()).filter(Boolean);return p.length?p:null}catch{return null}}renderProperty(t,i,n,r){let a=this.getEnumOptionsFromSchemas(r);if(a)return this.selectRenderer.render(t,i,n,r,a);switch(this.typeDetector.detectType(i,n)){case"image":return this.imageRenderer.render(t,i,n,r);case"color":return this.colorRenderer.render(t,i,n,r);case"number":return this.numberRenderer.render(t,i,n,r);case"boolean":return this.booleanRenderer.render(t,i,n,r);case"array":return this.arrayRenderer.render(t,i,n,r);case"object":return this.objectRenderer.render(t,i,n,r);case"select":return this.selectRenderer.render(t,i,n,r,[]);default:return this.textRenderer.render(t,i,n,r)}}getTypeDetector(){return this.typeDetector}};Te();var hi=class{async updateProperty(t,i,n,r={}){var l,c,d;console.log("[PropertyUpdateManager] Updating:",t,i,n);let a=window.getEditableObjectConfig;if(typeof a!="function"){console.error("[PropertyUpdateManager] getEditableObjectConfig not available");return}let s=a(t);if(!s){console.error("[PropertyUpdateManager] Config not found for:",t);return}mt({objectId:t,path:i,value:n},{persist:!0});let o=window.applyEditableObjectConfig;if(typeof o=="function"){let u=window.__editableConfig,p=(d=(c=(l=u==null?void 0:u.objects)==null?void 0:l.get)==null?void 0:c.call(l,t))!=null?d:s;await o(t,p),console.log("[PropertyUpdateManager] Applied config successfully")}else console.warn("[PropertyUpdateManager] applyEditableObjectConfig not available");this.triggerRefresh(t),r.refreshInspector&&window.dispatchEvent(new CustomEvent("inspector:refresh"))}getNestedProperty(t,i){let n=i.split("."),r=t;for(let a of n)if(r&&typeof r=="object"&&a in r)r=r[a];else return;return r}triggerRefresh(t){let i=window.__refreshHierarchy;typeof i=="function"&&i(),window.dispatchEvent(new CustomEvent("inspector:property-updated",{detail:{objectId:t}}))}};var Xr=class{constructor(){this.updateManager=new hi}async handleAction(t,i,n){console.log("[QuickActionsBar] Action:",t,i,n);let r=window.getEditableObjectConfig;if(typeof r!="function")return;let a=r(i);if(!a)return;let s=this.updateManager.getNestedProperty(a,n);if(t==="ai-convert"||t==="upload"||t==="library"){let o=n==="ui.text"||n==="render.asset.path",l=n==="render.asset.path";o&&(await this.prepareForImageConversion(i,a),t==="ai-convert"&&n!=="render.asset.path"&&(n="render.asset.path"))}switch(t){case"library":this.openLibrary(i,n,s);break;case"ai-edit":this.openAIEditor(i,n,s);break;case"upload":this.openUpload(i,n);break;case"reset":await this.resetToDefault(i,n);break;case"ai-convert":this.handleAiConvert(i,n,s);break;default:console.warn("[QuickActionsBar] Unknown action:",t)}}async prepareForImageConversion(t,i){var n,r;if(console.log("[QuickActionsBar] Preparing for image conversion:",t),i.render||(i.render={alpha:1,visible:!0}),(i.render.alpha===0||i.render.alpha===void 0)&&(i.render.alpha=1,await this.updateManager.updateProperty(t,"render.alpha",1)),(i.render.visible===!1||i.render.visible===void 0)&&(i.render.visible=!0,await this.updateManager.updateProperty(t,"render.visible",!0)),i.render.asset||(i.render.asset={type:"image",path:""}),i.render.asset.type!=="image"&&(i.render.asset.type="image",await this.updateManager.updateProperty(t,"render.asset",{type:"image",path:i.render.asset.path||""})),i.ui&&i.ui.renderMode!=="png"){await this.updateManager.updateProperty(t,"ui.renderMode","png",{refreshInspector:!0}),await this.updateManager.updateProperty(t,"render.tint","#ffffff");let s=((r=(n=i.transform)==null?void 0:n.scale)!=null?r:1)*.3;await this.updateManager.updateProperty(t,"transform.scale",s),console.log("[QuickActionsBar] Text to PNG conversion: set tint white, scale",s)}this.ensureSlotInRegistry(t,i)}ensureSlotInRegistry(t,i){var o,l,c;let n=window.getEditableAssets;if(typeof n!="function")return;let r=n();if(!r||!r.slots)return;let a=t.startsWith("json.")?t.replace("json.",""):t;if(!r.slots.some(d=>d.objectId===a||d.slotId===a)){let d=((o=i.identity)==null?void 0:o.category)||"ui";console.log("[QuickActionsBar] Adding new slot to registry for converted object:",a),r.slots.push({slotId:a,displayName:a.replace(/_/g," "),objectId:a,category:d,currentAsset:((c=(l=i.render)==null?void 0:l.asset)==null?void 0:c.path)||"",defaultAsset:"",libraryFolder:d,assetType:"image"}),r.categories&&!r.categories.includes(d)&&r.categories.push(d),r.libraryAssets&&!r.libraryAssets[d]&&(r.libraryAssets[d]=[]);let u=window.reRenderAssetLibrary;typeof u=="function"&&u()}}openLibrary(t,i,n){var a;let r=window.__debugContext;if(r){if(r.activeTab!=="library"){r.activeTab="library";let s=window.__updateWorkbenchTabs;typeof s=="function"&&s()}if(r.libraryPanel){let s=window.getEditableObjectConfig,o=s==null?void 0:s(t),l=(a=o==null?void 0:o.identity)==null?void 0:a.category;l||(l=i.split(".")[0]==="render"?"environment":"ui"),console.log("[QuickActionsBar] Highlighting library slot:",t,"category:",l),r.libraryPanel.highlightSlot(t,l)}}}openAIEditor(t,i,n){let r=window.__openAiEditor;if(typeof r=="function"){let a=i.split(".").pop()||i;r(a,`Edit ${a} for ${t}`,n,{objectId:t,path:i})}else console.warn("[QuickActionsBar] AI Editor not available")}openUpload(t,i){let n=document.createElement("input");n.type="file",n.accept="image/*",n.onchange=async r=>{var o;let a=(o=r.target.files)==null?void 0:o[0];if(!a)return;console.log("[QuickActionsBar] Preparing upload for:",a.name);let s=new FileReader;s.onload=async()=>{var c,d,u;let l=s.result;try{let p=window.getEditableObjectConfig,f=p==null?void 0:p(t),m=((c=f==null?void 0:f.identity)==null?void 0:c.category)||(i.split(".")[0]==="render"?"environment":"ui"),g=await(await fetch("/api/library/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({category:m,filename:a.name,data:l,overwrite:!0})})).json();if(g.success){console.log("[QuickActionsBar] \u2705 Uploaded and saved:",g.path),this.updateManager.updateProperty(t,i,g.path);let b=window.__debugContext;(u=(d=b==null?void 0:b.options)==null?void 0:d.onPropertyChange)==null||u.call(d,t,i,g.path);let y=window.addAssetToRegistry;typeof y=="function"&&y(m,a.name);let v=window.reRenderAssetLibrary;typeof v=="function"&&v(),window.dispatchEvent(new CustomEvent("inspector:refresh"))}else console.error("[QuickActionsBar] \u274C Upload failed:",g.error),alert(`Upload failed: ${g.error}`)}catch(p){console.error("[QuickActionsBar] \u274C Upload error:",p),alert("Upload failed. Check console.")}},s.readAsDataURL(a)},n.click()}async resetToDefault(t,i){console.log("[QuickActionsBar] Reset to default:",t,i);try{let n=await this.getDefaultValue(t,i);n!==void 0?(await this.updateManager.updateProperty(t,i,n),console.log("[QuickActionsBar] Reset to default value:",n)):alert("No default value found for this property.")}catch(n){console.error("[QuickActionsBar] Failed to reset to default:",n),alert("Failed to reset property. Check console for details.")}}async getDefaultValue(t,i){let n=i.split(".");if(n.length<2)return;let r=n[0],a=n.slice(1),s=window.__editableConfig;if(!(s!=null&&s.schemas))return;let o=null;if(s.schemas instanceof Map?o=s.schemas.get(r):typeof s.schemas=="object"&&(o=s.schemas[r]),!(o!=null&&o.defaults))return;let l=o.defaults;for(let c of a)if(l&&typeof l=="object")l=l[c];else return;return l}handleAiConvert(t,i,n){let r=window.__openAiEditor;if(typeof r=="function"){let s=`A single, high-quality, high-detail game UI icon/asset representing "${String(n||t.replace(/_/g," ").replace("json.",""))}". Modern stylized 3D rendered style, vibrant colors, soft lighting, isolated on solid magenta background, highly polished professional game art.`,o="render.asset.path";console.log("[QuickActionsBar] AI Convert for:",t,"from:",i,"to:",o),r(t,s,"",{objectId:t,path:o});let l=window.__debugContext;if(l){l.activeTab="ai";let c=window.__updateWorkbenchTabs;typeof c=="function"&&c()}}else console.warn("[QuickActionsBar] AI Editor not available")}};function Ym(e,t){let i;return function(...r){let a=()=>{clearTimeout(i),e(...r)};clearTimeout(i),i=setTimeout(a,t)}}var Zr=class{constructor(){this.root=null;this.contentContainer=null;this.selectedObjectId=null;this.options=null;this.showAdvanced=!1;this.rendererRegistry=new Kr,this.updateManager=new hi,this.quickActions=new Xr,window.addEventListener("inspector:refresh",()=>{this.selectedObjectId&&this.loadObject(this.selectedObjectId)}),window.addEventListener("config:changed",()=>{})}render(){return`
|
|
412
441
|
<div class="scene-panel inspector-panel panel-accent-violet" data-panel="inspector" style="right:16px; top:72px;">
|
|
413
442
|
<div class="scene-panel-header" data-panel-handle>
|
|
414
443
|
<div class="panel-title">
|
|
@@ -469,7 +498,7 @@
|
|
|
469
498
|
${a.join("")}
|
|
470
499
|
</div>
|
|
471
500
|
</div>
|
|
472
|
-
`}attachEventListeners(){var c,d,u,p;if(!this.contentContainer)return;let t=this.contentContainer.querySelectorAll("[data-property-path]"),i=
|
|
501
|
+
`}attachEventListeners(){var c,d,u,p;if(!this.contentContainer)return;let t=this.contentContainer.querySelectorAll("[data-property-path]"),i=Ym((f,m,h)=>{var g,b;this.updateManager.updateProperty(f,m,h),(b=(g=this.options)==null?void 0:g.onPropertyChange)==null||b.call(g,f,m,h)},300);t.forEach(f=>{let m=h=>{var v,x;let g=h.target,b=g.dataset.propertyPath,y=g.dataset.objectId;if(b&&y){let w=g.value;if(g.type==="checkbox")w=g.checked;else if(g.type==="number"&&(w=parseFloat(g.value),isNaN(w)))return;g.type==="text"||g.type==="range"||g.tagName==="TEXTAREA"?i(y,b,w):(this.updateManager.updateProperty(y,b,w),(x=(v=this.options)==null?void 0:v.onPropertyChange)==null||x.call(v,y,b,w))}};f.addEventListener("change",m),(f.tagName==="INPUT"||f.tagName==="TEXTAREA")&&f.addEventListener("input",m)}),this.contentContainer.querySelectorAll("[data-action]").forEach(f=>{f.addEventListener("click",m=>{let h=m.target,g=h.dataset.action,b=h.dataset.path,y=h.dataset.object;g&&b&&y&&this.quickActions.handleAction(g,y,b)})}),this.contentContainer.querySelectorAll("[data-section-toggle]").forEach(f=>{f.addEventListener("click",m=>{var b,y;let h=m.target,g=h.dataset.sectionToggle||((b=h.closest("[data-section-toggle]"))==null?void 0:b.getAttribute("data-section-toggle"));if(g){let v=(y=this.contentContainer)==null?void 0:y.querySelector(`[data-section="${g}"]`);v==null||v.classList.toggle("collapsed")}})});let a=(c=this.root)==null?void 0:c.querySelector("[data-inspector-advanced]");a==null||a.addEventListener("click",()=>{this.showAdvanced=!this.showAdvanced,this.selectedObjectId&&this.loadObject(this.selectedObjectId)});let s=(d=this.root)==null?void 0:d.querySelector("[data-convert-toggle]");s==null||s.addEventListener("click",()=>{var m;let f=(m=this.root)==null?void 0:m.querySelector("[data-convert-menu]");f==null||f.classList.toggle("hidden")});let o=(u=this.contentContainer)==null?void 0:u.querySelector("[data-inspector-add-component-btn]"),l=(p=this.contentContainer)==null?void 0:p.querySelector("[data-inspector-component-select]");o==null||o.addEventListener("click",async()=>{let f=l.value;f&&this.selectedObjectId&&await this.addComponent(this.selectedObjectId,f)})}async addComponent(t,i){console.log("[InspectorPanel] Adding component:",i,"to:",t);let n=window.getEditableObjectConfig,r=n==null?void 0:n(t);if(!r){console.error("[InspectorPanel] Failed to get config for:",t);return}let a=window.__editableConfig,s=a==null?void 0:a.schemas,o=null;s instanceof Map?o=s.get(i):s&&typeof s=="object"&&(o=s[i]),o||console.warn("[InspectorPanel] Schema not found for component:",i);let l=(o==null?void 0:o.defaults)||{enabled:!0};r[i]={...l},await this.updateManager.updateProperty(t,i,r[i]),this.loadObject(t),console.log("[InspectorPanel] Component added successfully")}isSectionMeaningful(t,i,n){var a,s;if(["identity","transform","render"].includes(t))return!0;if(!i||typeof i!="object"||t==="ui"&&((s=(a=n.render)==null?void 0:a.asset)==null?void 0:s.type)==="image")return!1;if(t==="interaction")return i.clickable===!0||i.draggable===!0;if(i.enabled===!0||i.active===!0||i.visible===!0)return!0;if(t==="ui")return!!(i.text||i.font||i.fontSize);let r=Object.keys(i);return r.length===0||r.length===1&&r[0]==="enabled"&&i.enabled===!1?!1:["audio","effects","physics","motion","gameplay"].includes(t)?i.enabled===!0:!0}showError(t){this.contentContainer&&(this.contentContainer.innerHTML=`
|
|
473
502
|
<div class="inspector-empty">
|
|
474
503
|
<span class="inspector-empty-icon">\u26A0\uFE0F</span>
|
|
475
504
|
<span class="inspector-empty-text">${t}</span>
|
|
@@ -479,7 +508,7 @@
|
|
|
479
508
|
<span class="inspector-empty-icon">\u{1F3AF}</span>
|
|
480
509
|
<span class="inspector-empty-text">Select an object to inspect</span>
|
|
481
510
|
</div>
|
|
482
|
-
`)}};var
|
|
511
|
+
`)}};var eg=li(Bh(),1);function Dl(e){return new Promise((t,i)=>{let n=new FileReader;n.onerror=()=>i(new Error("FileReader failed")),n.onload=()=>t(String(n.result||"")),n.readAsDataURL(e)})}function Fh(e){var r;let[t,i]=e.split(","),n=t==null?void 0:t.match(/data:(.*?);base64/);return{base64:i!=null?i:"",mimeType:(r=n==null?void 0:n[1])!=null?r:"image/png"}}async function Hh(e){return await new Promise(t=>{let i=new Image;i.onload=()=>t({width:i.naturalWidth||i.width,height:i.naturalHeight||i.height}),i.onerror=()=>t(null),i.src=e})}async function Ua(e){var t,i;try{console.log("[ImageUtils] Fetching image data from URL:",e);let n=await fetch(e);if(!n.ok)return console.warn("[ImageUtils] Fetch failed with status:",n.status,e),null;let r=await n.blob();console.log("[ImageUtils] Blob received, size:",r.size,"type:",r.type);let a=await Dl(r),s=await Hh(a),o=Fh(a);return console.log("[ImageUtils] Success resolution:",s==null?void 0:s.width,"x",s==null?void 0:s.height,"mime:",o.mimeType),{base64:o.base64,mimeType:o.mimeType,dataUrl:a,width:(t=s==null?void 0:s.width)!=null?t:0,height:(i=s==null?void 0:s.height)!=null?i:0}}catch(n){return console.error("[ImageUtils] Error fetching image data:",n),null}}async function Ot(e){var t,i;try{let n=await Dl(e),r=await Hh(n),a=Fh(n);return{base64:a.base64,mimeType:a.mimeType,dataUrl:n,width:(t=r==null?void 0:r.width)!=null?t:0,height:(i=r==null?void 0:r.height)!=null?i:0}}catch{return null}}function $h(e){return Dl(e).then(t=>t).catch(()=>null)}function zl(e,t){var i;try{let[n,r]=e.split(","),a=n.match(/data:(.*?);base64/),s=(i=a==null?void 0:a[1])!=null?i:"image/png",o=atob(r),l=new Uint8Array(o.length);for(let c=0;c<o.length;c++)l[c]=o.charCodeAt(c);return new File([l],t,{type:s})}catch{return null}}async function $i(e,t=30){try{console.log("[ImageUtils] Removing background color...");let i=await new Promise((u,p)=>{let f=new Image;f.onload=()=>u(f),f.onerror=()=>p(new Error("Failed to load image")),f.src=e}),n=document.createElement("canvas");n.width=i.width,n.height=i.height;let r=n.getContext("2d");if(!r)return console.error("[ImageUtils] Failed to get canvas context"),e;r.drawImage(i,0,0);let a=r.getImageData(0,0,n.width,n.height),s=a.data,l=[{name:"top-left",offset:0},{name:"top-right",offset:(n.width-1)*4},{name:"bottom-left",offset:(n.height-1)*n.width*4},{name:"bottom-right",offset:((n.height-1)*n.width+(n.width-1))*4}].map(u=>({r:s[u.offset],g:s[u.offset+1],b:s[u.offset+2]})),c=0;for(let u=0;u<s.length;u+=4){let p=s[u],f=s[u+1],m=s[u+2],h=!1;for(let g of l)if(Math.sqrt(Math.pow(p-g.r,2)+Math.pow(f-g.g,2)+Math.pow(m-g.b,2))<t){h=!0;break}h&&(s[u+3]=0,c++)}return console.log(`[ImageUtils] Removed background from ${c} pixels (4-corner sampling, tolerance: ${t})`),r.putImageData(a,0,0),n.toDataURL("image/png")}catch(i){return console.error("[ImageUtils] Error removing background:",i),e}}function Uh(e,t){if(!e||!t)return"1:1";let i=e/t;return i>1.3?"16:9":i<.77?"9:16":"1:1"}function dt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ce(e){return typeof e=="string"?e:void 0}function qh(e){return e.toLowerCase().endsWith(".png")?e.slice(0,-4):e}function Tw(e){var n,r,a;let t=(n=ce(e.id))!=null?n:ce(e.name);if(t)return t;let i=(r=ce(e.file))!=null?r:ce(e.asset);return i?qh((a=i.split("/").pop())!=null?a:i):void 0}function kw(e,t,i){var n,r,a;if(typeof t=="string")return{id:e,file:t,role:i};if(dt(t)){let s=(n=ce(t.file))!=null?n:ce(t.asset);return s?{id:(r=ce(t.id))!=null?r:e,file:s,role:(a=ce(t.role))!=null?a:i,dataUrl:ce(t.dataUrl),layout:t.layout}:null}return null}function Nl(e,t){var i,n,r;if(!e)return[];if(Array.isArray(e)){let a=[];for(let s of e){if(typeof s=="string"){let o=qh((i=s.split("/").pop())!=null?i:s);a.push({id:o,file:s,role:t});continue}if(dt(s)){let o=Tw(s),l=(n=ce(s.file))!=null?n:ce(s.asset);if(!o||!l)continue;a.push({id:o,file:l,role:(r=ce(s.role))!=null?r:t,dataUrl:ce(s.dataUrl),layout:s.layout})}}return a}if(dt(e)){let a=[];for(let[s,o]of Object.entries(e)){let l=kw(s,o,t);l&&a.push(l)}return a}return[]}function Lw(e){var t,i;return(i=(t=ce(e.brand_name))!=null?t:ce(e.brandName))!=null?i:ce(e.name)}function Ow(e){if(dt(e.brand_dna)&&dt(e.brand_dna.colors))return e.brand_dna;if(dt(e.colors)){let t={colors:e.colors};return typeof e.style=="string"&&(t.style=e.style),dt(e.fonts)&&(t.fonts=e.fonts),t}}function Iw(e){var i;let t=new Map;for(let n of e){let r=t.get(n.id);if(!r){t.set(n.id,n);continue}t.set(n.id,{...r,...n,file:n.file||r.file,role:n.role||r.role,dataUrl:n.dataUrl||r.dataUrl,layout:(i=n.layout)!=null?i:r.layout})}return Array.from(t.values())}function Bl(e,t={}){var s,o,l;let i=e.filter(dt),n=(o=(s=i.map(Lw).find(Boolean))!=null?s:t.defaultBrandName)!=null?o:"Imported Brand",r=(l=i.map(Ow).find(Boolean))!=null?l:{colors:{}},a=[];for(let c of i)"layers"in c&&a.push(...Nl(c.layers,"visual element")),"assets"in c&&a.push(...Nl(c.assets,"visual element")),dt(c.endgame)&&"assets"in c.endgame&&a.push(...Nl(c.endgame.assets,"endgame"));return{version:"1.0",brand_name:n,brand_dna:r,assets:Iw(a)}}var Gh=require("@google/genai");async function qa(e,t,i=[],n={}){var r,a,s,o,l,c,d;try{if(!(e!=null&&e.trim()))throw new Error("Gemini API key is required");if(!(t!=null&&t.trim()))throw new Error("Prompt is required");for(let b=0;b<i.length;b++){let y=i[b];if(!y.base64||!y.mimeType)throw new Error(`Image ${b+1} is missing required data`);if(y.base64.length<1e3&&console.warn(`Image ${b+1} data appears very small, may be corrupted`),!y.mimeType.startsWith("image/"))throw new Error(`Image ${b+1} has invalid MIME type: ${y.mimeType}`)}let u=new Gh.GoogleGenAI({apiKey:e}),p="gemini-2.5-flash",f=[t];i.length>0&&i.forEach((b,y)=>{f.push({inlineData:{data:b.base64,mimeType:b.mimeType}}),console.log(`[Gemini] Added image ${y+1}: ${b.mimeType}, size: ${Math.round(b.base64.length/1024)}KB`)}),console.log(`[Gemini] Making request with ${i.length} images and prompt length: ${t.length}`);let m=await u.models.generateContent({model:p,contents:f}),h="",g=(s=(a=(r=m.candidates)==null?void 0:r[0])==null?void 0:a.content)==null?void 0:s.parts;if(g)for(let b of g)b.text&&(h+=b.text);if(!h.trim())throw new Error("Empty response from Gemini API");return console.log(`[Gemini] Response received, length: ${h.length}`),h}catch(u){throw console.error("[Gemini] API error:",u),(o=u.message)!=null&&o.includes("Unable to process input image")?new Error("Unable to process the uploaded image. Please ensure it's a valid PNG, JPG, or JPEG file under 10MB and not corrupted."):(l=u.message)!=null&&l.includes("API_KEY_INVALID")?new Error("Invalid Gemini API key. Please check your API key configuration."):(c=u.message)!=null&&c.includes("QUOTA_EXCEEDED")?new Error("Gemini API quota exceeded. Please try again later or check your billing."):(d=u.message)!=null&&d.includes("SAFETY")?new Error("Content was flagged by Gemini safety filters. Please try with different images."):u}}var Wh=require("@google/genai");async function Ui(e,t,i=[],n={}){try{console.info("[GEMINI-REAL-SDK] Initializing GoogleGenAI...");let r=new Wh.GoogleGenAI({apiKey:e}),a=[{text:t}];i.length>0&&i.forEach((o,l)=>{console.info(`[GEMINI-REAL-SDK] Adding image part ${l}`),a.push({inlineData:{mimeType:o.mimeType,data:o.base64}})}),console.info("[GEMINI-REAL-SDK] Calling generateContent with model: gemini-2.5-flash-image");let s=await r.models.generateContent({model:"gemini-2.5-flash-image",contents:a});if(console.info("[GEMINI-REAL-SDK] Received response from model"),!s.candidates||!s.candidates[0]||!s.candidates[0].content||!s.candidates[0].content.parts)throw new Error("Gemini 2.5 Flash Image returned invalid response structure.");for(let o of s.candidates[0].content.parts)if(o.text)console.log(o.text);else if(o.inlineData){let l=o.inlineData.data,c=o.inlineData.mimeType||"image/png";return console.info("[GEMINI-REAL-SDK] Found inline image data in response"),`data:${c};base64,${l}`}throw new Error("Gemini 2.5 Flash Image returned no image data.")}catch(r){throw console.error("[GEMINI-REAL-SDK] Error in generateImageWithGemini25Flash:",JSON.stringify(r,Object.getOwnPropertyNames(r),2)),r}}function Yh(e){let t=e.brandAssets.map(a=>{let s=`- ${a.id}: ${a.role}`;return a.layout&&(s+=` [pos: ${a.layout.x.toFixed(0)},${a.layout.y.toFixed(0)}, size: ${a.layout.w.toFixed(0)}x${a.layout.h.toFixed(0)}, z: ${a.layout.z}, opacity: ${a.layout.opacity}]`),s}).join(`
|
|
483
512
|
`)||"None",i=e.brandDna?`Colors: ${JSON.stringify(e.brandDna.colors)}, Style: ${e.brandDna.style||"not specified"}`:"Not provided",n=e.gameObjects.map(a=>typeof a=="string"?`- id: ${a}`:`- id: ${a.id}${a.category?`, category: ${a.category}`:""}${a.type?`, type: ${a.type}`:""}`).join(`
|
|
484
513
|
`),r="";if(e.brandConfig){let a=e.brandConfig,s=[];a.splash&&s.push(`SPLASH: title="${a.splash.title||""}", subtitle="${a.splash.subtitle||""}", button="${a.splash.button_label||""}"`),a.endgame&&s.push(`ENDGAME: title="${a.endgame.title||""}", subtitle="${a.endgame.subtitle||""}", cta="${a.endgame.cta_label||""}"`),a.tutorial&&s.push(`TUTORIAL: text="${a.tutorial.label_text||""}", helper="${a.tutorial.helper_text||""}"`),s.length>0&&(r=`
|
|
485
514
|
BRAND CONTENT:
|
|
@@ -543,7 +572,7 @@ OUTPUT ONLY VALID JSON (no markdown, no explanation):
|
|
|
543
572
|
}
|
|
544
573
|
]
|
|
545
574
|
}
|
|
546
|
-
`.trim()}function
|
|
575
|
+
`.trim()}function Vh(e){var r,a;let t=(r=e.brandDna)!=null&&r.colors?`Primary: ${e.brandDna.colors.primary}, Secondary: ${e.brandDna.colors.secondary||"N/A"}, Accent: ${e.brandDna.colors.accent||"N/A"}`:"Use provided reference colors",i=((a=e.brandDna)==null?void 0:a.style)||"modern gaming style",n=e.needsTransparency?"BACKGROUND: REQUIRED solid magenta #FF00FF (for transparency removal)":"BACKGROUND: Use brand colors naturally, fill the entire frame";return`
|
|
547
576
|
TASK: ${e.prompt}
|
|
548
577
|
|
|
549
578
|
BRAND STYLE:
|
|
@@ -564,7 +593,7 @@ OUTPUT CONSTRAINTS (MUST FOLLOW):
|
|
|
564
593
|
|
|
565
594
|
OUTPUT:
|
|
566
595
|
Generate the requested asset matching the brand style.${e.needsTransparency?" Background MUST be solid magenta (#FF00FF).":""}
|
|
567
|
-
`.trim()}function
|
|
596
|
+
`.trim()}function Kh(e){return e.map(t=>{if(typeof t=="string"){let i=t,n,r;return i.includes("background")?(n="background",r="background"):i.includes("button")||i.includes("cta")?(n="ui",r="button"):i.includes("logo")?(n="ui",r="logo"):i.includes("title")||i.includes("subtitle")||i.includes("text")?(n="text",r="text"):i.includes("effect")||i.includes("confetti")||i.includes("particle")?(n="effects",r="effect"):i.includes("ui.")||i.includes("splash")||i.includes("endgame")?(n="ui",r="image"):(n="environment",r="interactive"),{id:i,category:n,type:r}}return t})}function Xh(e,t){return!(e.includes("background")&&(e.includes("_1")||e.includes("splash")||e.includes("endgame")||e.includes("main"))||t==="text"||t==="effects"&&e.includes("particle"))}async function Zh(e){var s,o;let t=Kh(e.gameObjects),i={gamePrompt:e.gamePrompt,gameObjects:t,brandAssets:e.manifest.assets,brandDna:e.manifest.brand_dna,brandName:e.manifest.brand_name},n=Yh(i),r=[];if(e.flatDesignDataUrl)try{let l=Jh(e.flatDesignDataUrl);l&&l.base64&&l.mimeType?l.base64.length<100?console.warn("[Pipeline] Flat design data URL appears invalid (too short)"):(r.push(l),console.log("[Pipeline] Added flat design to analysis, size:",l.base64.length)):console.warn("[Pipeline] Failed to parse flat design data URL")}catch(l){console.warn("[Pipeline] Error processing flat design:",l)}console.log("[Pipeline] Running analysis chain with",r.length,"images...");let a;try{a=await qa(e.apiKey,n,r,{model:"gemini-2.5-flash"}),console.log("[Pipeline] Analysis response received")}catch(l){throw console.error("[Pipeline] Gemini API error:",l),(s=l.message)!=null&&s.includes("Unable to process input image")?new Error("Gemini API unable to process the uploaded images. Please try with different images or ensure they are valid PNG/JPG files under 10MB."):(o=l.message)!=null&&o.includes("image")?new Error("Image processing failed. Please ensure your images are valid and not corrupted."):l}return Mw(a,e.gameObjects)}function Mw(e,t){try{let i=e,n=e.match(/```(?:json)?\s*([\s\S]*?)```/);if(n)i=n[1].trim();else{let a=e.match(/\{[\s\S]*\}/);a&&(i=a[0])}let r=JSON.parse(i);return r.mappings&&Array.isArray(r.mappings)?{mappingResult:r,rawResponse:e,parsed:!0}:{mappingResult:{mappings:t.map(a=>({game_object:a,action:"KEEP",status:"Analysis response missing mappings[]"}))},rawResponse:e,parsed:!1,parseError:"Missing mappings[] array"}}catch(i){return{mappingResult:{mappings:t.map(n=>({game_object:n,action:"KEEP",status:"Analysis response was not valid JSON"}))},rawResponse:e,parsed:!1,parseError:i!=null&&i.message?String(i.message):"JSON parse failed"}}}async function Fl(e,t,i={}){var r;let n=t.mappings.filter(a=>a.action==="GENERATE");if(n.length===0){console.log("[Pipeline] No assets to generate");return}console.log(`[Pipeline] Generating ${n.length} assets...`);for(let a=0;a<n.length;a++){let s=n[a];(r=i.onProgress)==null||r.call(i,a+1,n.length,s.game_object);try{let o=await Rw(e,s);s.output_dataUrl=o,s.status="Generated \u2713"}catch(o){console.error(`[Pipeline] Failed to generate ${s.game_object}:`,o),s.status="Failed \u2717"}}console.log("[Pipeline] Generation chain complete")}async function Rw(e,t){if(!t.generation_prompt)throw new Error("No generation prompt provided");let i=[];if(t.reference_asset&&e.manifest){let o=e.manifest.assets.find(l=>l.id===t.reference_asset);if(o){let l=e.assetFiles.get(o.file);if(l){let c=await Ot(l);c&&i.push({base64:c.base64,mimeType:c.mimeType})}}}if(e.flatDesignDataUrl){let o=Jh(e.flatDesignDataUrl);o&&i.push(o)}let n=Xh(t.game_object),r={prompt:t.generation_prompt,hasReference:i.length>0,brandDna:e.manifest.brand_dna,needsTransparency:n},a=Vh(r);console.log(`[Pipeline] Generating asset for ${t.game_object}... (transparency: ${n})`);let s=await Ui(e.apiKey,a,i,{aspectRatio:"1:1",model:"gemini-2.5-flash-image"});return n&&await $i(s)||s}function Jh(e){let[t,i]=e.split(","),n=t==null?void 0:t.match(/data:(.*?);base64/);return i&&n?{base64:i,mimeType:n[1]}:null}async function Qh(e,t){let i=e.assets,n=[];Array.isArray(i)?n=i:i&&typeof i=="object"?n=Object.entries(i).map(([r,a])=>({id:r,file:String(a),role:"visual element"})):n=[],e.assets=n;for(let r of n){let a=t.get(r.file);if(a){let s=await Ot(a);s&&(r.dataUrl=s.dataUrl)}}}var Ga=class{constructor(){this.root=null;this.currentTab="upload";this.uploadMethod="individual";this.uploadedJsons=new Map;this.normalizedManifest=null;this.flatDesignDataUrl=null;this.assetFiles=new Map;this.zipFile=null;this.mappingResult=null;this.analysisRawResponse=null;this.analysisParsedOk=null;this.analysisParseError=null;this.isAnalyzing=!1;this.isGenerating=!1}get manifest(){return this.normalizedManifest}render(){return`
|
|
568
597
|
<div class="scene-panel brand-vision-panel panel-accent-violet" data-panel="brand-vision">
|
|
569
598
|
<div class="scene-panel-header" data-panel-handle>
|
|
570
599
|
<div class="panel-title">
|
|
@@ -680,15 +709,15 @@ Generate the requested asset matching the brand style.${e.needsTransparency?" Ba
|
|
|
680
709
|
</div>
|
|
681
710
|
<div class="panel-resize-handle" data-panel-resize></div>
|
|
682
711
|
</div>
|
|
683
|
-
`}initialize(t,i){this.root=t.querySelector('[data-panel="brand-vision"]'),this.onClose=i,this.root&&(this.attachEventListeners(),this.setupResizeHandle())}attachEventListeners(){var i,n,r,a,s,o,l,c,d,u,p,f,m;if(!this.root)return;(i=this.root.querySelector("[data-panel-close]"))==null||i.addEventListener("click",()=>{if(this.onClose)this.onClose();else{let h="/dashboard";window.location.pathname!==h&&(window.location.href=h)}}),this.root.querySelectorAll("[data-vision-tab]").forEach(h=>{h.addEventListener("click",()=>{let g=h.dataset.visionTab;this.switchTab(g)})}),(n=this.root.querySelector("[data-vision-upload-method]"))==null||n.addEventListener("change",h=>{let g=h.target.value;this.switchUploadMethod(g)}),(r=this.root.querySelector("[data-vision-upload-manifest]"))==null||r.addEventListener("click",()=>{var h,g;(g=(h=this.root)==null?void 0:h.querySelector("[data-vision-manifest-input]"))==null||g.click()}),(a=this.root.querySelector("[data-vision-upload-zip]"))==null||a.addEventListener("click",()=>{var h,g;(g=(h=this.root)==null?void 0:h.querySelector("[data-vision-zip-input]"))==null||g.click()}),(s=this.root.querySelector("[data-vision-zip-input]"))==null||s.addEventListener("change",h=>{this.handleZipUpload(h)}),(o=this.root.querySelector("[data-vision-manifest-input]"))==null||o.addEventListener("change",h=>{this.handleManifestUpload(h)}),(l=this.root.querySelector("[data-vision-upload-assets]"))==null||l.addEventListener("click",()=>{var h,g;(g=(h=this.root)==null?void 0:h.querySelector("[data-vision-assets-input]"))==null||g.click()}),(c=this.root.querySelector("[data-vision-assets-input]"))==null||c.addEventListener("change",h=>{this.handleAssetsUpload(h)}),(d=this.root.querySelector("[data-vision-upload-flat]"))==null||d.addEventListener("click",()=>{var h,g;(g=(h=this.root)==null?void 0:h.querySelector("[data-vision-flat-input]"))==null||g.click()}),(u=this.root.querySelector("[data-vision-flat-input]"))==null||u.addEventListener("change",h=>{this.handleFlatDesignUpload(h)}),(p=this.root.querySelector("[data-vision-analyze]"))==null||p.addEventListener("click",()=>{this.runAnalysis()}),(f=this.root.querySelector("[data-vision-generate-all]"))==null||f.addEventListener("click",()=>{this.generateAllMissing()}),(m=this.root.querySelector("[data-vision-apply-all]"))==null||m.addEventListener("click",()=>{this.applyAll()});let t=this.root.querySelector("[data-vision-mappings]");t==null||t.addEventListener("click",h=>{let g=h.target;if(!g)return;let b=g.closest("[data-mapping-item]"),y=b==null?void 0:b.dataset.mappingItem;y&&(g.closest("[data-mapping-apply-one]")&&this.applyOne(y),g.closest("[data-mapping-save-one]")&&this.saveAndApplyOne(y),g.closest("[data-mapping-edit-one]")&&this.openEditorForOne(y),g.closest("[data-mapping-generate-one]")&&this.generateOne(y),g.closest("[data-mapping-copy-raw]")&&this.copyRawAnalysis())}),t==null||t.addEventListener("change",h=>{let g=h.target;if(!g||!this.mappingResult)return;let b=g.closest("[data-mapping-item]"),y=b==null?void 0:b.dataset.mappingItem;if(!y)return;let v=this.mappingResult.mappings.find(x=>x.game_object===y);v&&(g.matches("[data-mapping-action]")&&(v.action=String(g.value||"KEEP"),v.status="Edited",this.renderMappings()),g.matches("[data-mapping-brand-asset]")&&(v.brand_asset=String(g.value||""),v.status="Edited",this.renderMappings()))}),t==null||t.addEventListener("input",h=>{let g=h.target;if(!g||!this.mappingResult||!g.matches("[data-mapping-prompt]"))return;let b=g.closest("[data-mapping-item]"),y=b==null?void 0:b.dataset.mappingItem;if(!y)return;let v=this.mappingResult.mappings.find(x=>x.game_object===y);v&&(v.generation_prompt=String(g.value||""),v.status="Edited")})}switchTab(t){var i,n;this.root&&(this.currentTab=t,this.root.querySelectorAll("[data-vision-tab]").forEach(r=>r.classList.remove("active")),this.root.querySelectorAll("[data-vision-content]").forEach(r=>r.classList.remove("active")),(i=this.root.querySelector(`[data-vision-tab="${t}"]`))==null||i.classList.add("active"),(n=this.root.querySelector(`[data-vision-content="${t}"]`))==null||n.classList.add("active"))}switchUploadMethod(t){var i;this.root&&(this.uploadMethod=t,this.root.querySelectorAll("[data-vision-upload-section]").forEach(n=>{n.classList.remove("active")}),(i=this.root.querySelector(`[data-vision-upload-section="${t}"]`))==null||i.classList.add("active"))}async handleZipUpload(t){var r;let n=(r=t.target.files)==null?void 0:r[0];if(n){this.zipFile=n,this.setStatus("zip",`Selected: ${n.name} (${(n.size/1024/1024).toFixed(2)} MB)`);try{await this.processZipFile(n)}catch(a){console.error("[BrandVision] ZIP processing failed:",a),this.setStatus("zip",`Error: ${a instanceof Error?a.message:"Unknown error"}`)}}}async processZipFile(t){var s,o;let i=await
|
|
712
|
+
`}initialize(t,i){this.root=t.querySelector('[data-panel="brand-vision"]'),this.onClose=i,this.root&&(this.attachEventListeners(),this.setupResizeHandle())}attachEventListeners(){var i,n,r,a,s,o,l,c,d,u,p,f,m;if(!this.root)return;(i=this.root.querySelector("[data-panel-close]"))==null||i.addEventListener("click",()=>{if(this.onClose)this.onClose();else{let h="/dashboard";window.location.pathname!==h&&(window.location.href=h)}}),this.root.querySelectorAll("[data-vision-tab]").forEach(h=>{h.addEventListener("click",()=>{let g=h.dataset.visionTab;this.switchTab(g)})}),(n=this.root.querySelector("[data-vision-upload-method]"))==null||n.addEventListener("change",h=>{let g=h.target.value;this.switchUploadMethod(g)}),(r=this.root.querySelector("[data-vision-upload-manifest]"))==null||r.addEventListener("click",()=>{var h,g;(g=(h=this.root)==null?void 0:h.querySelector("[data-vision-manifest-input]"))==null||g.click()}),(a=this.root.querySelector("[data-vision-upload-zip]"))==null||a.addEventListener("click",()=>{var h,g;(g=(h=this.root)==null?void 0:h.querySelector("[data-vision-zip-input]"))==null||g.click()}),(s=this.root.querySelector("[data-vision-zip-input]"))==null||s.addEventListener("change",h=>{this.handleZipUpload(h)}),(o=this.root.querySelector("[data-vision-manifest-input]"))==null||o.addEventListener("change",h=>{this.handleManifestUpload(h)}),(l=this.root.querySelector("[data-vision-upload-assets]"))==null||l.addEventListener("click",()=>{var h,g;(g=(h=this.root)==null?void 0:h.querySelector("[data-vision-assets-input]"))==null||g.click()}),(c=this.root.querySelector("[data-vision-assets-input]"))==null||c.addEventListener("change",h=>{this.handleAssetsUpload(h)}),(d=this.root.querySelector("[data-vision-upload-flat]"))==null||d.addEventListener("click",()=>{var h,g;(g=(h=this.root)==null?void 0:h.querySelector("[data-vision-flat-input]"))==null||g.click()}),(u=this.root.querySelector("[data-vision-flat-input]"))==null||u.addEventListener("change",h=>{this.handleFlatDesignUpload(h)}),(p=this.root.querySelector("[data-vision-analyze]"))==null||p.addEventListener("click",()=>{this.runAnalysis()}),(f=this.root.querySelector("[data-vision-generate-all]"))==null||f.addEventListener("click",()=>{this.generateAllMissing()}),(m=this.root.querySelector("[data-vision-apply-all]"))==null||m.addEventListener("click",()=>{this.applyAll()});let t=this.root.querySelector("[data-vision-mappings]");t==null||t.addEventListener("click",h=>{let g=h.target;if(!g)return;let b=g.closest("[data-mapping-item]"),y=b==null?void 0:b.dataset.mappingItem;y&&(g.closest("[data-mapping-apply-one]")&&this.applyOne(y),g.closest("[data-mapping-save-one]")&&this.saveAndApplyOne(y),g.closest("[data-mapping-edit-one]")&&this.openEditorForOne(y),g.closest("[data-mapping-generate-one]")&&this.generateOne(y),g.closest("[data-mapping-copy-raw]")&&this.copyRawAnalysis())}),t==null||t.addEventListener("change",h=>{let g=h.target;if(!g||!this.mappingResult)return;let b=g.closest("[data-mapping-item]"),y=b==null?void 0:b.dataset.mappingItem;if(!y)return;let v=this.mappingResult.mappings.find(x=>x.game_object===y);v&&(g.matches("[data-mapping-action]")&&(v.action=String(g.value||"KEEP"),v.status="Edited",this.renderMappings()),g.matches("[data-mapping-brand-asset]")&&(v.brand_asset=String(g.value||""),v.status="Edited",this.renderMappings()))}),t==null||t.addEventListener("input",h=>{let g=h.target;if(!g||!this.mappingResult||!g.matches("[data-mapping-prompt]"))return;let b=g.closest("[data-mapping-item]"),y=b==null?void 0:b.dataset.mappingItem;if(!y)return;let v=this.mappingResult.mappings.find(x=>x.game_object===y);v&&(v.generation_prompt=String(g.value||""),v.status="Edited")})}switchTab(t){var i,n;this.root&&(this.currentTab=t,this.root.querySelectorAll("[data-vision-tab]").forEach(r=>r.classList.remove("active")),this.root.querySelectorAll("[data-vision-content]").forEach(r=>r.classList.remove("active")),(i=this.root.querySelector(`[data-vision-tab="${t}"]`))==null||i.classList.add("active"),(n=this.root.querySelector(`[data-vision-content="${t}"]`))==null||n.classList.add("active"))}switchUploadMethod(t){var i;this.root&&(this.uploadMethod=t,this.root.querySelectorAll("[data-vision-upload-section]").forEach(n=>{n.classList.remove("active")}),(i=this.root.querySelector(`[data-vision-upload-section="${t}"]`))==null||i.classList.add("active"))}async handleZipUpload(t){var r;let n=(r=t.target.files)==null?void 0:r[0];if(n){this.zipFile=n,this.setStatus("zip",`Selected: ${n.name} (${(n.size/1024/1024).toFixed(2)} MB)`);try{await this.processZipFile(n)}catch(a){console.error("[BrandVision] ZIP processing failed:",a),this.setStatus("zip",`Error: ${a instanceof Error?a.message:"Unknown error"}`)}}}async processZipFile(t){var s,o;let i=await eg.default.loadAsync(t),n=[],r=[];i.forEach((l,c)=>{let d=l.toLowerCase();d.endsWith(".json")?n.push({name:l,content:null}):d.startsWith("assets/")&&d.endsWith(".png")&&r.push({name:l,file:c})});for(let l of n)try{let c=await((s=i.file(l.name))==null?void 0:s.async("text"));c&&(l.content=JSON.parse(c))}catch(c){console.warn(`Failed to parse ${l.name}:`,c)}let a=new Map;for(let l of r)try{let c=await l.file.async("uint8array"),d=new Blob([c],{type:"image/png"}),u=l.name.split("/").pop()||l.name;console.log(`Processing ${u}, uint8array length: ${c.length}, blob size: ${d.size}`);let p;try{p=await this.blobToDataUrl(d)}catch(g){console.warn(`FileReader failed for ${u}, using fallback:`,g),p=`data:image/png;base64,${btoa(String.fromCharCode.apply(null,Array.from(c)))}`}if(console.log(`Data URL length: ${p.length}, starts with: ${p.substring(0,50)}...`),!p.startsWith("data:image/png;base64,")){console.warn(`Invalid data URL format for ${u}:`,p.substring(0,100));continue}let f=this.inferAssetCategory(u.replace(".png",""));console.log(`Saving ${u} to category: ${f}`);let h=await(await fetch("/api/library/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({category:f,filename:u,data:p,overwrite:!0})})).json();if(console.log(`Save result for ${u}:`,h),h.success){console.log(`\u2705 Saved PNG to library: ${u} (${f}) at ${h.path}`);let g=new File([d],u,{type:"image/png"});a.set(u,g)}else console.warn(`\u274C Failed to save ${u}:`,h.error)}catch(c){console.warn(`Failed to extract ${l.name}:`,c)}this.uploadedJsons.clear(),n.forEach(({name:l,content:c})=>{c&&this.uploadedJsons.set(l,c)}),this.assetFiles=a;try{this.normalizedManifest=Bl(Array.from(this.uploadedJsons.values()),{defaultBrandName:"Imported Brand"});let l=[];for(let[d,u]of a){let p=await this.fileToDataUrl(u);l.push({id:d.replace(".png",""),filename:d,dataUrl:p,category:this.inferAssetCategory(d.replace(".png",""))})}this.normalizedManifest&&(this.normalizedManifest.assets=l);let c=l.length;this.setStatus("zip",`\u2705 Processed: ${n.length} JSONs, ${c} PNGs
|
|
684
713
|
\u{1F3F7}\uFE0F Brand: ${((o=this.normalizedManifest)==null?void 0:o.brand_name)||"Imported Brand"}`),this.addAssetsToRegistry(l),this.refreshLibrary()}catch(l){console.error("[BrandVision] Failed to normalize ZIP manifest:",l),this.normalizedManifest=null,this.setStatus("zip","\u274C Failed to normalize manifest")}}async fileToDataUrl(t){return new Promise((i,n)=>{let r=new FileReader;r.onload=()=>i(r.result),r.onerror=n,r.readAsDataURL(t)})}async blobToDataUrl(t){return new Promise((i,n)=>{let r=new FileReader;r.onload=()=>{let a=r.result;console.log("FileReader result type:",typeof a,"length:",a.length),console.log("Data URL prefix:",a.substring(0,30)),i(a)},r.onerror=a=>{console.error("FileReader error:",a),n(a)},r.readAsDataURL(t)})}inferAssetCategory(t){let i=t.toLowerCase();return i.includes("background")||i.includes("bg")?"backgrounds":i.includes("ui")||i.includes("button")||i.includes("cta")||i.includes("logo")||i.includes("text")?"ui":i.includes("sparkle")||i.includes("effect")||i.includes("particle")?"effects":i.includes("bottle")||i.includes("product")||i.includes("item")?"products":"misc"}addAssetsToRegistry(t){let i=window.getEditableAssets;if(typeof i!="function")return;let n=i();if(!(n!=null&&n.libraryAssets))return;let r={};for(let a of t){let s=a.category||"misc";r[s]||(r[s]=[]),n.libraryAssets[s]||(n.libraryAssets[s]=[]),n.libraryAssets[s].some(l=>l.filename===a.filename)||(n.libraryAssets[s].unshift({filename:a.filename,displayName:a.id.replace(/_/g," ").replace(/\b\w/g,l=>l.toUpperCase())}),console.log(`[BrandVision] Added ${a.filename} to registry category ${s}`))}}refreshLibrary(){let t=window.refreshAssetLibrary;typeof t=="function"&&t();let i=window.reRenderAssetLibrary;typeof i=="function"&&i()}async handleManifestUpload(t){var a;let i=t.target,n=i.files;if(!n||n.length===0)return;this.uploadedJsons.clear(),this.normalizedManifest=null,this.mappingResult=null;let r="";for(let s of Array.from(n))try{let o=await s.text(),l=JSON.parse(o);this.uploadedJsons.set(s.name,l),l.layers?r+=`\u2705 Layers: ${s.name}
|
|
685
714
|
`:l.brand_dna||l.colors?r+=`\u2705 Brand: ${s.name}
|
|
686
715
|
`:r+=`\u2705 Loaded: ${s.name}
|
|
687
716
|
`}catch{r+=`\u274C Error in ${s.name}
|
|
688
|
-
`}try{this.normalizedManifest=
|
|
717
|
+
`}try{this.normalizedManifest=Bl(Array.from(this.uploadedJsons.values()),{defaultBrandName:"Imported Brand"});let s=Array.isArray((a=this.normalizedManifest)==null?void 0:a.assets)?this.normalizedManifest.assets.length:0;r+=`
|
|
689
718
|
\u{1F4E6} Normalized manifest: ${s} assets`,r+=`
|
|
690
719
|
\u{1F3F7}\uFE0F Brand: ${this.normalizedManifest.brand_name||"Imported Brand"}`,console.info("[BrandVision] Normalized manifest",{jsonFiles:Array.from(this.uploadedJsons.keys()),assetsType:typeof this.normalizedManifest.assets,assetsCount:s,brandName:this.normalizedManifest.brand_name})}catch(s){console.error("[BrandVision] Failed to normalize manifest:",s),this.normalizedManifest=null,r+=`
|
|
691
|
-
\u274C Failed to normalize manifest`}i.value="",this.setStatus("manifest",r.trim())}async handleAssetsUpload(t){let n=t.target.files;if(!(!n||n.length===0)){for(let r of Array.from(n))this.assetFiles.set(r.name,r);this.setStatus("assets",`${this.assetFiles.size} files loaded`)}}async handleFlatDesignUpload(t){var a,s;let n=(a=t.target.files)==null?void 0:a[0];if(!n)return;let r=await Ot(n);if(r){this.flatDesignDataUrl=r.dataUrl,this.setStatus("flat",n.name);let o=(s=this.root)==null?void 0:s.querySelector("[data-vision-flat-preview]");o&&(o.innerHTML=`<img src="${r.dataUrl}" style="max-width:100%;max-height:100px;border-radius:4px;">`)}}async runAnalysis(){var n,r,a,s,o,l,c;if(this.isAnalyzing)return;let t=(a=(r=(n=this.root)==null?void 0:n.querySelector("[data-vision-api-key]"))==null?void 0:r.value)==null?void 0:a.trim();if(!t){this.setStatus("upload","Missing API key");return}let i=this.manifest;if(!i){this.setStatus("upload","Upload manifest first");return}Array.isArray(i.assets)||console.warn("[BrandVision] Manifest assets not array at analysis time; continuing with normalization fallback.",{assets:i.assets}),this.isAnalyzing=!0,this.setStatus("upload","Analyzing...");try{await
|
|
720
|
+
\u274C Failed to normalize manifest`}i.value="",this.setStatus("manifest",r.trim())}async handleAssetsUpload(t){let n=t.target.files;if(!(!n||n.length===0)){for(let r of Array.from(n))this.assetFiles.set(r.name,r);this.setStatus("assets",`${this.assetFiles.size} files loaded`)}}async handleFlatDesignUpload(t){var a,s;let n=(a=t.target.files)==null?void 0:a[0];if(!n)return;let r=await Ot(n);if(r){this.flatDesignDataUrl=r.dataUrl,this.setStatus("flat",n.name);let o=(s=this.root)==null?void 0:s.querySelector("[data-vision-flat-preview]");o&&(o.innerHTML=`<img src="${r.dataUrl}" style="max-width:100%;max-height:100px;border-radius:4px;">`)}}async runAnalysis(){var n,r,a,s,o,l,c;if(this.isAnalyzing)return;let t=(a=(r=(n=this.root)==null?void 0:n.querySelector("[data-vision-api-key]"))==null?void 0:r.value)==null?void 0:a.trim();if(!t){this.setStatus("upload","Missing API key");return}let i=this.manifest;if(!i){this.setStatus("upload","Upload manifest first");return}Array.isArray(i.assets)||console.warn("[BrandVision] Manifest assets not array at analysis time; continuing with normalization fallback.",{assets:i.assets}),this.isAnalyzing=!0,this.setStatus("upload","Analyzing...");try{await Qh(i,this.assetFiles);let d={apiKey:t,manifest:i,flatDesignDataUrl:this.flatDesignDataUrl,assetFiles:this.assetFiles,gameObjects:this.getGameObjects(),gamePrompt:await this.getGamePrompt()},u=await Zh(d);this.mappingResult=u.mappingResult,this.analysisRawResponse=u.rawResponse,this.analysisParsedOk=u.parsed,this.analysisParseError=(s=u.parseError)!=null?s:null,this.renderMappings(),u.parsed?(this.setStatus("upload","Analysis complete"),this.setStatus("mapping",`${(c=(l=(o=this.mappingResult)==null?void 0:o.mappings)==null?void 0:l.length)!=null?c:0} objects mapped`)):(this.setStatus("upload","Analysis response was not JSON"),this.setStatus("mapping",`Parse failed: ${u.parseError||"Unknown error"}`)),this.switchTab("mapping")}catch(d){console.error("[BrandVision] Analysis failed:",d),this.setStatus("upload","Analysis failed")}finally{this.isAnalyzing=!1}}async generateAllMissing(){var i,n,r;if(this.isGenerating||!this.mappingResult||!this.manifest)return;let t=(r=(n=(i=this.root)==null?void 0:i.querySelector("[data-vision-api-key]"))==null?void 0:n.value)==null?void 0:r.trim();if(!t){this.setStatus("apply","Missing API key");return}this.isGenerating=!0;try{let a={apiKey:t,manifest:this.manifest,flatDesignDataUrl:this.flatDesignDataUrl,assetFiles:this.assetFiles,gameObjects:this.getGameObjects(),gamePrompt:await this.getGamePrompt()};await Fl(a,this.mappingResult,{onProgress:(s,o,l)=>{this.setStatus("apply",`Generating ${s}/${o}: ${l}`),this.renderMappings()}}),this.setStatus("apply","Generation complete"),this.renderMappings()}catch(a){console.error("[BrandVision] Generation failed:",a),this.setStatus("apply","Generation failed")}finally{this.isGenerating=!1}}renderMappings(){var o;let t=(o=this.root)==null?void 0:o.querySelector("[data-vision-mappings]");if(!t||!this.mappingResult)return;let i=this.manifest,n=this.getEngineAssets(),r=!!this.analysisRawResponse&&this.analysisParsedOk===!1,a=((i==null?void 0:i.assets)||[]).map(l=>`<option value="${l.id}">${l.id}</option>`).join(""),s=r?`
|
|
692
721
|
<div class="vision-raw-block">
|
|
693
722
|
<div class="inspector-text-sm" style="white-space: pre-wrap;">
|
|
694
723
|
\u26A0\uFE0F AI response was not valid JSON (${this.analysisParseError||"unknown error"}).
|
|
@@ -750,8 +779,8 @@ Generate the requested asset matching the brand style.${e.needsTransparency?" Ba
|
|
|
750
779
|
</div>
|
|
751
780
|
</div>
|
|
752
781
|
`}).join("")}
|
|
753
|
-
`}async applyAll(){let t=await this.stageOverridesFromMappings({saveToLibrary:!1});this.setStatus("apply",t>0?`Staged ${t} asset overrides`:"No assets to stage")}getEngineAssets(){let t=window.getEditableEngineConfig;if(typeof t!="function")return{};let i=t();return i!=null&&i.assets&&typeof i.assets=="object"?i.assets:{}}getPreviewValueForMapping(t){if(!this.mappingResult||!this.manifest)return{value:null,source:"none"};let i=this.mappingResult.mappings.find(n=>n.game_object===t);if(!i)return{value:null,source:"none"};if(i.action==="GENERATE"&&i.output_dataUrl)return{value:i.output_dataUrl,source:"generated"};if(i.action==="APPLY"&&i.brand_asset){let n=this.manifest.assets.find(r=>r.id===i.brand_asset);if(n!=null&&n.dataUrl)return{value:n.dataUrl,source:"brand"}}return{value:null,source:"none"}}async stageOverridesFromMappings(t){if(!this.mappingResult)return 0;let i=0;for(let n of this.mappingResult.mappings){if(n.action==="KEEP"||n.action==="APPLY"&&!n.brand_asset||n.action==="GENERATE"&&!n.output_dataUrl)continue;let r=n.game_object,a=this.getPreviewValueForMapping(r);if(!a.value)continue;let s=t.saveToLibrary?await this.saveToLibraryAndReturnPath(r,a.value):a.value;s&&(await this.stageEngineAssetOverride(r,s),n.status=t.saveToLibrary?"Saved + staged \u2713":"Staged \u2713",i++)}return this.renderMappings(),i}async applyOne(t){var r;let i=this.getPreviewValueForMapping(t);if(!i.value){this.setStatus("apply",`No output to apply for ${t}`);return}await this.stageEngineAssetOverride(t,i.value);let n=(r=this.mappingResult)==null?void 0:r.mappings.find(a=>a.game_object===t);n&&(n.status="Staged \u2713"),this.renderMappings(),this.setStatus("apply",`Staged override for ${t}`)}async saveAndApplyOne(t){var a;let i=this.getPreviewValueForMapping(t);if(!i.value){this.setStatus("apply",`No output to save for ${t}`);return}let n=await this.saveToLibraryAndReturnPath(t,i.value);if(!n){this.setStatus("apply",`Save failed for ${t}`);return}await this.stageEngineAssetOverride(t,n);let r=(a=this.mappingResult)==null?void 0:a.mappings.find(s=>s.game_object===t);r&&(r.status="Saved + staged \u2713"),this.renderMappings(),this.setStatus("apply",`Saved + staged ${t}`)}openEditorForOne(t){if(!this.mappingResult)return;let i=this.mappingResult.mappings.find(s=>s.game_object===t);if(!i)return;let n=this.getPreviewValueForMapping(t),r=window.__openAiEditor;if(typeof r!="function"){this.setStatus("apply","AI editor not available");return}let a=i.action==="GENERATE"?i.generation_prompt:void 0;r(t,a,n.value||void 0,{path:`assets.${t}`})}async generateOne(t){var r,a,s;if(!this.mappingResult||this.isGenerating)return;let i=this.mappingResult.mappings.find(o=>o.game_object===t);if(!i)return;if(i.action="GENERATE",!i.generation_prompt){i.status="Missing prompt",this.renderMappings();return}let n=(s=(a=(r=this.root)==null?void 0:r.querySelector("[data-vision-api-key]"))==null?void 0:a.value)==null?void 0:s.trim();if(!n||!this.manifest){this.setStatus("apply","Missing API key or manifest");return}this.isGenerating=!0,i.status="Generating\u2026",this.renderMappings();try{let o={apiKey:n,manifest:this.manifest,flatDesignDataUrl:this.flatDesignDataUrl,assetFiles:this.assetFiles,gameObjects:this.getGameObjects(),gamePrompt:await this.getGamePrompt()};await
|
|
754
|
-
`)}var
|
|
782
|
+
`}async applyAll(){let t=await this.stageOverridesFromMappings({saveToLibrary:!1});this.setStatus("apply",t>0?`Staged ${t} asset overrides`:"No assets to stage")}getEngineAssets(){let t=window.getEditableEngineConfig;if(typeof t!="function")return{};let i=t();return i!=null&&i.assets&&typeof i.assets=="object"?i.assets:{}}getPreviewValueForMapping(t){if(!this.mappingResult||!this.manifest)return{value:null,source:"none"};let i=this.mappingResult.mappings.find(n=>n.game_object===t);if(!i)return{value:null,source:"none"};if(i.action==="GENERATE"&&i.output_dataUrl)return{value:i.output_dataUrl,source:"generated"};if(i.action==="APPLY"&&i.brand_asset){let n=this.manifest.assets.find(r=>r.id===i.brand_asset);if(n!=null&&n.dataUrl)return{value:n.dataUrl,source:"brand"}}return{value:null,source:"none"}}async stageOverridesFromMappings(t){if(!this.mappingResult)return 0;let i=0;for(let n of this.mappingResult.mappings){if(n.action==="KEEP"||n.action==="APPLY"&&!n.brand_asset||n.action==="GENERATE"&&!n.output_dataUrl)continue;let r=n.game_object,a=this.getPreviewValueForMapping(r);if(!a.value)continue;let s=t.saveToLibrary?await this.saveToLibraryAndReturnPath(r,a.value):a.value;s&&(await this.stageEngineAssetOverride(r,s),n.status=t.saveToLibrary?"Saved + staged \u2713":"Staged \u2713",i++)}return this.renderMappings(),i}async applyOne(t){var r;let i=this.getPreviewValueForMapping(t);if(!i.value){this.setStatus("apply",`No output to apply for ${t}`);return}await this.stageEngineAssetOverride(t,i.value);let n=(r=this.mappingResult)==null?void 0:r.mappings.find(a=>a.game_object===t);n&&(n.status="Staged \u2713"),this.renderMappings(),this.setStatus("apply",`Staged override for ${t}`)}async saveAndApplyOne(t){var a;let i=this.getPreviewValueForMapping(t);if(!i.value){this.setStatus("apply",`No output to save for ${t}`);return}let n=await this.saveToLibraryAndReturnPath(t,i.value);if(!n){this.setStatus("apply",`Save failed for ${t}`);return}await this.stageEngineAssetOverride(t,n);let r=(a=this.mappingResult)==null?void 0:a.mappings.find(s=>s.game_object===t);r&&(r.status="Saved + staged \u2713"),this.renderMappings(),this.setStatus("apply",`Saved + staged ${t}`)}openEditorForOne(t){if(!this.mappingResult)return;let i=this.mappingResult.mappings.find(s=>s.game_object===t);if(!i)return;let n=this.getPreviewValueForMapping(t),r=window.__openAiEditor;if(typeof r!="function"){this.setStatus("apply","AI editor not available");return}let a=i.action==="GENERATE"?i.generation_prompt:void 0;r(t,a,n.value||void 0,{path:`assets.${t}`})}async generateOne(t){var r,a,s;if(!this.mappingResult||this.isGenerating)return;let i=this.mappingResult.mappings.find(o=>o.game_object===t);if(!i)return;if(i.action="GENERATE",!i.generation_prompt){i.status="Missing prompt",this.renderMappings();return}let n=(s=(a=(r=this.root)==null?void 0:r.querySelector("[data-vision-api-key]"))==null?void 0:a.value)==null?void 0:s.trim();if(!n||!this.manifest){this.setStatus("apply","Missing API key or manifest");return}this.isGenerating=!0,i.status="Generating\u2026",this.renderMappings();try{let o={apiKey:n,manifest:this.manifest,flatDesignDataUrl:this.flatDesignDataUrl,assetFiles:this.assetFiles,gameObjects:this.getGameObjects(),gamePrompt:await this.getGamePrompt()};await Fl(o,{mappings:[i]}),i.status=i.output_dataUrl?"Generated \u2713":i.status||"Done"}catch(o){console.error("[BrandVision] generateOne failed:",o),i.status="Failed \u2717"}finally{this.isGenerating=!1,this.renderMappings()}}async stageEngineAssetOverride(t,i){let{applyConfigOverride:n}=await Promise.resolve().then(()=>(Te(),Or));n({path:`assets.${t}`,value:i},{silent:!0});let r=window.applyEditableEngineConfig;typeof r=="function"&&r({assets:{[t]:i}})}async saveToLibraryAndReturnPath(t,i){if(!/^(data:|blob:)/.test(i))return i;let n=this.inferCategoryFromAssetKey(t),r=`${t.replace(/[^a-zA-Z0-9_-]/g,"_")}_vision_${Date.now()}.png`;try{let s=await(await fetch("/api/library/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({category:n,filename:r,data:i,overwrite:!0})})).json();if(!(s!=null&&s.success)||!(s!=null&&s.path))return console.error("[BrandVision] Save to library failed:",(s==null?void 0:s.error)||s),null;let o=window.addAssetToRegistry;typeof o=="function"&&o(n,r);let l=window.refreshAssetLibrary;return typeof l=="function"&&l(),String(s.path)}catch(a){return console.error("[BrandVision] Save to library error:",a),null}}inferCategoryFromAssetKey(t){let i=window.getEditableAssets;if(typeof i=="function"){let r=i();if(r!=null&&r.slots&&Array.isArray(r.slots)){let s=r.slots.find(o=>o.slotId===t||o.currentAsset===t);if(s!=null&&s.category)return String(s.category)}let a=r==null?void 0:r.categories;if(Array.isArray(a)&&a.length>0){let s=t.toLowerCase(),o=l=>a.find(c=>c.toLowerCase().includes(l));return s.includes("bg")||s.includes("background")?o("background")||a[0]:(s.includes("cta")||s.includes("button")||s.includes("ui")||s.includes("logo"))&&o("ui")||a[0]}}let n=t.toLowerCase();return n.includes("bg")||n.includes("background")?"backgrounds":n.includes("cta")||n.includes("button")||n.includes("ui")||n.includes("logo")?"ui":"misc"}async copyRawAnalysis(){if(this.analysisRawResponse)try{await navigator.clipboard.writeText(this.analysisRawResponse),this.setStatus("mapping","Copied raw analysis to clipboard")}catch{this.setStatus("mapping","Clipboard not available")}}setStatus(t,i){var a;let n={manifest:"[data-vision-manifest-status]",assets:"[data-vision-assets-status]",flat:"[data-vision-flat-status]",zip:"[data-vision-zip-status]",upload:"[data-vision-upload-status]",mapping:"[data-vision-mapping-status]",apply:"[data-vision-apply-status]"},r=(a=this.root)==null?void 0:a.querySelector(n[t]);r&&(r.textContent=i)}getGameObjects(){let t=window.getEditableObjectList;return typeof t=="function"?t():[]}async getGamePrompt(){try{let t=await fetch("./configs/engine/game.prompt.json");if(t.ok)return(await t.json()).game_prompt||""}catch{}return""}setupResizeHandle(){if(!this.root)return;let t=this.root.querySelector("[data-panel-resize]");t&&t.addEventListener("pointerdown",i=>{let n=i.clientX,r=this.root.getBoundingClientRect().width,a=o=>{let l=Math.max(300,r+(o.clientX-n));this.root.style.width=`${l}px`},s=()=>{window.removeEventListener("pointermove",a),window.removeEventListener("pointerup",s)};window.addEventListener("pointermove",a),window.addEventListener("pointerup",s)})}refresh(){}};function tg(e,t={}){let{includeReference:i=!1,includeMagenta:n=!0,changeLevel:r=5}=t;return[`TASK: ${e}`,`CHANGE_STRENGTH: ${r}/10`,i?"REFERENCE: provided":"REFERENCE: none",n?"BACKGROUND: solid magenta #FF00FF (if possible)":""].filter(Boolean).join(`
|
|
783
|
+
`)}var Pw=["background_color","text_color","cta_background","cta_text","warning_text_color","endgame_title_color","endgame_subtitle_color","endgame_cta_text_color","endgame_cta_hint_color","endgame_footer_color"],jw=["cta_hint","cta_label_end"],ig=[{key:"warning_text",objectId:"label.warning",property:"ui.text"},{key:"endgame_title",objectId:"ui.endgame.title",property:"ui.text"},{key:"endgame_subtitle",objectId:"ui.endgame.subtitle",property:"ui.text"},{key:"endgame_cta_text",objectId:"ui.endgame.cta",property:"ui.text"},{key:"endgame_cta_hint_text",objectId:"ui.endgame.cta.hint",property:"ui.text"},{key:"endgame_footer_text",objectId:"ui.endgame.footer",property:"ui.text"}],Dw=["brand.primary","brand.heading","brand.body","brand.warning"],Wa=class{constructor(){this.root=null;this.assetsContainer=null;this.colorsContainer=null;this.fontsContainer=null;this.textsContainer=null;this.audioContainer=null;this.options=null;this.previewModal=null;this.autoApplyTimer=null;this.activePreviewKey=null;this.activePreviewValue=null;this.activePreviewFileInput=null;this.retryTimer=null;this.aiModal=null;this.aiTargetKey=null;this.aiKeyInput=null;this.aiPromptInput=null;this.aiStrengthInput=null;this.aiStrengthValue=null;this.aiModelSelect=null;this.aiModalSubtitle=null;this.aiGalleryToggle=null;this.aiGalleryEl=null;this.aiGalleryGrid=null;this.aiReferenceInput=null;this.aiReferenceName=null;this.aiReferenceFile=null;this.aiRemoveBgToggle=null;this.aiUseOutputToggle=null;this.aiGenerateBtn=null;this.aiApplyBtn=null;this.aiSaveLibraryBtn=null;this.aiCropBtn=null;this.aiDownloadBtn=null;this.aiPreviewImg=null;this.aiStatusEl=null;this.aiOutputDataUrl=null;this.aiBaseDataUrl=null;this.aiBaseValue=null;this.aiOutputKey=null;this.aiContext=null;this.aiBgToleranceInput=null;this.aiBgToleranceValue=null;this.aiRawOutputDataUrl=null;this.aiLoadingEl=null}render(){return`
|
|
755
784
|
<div class="scene-panel customize-panel panel-accent-blue" data-panel="customize-settings">
|
|
756
785
|
<div class="scene-panel-header" data-panel-handle>
|
|
757
786
|
<div class="panel-title">
|
|
@@ -819,7 +848,7 @@ Generate the requested asset matching the brand style.${e.needsTransparency?" Ba
|
|
|
819
848
|
<path d="M12 3l4 4h-3v6h-2V7H8l4-4z" />
|
|
820
849
|
<path d="M5 14v4h14v-4h2v6H3v-6h2z" />
|
|
821
850
|
</svg>
|
|
822
|
-
`;let u=document.createElement("input");u.type="file",u.accept="image/*,audio/*,application/json",u.className="customize-file",u.addEventListener("change",()=>{var m;let f=(m=u.files)==null?void 0:m[0];f&&this.handleAssetUpload(f,o,n)}),d.addEventListener("click",()=>u.click()),l.appendChild(c),l.appendChild(d),l.appendChild(u),a.appendChild(s),a.appendChild(o),a.appendChild(l),(p=this.assetsContainer)==null||p.appendChild(a)})}renderColors(t){this.colorsContainer&&(this.colorsContainer.innerHTML="",
|
|
851
|
+
`;let u=document.createElement("input");u.type="file",u.accept="image/*,audio/*,application/json",u.className="customize-file",u.addEventListener("change",()=>{var m;let f=(m=u.files)==null?void 0:m[0];f&&this.handleAssetUpload(f,o,n)}),d.addEventListener("click",()=>u.click()),l.appendChild(c),l.appendChild(d),l.appendChild(u),a.appendChild(s),a.appendChild(o),a.appendChild(l),(p=this.assetsContainer)==null||p.appendChild(a)})}renderColors(t){this.colorsContainer&&(this.colorsContainer.innerHTML="",Pw.forEach(i=>{var l,c,d;let n=(l=t==null?void 0:t[i])!=null?l:"#ffffff";if(i.includes("_text_color")||i.includes("_color")){let p={warning_text_color:{objectId:"label.warning",property:"render.tint"},endgame_title_color:{objectId:"ui.endgame.title",property:"render.tint"},endgame_subtitle_color:{objectId:"ui.endgame.subtitle",property:"render.tint"},endgame_cta_text_color:{objectId:"ui.endgame.cta",property:"render.tint"},endgame_cta_hint_color:{objectId:"ui.endgame.cta.hint",property:"render.tint"},endgame_footer_color:{objectId:"ui.endgame.footer",property:"render.tint"}}[i];p&&(n=(c=this.getObjectPropertyValue(p.objectId,p.property))!=null?c:"#ffffff")}let r=document.createElement("label");r.className="customize-color-field";let a=document.createElement("span");a.textContent=i.replace(/_/g," ");let s=document.createElement("input");s.type="color",s.value=n,s.dataset.colorKey=i;let o=document.createElement("input");o.type="text",o.value=n,o.className="customize-color-text",o.dataset.colorTextKey=i,s.addEventListener("input",()=>{o.value=s.value}),o.addEventListener("input",()=>{/^#([0-9a-fA-F]{6})$/.test(o.value)&&(s.value=o.value)}),r.appendChild(a),r.appendChild(s),r.appendChild(o),(d=this.colorsContainer)==null||d.appendChild(r)}))}renderFonts(t){this.fontsContainer&&(this.fontsContainer.innerHTML="",Dw.forEach(i=>{var s,o;let n=document.createElement("div");n.className="customize-row";let r=document.createElement("span");r.className="customize-key",r.textContent=i;let a=document.createElement("input");a.type="text",a.value=(s=t==null?void 0:t[i])!=null?s:i,a.className="customize-input",a.dataset.fontKey=i,n.appendChild(r),n.appendChild(a),(o=this.fontsContainer)==null||o.appendChild(n)}))}renderTexts(t){this.textsContainer&&(this.textsContainer.innerHTML="",jw.forEach(i=>{var s,o;let n=document.createElement("div");n.className="customize-row";let r=document.createElement("span");r.className="customize-key",r.textContent=i;let a=document.createElement("input");a.type="text",a.value=(s=this.readUiValue(t,i))!=null?s:"",a.className="customize-input",a.dataset.textKey=i,n.appendChild(r),n.appendChild(a),(o=this.textsContainer)==null||o.appendChild(n)}),ig.forEach(({key:i,objectId:n})=>{var o,l;let r=document.createElement("div");r.className="customize-row";let a=document.createElement("span");a.className="customize-key",a.textContent=i;let s=document.createElement("input");s.type="text",s.value=(o=this.getObjectTextValue(n))!=null?o:"",s.className="customize-input",s.dataset.objectTextKey=i,r.appendChild(a),r.appendChild(s),(l=this.textsContainer)==null||l.appendChild(r)}))}renderAudio(t){if(!this.audioContainer)return;this.audioContainer.innerHTML="",["background_file","background_volume","click_file","click_volume","success_file","success_volume","complete_file","complete_volume"].forEach(n=>{var o,l;let r=document.createElement("div");r.className="customize-row";let a=document.createElement("span");a.className="customize-key",a.textContent=n.replace("_"," ");let s=document.createElement("input");s.type=n.includes("volume")?"number":"text",s.min="0",s.max="1",s.step="0.1",s.value=String((o=t==null?void 0:t[n])!=null?o:""),s.className="customize-input",s.dataset.audioKey=n,n.includes("file")&&(s.placeholder="audio file path"),r.appendChild(a),r.appendChild(s),(l=this.audioContainer)==null||l.appendChild(r)})}readUiValue(t,i){if(i.includes(".")){let r=i.split("."),a=t;for(let s of r){if(a==null)return null;a=a[s]}return typeof a=="string"?a:null}let n=t==null?void 0:t[i];return typeof n=="string"?n:null}getObjectTextValue(t){var r,a;let i=window.getEditableObjectConfig;if(typeof i!="function")return null;let n=i(t);return(a=(r=n==null?void 0:n.ui)==null?void 0:r.text)!=null?a:null}getObjectPropertyValue(t,i){let n=window.getEditableObjectConfig;if(typeof n!="function")return null;let r=n(t);if(!r)return null;let a=i.split("."),s=r;for(let o of a){if(s==null)return null;s=s[o]}return typeof s=="string"?s:null}handleApply(){this.handleApplyWithSource("manual")}handleApplyWithSource(t){if(console.log(`[CustomizePanel] handleApplyWithSource called with source: ${t}`),!this.root||!this.options)return;let i={};this.root.querySelectorAll("[data-asset-key]").forEach(o=>{let l=o;l.dataset.assetKey&&(i[l.dataset.assetKey]=l.value)}),console.log("[CustomizePanel] Assets being applied:",Object.keys(i).length,"total"),console.log("[CustomizePanel] Asset values:",i);let n={};this.root.querySelectorAll("[data-color-text-key]").forEach(o=>{let l=o,c=l.dataset.colorTextKey;c&&(c.includes("_text_color")||c.includes("_color")?this.applyTextColorToObject(c,l.value):n[c]=l.value)});let r={};this.root.querySelectorAll("[data-font-key]").forEach(o=>{let l=o,c=l.dataset.fontKey;c&&(r[c]=l.value)});let a={};this.root.querySelectorAll("[data-text-key]").forEach(o=>{let l=o,c=l.dataset.textKey;c&&(a[c]=l.value)});let s={};this.root.querySelectorAll("[data-audio-key]").forEach(o=>{let l=o,c=l.dataset.audioKey;if(c)if(c.includes("volume")){let d=parseFloat(l.value);s[c]=isNaN(d)?0:d}else s[c]=l.value}),this.root.querySelectorAll("[data-object-text-key]").forEach(o=>{let l=o,c=l.dataset.objectTextKey;if(!c)return;let d=ig.find(u=>u.key===c);d&&this.applyObjectPropertyValue(d.objectId,d.property,l.value)}),console.log("[CustomizePanel] Calling onApply callback to restart game with source:",t),this.options.onApply({assets:i,runtime:{theme:n,ui:a,fonts:r,audio:s}},{source:t})}setupAiPanel(){}setAiStatus(t){this.aiStatusEl&&(this.aiStatusEl.textContent=t)}getSelectedAssetKey(){return this.aiTargetKey}getSelectedAssetInput(){let t=this.getSelectedAssetKey();return!this.root||!t?null:this.root.querySelector(`input[data-asset-key="${t}"]`)}async getImageDataFromAsset(t){let i=this.resolveAssetUrls(t);console.log("[CustomizePanel] Resolving asset urls for AI:",t,i);for(let n of i)try{let r=await Ua(n);if(r)return console.log("[CustomizePanel] Successfully fetched image data for AI"),{input:{base64:r.base64,mimeType:r.mimeType},dataUrl:r.dataUrl,width:r.width,height:r.height}}catch(r){console.warn("[CustomizePanel] Failed to fetch image data from:",n,r)}return console.error("[CustomizePanel] Could not load image data for AI from any URL"),null}async updateAiBasePreview(t){var r,a,s;let i=(t==null?void 0:t.trim())||"";if(!i){let o=this.getSelectedAssetInput();i=(a=(r=o==null?void 0:o.value)==null?void 0:r.trim())!=null?a:""}if(console.log("[CustomizePanel] updateAiBasePreview using value:",i),!i){this.aiBaseDataUrl=null,this.updateAiPreview();return}let n=await this.getImageDataFromAsset(i);this.aiBaseDataUrl=(s=n==null?void 0:n.dataUrl)!=null?s:null,this.updateAiPreview()}updateAiPreview(){if(!this.aiPreviewImg)return;let t=this.aiOutputDataUrl||this.aiBaseDataUrl||"";if(!t){this.aiPreviewImg.removeAttribute("src");return}this.aiPreviewImg.src=t}updateAiModalPreview(t,i){if(!t)return;let n=i!=null?i:this.activePreviewKey;if(!n||!this.aiOutputDataUrl||this.aiOutputKey!==n){t.classList.add("hidden");return}let r=t.querySelector(".asset-preview-ai-image");r&&(r.src=this.aiOutputDataUrl),t.classList.remove("hidden")}setAiLoading(t){this.aiLoadingEl&&this.aiLoadingEl.classList.toggle("active",t),this.aiGenerateBtn&&(this.aiGenerateBtn.disabled=t)}toggleAiGallery(){if(!this.aiGalleryEl||!this.aiGalleryToggle)return;let t=this.aiGalleryEl.classList.toggle("hidden");this.aiGalleryToggle.textContent=t?"Gallery":"Hide Gallery",t||this.renderAiGallery()}renderAiGallery(){if(!this.aiGalleryGrid)return;let t=this.getAiGalleryEntries();if(!t.length){this.aiGalleryGrid.innerHTML='<div class="ai-gallery-empty">No image assets found.</div>';return}this.aiGalleryGrid.innerHTML="",t.forEach(({key:i,value:n})=>{var l;let r=document.createElement("button");r.type="button",r.className="ai-gallery-item",i===this.aiTargetKey&&r.classList.add("active");let a=document.createElement("img");a.className="ai-gallery-thumb",a.alt=i;let s=this.resolveAssetUrls(n);s[0]&&(a.src=s[0]);let o=document.createElement("span");o.className="ai-gallery-label",o.textContent=i,r.appendChild(a),r.appendChild(o),r.addEventListener("click",()=>this.selectAiGalleryAsset(i)),(l=this.aiGalleryGrid)==null||l.appendChild(r)})}getAiGalleryEntries(){if(!this.root)return[];let t=[];return this.root.querySelectorAll("[data-asset-key]").forEach(i=>{var s,o;let n=i,r=n.dataset.assetKey,a=(o=(s=n.value)==null?void 0:s.trim())!=null?o:"";!r||!a||this.isAiGalleryImage(a)&&t.push({key:r,value:a})}),t}isAiGalleryImage(t){let i=t.trim();if(!i)return!1;if(/^(data:image|blob:)/.test(i))return!0;let n=i.split("?")[0].toLowerCase();return![".mp3",".wav",".ogg",".json"].some(r=>n.endsWith(r))}selectAiGalleryAsset(t){this.aiTargetKey!==t&&(this.aiTargetKey=t,this.aiOutputDataUrl=null,this.aiOutputKey=null,this.aiReferenceFile=null,this.aiBaseDataUrl=null,this.aiReferenceInput&&(this.aiReferenceInput.value=""),this.aiReferenceName&&(this.aiReferenceName.textContent="Optional"),this.aiModalSubtitle&&(this.aiModalSubtitle.textContent=t),this.setAiOutputButtonsEnabled(!1),this.updateAiBasePreview(),this.updateAiPreview(),this.renderAiGallery())}openAiModal(t,i,n){var o,l,c,d,u,p,f,m,h,g;this.closeAiModal(),this.aiTargetKey=t,this.aiBaseValue=i||null,this.aiContext=n||null,this.aiOutputDataUrl=null,this.aiOutputKey=null,this.aiReferenceFile=null,this.aiBaseDataUrl=null;let r=document.createElement("div");r.className="ai-modal",r.innerHTML=`
|
|
823
852
|
<div class="ai-modal-card">
|
|
824
853
|
<div class="ai-modal-header">
|
|
825
854
|
<div>
|
|
@@ -890,7 +919,7 @@ Generate the requested asset matching the brand style.${e.needsTransparency?" Ba
|
|
|
890
919
|
</div>
|
|
891
920
|
</div>
|
|
892
921
|
</div>
|
|
893
|
-
`;let a=r.querySelector(".ai-modal-close");a==null||a.addEventListener("click",()=>this.closeAiModal()),r.addEventListener("click",b=>{b.target===r&&this.closeAiModal()}),this.aiModal=r,this.aiKeyInput=r.querySelector("[data-ai-key]"),this.aiModelSelect=r.querySelector("[data-ai-model]"),this.aiPromptInput=r.querySelector("[data-ai-prompt]"),this.aiStrengthInput=r.querySelector("[data-ai-strength]"),this.aiStrengthValue=r.querySelector("[data-ai-strength-value]"),this.aiModalSubtitle=r.querySelector(".ai-modal-subtitle"),this.aiGalleryToggle=r.querySelector("[data-ai-gallery-toggle]"),this.aiGalleryEl=r.querySelector("[data-ai-gallery]"),this.aiGalleryGrid=r.querySelector("[data-ai-gallery-grid]"),this.aiReferenceInput=r.querySelector("[data-ai-ref-input]"),this.aiReferenceName=r.querySelector("[data-ai-ref-name]"),this.aiRemoveBgToggle=r.querySelector("[data-ai-remove-bg]"),this.aiUseOutputToggle=r.querySelector("[data-ai-use-output]"),this.aiGenerateBtn=r.querySelector("[data-ai-generate]"),this.aiApplyBtn=r.querySelector("[data-ai-apply]"),this.aiSaveLibraryBtn=r.querySelector("[data-ai-save-library]"),this.aiCropBtn=r.querySelector("[data-ai-crop]"),this.aiDownloadBtn=r.querySelector("[data-ai-download]"),this.aiPreviewImg=r.querySelector("[data-ai-preview]"),this.aiStatusEl=r.querySelector("[data-ai-status]"),this.aiLoadingEl=r.querySelector("[data-ai-loading]"),this.aiBgToleranceInput=r.querySelector("[data-ai-bg-tolerance]"),this.aiBgToleranceValue=r.querySelector("[data-ai-bg-tolerance-value]"),(o=this.aiRemoveBgToggle)==null||o.addEventListener("change",()=>{this.refreshAiOutputFromRaw()});let s=r.querySelector("[data-ai-ref-button]");s==null||s.addEventListener("click",()=>{var b;return(b=this.aiReferenceInput)==null?void 0:b.click()}),(l=this.aiGalleryToggle)==null||l.addEventListener("click",()=>this.toggleAiGallery()),(c=this.aiStrengthInput)==null||c.addEventListener("input",()=>{var y,v;let b=(v=(y=this.aiStrengthInput)==null?void 0:y.value)!=null?v:"5";this.aiStrengthValue&&(this.aiStrengthValue.textContent=b)}),(d=this.aiBgToleranceInput)==null||d.addEventListener("input",()=>{var y,v;let b=(v=(y=this.aiBgToleranceInput)==null?void 0:y.value)!=null?v:"30";this.aiBgToleranceValue&&(this.aiBgToleranceValue.textContent=b),this.refreshAiOutputFromRaw()}),(u=this.aiReferenceInput)==null||u.addEventListener("change",()=>{var y,v,x;let b=(x=(v=(y=this.aiReferenceInput)==null?void 0:y.files)==null?void 0:v[0])!=null?x:null;this.aiReferenceFile=b,this.aiReferenceName&&(this.aiReferenceName.textContent=b?`${b.name} (loaded)`:"Optional"),b&&this.setAiStatus(`Reference attached: ${b.name}`)}),(p=this.aiGenerateBtn)==null||p.addEventListener("click",()=>{this.handleAiGenerate()}),(f=this.aiApplyBtn)==null||f.addEventListener("click",()=>this.handleAiApply()),(m=this.aiSaveLibraryBtn)==null||m.addEventListener("click",()=>{this.handleAiSaveToLibrary()}),(h=this.aiCropBtn)==null||h.addEventListener("click",()=>{this.handleAiCrop()}),(g=this.aiDownloadBtn)==null||g.addEventListener("click",()=>this.handleAiDownload()),document.body.appendChild(r),this.setAiOutputButtonsEnabled(!1),this.setAiStatus("Ready."),this.updateAiBasePreview(i),this.updateAiPreview(),this.renderAiGallery()}closeAiModal(){this.aiModal&&(this.aiModal.remove(),this.aiModal=null),this.aiTargetKey=null,this.aiBaseValue=null,this.aiContext=null,this.aiKeyInput=null,this.aiModelSelect=null,this.aiPromptInput=null,this.aiStrengthInput=null,this.aiStrengthValue=null,this.aiModalSubtitle=null,this.aiGalleryToggle=null,this.aiGalleryEl=null,this.aiGalleryGrid=null,this.aiReferenceInput=null,this.aiReferenceName=null,this.aiReferenceFile=null,this.aiRemoveBgToggle=null,this.aiUseOutputToggle=null,this.aiGenerateBtn=null,this.aiApplyBtn=null,this.aiCropBtn=null,this.aiDownloadBtn=null,this.aiPreviewImg=null,this.aiStatusEl=null,this.aiLoadingEl=null,this.aiBgToleranceInput=null,this.aiBgToleranceValue=null}async handleAiGenerate(){var d,u,p,f,m,h,g,b,y,v,x,w,S,A,_,T,R,E,L,z;if(console.log("[CustomizePanel] handleAiGenerate clicked"),!this.aiGenerateBtn)return;let t=(p=(u=(d=this.aiKeyInput)==null?void 0:d.value)==null?void 0:u.trim())!=null?p:"",i=(m=(f=this.aiModelSelect)==null?void 0:f.value)!=null?m:"gemini-2.5-flash-image",n=(b=(g=(h=this.aiPromptInput)==null?void 0:h.value)==null?void 0:g.trim())!=null?b:"",r=(v=(y=this.aiRemoveBgToggle)==null?void 0:y.checked)!=null?v:!1,a=r,s=r,o=Number((w=(x=this.aiStrengthInput)==null?void 0:x.value)!=null?w:"5");if(!t){this.setAiStatus("Missing API key.");return}if(!n){this.setAiStatus("Add a prompt.");return}let l=this.getSelectedAssetInput(),c=((S=l==null?void 0:l.value)==null?void 0:S.trim())||((A=this.aiBaseValue)==null?void 0:A.trim())||"";if(!c&&!this.aiOutputDataUrl){this.setAiStatus("Select an asset first.");return}this.setAiLoading(!0),this.setAiStatus("Generating...");try{let D=null,B=(_=this.getSelectedAssetKey())!=null?_:"unknown",O=(T=this.aiUseOutputToggle)!=null&&T.checked&&this.aiOutputDataUrl?"ai-output":"asset-value";if((R=this.aiUseOutputToggle)!=null&&R.checked&&this.aiOutputDataUrl){let Pe=Dl(this.aiOutputDataUrl,"ai-output.png");if(Pe){let je=await Ot(Pe);je&&(D={input:{base64:je.base64,mimeType:je.mimeType},dataUrl:je.dataUrl,width:je.width,height:je.height})}}if(D||(D=await this.getImageDataFromAsset(c)),!D){this.setAiStatus("Unable to load the base image.");return}let P=[D.input],C=!1;if(this.aiReferenceFile){let Pe=await Ot(this.aiReferenceFile);Pe?(P.push({base64:Pe.base64,mimeType:Pe.mimeType}),C=!0,this.setAiStatus(`Generating with reference: ${this.aiReferenceFile.name}`)):this.setAiStatus("Reference image failed to load, generating without reference.")}let I=Qh(n,{includeReference:C,includeMagenta:a,changeLevel:o}),j=(L=(E=this.aiReferenceFile)==null?void 0:E.name)!=null?L:"none";console.info("[AI] Final prompt:",I),console.info("[AI] Image sources:",{assetKey:B,base:O,reference:j});let Q=Hh(D.width,D.height);console.info("[AI] CRITICAL: Calling generateImageWithGemini25Flash NOW...");let se=await Ui(t,I,P,{aspectRatio:Q,model:i});console.info("[AI] CRITICAL: generateImageWithGemini25Flash returned! Length:",se==null?void 0:se.length),this.aiRawOutputDataUrl=se,await this.refreshAiOutputFromRaw()}catch(D){console.error("[CustomizePanel] AI Generate Error:",D),this.setAiStatus("Generation failed. Check console.")}finally{this.setAiLoading(!1),((z=this.aiStatusEl)==null?void 0:z.textContent)==="Generating..."&&this.setAiStatus("Ready.")}}async refreshAiOutputFromRaw(){var r,a,s,o;if(!this.aiRawOutputDataUrl)return;let t=(a=(r=this.aiRemoveBgToggle)==null?void 0:r.checked)!=null?a:!1,i=Number((o=(s=this.aiBgToleranceInput)==null?void 0:s.value)!=null?o:"30"),n=this.aiRawOutputDataUrl;if(t){let l=await $i(this.aiRawOutputDataUrl,i);l&&(n=l)}this.setAiOutput(n),this.setAiStatus("Ready.")}setAiOutput(t){var n,r;this.aiOutputDataUrl=t,this.aiOutputKey=this.getSelectedAssetKey(),this.updateAiPreview(),this.setAiOutputButtonsEnabled(!0);let i=(n=this.previewModal)==null?void 0:n.querySelector("[data-asset-ai-preview]");this.updateAiModalPreview(i,(r=this.activePreviewKey)!=null?r:void 0)}setAiOutputButtonsEnabled(t){this.aiApplyBtn&&(this.aiApplyBtn.disabled=!t),this.aiSaveLibraryBtn&&(this.aiSaveLibraryBtn.disabled=!t),this.aiCropBtn&&(this.aiCropBtn.disabled=!t),this.aiDownloadBtn&&(this.aiDownloadBtn.disabled=!t)}handleAiApply(){var i,n,r;let t=this.getSelectedAssetInput();if(!this.aiOutputDataUrl){this.setAiStatus("Generate output first.");return}if(t)console.log("[CustomizePanel] Applying AI output to brand asset:",t.dataset.assetKey),t.value=this.aiOutputDataUrl,this.handleAssetValueChange((i=t.dataset.assetKey)!=null?i:"",t),this.setAiStatus("Applied. Restarting game...");else{let a=((n=this.aiContext)==null?void 0:n.objectId)||this.inferObjectIdFromAssetKey(this.aiTargetKey||""),s=((r=this.aiContext)==null?void 0:r.path)||this.inferPathFromAssetKey(this.aiTargetKey||"");if(a&&s)console.log("[CustomizePanel] Applying AI output directly to object:",a,s),this.applyObjectPropertyValue(a,s,this.aiOutputDataUrl),this.setAiStatus("Applied directly. Restarting game..."),window.dispatchEvent(new CustomEvent("inspector:refresh"));else{this.setAiStatus("No target input found to apply.");return}}setTimeout(()=>{this.closeAiModal()},500)}async handleAiSaveToLibrary(){var a,s,o;if(!this.aiOutputDataUrl){this.setAiStatus("Generate output first.");return}if(!this.getSelectedAssetKey()){this.setAiStatus("No asset selected.");return}let n=`${(this.aiTargetKey||"asset").replace(/[^a-zA-Z0-9_-]/g,"_")}_ai_${Date.now()}`,r=this.inferCategoryFromAssetKey(this.aiTargetKey||"");this.setAiStatus("Saving to library...");try{let c=await(await fetch("/api/library/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({category:r,filename:`${n}.png`,data:this.aiOutputDataUrl,overwrite:!0})})).json();if(c.success){console.log("[CustomizePanel] \u2705 Saved to library:",c.path),this.setAiStatus(`Saved as ${n}. Applying...`);let d=window.addAssetToRegistry;typeof d=="function"&&(console.log("[CustomizePanel] Logic: Adding to registry category:",r),d(r,`${n}.png`));let u=window.refreshAssetLibrary;typeof u=="function"&&(console.log("[CustomizePanel] Logic: Refreshing library panel"),u());let p=((a=this.aiContext)==null?void 0:a.objectId)||this.inferObjectIdFromAssetKey(this.aiTargetKey||""),f=((s=this.aiContext)==null?void 0:s.path)||this.inferPathFromAssetKey(this.aiTargetKey||""),m=this.getSelectedAssetInput();if(m&&(m.value=c.path,this.handleAssetValueChange((o=m.dataset.assetKey)!=null?o:"",m)),p&&f){console.log("[CustomizePanel] Saved and applying directly to object:",p,f);let h=window.applyAssetToSlot,g=/texture|image|sprite|asset\\.path/i.test(f)||/\\.(png|jpg|jpeg)$/i.test(String(c.path||""));if(typeof h=="function"&&g){let b=this.getFilenameFromPath(c.path);h(p,b,r)}else this.applyObjectPropertyValue(p,f,c.path);window.dispatchEvent(new CustomEvent("inspector:refresh"))}setTimeout(()=>{this.closeAiModal()},1e3)}else console.error("[CustomizePanel] \u274C Save failed:",c.error),this.setAiStatus(`Save failed: ${c.error}`)}catch(l){console.error("[CustomizePanel] \u274C Save error:",l),this.setAiStatus("Save failed. Check console.")}}inferCategoryFromAssetKey(t){var s;let i=(s=this.aiContext)==null?void 0:s.objectId,n=t||this.aiTargetKey||"",r=window.getEditableAssets;if(typeof r=="function"){let o=r();if(o!=null&&o.slots){let l=o.slots.find(c=>i&&c.objectId===i||c.currentAsset===n||c.slotId===n||c.currentAsset&&c.currentAsset.includes(n)||n.includes(c.slotId));if(l){let c=l.libraryFolder||l.category;if(c)return c}}}let a=n.toLowerCase();return a.includes("background")?"backgrounds":a.includes("character")?"characters":a.includes("key")?"collectedkeys":a.includes("draggable")?"draggables":a.includes("environment")||a.includes("env")||a.includes("hand")||a.includes("prop")||a.includes("item")||a.includes("decor")||a.includes("object")?"environment":a.includes("machine")?"machines":a.includes("tutorial")?"tutorial":a.includes("ui")||a.includes("button")||a.includes("label")||a.includes("icon")||a.includes("logo")||a.includes("cta")||a.includes("menu")||a.includes("overlay")?"ui":a.includes("effect")||a.includes("confetti")||a.includes("particle")?"effects":"ui"}inferObjectIdFromAssetKey(t){let i=window.getEditableAssets;if(typeof i!="function")return null;let n=i();if(!(n!=null&&n.slots))return null;let r=n.slots.find(a=>a.currentAsset===t||a.slotId===t);return(r==null?void 0:r.objectId)||null}inferPathFromAssetKey(t){let i=window.getEditableAssets;if(typeof i!="function")return null;let n=i();if(!(n!=null&&n.slots))return null;let r=n.slots.find(s=>s.currentAsset===t||s.slotId===t);if(!r)return null;let a=r.category;return a==="render"||a==="backgrounds"||a==="characters"?"render.texture":a==="ui"?"ui.image":a==="audio"?"audio.src":"render.texture"}getFilenameFromPath(t){if(!t)return"";let i=t.split("/");return i[i.length-1]}async handleAiCrop(){var o;if(!this.aiOutputDataUrl){this.setAiStatus("Generate output first.");return}let t=this.getSelectedAssetInput(),i=(o=t==null?void 0:t.value)!=null?o:"",n=await this.getImageDimensions(i);if(!n){this.setAiStatus("Unable to read target dimensions.");return}let r=Dl(this.aiOutputDataUrl,"ai-output.png");if(!r)return;let a=await this.showManualCropModal(r,n,i);if(!a)return;let s=await Fh(a);s&&this.setAiOutput(s)}handleAiDownload(){var n;if(!this.aiOutputDataUrl)return;let t=(n=this.getSelectedAssetKey())!=null?n:"ai-image",i=document.createElement("a");i.href=this.aiOutputDataUrl,i.download=`${t}-ai.png`,i.click()}handleAssetValueChange(t,i){this.previewModal&&this.closePreviewModal(),this.scheduleAutoApply(),this.updatePreviewIfOpen(t,i.value,i.dataset.assetType)}async handleAssetUpload(t,i,n){let r=i.value,a=t;if(t.type.startsWith("image/")){let l=await this.getImageDimensions(r);if(l){let c=await this.showManualCropModal(t,l,r);if(!c)return;a=c}}let s=URL.createObjectURL(a),o=i.dataset.objectUrl;if(o)try{URL.revokeObjectURL(o)}catch{}i.dataset.objectUrl=s,i.dataset.assetType=a.type,i.value=s,this.handleAssetValueChange(n,i)}scheduleAutoApply(){this.options&&(this.autoApplyTimer&&window.clearTimeout(this.autoApplyTimer),console.log("[CustomizePanel] Scheduling auto-apply in 250ms"),this.autoApplyTimer=window.setTimeout(()=>{this.autoApplyTimer=null,console.log("[CustomizePanel] Executing auto-apply now"),this.handleApplyWithSource("auto")},250))}previewAsset(t,i,n,r){if(!i)return;let a=this.resolveAssetUrls(i);if(a.length===0)return;let s=n||this.guessMimeType(i);this.activePreviewKey=t,this.activePreviewValue=i,this.activePreviewFileInput=r!=null?r:null,this.openPreviewModal(t,i,a,s)}resolveAssetUrls(t){let i=t.trim();if(!i)return[];if(console.log("[CustomizePanel] Resolving asset urls for:",i),/^(blob:|data:|https?:|\/)/.test(i))return console.log("[CustomizePanel] Path is absolute or data/blob, using as is"),[i];let n=i.replace(/^\.?\//,""),r=[];return n.startsWith("raw/")?r=[`/${n}`,`/assets/${n}`]:n.startsWith("assets/")?r=[`/${n}`]:r=[`/raw/${n}`,`/assets/raw/${n}`,`/assets/${n}`,`/${n}`],console.log("[CustomizePanel] Resolved to possible paths:",r),r}guessMimeType(t){let i=t.toLowerCase();return i.endsWith(".png")||i.endsWith(".jpg")||i.endsWith(".jpeg")||i.endsWith(".gif")||i.endsWith(".webp")||i.endsWith(".svg")?"image":i.endsWith(".mp3")||i.endsWith(".wav")||i.endsWith(".ogg")?"audio":i.endsWith(".json")?"json":"file"}openPreviewModal(t,i,n,r){this.closePreviewModal(!0);let a=document.createElement("div");a.className="asset-preview-modal",a.innerHTML=`
|
|
922
|
+
`;let a=r.querySelector(".ai-modal-close");a==null||a.addEventListener("click",()=>this.closeAiModal()),r.addEventListener("click",b=>{b.target===r&&this.closeAiModal()}),this.aiModal=r,this.aiKeyInput=r.querySelector("[data-ai-key]"),this.aiModelSelect=r.querySelector("[data-ai-model]"),this.aiPromptInput=r.querySelector("[data-ai-prompt]"),this.aiStrengthInput=r.querySelector("[data-ai-strength]"),this.aiStrengthValue=r.querySelector("[data-ai-strength-value]"),this.aiModalSubtitle=r.querySelector(".ai-modal-subtitle"),this.aiGalleryToggle=r.querySelector("[data-ai-gallery-toggle]"),this.aiGalleryEl=r.querySelector("[data-ai-gallery]"),this.aiGalleryGrid=r.querySelector("[data-ai-gallery-grid]"),this.aiReferenceInput=r.querySelector("[data-ai-ref-input]"),this.aiReferenceName=r.querySelector("[data-ai-ref-name]"),this.aiRemoveBgToggle=r.querySelector("[data-ai-remove-bg]"),this.aiUseOutputToggle=r.querySelector("[data-ai-use-output]"),this.aiGenerateBtn=r.querySelector("[data-ai-generate]"),this.aiApplyBtn=r.querySelector("[data-ai-apply]"),this.aiSaveLibraryBtn=r.querySelector("[data-ai-save-library]"),this.aiCropBtn=r.querySelector("[data-ai-crop]"),this.aiDownloadBtn=r.querySelector("[data-ai-download]"),this.aiPreviewImg=r.querySelector("[data-ai-preview]"),this.aiStatusEl=r.querySelector("[data-ai-status]"),this.aiLoadingEl=r.querySelector("[data-ai-loading]"),this.aiBgToleranceInput=r.querySelector("[data-ai-bg-tolerance]"),this.aiBgToleranceValue=r.querySelector("[data-ai-bg-tolerance-value]"),(o=this.aiRemoveBgToggle)==null||o.addEventListener("change",()=>{this.refreshAiOutputFromRaw()});let s=r.querySelector("[data-ai-ref-button]");s==null||s.addEventListener("click",()=>{var b;return(b=this.aiReferenceInput)==null?void 0:b.click()}),(l=this.aiGalleryToggle)==null||l.addEventListener("click",()=>this.toggleAiGallery()),(c=this.aiStrengthInput)==null||c.addEventListener("input",()=>{var y,v;let b=(v=(y=this.aiStrengthInput)==null?void 0:y.value)!=null?v:"5";this.aiStrengthValue&&(this.aiStrengthValue.textContent=b)}),(d=this.aiBgToleranceInput)==null||d.addEventListener("input",()=>{var y,v;let b=(v=(y=this.aiBgToleranceInput)==null?void 0:y.value)!=null?v:"30";this.aiBgToleranceValue&&(this.aiBgToleranceValue.textContent=b),this.refreshAiOutputFromRaw()}),(u=this.aiReferenceInput)==null||u.addEventListener("change",()=>{var y,v,x;let b=(x=(v=(y=this.aiReferenceInput)==null?void 0:y.files)==null?void 0:v[0])!=null?x:null;this.aiReferenceFile=b,this.aiReferenceName&&(this.aiReferenceName.textContent=b?`${b.name} (loaded)`:"Optional"),b&&this.setAiStatus(`Reference attached: ${b.name}`)}),(p=this.aiGenerateBtn)==null||p.addEventListener("click",()=>{this.handleAiGenerate()}),(f=this.aiApplyBtn)==null||f.addEventListener("click",()=>this.handleAiApply()),(m=this.aiSaveLibraryBtn)==null||m.addEventListener("click",()=>{this.handleAiSaveToLibrary()}),(h=this.aiCropBtn)==null||h.addEventListener("click",()=>{this.handleAiCrop()}),(g=this.aiDownloadBtn)==null||g.addEventListener("click",()=>this.handleAiDownload()),document.body.appendChild(r),this.setAiOutputButtonsEnabled(!1),this.setAiStatus("Ready."),this.updateAiBasePreview(i),this.updateAiPreview(),this.renderAiGallery()}closeAiModal(){this.aiModal&&(this.aiModal.remove(),this.aiModal=null),this.aiTargetKey=null,this.aiBaseValue=null,this.aiContext=null,this.aiKeyInput=null,this.aiModelSelect=null,this.aiPromptInput=null,this.aiStrengthInput=null,this.aiStrengthValue=null,this.aiModalSubtitle=null,this.aiGalleryToggle=null,this.aiGalleryEl=null,this.aiGalleryGrid=null,this.aiReferenceInput=null,this.aiReferenceName=null,this.aiReferenceFile=null,this.aiRemoveBgToggle=null,this.aiUseOutputToggle=null,this.aiGenerateBtn=null,this.aiApplyBtn=null,this.aiCropBtn=null,this.aiDownloadBtn=null,this.aiPreviewImg=null,this.aiStatusEl=null,this.aiLoadingEl=null,this.aiBgToleranceInput=null,this.aiBgToleranceValue=null}async handleAiGenerate(){var d,u,p,f,m,h,g,b,y,v,x,w,S,A,_,T,R,E,L,z;if(console.log("[CustomizePanel] handleAiGenerate clicked"),!this.aiGenerateBtn)return;let t=(p=(u=(d=this.aiKeyInput)==null?void 0:d.value)==null?void 0:u.trim())!=null?p:"",i=(m=(f=this.aiModelSelect)==null?void 0:f.value)!=null?m:"gemini-2.5-flash-image",n=(b=(g=(h=this.aiPromptInput)==null?void 0:h.value)==null?void 0:g.trim())!=null?b:"",r=(v=(y=this.aiRemoveBgToggle)==null?void 0:y.checked)!=null?v:!1,a=r,s=r,o=Number((w=(x=this.aiStrengthInput)==null?void 0:x.value)!=null?w:"5");if(!t){this.setAiStatus("Missing API key.");return}if(!n){this.setAiStatus("Add a prompt.");return}let l=this.getSelectedAssetInput(),c=((S=l==null?void 0:l.value)==null?void 0:S.trim())||((A=this.aiBaseValue)==null?void 0:A.trim())||"";if(!c&&!this.aiOutputDataUrl){this.setAiStatus("Select an asset first.");return}this.setAiLoading(!0),this.setAiStatus("Generating...");try{let D=null,B=(_=this.getSelectedAssetKey())!=null?_:"unknown",O=(T=this.aiUseOutputToggle)!=null&&T.checked&&this.aiOutputDataUrl?"ai-output":"asset-value";if((R=this.aiUseOutputToggle)!=null&&R.checked&&this.aiOutputDataUrl){let Pe=zl(this.aiOutputDataUrl,"ai-output.png");if(Pe){let je=await Ot(Pe);je&&(D={input:{base64:je.base64,mimeType:je.mimeType},dataUrl:je.dataUrl,width:je.width,height:je.height})}}if(D||(D=await this.getImageDataFromAsset(c)),!D){this.setAiStatus("Unable to load the base image.");return}let P=[D.input],C=!1;if(this.aiReferenceFile){let Pe=await Ot(this.aiReferenceFile);Pe?(P.push({base64:Pe.base64,mimeType:Pe.mimeType}),C=!0,this.setAiStatus(`Generating with reference: ${this.aiReferenceFile.name}`)):this.setAiStatus("Reference image failed to load, generating without reference.")}let I=tg(n,{includeReference:C,includeMagenta:a,changeLevel:o}),j=(L=(E=this.aiReferenceFile)==null?void 0:E.name)!=null?L:"none";console.info("[AI] Final prompt:",I),console.info("[AI] Image sources:",{assetKey:B,base:O,reference:j});let Q=Uh(D.width,D.height);console.info("[AI] CRITICAL: Calling generateImageWithGemini25Flash NOW...");let se=await Ui(t,I,P,{aspectRatio:Q,model:i});console.info("[AI] CRITICAL: generateImageWithGemini25Flash returned! Length:",se==null?void 0:se.length),this.aiRawOutputDataUrl=se,await this.refreshAiOutputFromRaw()}catch(D){console.error("[CustomizePanel] AI Generate Error:",D),this.setAiStatus("Generation failed. Check console.")}finally{this.setAiLoading(!1),((z=this.aiStatusEl)==null?void 0:z.textContent)==="Generating..."&&this.setAiStatus("Ready.")}}async refreshAiOutputFromRaw(){var r,a,s,o;if(!this.aiRawOutputDataUrl)return;let t=(a=(r=this.aiRemoveBgToggle)==null?void 0:r.checked)!=null?a:!1,i=Number((o=(s=this.aiBgToleranceInput)==null?void 0:s.value)!=null?o:"30"),n=this.aiRawOutputDataUrl;if(t){let l=await $i(this.aiRawOutputDataUrl,i);l&&(n=l)}this.setAiOutput(n),this.setAiStatus("Ready.")}setAiOutput(t){var n,r;this.aiOutputDataUrl=t,this.aiOutputKey=this.getSelectedAssetKey(),this.updateAiPreview(),this.setAiOutputButtonsEnabled(!0);let i=(n=this.previewModal)==null?void 0:n.querySelector("[data-asset-ai-preview]");this.updateAiModalPreview(i,(r=this.activePreviewKey)!=null?r:void 0)}setAiOutputButtonsEnabled(t){this.aiApplyBtn&&(this.aiApplyBtn.disabled=!t),this.aiSaveLibraryBtn&&(this.aiSaveLibraryBtn.disabled=!t),this.aiCropBtn&&(this.aiCropBtn.disabled=!t),this.aiDownloadBtn&&(this.aiDownloadBtn.disabled=!t)}handleAiApply(){var i,n,r;let t=this.getSelectedAssetInput();if(!this.aiOutputDataUrl){this.setAiStatus("Generate output first.");return}if(t)console.log("[CustomizePanel] Applying AI output to brand asset:",t.dataset.assetKey),t.value=this.aiOutputDataUrl,this.handleAssetValueChange((i=t.dataset.assetKey)!=null?i:"",t),this.setAiStatus("Applied. Restarting game...");else{let a=((n=this.aiContext)==null?void 0:n.objectId)||this.inferObjectIdFromAssetKey(this.aiTargetKey||""),s=((r=this.aiContext)==null?void 0:r.path)||this.inferPathFromAssetKey(this.aiTargetKey||"");if(a&&s)console.log("[CustomizePanel] Applying AI output directly to object:",a,s),this.applyObjectPropertyValue(a,s,this.aiOutputDataUrl),this.setAiStatus("Applied directly. Restarting game..."),window.dispatchEvent(new CustomEvent("inspector:refresh"));else{this.setAiStatus("No target input found to apply.");return}}setTimeout(()=>{this.closeAiModal()},500)}async handleAiSaveToLibrary(){var a,s,o;if(!this.aiOutputDataUrl){this.setAiStatus("Generate output first.");return}if(!this.getSelectedAssetKey()){this.setAiStatus("No asset selected.");return}let n=`${(this.aiTargetKey||"asset").replace(/[^a-zA-Z0-9_-]/g,"_")}_ai_${Date.now()}`,r=this.inferCategoryFromAssetKey(this.aiTargetKey||"");this.setAiStatus("Saving to library...");try{let c=await(await fetch("/api/library/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({category:r,filename:`${n}.png`,data:this.aiOutputDataUrl,overwrite:!0})})).json();if(c.success){console.log("[CustomizePanel] \u2705 Saved to library:",c.path),this.setAiStatus(`Saved as ${n}. Applying...`);let d=window.addAssetToRegistry;typeof d=="function"&&(console.log("[CustomizePanel] Logic: Adding to registry category:",r),d(r,`${n}.png`));let u=window.refreshAssetLibrary;typeof u=="function"&&(console.log("[CustomizePanel] Logic: Refreshing library panel"),u());let p=((a=this.aiContext)==null?void 0:a.objectId)||this.inferObjectIdFromAssetKey(this.aiTargetKey||""),f=((s=this.aiContext)==null?void 0:s.path)||this.inferPathFromAssetKey(this.aiTargetKey||""),m=this.getSelectedAssetInput();if(m&&(m.value=c.path,this.handleAssetValueChange((o=m.dataset.assetKey)!=null?o:"",m)),p&&f){console.log("[CustomizePanel] Saved and applying directly to object:",p,f);let h=window.applyAssetToSlot,g=/texture|image|sprite|asset\\.path/i.test(f)||/\\.(png|jpg|jpeg)$/i.test(String(c.path||""));if(typeof h=="function"&&g){let b=this.getFilenameFromPath(c.path);h(p,b,r)}else this.applyObjectPropertyValue(p,f,c.path);window.dispatchEvent(new CustomEvent("inspector:refresh"))}setTimeout(()=>{this.closeAiModal()},1e3)}else console.error("[CustomizePanel] \u274C Save failed:",c.error),this.setAiStatus(`Save failed: ${c.error}`)}catch(l){console.error("[CustomizePanel] \u274C Save error:",l),this.setAiStatus("Save failed. Check console.")}}inferCategoryFromAssetKey(t){var s;let i=(s=this.aiContext)==null?void 0:s.objectId,n=t||this.aiTargetKey||"",r=window.getEditableAssets;if(typeof r=="function"){let o=r();if(o!=null&&o.slots){let l=o.slots.find(c=>i&&c.objectId===i||c.currentAsset===n||c.slotId===n||c.currentAsset&&c.currentAsset.includes(n)||n.includes(c.slotId));if(l){let c=l.libraryFolder||l.category;if(c)return c}}}let a=n.toLowerCase();return a.includes("background")?"backgrounds":a.includes("character")?"characters":a.includes("key")?"collectedkeys":a.includes("draggable")?"draggables":a.includes("environment")||a.includes("env")||a.includes("hand")||a.includes("prop")||a.includes("item")||a.includes("decor")||a.includes("object")?"environment":a.includes("machine")?"machines":a.includes("tutorial")?"tutorial":a.includes("ui")||a.includes("button")||a.includes("label")||a.includes("icon")||a.includes("logo")||a.includes("cta")||a.includes("menu")||a.includes("overlay")?"ui":a.includes("effect")||a.includes("confetti")||a.includes("particle")?"effects":"ui"}inferObjectIdFromAssetKey(t){let i=window.getEditableAssets;if(typeof i!="function")return null;let n=i();if(!(n!=null&&n.slots))return null;let r=n.slots.find(a=>a.currentAsset===t||a.slotId===t);return(r==null?void 0:r.objectId)||null}inferPathFromAssetKey(t){let i=window.getEditableAssets;if(typeof i!="function")return null;let n=i();if(!(n!=null&&n.slots))return null;let r=n.slots.find(s=>s.currentAsset===t||s.slotId===t);if(!r)return null;let a=r.category;return a==="render"||a==="backgrounds"||a==="characters"?"render.texture":a==="ui"?"ui.image":a==="audio"?"audio.src":"render.texture"}getFilenameFromPath(t){if(!t)return"";let i=t.split("/");return i[i.length-1]}async handleAiCrop(){var o;if(!this.aiOutputDataUrl){this.setAiStatus("Generate output first.");return}let t=this.getSelectedAssetInput(),i=(o=t==null?void 0:t.value)!=null?o:"",n=await this.getImageDimensions(i);if(!n){this.setAiStatus("Unable to read target dimensions.");return}let r=zl(this.aiOutputDataUrl,"ai-output.png");if(!r)return;let a=await this.showManualCropModal(r,n,i);if(!a)return;let s=await $h(a);s&&this.setAiOutput(s)}handleAiDownload(){var n;if(!this.aiOutputDataUrl)return;let t=(n=this.getSelectedAssetKey())!=null?n:"ai-image",i=document.createElement("a");i.href=this.aiOutputDataUrl,i.download=`${t}-ai.png`,i.click()}handleAssetValueChange(t,i){this.previewModal&&this.closePreviewModal(),this.scheduleAutoApply(),this.updatePreviewIfOpen(t,i.value,i.dataset.assetType)}async handleAssetUpload(t,i,n){let r=i.value,a=t;if(t.type.startsWith("image/")){let l=await this.getImageDimensions(r);if(l){let c=await this.showManualCropModal(t,l,r);if(!c)return;a=c}}let s=URL.createObjectURL(a),o=i.dataset.objectUrl;if(o)try{URL.revokeObjectURL(o)}catch{}i.dataset.objectUrl=s,i.dataset.assetType=a.type,i.value=s,this.handleAssetValueChange(n,i)}scheduleAutoApply(){this.options&&(this.autoApplyTimer&&window.clearTimeout(this.autoApplyTimer),console.log("[CustomizePanel] Scheduling auto-apply in 250ms"),this.autoApplyTimer=window.setTimeout(()=>{this.autoApplyTimer=null,console.log("[CustomizePanel] Executing auto-apply now"),this.handleApplyWithSource("auto")},250))}previewAsset(t,i,n,r){if(!i)return;let a=this.resolveAssetUrls(i);if(a.length===0)return;let s=n||this.guessMimeType(i);this.activePreviewKey=t,this.activePreviewValue=i,this.activePreviewFileInput=r!=null?r:null,this.openPreviewModal(t,i,a,s)}resolveAssetUrls(t){let i=t.trim();if(!i)return[];if(console.log("[CustomizePanel] Resolving asset urls for:",i),/^(blob:|data:|https?:|\/)/.test(i))return console.log("[CustomizePanel] Path is absolute or data/blob, using as is"),[i];let n=i.replace(/^\.?\//,""),r=[];return n.startsWith("raw/")?r=[`/${n}`,`/assets/${n}`]:n.startsWith("assets/")?r=[`/${n}`]:r=[`/raw/${n}`,`/assets/raw/${n}`,`/assets/${n}`,`/${n}`],console.log("[CustomizePanel] Resolved to possible paths:",r),r}guessMimeType(t){let i=t.toLowerCase();return i.endsWith(".png")||i.endsWith(".jpg")||i.endsWith(".jpeg")||i.endsWith(".gif")||i.endsWith(".webp")||i.endsWith(".svg")?"image":i.endsWith(".mp3")||i.endsWith(".wav")||i.endsWith(".ogg")?"audio":i.endsWith(".json")?"json":"file"}openPreviewModal(t,i,n,r){this.closePreviewModal(!0);let a=document.createElement("div");a.className="asset-preview-modal",a.innerHTML=`
|
|
894
923
|
<div class="asset-preview-card">
|
|
895
924
|
<div class="asset-preview-header">
|
|
896
925
|
<div class="asset-preview-title">${t}</div>
|
|
@@ -936,7 +965,7 @@ Generate the requested asset matching the brand style.${e.needsTransparency?" Ba
|
|
|
936
965
|
<button class="asset-crop-apply" type="button">Apply Crop</button>
|
|
937
966
|
</div>
|
|
938
967
|
</div>
|
|
939
|
-
`;let y=c.querySelector(".asset-crop-canvas"),v=c.querySelector(".asset-crop-preview"),x=c.querySelector(".asset-crop-zoom"),w=c.querySelector(".asset-crop-zoom-value"),S=c.querySelector(".asset-crop-close"),A=c.querySelector(".asset-crop-cancel"),_=c.querySelector(".asset-crop-apply"),T=c.querySelector(".asset-crop-reset");if(!y||!v||!x||!w){l(null);return}let R=y.getContext("2d"),E=v.getContext("2d");if(!R||!E){l(null);return}let L=s.naturalWidth,z=s.naturalHeight,D=Math.max(y.width/L,y.height/z),B=1,O=0,P=0,C=!1,I=0,j=0,Q=0,se=0,Pe=()=>{let $=D*B,Pt=Math.max(0,(L*$-y.width)/2),ai=Math.max(0,(z*$-y.height)/2);O=Math.min(Pt,Math.max(-Pt,O)),P=Math.min(ai,Math.max(-ai,P))},je=()=>{let $=D*B;R.clearRect(0,0,y.width,y.height);let Pt=y.width/2-L*$/2+O,ai=y.height/2-z*$/2+P;if(R.drawImage(s,Pt,ai,L*$,z*$),E.clearRect(0,0,v.width,v.height),o!=null&&o.naturalWidth&&(o!=null&&o.naturalHeight)){let oi=Math.max(v.width/o.naturalWidth,v.height/o.naturalHeight),
|
|
968
|
+
`;let y=c.querySelector(".asset-crop-canvas"),v=c.querySelector(".asset-crop-preview"),x=c.querySelector(".asset-crop-zoom"),w=c.querySelector(".asset-crop-zoom-value"),S=c.querySelector(".asset-crop-close"),A=c.querySelector(".asset-crop-cancel"),_=c.querySelector(".asset-crop-apply"),T=c.querySelector(".asset-crop-reset");if(!y||!v||!x||!w){l(null);return}let R=y.getContext("2d"),E=v.getContext("2d");if(!R||!E){l(null);return}let L=s.naturalWidth,z=s.naturalHeight,D=Math.max(y.width/L,y.height/z),B=1,O=0,P=0,C=!1,I=0,j=0,Q=0,se=0,Pe=()=>{let $=D*B,Pt=Math.max(0,(L*$-y.width)/2),ai=Math.max(0,(z*$-y.height)/2);O=Math.min(Pt,Math.max(-Pt,O)),P=Math.min(ai,Math.max(-ai,P))},je=()=>{let $=D*B;R.clearRect(0,0,y.width,y.height);let Pt=y.width/2-L*$/2+O,ai=y.height/2-z*$/2+P;if(R.drawImage(s,Pt,ai,L*$,z*$),E.clearRect(0,0,v.width,v.height),o!=null&&o.naturalWidth&&(o!=null&&o.naturalHeight)){let oi=Math.max(v.width/o.naturalWidth,v.height/o.naturalHeight),fs=v.width/2-o.naturalWidth*oi/2,tn=v.height/2-o.naturalHeight*oi/2;E.drawImage(o,fs,tn,o.naturalWidth*oi,o.naturalHeight*oi)}else E.fillStyle="rgba(255, 255, 255, 0.04)",E.fillRect(0,0,v.width,v.height),E.strokeStyle="rgba(255, 255, 255, 0.08)",E.strokeRect(4,4,v.width-8,v.height-8);let en=v.width/y.width*(D*B),si=O*(v.width/y.width),dr=P*(v.height/y.height),us=v.width/2-L*en/2+si,ps=v.height/2-z*en/2+dr;E.save(),E.globalAlpha=.7,E.drawImage(s,us,ps,L*en,z*en),E.restore()},Tc=()=>{O=0,P=0,Pe(),je()};x.addEventListener("input",()=>{B=Number(x.value),w.textContent=`${B.toFixed(2)}\xD7`,Pe(),je()}),y.addEventListener("pointerdown",$=>{C=!0,I=$.clientX,j=$.clientY,Q=O,se=P,y.setPointerCapture($.pointerId)}),y.addEventListener("pointermove",$=>{C&&(O=Q+($.clientX-I),P=se+($.clientY-j),Pe(),je())}),y.addEventListener("pointerup",$=>{C=!1,y.releasePointerCapture($.pointerId)}),y.addEventListener("pointerleave",()=>{C=!1});let cs=()=>{c.remove()},ds=()=>{cs(),l(null)},Gg=async()=>{let $=document.createElement("canvas");$.width=i.width,$.height=i.height;let Pt=$.getContext("2d");if(!Pt){cs(),l(null);return}let ai=B,si=Math.max($.width/L,$.height/z)*ai,dr=$.width/y.width,us=O*dr,ps=P*dr,oi=$.width/2-L*si/2+us,fs=$.height/2-z*si/2+ps;Pt.drawImage(s,oi,fs,L*si,z*si);let tn=await new Promise(Wg=>{$.toBlob(Yg=>Wg(Yg),t.type||"image/png")});if(cs(),!tn){l(null);return}l(new File([tn],t.name,{type:tn.type}))};S==null||S.addEventListener("click",ds),A==null||A.addEventListener("click",ds),T==null||T.addEventListener("click",Tc),_==null||_.addEventListener("click",()=>{Gg()}),c.addEventListener("click",$=>{$.target===c&&ds()}),document.body.appendChild(c),Tc()})}async loadImageForValue(t){let i=this.resolveAssetUrls(t);if(!i.length)return null;for(let n of i){let r=await this.loadImage(n);if(r)return r}return null}};var Ya=class{constructor(){this.root=null;this.options=null}render(){return`
|
|
940
969
|
<div class="scene-panel loading-screen-panel panel-accent-purple" data-panel="loading-screen">
|
|
941
970
|
<div class="scene-panel-header" data-panel-handle>
|
|
942
971
|
<div class="panel-title">
|
|
@@ -1002,10 +1031,10 @@ Generate the requested asset matching the brand style.${e.needsTransparency?" Ba
|
|
|
1002
1031
|
</div>
|
|
1003
1032
|
</div>
|
|
1004
1033
|
</div>
|
|
1005
|
-
`}initialize(t,i){var y,v,x,w,S,A,_,T,R,E,L,z,D,B,O,P;this.options=i,this.root=t.querySelector('[data-panel="loading-screen"]');let r=(()=>{var I;let C=window.getEditableEngineConfig;if(typeof C=="function"){let j=C();return(I=j==null?void 0:j.loading)!=null?I:{}}return{}})(),a=(y=this.root)==null?void 0:y.querySelector("#loading-screen-type");a&&(a.value=r.type==="image"?"image":"color",a.addEventListener("change",()=>{var C,I;(I=(C=this.options)==null?void 0:C.onUpdateLoading)==null||I.call(C,{type:a.value}),this.updateFieldVisibility(a.value)}));let s=(v=this.root)==null?void 0:v.querySelector("#loading-background-color");s&&(s.value=r.background_color||"#160a17",s.addEventListener("input",()=>{var C,I;(I=(C=this.options)==null?void 0:C.onUpdateLoading)==null||I.call(C,{background_color:s.value})}));let o=(x=this.root)==null?void 0:x.querySelector("#loading-overlay-alpha"),l=(w=this.root)==null?void 0:w.querySelector("#loading-overlay-alpha-value");o&&(o.value=String((S=r.overlay_alpha)!=null?S:1),l&&(l.textContent=Number(o.value).toFixed(2)),o.addEventListener("input",()=>{var I,j;let C=Number(o.value);l&&(l.textContent=C.toFixed(2)),(j=(I=this.options)==null?void 0:I.onUpdateLoading)==null||j.call(I,{overlay_alpha:C})}));let c=(A=this.root)==null?void 0:A.querySelector("#loading-text");c&&(c.value=r.text||"",c.addEventListener("input",()=>{var C,I;(I=(C=this.options)==null?void 0:C.onUpdateLoading)==null||I.call(C,{text:c.value})}));let d=(_=this.root)==null?void 0:_.querySelector("#loading-text-scale"),u=(T=this.root)==null?void 0:T.querySelector("#loading-text-scale-value");d&&(d.value=String((R=r.text_scale)!=null?R:.6),u&&(u.textContent=Number(d.value).toFixed(2)),d.addEventListener("input",()=>{var I,j;let C=Number(d.value);u&&(u.textContent=C.toFixed(2)),(j=(I=this.options)==null?void 0:I.onUpdateLoading)==null||j.call(I,{text_scale:C})}));let p=(E=this.root)==null?void 0:E.querySelector("#loading-enabled");p&&(p.checked=r.enabled!==!1,p.addEventListener("change",()=>{var C,I;(I=(C=this.options)==null?void 0:C.onUpdateLoading)==null||I.call(C,{enabled:p.checked})}));let f=(L=this.root)==null?void 0:L.querySelector("#loading-blur-enabled");f&&(f.checked=r.blur_enabled!==!1,f.addEventListener("change",()=>{var C,I;(I=(C=this.options)==null?void 0:C.onUpdateLoading)==null||I.call(C,{blur_enabled:f.checked})}));let m=(z=this.root)==null?void 0:z.querySelector("#loading-blur-strength"),h=(D=this.root)==null?void 0:D.querySelector("#loading-blur-strength-value");m&&(m.value=String((B=r.blur_strength)!=null?B:8),h&&(h.textContent=m.value),m.addEventListener("input",()=>{var C,I;h&&(h.textContent=m.value),(I=(C=this.options)==null?void 0:C.onUpdateLoading)==null||I.call(C,{blur_strength:Number(m.value)})}));let g=(O=this.root)==null?void 0:O.querySelector("#loading-show-btn"),b=(P=this.root)==null?void 0:P.querySelector("#loading-hide-btn");g==null||g.addEventListener("click",()=>{var C,I;(I=(C=this.options)==null?void 0:C.onShowLoadingScreen)==null||I.call(C)}),b==null||b.addEventListener("click",()=>{var C,I;(I=(C=this.options)==null?void 0:C.onHideLoadingScreen)==null||I.call(C)}),this.updateFieldVisibility(r.type==="image"?"image":"color")}updateFieldVisibility(t){var r,a;let i=(r=this.root)==null?void 0:r.querySelector("#loading-color-field"),n=(a=this.root)==null?void 0:a.querySelector("#loading-alpha-field");t==="image"?(i&&(i.style.display="none"),n&&(n.style.display="none")):(i&&(i.style.display=""),n&&(n.style.display=""))}refresh(){}};var Xn=require("pixi.js");pi();Te();async function tg(e,t,i){var n,r;console.log("[LIBRARY] applyAssetChange called with:",t,i);try{let a=Date.now(),o=`/${`raw/library/${t}/${i}`}?t=${a}`;console.log("[LIBRARY] Loading texture from:",o);let l=await Xn.Assets.load(o);if(!l){console.error("[LIBRARY] Failed to load texture:",o);return}let c=window.CustomAssets,d=Object.keys(c||{}).filter(p=>{let f=t.replace(/s$/,"");return p.startsWith(f)||p.includes(f)});for(let p of d)ze[p]=l,console.log("[LIBRARY] \u2705 Updated AssetTextures."+p),(n=c[p])!=null&&n.texture&&(c[p].texture=l,console.log("[LIBRARY] \u2705 Updated CustomAssets."+p+".texture"));let u=window.gameObjectManager;if(u)for(let p of d){let f=u.get(p);if(f){let m=((r=f.getDisplayObject)==null?void 0:r.call(f))||f.pixiObject||f;m!=null&&m.texture&&(m.texture=l,console.log("[LIBRARY] \u2705 Applied to display object:",p))}}}catch(a){console.error("[LIBRARY] Error applying asset change:",a)}}async function ig(e,t){var i,n,r;console.log("[LIBRARY] resetAsset called for:",t);try{let a=window.getEditableAssets,s=typeof a=="function"?a():null,o=(i=s==null?void 0:s.slots)==null?void 0:i.find(g=>g.category===t),l=o==null?void 0:o.defaultAsset;if(!l){console.warn("[LIBRARY] Could not find default asset for:",t);return}let c=Date.now(),d=`/raw/${l}?t=${c}`;console.log("[LIBRARY] Loading default texture from:",d);let u=await Xn.Assets.load(d);if(!u){console.error("[LIBRARY] Failed to load default texture:",d);return}let p=window.CustomAssets,f=t.replace(/s$/,""),m=Object.keys(p||{}).filter(g=>g.startsWith(f)||g.includes(f));for(let g of m)ze[g]=u,console.log("[LIBRARY] \u2705 Reset AssetTextures."+g),(n=p[g])!=null&&n.texture&&(p[g].texture=u,console.log("[LIBRARY] \u2705 Reset CustomAssets."+g+" to default"));let h=window.gameObjectManager;if(h)for(let g of m){let b=h.get(g);if(b){let y=((r=b.getDisplayObject)==null?void 0:r.call(b))||b.pixiObject||b;y!=null&&y.texture&&(y.texture=u,console.log("[LIBRARY] \u2705 Reset display object:",g))}}}catch(a){console.error("[LIBRARY] Error resetting asset:",a)}}async function ng(e,t,i,n){var r,a,s,o,l,c,d,u,p,f,m,h,g,b,y;console.log("[LIBRARY] applySlotAsset:",{objectId:t,assetFilename:i,category:n});try{let v=t.startsWith("json.")?t.replace("json.",""):t;console.log("[LIBRARY] Asset key:",v);let x=Date.now(),w=`/raw/library/${n}/${i}?t=${x}`;console.log("[LIBRARY] Loading texture from:",w);let S=await Xn.Assets.load(w);if(!S){console.error("[LIBRARY] Failed to load texture:",w);return}console.log("[LIBRARY] \u2705 Texture loaded"),ze[v]=S,console.log("[LIBRARY] \u2705 Updated AssetTextures."+v);let A=window.CustomAssets;A!=null&&A[v]&&(A[v].texture=S,console.log("[LIBRARY] \u2705 Updated legacy CustomAssets."+v));let _=window.gameObjectManager;if(console.log("[LIBRARY] gameObjectManager exists?",!!_),_){let R=Array.from(((r=_.keys)==null?void 0:r.call(_))||[]).slice(0,10);console.log("[LIBRARY] Available gameObject keys (first 10):",R);let E=_.get(v);if(console.log("[LIBRARY] gameObject for "+v+"?",!!E),E){let L=((a=E.getDisplayObject)==null?void 0:a.call(E))||E.pixiObject||E.pixi||E,z=(s=L==null?void 0:L.constructor)==null?void 0:s.name;if(console.log("[LIBRARY] displayObject:",L),console.log("[LIBRARY] displayObject type:",z),console.log("[LIBRARY] has texture?",!!(L!=null&&L.texture)),L!=null&&L.texture)L.texture=S,console.log("[LIBRARY] \u2705 Applied to display object:",v);else if(z==="Text"){console.log("[LIBRARY] \u{1F504} Converting Text to Sprite...");let{Sprite:D}=await import("pixi.js"),B=L.parent,O=(l=(o=B==null?void 0:B.getChildIndex)==null?void 0:o.call(B,L))!=null?l:0,P={x:L.x,y:L.y},C={x:(d=(c=L.anchor)==null?void 0:c.x)!=null?d:.5,y:(p=(u=L.anchor)==null?void 0:u.y)!=null?p:.5},I={x:(m=(f=L.scale)==null?void 0:f.x)!=null?m:1,y:(g=(h=L.scale)==null?void 0:h.y)!=null?g:1},j=(b=L.alpha)!=null?b:1,Q=(y=L.visible)!=null?y:!0,se=new D(S);se.anchor.set(C.x,C.y),se.position.set(P.x,P.y),se.scale.set(I.x,I.y),se.alpha=j,se.visible=Q,B&&(B.removeChild(L),B.addChildAt(se,O),console.log("[LIBRARY] \u2705 Replaced Text with Sprite in parent")),E.pixiObject&&(E.pixiObject=se),E.pixi&&(E.pixi=se),console.log("[LIBRARY] \u2705 Text \u2192 Sprite conversion complete")}else if(L!=null&&L.children){let D=L.children.find(B=>B.texture);D?(D.texture=S,console.log("[LIBRARY] \u2705 Applied to child sprite")):console.warn("[LIBRARY] \u26A0\uFE0F No texture found in displayObject or children")}}}let T=`raw/library/${n}/${i}`;mt({objectId:v,path:"render.asset.path",value:T}),console.log("[LIBRARY] \u2705 Staged config override for:",v,"path:",T)}catch(v){console.error("[LIBRARY] Error applying slot asset:",v)}}async function rg(e,t,i,n){var r;console.log("[LIBRARY] resetSlotAsset:",{objectId:t,defaultAsset:i,category:n});try{let a=t.startsWith("json.")?t.replace("json.",""):t,s=Date.now(),o=`/raw/${i}?t=${s}`;console.log("[LIBRARY] Loading default texture from:",o);let l=await Xn.Assets.load(o);if(!l){console.error("[LIBRARY] Failed to load default texture:",o);return}ze[a]=l,console.log("[LIBRARY] \u2705 Reset AssetTextures."+a);let c=window.CustomAssets;c!=null&&c[a]&&(c[a].texture=l,console.log("[LIBRARY] \u2705 Reset CustomAssets."+a+" to default"));let d=window.gameObjectManager;if(d){let u=d.get(a);if(u){let p=((r=u.getDisplayObject)==null?void 0:r.call(u))||u.pixiObject||u;p!=null&&p.texture&&(p.texture=l,console.log("[LIBRARY] \u2705 Reset display object:",a))}}mt({objectId:a,path:"render.asset.path",value:i}),console.log("[LIBRARY] \u2705 Reset config override for:",a)}catch(a){console.error("[LIBRARY] Error resetting slot asset:",a)}}var Qn=require("pixi.js");var Fl=require("pixi.js"),It=()=>window.debugConfig||{},ag=()=>window.resolveAnchorVec2||(e=>({x:.5,y:.5})),sg=()=>window.resolveScreenAnchorPoint||(()=>new Fl.Point),og=()=>window.resolveScreenRatioPoint||(()=>new Fl.Point);function lg(e){Ya(e)&&(e.objectDebugRaf||(e.objectDebugRaf=window.requestAnimationFrame(()=>Va(e))))}function cg(e){e.objectDebugRaf&&(window.cancelAnimationFrame(e.objectDebugRaf),e.objectDebugRaf=null),Jn(e)}function Ya(e){return e.isDebugOpen}function Va(e){var a,s,o;if(!Ya(e)){e.objectDebugRaf=null;return}e.objectDebugRaf=window.requestAnimationFrame(()=>Va(e));let t=Hl(e);if(!t){Zn(e,null),Jn(e);return}let i=$l(e,t);if(!i){Zn(e,null),Jn(e);return}let n=new Qn.Point;(a=i.getGlobalPosition)==null||a.call(i,n);let r=Ul(e,i);Zn(e,{instanceId:t,worldX:n.x,worldY:n.y,configX:(s=r==null?void 0:r.x)!=null?s:null,configY:(o=r==null?void 0:r.y)!=null?o:null}),e.highlightObject?Yl(e,i):Kl(e),e.highlightAnchor&&r?Vl(e,r):Xl(e)}function Hl(e){var r;let t=e.selectedObjectId;if(!t)return null;let i=window.__editableObjectInstances,n=(r=i==null?void 0:i.get)==null?void 0:r.call(i,t);return Array.isArray(n)&&n.length>0?n[0]:t}function $l(e,t){var r,a;let i=window.gameObjectManager,n=(r=i==null?void 0:i.get)==null?void 0:r.call(i,t);return n?((a=n.getDisplayObject)==null?void 0:a.call(n))||n.pixiObject||n:null}function er(e){let t=e.selectedObjectId;if(!t)return null;let i=window.getEditableObjectConfig;return typeof i!="function"?null:i(t)}function Ul(e,t){var s,o;let i=er(e);if(!i)return null;let n=(s=i.transform)!=null?s:{},r=ql(e);if(!r)return null;if(n.position_ratio!=null)return og()(r.width,r.height,n.position_ratio);let a=(o=n.anchor)!=null?o:"center";return sg()(r.width,r.height,a)}function ql(e){var a;let t=(a=e.container)==null?void 0:a.querySelector(".game-container"),i=Number(t==null?void 0:t.dataset.screenWidth),n=Number(t==null?void 0:t.dataset.screenHeight);if(Number.isFinite(i)&&i>0&&Number.isFinite(n)&&n>0)return{width:i,height:n};let r=window.gameApp;return r!=null&&r.renderer?{width:r.renderer.width,height:r.renderer.height}:null}function Gl(e){let t=window.gameApp;return t!=null&&t.stage?(e.objectBoundsGfx&&e.objectBoundsGfx.parent!==t.stage&&(e.objectBoundsGfx.destroy(),e.objectBoundsGfx=null),e.objectBoundsGfx||(e.objectBoundsGfx=new Qn.Graphics,e.objectBoundsGfx.zIndex=999999,t.stage.addChild(e.objectBoundsGfx)),e.objectBoundsGfx):null}function Wl(e){let t=window.gameApp;return t!=null&&t.stage?(e.objectAnchorGfx&&e.objectAnchorGfx.parent!==t.stage&&(e.objectAnchorGfx.destroy(),e.objectAnchorGfx=null),e.objectAnchorGfx||(e.objectAnchorGfx=new Qn.Graphics,e.objectAnchorGfx.zIndex=1e6,t.stage.addChild(e.objectAnchorGfx)),e.objectAnchorGfx):null}function Yl(e,t){var r;let i=Gl(e);if(!i)return;let n=(r=t.getBounds)==null?void 0:r.call(t);n&&(i.clear(),i.rect(n.x,n.y,n.width,n.height).stroke({width:2,color:16726832,alpha:.9}))}function Vl(e,t){let i=Wl(e);if(!i)return;let n=6;i.clear(),i.moveTo(t.x-n,t.y),i.lineTo(t.x+n,t.y),i.moveTo(t.x,t.y-n),i.lineTo(t.x,t.y+n),i.stroke({width:2,color:3066993,alpha:.9})}function Kl(e){e.objectBoundsGfx&&e.objectBoundsGfx.clear()}function Xl(e){e.objectAnchorGfx&&e.objectAnchorGfx.clear()}function Jn(e){e.objectBoundsGfx&&(e.objectBoundsGfx.destroy(),e.objectBoundsGfx=null),e.objectAnchorGfx&&(e.objectAnchorGfx.destroy(),e.objectAnchorGfx=null)}function Zn(e,t){e.sceneToolsPanel.updateInfo(t?{instanceId:t.instanceId,worldX:t.worldX,worldY:t.worldY,anchorX:t.configX,anchorY:t.configY}:null)}function dg(e,t){return t.split(".").reduce((i,n)=>i?i[n]:void 0,e)}function ug(e,t,i){var s;let n=t.split("."),r=n.pop(),a=e;for(let o of n)a[o]=(s=a[o])!=null?s:{},a=a[o];a[r]=i}function Zl(e){var n,r,a,s,o;if(!e)return!1;if((n=e.transform)!=null&&n.offset)return!0;let t=((a=(r=e.identity)==null?void 0:r.category)!=null?a:"").toString().toLowerCase(),i=((o=(s=e.identity)==null?void 0:s.id)!=null?o:"").toString().toLowerCase();return t.includes("ui")||i.startsWith("ui")||i.includes("label")}function Xa(e){let t=It();t.layout&&(t.layout.scale_multiplier=1,t.layout.position_offset={x:0,y:0},t.layout.debug_rect_visible=!0,t.layout.debug_rect_color=16711680,t.layout.debug_rect_thickness=4),t.engine&&(t.engine.scale=1,t.engine.background_scale=1.05,t.engine.label_pulse_speed=3,t.engine.label_pulse_intensity=.03),t.physics&&(t.physics.rope_length=420),window.location.reload()}function pg(e){window.location.reload()}function Za(e){let t=JSON.stringify(It(),null,2);navigator.clipboard.writeText(t).then(()=>{alert("Debug config copied to clipboard!")}).catch(()=>{console.log(t),alert("Config logged to console (clipboard not available)")})}async function fg(e,t){var i,n,r;if(!(!e.configViewer||!e.container))try{let a=window.getEditableObjectConfig,s=typeof a=="function"?a(t):null;if(!s){let{loadObjectCentricConfig:o,loadObjectConfig:l}=await Promise.resolve().then(()=>(jr(),Sd)),u=(((i=(await o("scene.main")).scene)==null?void 0:i.objects)||[]).find(f=>f.object_config===t||f.instance_id===t);if(!u)return;let p=await l(u.object_config);console.log("[PREVIEW] Loaded object config (fallback)",t,p),Ka(e,p),(n=e.configViewer)==null||n.style.setProperty("display","block");return}console.log("[PREVIEW] Loaded object config",t,s),Ka(e,s),(r=e.configViewer)==null||r.style.setProperty("display","block");return}catch(a){console.error("[DEBUG] Failed to load object config:",a)}}function Ka(e,t){var u,p,f,m,h,g,b,y,v,x;if(!e.container)return;let i=e.container.querySelector("#config-pos-x"),n=e.container.querySelector("#config-pos-y"),r=e.container.querySelector("#config-scale"),a=e.container.querySelector("#config-anchor-x"),s=e.container.querySelector("#config-anchor-y"),l=Zl(t)?(u=t.transform)==null?void 0:u.offset:(p=t.transform)==null?void 0:p.position;i&&(i.value=String((f=l==null?void 0:l.x)!=null?f:0)),n&&(n.value=String((m=l==null?void 0:l.y)!=null?m:0)),r&&(r.value=String((g=(h=t.transform)==null?void 0:h.scale)!=null?g:1));let c=(x=(v=(b=t.transform)==null?void 0:b.anchor)!=null?v:(y=t.render)==null?void 0:y.anchor)!=null?x:{x:.5,y:.5},d=ag()(c);a&&(a.value=String(d.x)),s&&(s.value=String(d.y))}function hg(e){var l,c,d,u,p,f,m,h,g,b;let t=e.selectedObjectId;if(!t||!e.container)return;let i=(c=(l=e.container.querySelector("#config-pos-x"))==null?void 0:l.value)!=null?c:"0",n=(u=(d=e.container.querySelector("#config-pos-y"))==null?void 0:d.value)!=null?u:"0",r=(f=(p=e.container.querySelector("#config-scale"))==null?void 0:p.value)!=null?f:"1",a=(h=(m=e.container.querySelector("#config-anchor-x"))==null?void 0:m.value)!=null?h:"0.5",s=(b=(g=e.container.querySelector("#config-anchor-y"))==null?void 0:g.value)!=null?b:"0.5",o=`${t}:
|
|
1034
|
+
`}initialize(t,i){var y,v,x,w,S,A,_,T,R,E,L,z,D,B,O,P;this.options=i,this.root=t.querySelector('[data-panel="loading-screen"]');let r=(()=>{var I;let C=window.getEditableEngineConfig;if(typeof C=="function"){let j=C();return(I=j==null?void 0:j.loading)!=null?I:{}}return{}})(),a=(y=this.root)==null?void 0:y.querySelector("#loading-screen-type");a&&(a.value=r.type==="image"?"image":"color",a.addEventListener("change",()=>{var C,I;(I=(C=this.options)==null?void 0:C.onUpdateLoading)==null||I.call(C,{type:a.value}),this.updateFieldVisibility(a.value)}));let s=(v=this.root)==null?void 0:v.querySelector("#loading-background-color");s&&(s.value=r.background_color||"#160a17",s.addEventListener("input",()=>{var C,I;(I=(C=this.options)==null?void 0:C.onUpdateLoading)==null||I.call(C,{background_color:s.value})}));let o=(x=this.root)==null?void 0:x.querySelector("#loading-overlay-alpha"),l=(w=this.root)==null?void 0:w.querySelector("#loading-overlay-alpha-value");o&&(o.value=String((S=r.overlay_alpha)!=null?S:1),l&&(l.textContent=Number(o.value).toFixed(2)),o.addEventListener("input",()=>{var I,j;let C=Number(o.value);l&&(l.textContent=C.toFixed(2)),(j=(I=this.options)==null?void 0:I.onUpdateLoading)==null||j.call(I,{overlay_alpha:C})}));let c=(A=this.root)==null?void 0:A.querySelector("#loading-text");c&&(c.value=r.text||"",c.addEventListener("input",()=>{var C,I;(I=(C=this.options)==null?void 0:C.onUpdateLoading)==null||I.call(C,{text:c.value})}));let d=(_=this.root)==null?void 0:_.querySelector("#loading-text-scale"),u=(T=this.root)==null?void 0:T.querySelector("#loading-text-scale-value");d&&(d.value=String((R=r.text_scale)!=null?R:.6),u&&(u.textContent=Number(d.value).toFixed(2)),d.addEventListener("input",()=>{var I,j;let C=Number(d.value);u&&(u.textContent=C.toFixed(2)),(j=(I=this.options)==null?void 0:I.onUpdateLoading)==null||j.call(I,{text_scale:C})}));let p=(E=this.root)==null?void 0:E.querySelector("#loading-enabled");p&&(p.checked=r.enabled!==!1,p.addEventListener("change",()=>{var C,I;(I=(C=this.options)==null?void 0:C.onUpdateLoading)==null||I.call(C,{enabled:p.checked})}));let f=(L=this.root)==null?void 0:L.querySelector("#loading-blur-enabled");f&&(f.checked=r.blur_enabled!==!1,f.addEventListener("change",()=>{var C,I;(I=(C=this.options)==null?void 0:C.onUpdateLoading)==null||I.call(C,{blur_enabled:f.checked})}));let m=(z=this.root)==null?void 0:z.querySelector("#loading-blur-strength"),h=(D=this.root)==null?void 0:D.querySelector("#loading-blur-strength-value");m&&(m.value=String((B=r.blur_strength)!=null?B:8),h&&(h.textContent=m.value),m.addEventListener("input",()=>{var C,I;h&&(h.textContent=m.value),(I=(C=this.options)==null?void 0:C.onUpdateLoading)==null||I.call(C,{blur_strength:Number(m.value)})}));let g=(O=this.root)==null?void 0:O.querySelector("#loading-show-btn"),b=(P=this.root)==null?void 0:P.querySelector("#loading-hide-btn");g==null||g.addEventListener("click",()=>{var C,I;(I=(C=this.options)==null?void 0:C.onShowLoadingScreen)==null||I.call(C)}),b==null||b.addEventListener("click",()=>{var C,I;(I=(C=this.options)==null?void 0:C.onHideLoadingScreen)==null||I.call(C)}),this.updateFieldVisibility(r.type==="image"?"image":"color")}updateFieldVisibility(t){var r,a;let i=(r=this.root)==null?void 0:r.querySelector("#loading-color-field"),n=(a=this.root)==null?void 0:a.querySelector("#loading-alpha-field");t==="image"?(i&&(i.style.display="none"),n&&(n.style.display="none")):(i&&(i.style.display=""),n&&(n.style.display=""))}refresh(){}};var Xn=require("pixi.js");pi();Te();async function ng(e,t,i){var n,r;console.log("[LIBRARY] applyAssetChange called with:",t,i);try{let a=Date.now(),o=`/${`raw/library/${t}/${i}`}?t=${a}`;console.log("[LIBRARY] Loading texture from:",o);let l=await Xn.Assets.load(o);if(!l){console.error("[LIBRARY] Failed to load texture:",o);return}let c=window.CustomAssets,d=Object.keys(c||{}).filter(p=>{let f=t.replace(/s$/,"");return p.startsWith(f)||p.includes(f)});for(let p of d)ze[p]=l,console.log("[LIBRARY] \u2705 Updated AssetTextures."+p),(n=c[p])!=null&&n.texture&&(c[p].texture=l,console.log("[LIBRARY] \u2705 Updated CustomAssets."+p+".texture"));let u=window.gameObjectManager;if(u)for(let p of d){let f=u.get(p);if(f){let m=((r=f.getDisplayObject)==null?void 0:r.call(f))||f.pixiObject||f;m!=null&&m.texture&&(m.texture=l,console.log("[LIBRARY] \u2705 Applied to display object:",p))}}}catch(a){console.error("[LIBRARY] Error applying asset change:",a)}}async function rg(e,t){var i,n,r;console.log("[LIBRARY] resetAsset called for:",t);try{let a=window.getEditableAssets,s=typeof a=="function"?a():null,o=(i=s==null?void 0:s.slots)==null?void 0:i.find(g=>g.category===t),l=o==null?void 0:o.defaultAsset;if(!l){console.warn("[LIBRARY] Could not find default asset for:",t);return}let c=Date.now(),d=`/raw/${l}?t=${c}`;console.log("[LIBRARY] Loading default texture from:",d);let u=await Xn.Assets.load(d);if(!u){console.error("[LIBRARY] Failed to load default texture:",d);return}let p=window.CustomAssets,f=t.replace(/s$/,""),m=Object.keys(p||{}).filter(g=>g.startsWith(f)||g.includes(f));for(let g of m)ze[g]=u,console.log("[LIBRARY] \u2705 Reset AssetTextures."+g),(n=p[g])!=null&&n.texture&&(p[g].texture=u,console.log("[LIBRARY] \u2705 Reset CustomAssets."+g+" to default"));let h=window.gameObjectManager;if(h)for(let g of m){let b=h.get(g);if(b){let y=((r=b.getDisplayObject)==null?void 0:r.call(b))||b.pixiObject||b;y!=null&&y.texture&&(y.texture=u,console.log("[LIBRARY] \u2705 Reset display object:",g))}}}catch(a){console.error("[LIBRARY] Error resetting asset:",a)}}async function ag(e,t,i,n){var r,a,s,o,l,c,d,u,p,f,m,h,g,b,y;console.log("[LIBRARY] applySlotAsset:",{objectId:t,assetFilename:i,category:n});try{let v=t.startsWith("json.")?t.replace("json.",""):t;console.log("[LIBRARY] Asset key:",v);let x=Date.now(),w=`/raw/library/${n}/${i}?t=${x}`;console.log("[LIBRARY] Loading texture from:",w);let S=await Xn.Assets.load(w);if(!S){console.error("[LIBRARY] Failed to load texture:",w);return}console.log("[LIBRARY] \u2705 Texture loaded"),ze[v]=S,console.log("[LIBRARY] \u2705 Updated AssetTextures."+v);let A=window.CustomAssets;A!=null&&A[v]&&(A[v].texture=S,console.log("[LIBRARY] \u2705 Updated legacy CustomAssets."+v));let _=window.gameObjectManager;if(console.log("[LIBRARY] gameObjectManager exists?",!!_),_){let R=Array.from(((r=_.keys)==null?void 0:r.call(_))||[]).slice(0,10);console.log("[LIBRARY] Available gameObject keys (first 10):",R);let E=_.get(v);if(console.log("[LIBRARY] gameObject for "+v+"?",!!E),E){let L=((a=E.getDisplayObject)==null?void 0:a.call(E))||E.pixiObject||E.pixi||E,z=(s=L==null?void 0:L.constructor)==null?void 0:s.name;if(console.log("[LIBRARY] displayObject:",L),console.log("[LIBRARY] displayObject type:",z),console.log("[LIBRARY] has texture?",!!(L!=null&&L.texture)),L!=null&&L.texture)L.texture=S,console.log("[LIBRARY] \u2705 Applied to display object:",v);else if(z==="Text"){console.log("[LIBRARY] \u{1F504} Converting Text to Sprite...");let{Sprite:D}=await import("pixi.js"),B=L.parent,O=(l=(o=B==null?void 0:B.getChildIndex)==null?void 0:o.call(B,L))!=null?l:0,P={x:L.x,y:L.y},C={x:(d=(c=L.anchor)==null?void 0:c.x)!=null?d:.5,y:(p=(u=L.anchor)==null?void 0:u.y)!=null?p:.5},I={x:(m=(f=L.scale)==null?void 0:f.x)!=null?m:1,y:(g=(h=L.scale)==null?void 0:h.y)!=null?g:1},j=(b=L.alpha)!=null?b:1,Q=(y=L.visible)!=null?y:!0,se=new D(S);se.anchor.set(C.x,C.y),se.position.set(P.x,P.y),se.scale.set(I.x,I.y),se.alpha=j,se.visible=Q,B&&(B.removeChild(L),B.addChildAt(se,O),console.log("[LIBRARY] \u2705 Replaced Text with Sprite in parent")),E.pixiObject&&(E.pixiObject=se),E.pixi&&(E.pixi=se),console.log("[LIBRARY] \u2705 Text \u2192 Sprite conversion complete")}else if(L!=null&&L.children){let D=L.children.find(B=>B.texture);D?(D.texture=S,console.log("[LIBRARY] \u2705 Applied to child sprite")):console.warn("[LIBRARY] \u26A0\uFE0F No texture found in displayObject or children")}}}let T=`raw/library/${n}/${i}`;mt({objectId:v,path:"render.asset.path",value:T}),console.log("[LIBRARY] \u2705 Staged config override for:",v,"path:",T)}catch(v){console.error("[LIBRARY] Error applying slot asset:",v)}}async function sg(e,t,i,n){var r;console.log("[LIBRARY] resetSlotAsset:",{objectId:t,defaultAsset:i,category:n});try{let a=t.startsWith("json.")?t.replace("json.",""):t,s=Date.now(),o=`/raw/${i}?t=${s}`;console.log("[LIBRARY] Loading default texture from:",o);let l=await Xn.Assets.load(o);if(!l){console.error("[LIBRARY] Failed to load default texture:",o);return}ze[a]=l,console.log("[LIBRARY] \u2705 Reset AssetTextures."+a);let c=window.CustomAssets;c!=null&&c[a]&&(c[a].texture=l,console.log("[LIBRARY] \u2705 Reset CustomAssets."+a+" to default"));let d=window.gameObjectManager;if(d){let u=d.get(a);if(u){let p=((r=u.getDisplayObject)==null?void 0:r.call(u))||u.pixiObject||u;p!=null&&p.texture&&(p.texture=l,console.log("[LIBRARY] \u2705 Reset display object:",a))}}mt({objectId:a,path:"render.asset.path",value:i}),console.log("[LIBRARY] \u2705 Reset config override for:",a)}catch(a){console.error("[LIBRARY] Error resetting slot asset:",a)}}var Qn=require("pixi.js");var Hl=require("pixi.js"),It=()=>window.debugConfig||{},og=()=>window.resolveAnchorVec2||(e=>({x:.5,y:.5})),lg=()=>window.resolveScreenAnchorPoint||(()=>new Hl.Point),cg=()=>window.resolveScreenRatioPoint||(()=>new Hl.Point);function dg(e){Va(e)&&(e.objectDebugRaf||(e.objectDebugRaf=window.requestAnimationFrame(()=>Ka(e))))}function ug(e){e.objectDebugRaf&&(window.cancelAnimationFrame(e.objectDebugRaf),e.objectDebugRaf=null),Jn(e)}function Va(e){return e.isDebugOpen}function Ka(e){var a,s,o;if(!Va(e)){e.objectDebugRaf=null;return}e.objectDebugRaf=window.requestAnimationFrame(()=>Ka(e));let t=$l(e);if(!t){Zn(e,null),Jn(e);return}let i=Ul(e,t);if(!i){Zn(e,null),Jn(e);return}let n=new Qn.Point;(a=i.getGlobalPosition)==null||a.call(i,n);let r=ql(e,i);Zn(e,{instanceId:t,worldX:n.x,worldY:n.y,configX:(s=r==null?void 0:r.x)!=null?s:null,configY:(o=r==null?void 0:r.y)!=null?o:null}),e.highlightObject?Vl(e,i):Xl(e),e.highlightAnchor&&r?Kl(e,r):Zl(e)}function $l(e){var r;let t=e.selectedObjectId;if(!t)return null;let i=window.__editableObjectInstances,n=(r=i==null?void 0:i.get)==null?void 0:r.call(i,t);return Array.isArray(n)&&n.length>0?n[0]:t}function Ul(e,t){var r,a;let i=window.gameObjectManager,n=(r=i==null?void 0:i.get)==null?void 0:r.call(i,t);return n?((a=n.getDisplayObject)==null?void 0:a.call(n))||n.pixiObject||n:null}function er(e){let t=e.selectedObjectId;if(!t)return null;let i=window.getEditableObjectConfig;return typeof i!="function"?null:i(t)}function ql(e,t){var s,o;let i=er(e);if(!i)return null;let n=(s=i.transform)!=null?s:{},r=Gl(e);if(!r)return null;if(n.position_ratio!=null)return cg()(r.width,r.height,n.position_ratio);let a=(o=n.anchor)!=null?o:"center";return lg()(r.width,r.height,a)}function Gl(e){var a;let t=(a=e.container)==null?void 0:a.querySelector(".game-container"),i=Number(t==null?void 0:t.dataset.screenWidth),n=Number(t==null?void 0:t.dataset.screenHeight);if(Number.isFinite(i)&&i>0&&Number.isFinite(n)&&n>0)return{width:i,height:n};let r=window.gameApp;return r!=null&&r.renderer?{width:r.renderer.width,height:r.renderer.height}:null}function Wl(e){let t=window.gameApp;return t!=null&&t.stage?(e.objectBoundsGfx&&e.objectBoundsGfx.parent!==t.stage&&(e.objectBoundsGfx.destroy(),e.objectBoundsGfx=null),e.objectBoundsGfx||(e.objectBoundsGfx=new Qn.Graphics,e.objectBoundsGfx.zIndex=999999,t.stage.addChild(e.objectBoundsGfx)),e.objectBoundsGfx):null}function Yl(e){let t=window.gameApp;return t!=null&&t.stage?(e.objectAnchorGfx&&e.objectAnchorGfx.parent!==t.stage&&(e.objectAnchorGfx.destroy(),e.objectAnchorGfx=null),e.objectAnchorGfx||(e.objectAnchorGfx=new Qn.Graphics,e.objectAnchorGfx.zIndex=1e6,t.stage.addChild(e.objectAnchorGfx)),e.objectAnchorGfx):null}function Vl(e,t){var r;let i=Wl(e);if(!i)return;let n=(r=t.getBounds)==null?void 0:r.call(t);n&&(i.clear(),i.rect(n.x,n.y,n.width,n.height).stroke({width:2,color:16726832,alpha:.9}))}function Kl(e,t){let i=Yl(e);if(!i)return;let n=6;i.clear(),i.moveTo(t.x-n,t.y),i.lineTo(t.x+n,t.y),i.moveTo(t.x,t.y-n),i.lineTo(t.x,t.y+n),i.stroke({width:2,color:3066993,alpha:.9})}function Xl(e){e.objectBoundsGfx&&e.objectBoundsGfx.clear()}function Zl(e){e.objectAnchorGfx&&e.objectAnchorGfx.clear()}function Jn(e){e.objectBoundsGfx&&(e.objectBoundsGfx.destroy(),e.objectBoundsGfx=null),e.objectAnchorGfx&&(e.objectAnchorGfx.destroy(),e.objectAnchorGfx=null)}function Zn(e,t){e.sceneToolsPanel.updateInfo(t?{instanceId:t.instanceId,worldX:t.worldX,worldY:t.worldY,anchorX:t.configX,anchorY:t.configY}:null)}function pg(e,t){return t.split(".").reduce((i,n)=>i?i[n]:void 0,e)}function fg(e,t,i){var s;let n=t.split("."),r=n.pop(),a=e;for(let o of n)a[o]=(s=a[o])!=null?s:{},a=a[o];a[r]=i}function Jl(e){var n,r,a,s,o;if(!e)return!1;if((n=e.transform)!=null&&n.offset)return!0;let t=((a=(r=e.identity)==null?void 0:r.category)!=null?a:"").toString().toLowerCase(),i=((o=(s=e.identity)==null?void 0:s.id)!=null?o:"").toString().toLowerCase();return t.includes("ui")||i.startsWith("ui")||i.includes("label")}function Za(e){let t=It();t.layout&&(t.layout.scale_multiplier=1,t.layout.position_offset={x:0,y:0},t.layout.debug_rect_visible=!0,t.layout.debug_rect_color=16711680,t.layout.debug_rect_thickness=4),t.engine&&(t.engine.scale=1,t.engine.background_scale=1.05,t.engine.label_pulse_speed=3,t.engine.label_pulse_intensity=.03),t.physics&&(t.physics.rope_length=420),window.location.reload()}function hg(e){window.location.reload()}function Ja(e){let t=JSON.stringify(It(),null,2);navigator.clipboard.writeText(t).then(()=>{alert("Debug config copied to clipboard!")}).catch(()=>{console.log(t),alert("Config logged to console (clipboard not available)")})}async function gg(e,t){var i,n,r;if(!(!e.configViewer||!e.container))try{let a=window.getEditableObjectConfig,s=typeof a=="function"?a(t):null;if(!s){let{loadObjectCentricConfig:o,loadObjectConfig:l}=await Promise.resolve().then(()=>(jr(),Cd)),u=(((i=(await o("scene.main")).scene)==null?void 0:i.objects)||[]).find(f=>f.object_config===t||f.instance_id===t);if(!u)return;let p=await l(u.object_config);console.log("[PREVIEW] Loaded object config (fallback)",t,p),Xa(e,p),(n=e.configViewer)==null||n.style.setProperty("display","block");return}console.log("[PREVIEW] Loaded object config",t,s),Xa(e,s),(r=e.configViewer)==null||r.style.setProperty("display","block");return}catch(a){console.error("[DEBUG] Failed to load object config:",a)}}function Xa(e,t){var u,p,f,m,h,g,b,y,v,x;if(!e.container)return;let i=e.container.querySelector("#config-pos-x"),n=e.container.querySelector("#config-pos-y"),r=e.container.querySelector("#config-scale"),a=e.container.querySelector("#config-anchor-x"),s=e.container.querySelector("#config-anchor-y"),l=Jl(t)?(u=t.transform)==null?void 0:u.offset:(p=t.transform)==null?void 0:p.position;i&&(i.value=String((f=l==null?void 0:l.x)!=null?f:0)),n&&(n.value=String((m=l==null?void 0:l.y)!=null?m:0)),r&&(r.value=String((g=(h=t.transform)==null?void 0:h.scale)!=null?g:1));let c=(x=(v=(b=t.transform)==null?void 0:b.anchor)!=null?v:(y=t.render)==null?void 0:y.anchor)!=null?x:{x:.5,y:.5},d=og()(c);a&&(a.value=String(d.x)),s&&(s.value=String(d.y))}function mg(e){var l,c,d,u,p,f,m,h,g,b;let t=e.selectedObjectId;if(!t||!e.container)return;let i=(c=(l=e.container.querySelector("#config-pos-x"))==null?void 0:l.value)!=null?c:"0",n=(u=(d=e.container.querySelector("#config-pos-y"))==null?void 0:d.value)!=null?u:"0",r=(f=(p=e.container.querySelector("#config-scale"))==null?void 0:p.value)!=null?f:"1",a=(h=(m=e.container.querySelector("#config-anchor-x"))==null?void 0:m.value)!=null?h:"0.5",s=(b=(g=e.container.querySelector("#config-anchor-y"))==null?void 0:g.value)!=null?b:"0.5",o=`${t}:
|
|
1006
1035
|
position: (${i}, ${n})
|
|
1007
1036
|
scale: ${r}
|
|
1008
|
-
anchor: (${a}, ${s})`;navigator.clipboard.writeText(o).then(()=>console.log("[DEBUG] Config values copied to clipboard")).catch(y=>console.error("[DEBUG] Failed to copy config values:",y))}async function Jl(e,t){var u,p,f,m,h,g,b,y,v,x,w;if(console.log("[INSPECTOR] \u{1F527} applyObjectConfig called"),!e.container)return;let i=e.selectedObjectId;if(!i){console.warn("[PREVIEW] Apply object config clicked with no selection");return}let n=Number((p=(u=e.container.querySelector("#config-pos-x"))==null?void 0:u.value)!=null?p:0),r=Number((m=(f=e.container.querySelector("#config-pos-y"))==null?void 0:f.value)!=null?m:0),a=Number((g=(h=e.container.querySelector("#config-scale"))==null?void 0:h.value)!=null?g:1),s=Number((y=(b=e.container.querySelector("#config-anchor-x"))==null?void 0:b.value)!=null?y:.5),o=Number((x=(v=e.container.querySelector("#config-anchor-y"))==null?void 0:v.value)!=null?x:.5);console.log("[INSPECTOR] Applying config for:",i,{posX:n,posY:r,scale:a,anchorX:s,anchorY:o});let{applyConfigOverride:l}=await Promise.resolve().then(()=>(Te(),Or));l({objectId:i,path:"transform.position",value:{x:n,y:r}},{silent:t==null?void 0:t.silent}),l({objectId:i,path:"transform.scale",value:a},{silent:t==null?void 0:t.silent}),l({objectId:i,path:"transform.anchor",value:{x:s,y:o}},{silent:t==null?void 0:t.silent});let c=er(e);Zl(c)&&l({objectId:i,path:"transform.offset",value:{x:n,y:r}},{silent:!0}),console.log("[INSPECTOR] Calling applyEditableObjectConfig...");let d=window.applyEditableObjectConfig;if(typeof d=="function"){let S=(w=window.getEditableObjectConfig)==null?void 0:w.call(window,i);S?(console.log("[INSPECTOR] \u2705 Calling applyEditableObjectConfig for:",i),d(i,S)):console.warn("[INSPECTOR] \u26A0\uFE0F No config found for:",i)}else console.warn("[INSPECTOR] \u26A0\uFE0F applyEditableObjectConfig not available")}async function gg(e,t,i){let{applyConfigOverride:n}=await Promise.resolve().then(()=>(Te(),Or));Object.entries(t.assets).forEach(([l,c])=>{n({path:`assets.${l}`,value:c},{silent:!0})}),Object.entries(t.runtime.theme).forEach(([l,c])=>{n({path:`runtime.theme.${l}`,value:c},{silent:!0})}),Object.entries(t.runtime.ui).forEach(([l,c])=>{n({path:`runtime.ui.${l}`,value:c},{silent:!0})}),Object.entries(t.runtime.fonts).forEach(([l,c])=>{n({path:`runtime.fonts.${l}`,value:c},{silent:!0})}),Object.entries(t.runtime.audio).forEach(([l,c])=>{n({path:`runtime.audio.${l}`,value:c},{silent:!0})});let r=window.applyEditableEngineConfig;if(typeof r=="function"){let l={theme:t.runtime.theme,fonts:t.runtime.fonts,audio:t.runtime.audio},c={};Object.entries(t.runtime.ui).forEach(([d,u])=>{var p;if(d)if(d.includes(".")){let f=d.split("."),m=c;for(let h=0;h<f.length-1;h++){let g=f[h];m[g]=(p=m[g])!=null?p:{},m=m[g]}m[f[f.length-1]]=u}else c[d]=u}),l.ui=c,r({runtime:l,assets:t.assets})}let a=Object.values(t.assets).some(l=>/^(blob:|data:)/.test(l)),s=(i==null?void 0:i.source)!=="auto"&&!a,o=window.__previewShell;s&&(o!=null&&o.refresh)&&o.refresh()}function mg(e){e.selectedObjectId&&(e.objectAutoApplyTimer&&window.clearTimeout(e.objectAutoApplyTimer),e.objectAutoApplyTimer=window.setTimeout(()=>{e.objectAutoApplyTimer=null,Jl(e,{silent:!0})},150))}var Pw=3e3;function bg(e,t,i){let n=i!=null?i:e.offsetParent;if(!n)return;t.style.cursor="move";let r=0,a=0,s=0,o=0,l=!1,c=u=>{if(!l)return;let p=u.clientX-r,f=u.clientY-a;e.style.left=`${s+p}px`,e.style.top=`${o+f}px`},d=()=>{l&&(l=!1,window.removeEventListener("pointermove",c),window.removeEventListener("pointerup",d))};t.addEventListener("pointerdown",u=>{if(u.button!==0)return;let p=u.target;if(p!=null&&p.closest("button, input, select, textarea"))return;u.preventDefault();let f=e.getBoundingClientRect(),m=n.getBoundingClientRect();s=Math.max(0,f.left-m.left),o=Math.max(0,f.top-m.top);let h=f.width,g=f.height,b=m.width,y=m.height;s=Math.min(s,b-h),o=Math.min(o,y-g),r=u.clientX,a=u.clientY,e.style.left=`${s}px`,e.style.top=`${o}px`,e.style.right="auto",e.style.bottom="auto",e.style.zIndex=String(++Pw);let v=e.getBoundingClientRect();(v.left<0||v.top<0||v.right>window.innerWidth||v.bottom>window.innerHeight)&&(e.style.left="16px",e.style.top="72px",e.style.right="auto",e.style.bottom="auto"),l=!0,window.addEventListener("pointermove",c),window.addEventListener("pointerup",d)})}function yg(e,t,i){t.style.cursor="nwse-resize";let n=0,r=0,a=0,s=0,o=!1,l=d=>{if(!o)return;let u=d.clientX-a,p=d.clientY-s,f=Math.max(100,n+u),m=Math.max(100,r+p);e.style.width=`${f}px`,e.style.height=`${m}px`,i==null||i(f,m)},c=()=>{o&&(o=!1,window.removeEventListener("pointermove",l),window.removeEventListener("pointerup",c))};t.addEventListener("pointerdown",d=>{if(d.button!==0)return;d.preventDefault(),d.stopPropagation();let u=e.getBoundingClientRect();n=u.width,r=u.height,a=d.clientX,s=d.clientY,o=!0,window.addEventListener("pointermove",l),window.addEventListener("pointerup",c)})}function Ql(e,t){var h,g,b;let i=(b=(g=(h=e.container)==null?void 0:h.querySelector("#debug-overlay"))!=null?g:e.debugOverlay)!=null?b:t.offsetParent;if(!i)return;let n=i.getBoundingClientRect(),r=t.getBoundingClientRect(),a=12,s=Math.max(250,Math.floor(n.width-a*2)),o=Math.max(200,Math.floor(n.height-a*2));r.width>s&&(t.style.width=`${s}px`),r.height>o&&(t.style.height=`${o}px`);let l=t.getBoundingClientRect(),c=l.left-n.left,d=l.top-n.top,u=Math.max(a,n.width-l.width-a),p=Math.max(a,n.height-l.height-a),f=Math.min(Math.max(c,a),u),m=Math.min(Math.max(d,a),p);t.style.left=`${Math.round(f)}px`,t.style.top=`${Math.round(m)}px`,t.style.right="auto",t.style.bottom="auto"}function ii(e){if(!e.container)return;let t=e.container.querySelector("#debug-workbench");if(!t)return;Ql(e,t);let i={activeTab:e.activeTab,width:t.style.width,height:t.style.height,left:t.style.left,top:t.style.top};localStorage.setItem("preview_workbench_state",JSON.stringify(i))}function Ja(e){try{let t=localStorage.getItem("preview_workbench_state");if(!t)return;let i=JSON.parse(t);i.activeTab&&(e.activeTab=i.activeTab),window.requestAnimationFrame(()=>{var r;let n=(r=e.container)==null?void 0:r.querySelector("#debug-workbench");n&&(i.width&&(n.style.width=i.width),i.height&&(n.style.height=i.height),i.left&&(n.style.left=i.left,n.style.right="auto"),i.top&&(n.style.top=i.top,n.style.bottom="auto"),Ql(e,n))})}catch(t){console.warn("[PREVIEW] Failed to load workbench state",t)}}function vg(e,t){let i=t.getBoundingClientRect();(i.left<0||i.top<0||i.right>window.innerWidth||i.bottom>window.innerHeight)&&(console.warn("[Workbench] Workbench positioned outside viewport, repositioning..."),t.style.left="16px",t.style.top="72px",t.style.right="auto",t.style.bottom="auto",Ql(e,t),ii(e))}function xg(e){var r,a,s;if(!e.container)return;let t=e.container,i=t.querySelector("#debug-toggle");i||console.warn("[PREVIEW] Debug toggle not found in DOM"),i==null||i.addEventListener("click",()=>{var o;console.log("[PREVIEW] Debug toggle clicked"),(o=e.toggleDebug)==null||o.call(e)}),(r=t.querySelector("#debug-close"))==null||r.addEventListener("click",()=>{var o;return(o=e.toggleDebug)==null?void 0:o.call(e,!1)}),(a=t.querySelector("#debug-reset"))==null||a.addEventListener("click",()=>Xa(e)),(s=t.querySelector("#debug-export"))==null||s.addEventListener("click",()=>Za(e)),t.querySelectorAll(".workbench-tab").forEach(o=>{o.addEventListener("click",()=>{let l=o.dataset.tab;e.activeTab=l,ec(e),ii(e)})}),ic(e,t),tc(e,t)}function ec(e){if(!e.container)return;let t=e.container;t.querySelectorAll(".workbench-tab").forEach(r=>{let a=r.dataset.tab;r.classList.toggle("active",a===e.activeTab)}),t.querySelectorAll(".workbench-tab-panel").forEach(r=>{let a=r.dataset.tabPanel;r.classList.toggle("active",a===e.activeTab)})}function tc(e,t){Ae(e,t,"debug-scene-scale","engine.scale","#debug-scene-scale-value"),Ae(e,t,"debug-layout-scale","layout.scale_multiplier","#debug-layout-scale-value"),Ae(e,t,"debug-layout-offset-x","layout.position_offset.x","#debug-layout-offset-x-value"),Ae(e,t,"debug-layout-offset-y","layout.position_offset.y","#debug-layout-offset-y-value"),Ae(e,t,"debug-rect-thickness","layout.debug_rect_thickness","#debug-rect-thickness-value"),Ae(e,t,"debug-engine-scale","engine.scale","#debug-engine-scale-value"),Ae(e,t,"debug-background-scale","engine.background_scale","#debug-background-scale-value"),Ae(e,t,"debug-label-pulse-speed","engine.label_pulse_speed","#debug-label-pulse-speed-value"),Ae(e,t,"debug-label-pulse-intensity","engine.label_pulse_intensity","#debug-label-pulse-intensity-value"),Ae(e,t,"debug-rope-length","physics.rope_length","#debug-rope-length-value");let i=t.querySelector("#debug-rect-visible");i==null||i.addEventListener("change",()=>{let r=It();r.layout&&(r.layout.debug_rect_visible=!!i.checked)});let n=t.querySelector("#debug-rect-color");n==null||n.addEventListener("input",()=>{let r=n.value.replace("#",""),a=parseInt(r,16),s=It();s.layout&&(s.layout.debug_rect_color=Number.isFinite(a)?a:16711680)})}function wg(e){if(!e.container||!e.debugOverlay)return;let t=e.container.querySelector("#debug-workbench"),i=e.container.querySelector("#workbench-handle"),n=e.container.querySelector("#workbench-resize");t&&i&&(!t.style.left&&!t.style.right&&!t.style.top&&!t.style.bottom&&(t.style.right="16px",t.style.top="72px"),bg(t,i,e.debugOverlay),i.addEventListener("pointerup",()=>{setTimeout(()=>{ii(e),vg(e,t)},10)})),t&&n&&yg(t,n,()=>ii(e)),Ja(e)}function ic(e,t){Array.from(t.querySelectorAll("[data-panel-toggle]")).forEach(n=>{n.addEventListener("click",()=>{let r=n.closest(".scene-panel");r&&r.classList.toggle("collapsed")})})}function Ae(e,t,i,n,r){let a=t.querySelector(`#${i}`),s=t.querySelector(r);if(!a||!s)return;let o=dg(It(),n);typeof o=="number"&&(a.value=String(o),s.textContent=String(o)),a.addEventListener("input",()=>{let l=Number(a.value);s.textContent=String(l),ug(It(),n,l)})}Te();var Qa=class{constructor(){this.container=null}initialize(t){this.container=t,window.addEventListener("config:changed",()=>{this.refreshPanel()}),this.refreshPanel()}render(){let t=Tr(),{hasChanges:i,overrideCount:n,overrides:r}=t,a={};for(let l of r){let c=l.objectId||"Engine";a[c]||(a[c]=[]),a[c].push(l)}let s=localStorage.getItem("handler_last_applied"),o=s?new Date(parseInt(s)).toLocaleString():"Never";return`
|
|
1037
|
+
anchor: (${a}, ${s})`;navigator.clipboard.writeText(o).then(()=>console.log("[DEBUG] Config values copied to clipboard")).catch(y=>console.error("[DEBUG] Failed to copy config values:",y))}async function Ql(e,t){var u,p,f,m,h,g,b,y,v,x,w;if(console.log("[INSPECTOR] \u{1F527} applyObjectConfig called"),!e.container)return;let i=e.selectedObjectId;if(!i){console.warn("[PREVIEW] Apply object config clicked with no selection");return}let n=Number((p=(u=e.container.querySelector("#config-pos-x"))==null?void 0:u.value)!=null?p:0),r=Number((m=(f=e.container.querySelector("#config-pos-y"))==null?void 0:f.value)!=null?m:0),a=Number((g=(h=e.container.querySelector("#config-scale"))==null?void 0:h.value)!=null?g:1),s=Number((y=(b=e.container.querySelector("#config-anchor-x"))==null?void 0:b.value)!=null?y:.5),o=Number((x=(v=e.container.querySelector("#config-anchor-y"))==null?void 0:v.value)!=null?x:.5);console.log("[INSPECTOR] Applying config for:",i,{posX:n,posY:r,scale:a,anchorX:s,anchorY:o});let{applyConfigOverride:l}=await Promise.resolve().then(()=>(Te(),Or));l({objectId:i,path:"transform.position",value:{x:n,y:r}},{silent:t==null?void 0:t.silent}),l({objectId:i,path:"transform.scale",value:a},{silent:t==null?void 0:t.silent}),l({objectId:i,path:"transform.anchor",value:{x:s,y:o}},{silent:t==null?void 0:t.silent});let c=er(e);Jl(c)&&l({objectId:i,path:"transform.offset",value:{x:n,y:r}},{silent:!0}),console.log("[INSPECTOR] Calling applyEditableObjectConfig...");let d=window.applyEditableObjectConfig;if(typeof d=="function"){let S=(w=window.getEditableObjectConfig)==null?void 0:w.call(window,i);S?(console.log("[INSPECTOR] \u2705 Calling applyEditableObjectConfig for:",i),d(i,S)):console.warn("[INSPECTOR] \u26A0\uFE0F No config found for:",i)}else console.warn("[INSPECTOR] \u26A0\uFE0F applyEditableObjectConfig not available")}async function bg(e,t,i){let{applyConfigOverride:n}=await Promise.resolve().then(()=>(Te(),Or));Object.entries(t.assets).forEach(([l,c])=>{n({path:`assets.${l}`,value:c},{silent:!0})}),Object.entries(t.runtime.theme).forEach(([l,c])=>{n({path:`runtime.theme.${l}`,value:c},{silent:!0})}),Object.entries(t.runtime.ui).forEach(([l,c])=>{n({path:`runtime.ui.${l}`,value:c},{silent:!0})}),Object.entries(t.runtime.fonts).forEach(([l,c])=>{n({path:`runtime.fonts.${l}`,value:c},{silent:!0})}),Object.entries(t.runtime.audio).forEach(([l,c])=>{n({path:`runtime.audio.${l}`,value:c},{silent:!0})});let r=window.applyEditableEngineConfig;if(typeof r=="function"){let l={theme:t.runtime.theme,fonts:t.runtime.fonts,audio:t.runtime.audio},c={};Object.entries(t.runtime.ui).forEach(([d,u])=>{var p;if(d)if(d.includes(".")){let f=d.split("."),m=c;for(let h=0;h<f.length-1;h++){let g=f[h];m[g]=(p=m[g])!=null?p:{},m=m[g]}m[f[f.length-1]]=u}else c[d]=u}),l.ui=c,r({runtime:l,assets:t.assets})}let a=Object.values(t.assets).some(l=>/^(blob:|data:)/.test(l)),s=(i==null?void 0:i.source)!=="auto"&&!a,o=window.__previewShell;s&&(o!=null&&o.refresh)&&o.refresh()}function yg(e){e.selectedObjectId&&(e.objectAutoApplyTimer&&window.clearTimeout(e.objectAutoApplyTimer),e.objectAutoApplyTimer=window.setTimeout(()=>{e.objectAutoApplyTimer=null,Ql(e,{silent:!0})},150))}var zw=3e3;function vg(e,t,i){let n=i!=null?i:e.offsetParent;if(!n)return;t.style.cursor="move";let r=0,a=0,s=0,o=0,l=!1,c=u=>{if(!l)return;let p=u.clientX-r,f=u.clientY-a;e.style.left=`${s+p}px`,e.style.top=`${o+f}px`},d=()=>{l&&(l=!1,window.removeEventListener("pointermove",c),window.removeEventListener("pointerup",d))};t.addEventListener("pointerdown",u=>{if(u.button!==0)return;let p=u.target;if(p!=null&&p.closest("button, input, select, textarea"))return;u.preventDefault();let f=e.getBoundingClientRect(),m=n.getBoundingClientRect();s=Math.max(0,f.left-m.left),o=Math.max(0,f.top-m.top);let h=f.width,g=f.height,b=m.width,y=m.height;s=Math.min(s,b-h),o=Math.min(o,y-g),r=u.clientX,a=u.clientY,e.style.left=`${s}px`,e.style.top=`${o}px`,e.style.right="auto",e.style.bottom="auto",e.style.zIndex=String(++zw);let v=e.getBoundingClientRect();(v.left<0||v.top<0||v.right>window.innerWidth||v.bottom>window.innerHeight)&&(e.style.left="16px",e.style.top="72px",e.style.right="auto",e.style.bottom="auto"),l=!0,window.addEventListener("pointermove",c),window.addEventListener("pointerup",d)})}function xg(e,t,i){t.style.cursor="nwse-resize";let n=0,r=0,a=0,s=0,o=!1,l=d=>{if(!o)return;let u=d.clientX-a,p=d.clientY-s,f=Math.max(100,n+u),m=Math.max(100,r+p);e.style.width=`${f}px`,e.style.height=`${m}px`,i==null||i(f,m)},c=()=>{o&&(o=!1,window.removeEventListener("pointermove",l),window.removeEventListener("pointerup",c))};t.addEventListener("pointerdown",d=>{if(d.button!==0)return;d.preventDefault(),d.stopPropagation();let u=e.getBoundingClientRect();n=u.width,r=u.height,a=d.clientX,s=d.clientY,o=!0,window.addEventListener("pointermove",l),window.addEventListener("pointerup",c)})}function ec(e,t){var h,g,b;let i=(b=(g=(h=e.container)==null?void 0:h.querySelector("#debug-overlay"))!=null?g:e.debugOverlay)!=null?b:t.offsetParent;if(!i)return;let n=i.getBoundingClientRect(),r=t.getBoundingClientRect(),a=12,s=Math.max(250,Math.floor(n.width-a*2)),o=Math.max(200,Math.floor(n.height-a*2));r.width>s&&(t.style.width=`${s}px`),r.height>o&&(t.style.height=`${o}px`);let l=t.getBoundingClientRect(),c=l.left-n.left,d=l.top-n.top,u=Math.max(a,n.width-l.width-a),p=Math.max(a,n.height-l.height-a),f=Math.min(Math.max(c,a),u),m=Math.min(Math.max(d,a),p);t.style.left=`${Math.round(f)}px`,t.style.top=`${Math.round(m)}px`,t.style.right="auto",t.style.bottom="auto"}function ii(e){if(!e.container)return;let t=e.container.querySelector("#debug-workbench");if(!t)return;ec(e,t);let i={activeTab:e.activeTab,width:t.style.width,height:t.style.height,left:t.style.left,top:t.style.top};localStorage.setItem("preview_workbench_state",JSON.stringify(i))}function Qa(e){try{let t=localStorage.getItem("preview_workbench_state");if(!t)return;let i=JSON.parse(t);i.activeTab&&(e.activeTab=i.activeTab),window.requestAnimationFrame(()=>{var r;let n=(r=e.container)==null?void 0:r.querySelector("#debug-workbench");n&&(i.width&&(n.style.width=i.width),i.height&&(n.style.height=i.height),i.left&&(n.style.left=i.left,n.style.right="auto"),i.top&&(n.style.top=i.top,n.style.bottom="auto"),ec(e,n))})}catch(t){console.warn("[PREVIEW] Failed to load workbench state",t)}}function wg(e,t){let i=t.getBoundingClientRect();(i.left<0||i.top<0||i.right>window.innerWidth||i.bottom>window.innerHeight)&&(console.warn("[Workbench] Workbench positioned outside viewport, repositioning..."),t.style.left="16px",t.style.top="72px",t.style.right="auto",t.style.bottom="auto",ec(e,t),ii(e))}function _g(e){var r,a,s;if(!e.container)return;let t=e.container,i=t.querySelector("#debug-toggle");i||console.warn("[PREVIEW] Debug toggle not found in DOM"),i==null||i.addEventListener("click",()=>{var o;console.log("[PREVIEW] Debug toggle clicked"),(o=e.toggleDebug)==null||o.call(e)}),(r=t.querySelector("#debug-close"))==null||r.addEventListener("click",()=>{var o;return(o=e.toggleDebug)==null?void 0:o.call(e,!1)}),(a=t.querySelector("#debug-reset"))==null||a.addEventListener("click",()=>Za(e)),(s=t.querySelector("#debug-export"))==null||s.addEventListener("click",()=>Ja(e)),t.querySelectorAll(".workbench-tab").forEach(o=>{o.addEventListener("click",()=>{let l=o.dataset.tab;e.activeTab=l,tc(e),ii(e)})}),nc(e,t),ic(e,t)}function tc(e){if(!e.container)return;let t=e.container;t.querySelectorAll(".workbench-tab").forEach(r=>{let a=r.dataset.tab;r.classList.toggle("active",a===e.activeTab)}),t.querySelectorAll(".workbench-tab-panel").forEach(r=>{let a=r.dataset.tabPanel;r.classList.toggle("active",a===e.activeTab)})}function ic(e,t){Ae(e,t,"debug-scene-scale","engine.scale","#debug-scene-scale-value"),Ae(e,t,"debug-layout-scale","layout.scale_multiplier","#debug-layout-scale-value"),Ae(e,t,"debug-layout-offset-x","layout.position_offset.x","#debug-layout-offset-x-value"),Ae(e,t,"debug-layout-offset-y","layout.position_offset.y","#debug-layout-offset-y-value"),Ae(e,t,"debug-rect-thickness","layout.debug_rect_thickness","#debug-rect-thickness-value"),Ae(e,t,"debug-engine-scale","engine.scale","#debug-engine-scale-value"),Ae(e,t,"debug-background-scale","engine.background_scale","#debug-background-scale-value"),Ae(e,t,"debug-label-pulse-speed","engine.label_pulse_speed","#debug-label-pulse-speed-value"),Ae(e,t,"debug-label-pulse-intensity","engine.label_pulse_intensity","#debug-label-pulse-intensity-value"),Ae(e,t,"debug-rope-length","physics.rope_length","#debug-rope-length-value");let i=t.querySelector("#debug-rect-visible");i==null||i.addEventListener("change",()=>{let r=It();r.layout&&(r.layout.debug_rect_visible=!!i.checked)});let n=t.querySelector("#debug-rect-color");n==null||n.addEventListener("input",()=>{let r=n.value.replace("#",""),a=parseInt(r,16),s=It();s.layout&&(s.layout.debug_rect_color=Number.isFinite(a)?a:16711680)})}function Eg(e){if(!e.container||!e.debugOverlay)return;let t=e.container.querySelector("#debug-workbench"),i=e.container.querySelector("#workbench-handle"),n=e.container.querySelector("#workbench-resize");t&&i&&(!t.style.left&&!t.style.right&&!t.style.top&&!t.style.bottom&&(t.style.right="16px",t.style.top="72px"),vg(t,i,e.debugOverlay),i.addEventListener("pointerup",()=>{setTimeout(()=>{ii(e),wg(e,t)},10)})),t&&n&&xg(t,n,()=>ii(e)),Qa(e)}function nc(e,t){Array.from(t.querySelectorAll("[data-panel-toggle]")).forEach(n=>{n.addEventListener("click",()=>{let r=n.closest(".scene-panel");r&&r.classList.toggle("collapsed")})})}function Ae(e,t,i,n,r){let a=t.querySelector(`#${i}`),s=t.querySelector(r);if(!a||!s)return;let o=pg(It(),n);typeof o=="number"&&(a.value=String(o),s.textContent=String(o)),a.addEventListener("input",()=>{let l=Number(a.value);s.textContent=String(l),fg(It(),n,l)})}Te();var es=class{constructor(){this.container=null}initialize(t){this.container=t,window.addEventListener("config:changed",()=>{this.refreshPanel()}),this.refreshPanel()}render(){let t=Tr(),{hasChanges:i,overrideCount:n,overrides:r}=t,a={};for(let l of r){let c=l.objectId||"Engine";a[c]||(a[c]=[]),a[c].push(l)}let s=localStorage.getItem("handler_last_applied"),o=s?new Date(parseInt(s)).toLocaleString():"Never";return`
|
|
1009
1038
|
<div class="config-persistence-panel">
|
|
1010
1039
|
<div class="persistence-status-bar ${i?"has-changes":"no-changes"}">
|
|
1011
1040
|
${i?`
|
|
@@ -1090,7 +1119,7 @@ Generate the requested asset matching the brand style.${e.needsTransparency?" Ba
|
|
|
1090
1119
|
<strong>Changes Applied!</strong>
|
|
1091
1120
|
<span>Project files updated.</span>
|
|
1092
1121
|
</div>
|
|
1093
|
-
`,document.body.appendChild(t),setTimeout(()=>{t.classList.add("out"),setTimeout(()=>t.remove(),500)},3e3)}refreshPanel(){if(!this.container)return;let t=this.container.querySelector(".config-persistence-panel");t?t.outerHTML=this.render():this.container.innerHTML=this.render(),this.setupEventListeners()}};var tr=class{constructor(){this.debugOverlay=null;this.isDebugOpen=!1;this.selectedObjectId=null;this.configViewer=null;this.container=null;this.objectAutoApplyTimer=null;this.objectDebugRaf=null;this.objectBoundsGfx=null;this.objectAnchorGfx=null;this.highlightObject=!1;this.highlightAnchor=!1;this.activeTab="hierarchy";this.sceneObjectsPanel=new zr;this.sceneToolsPanel=new Nr;this.inspectorPanel=new
|
|
1122
|
+
`,document.body.appendChild(t),setTimeout(()=>{t.classList.add("out"),setTimeout(()=>t.remove(),500)},3e3)}refreshPanel(){if(!this.container)return;let t=this.container.querySelector(".config-persistence-panel");t?t.outerHTML=this.render():this.container.innerHTML=this.render(),this.setupEventListeners()}};var tr=class{constructor(){this.debugOverlay=null;this.isDebugOpen=!1;this.selectedObjectId=null;this.configViewer=null;this.container=null;this.objectAutoApplyTimer=null;this.objectDebugRaf=null;this.objectBoundsGfx=null;this.objectAnchorGfx=null;this.highlightObject=!1;this.highlightAnchor=!1;this.activeTab="hierarchy";this.sceneObjectsPanel=new zr;this.sceneToolsPanel=new Nr;this.inspectorPanel=new Zr;this.libraryPanel=new Br;this.brandVisionPanel=new Ga;this.customizeSettingsPanel=new Wa;this.configPersistencePanel=new es;this.loadingScreenPanel=new Ya}applyAssetChange(t,i){return ng(this,t,i)}resetAsset(t){return rg(this,t)}applySlotAsset(t,i,n){return ag(this,t,i,n)}resetSlotAsset(t,i,n){return sg(this,t,i,n)}startObjectVisuals(){return dg(this)}stopObjectVisuals(){return ug(this)}shouldRunObjectVisuals(){return Va(this)}updateObjectVisuals(){return Ka(this)}getSelectedInstanceId(){return $l(this)}getDisplayObjectById(t){return Ul(this,t)}getSelectedObjectConfig(){return er(this)}getConfigAnchorWorldPoint(t){return ql(this,t)}getScreenSize(){return Gl(this)}ensureBoundsGfx(){return Wl(this)}ensureAnchorGfx(){return Yl(this)}drawBounds(t){return Vl(this,t)}drawAnchor(t){return Kl(this,t)}clearBounds(){return Xl(this)}clearAnchor(){return Zl(this)}clearObjectVisuals(){return Jn(this)}updateObjectInfo(t){return Zn(this,t)}resetDebugConfig(){return Za(this)}applyDebugConfig(){return hg(this)}exportDebugConfig(){return Ja(this)}loadObjectConfig(t){return gg(this,t)}fillConfigViewer(t){return Xa(this,t)}copyConfigValues(){return mg(this)}applyObjectConfig(t){return Ql(this,t)}applyCustomizeSettings(t,i){return bg(this,t,i)}scheduleObjectAutoApply(){return yg(this)}setupDebugEventListeners(){return _g(this)}setupDebugInputListeners(t){return ic(this,t)}setupPanelLayout(){return Eg(this)}setupCollapsiblePanels(t){return nc(this,t)}setupRangeInput(t,i,n,r){return Ae(this,t,i,n,r)}updateWorkbenchTabs(){return tc(this)}saveWorkbenchState(){return ii(this)}loadWorkbenchState(){return Qa(this)}initialize(t){var i;this.container=t,this.debugOverlay=t.querySelector(".debug-overlay"),this.configViewer=t.querySelector("#config-viewer");try{let n=localStorage.getItem("preview_workbench_state");if(n){let r=JSON.parse(n);r.activeTab&&(this.activeTab=r.activeTab)}}catch(n){console.warn("[PREVIEW] Failed to load workbench tab state",n)}this.sceneObjectsPanel.initialize(t,{onSelect:n=>this.handleObjectSelect(n)}),this.libraryPanel.initialize(t,{onApply:(n,r,a)=>this.applySlotAsset(n,r,a),onReset:(n,r,a)=>this.resetSlotAsset(n,r,a)}),this.inspectorPanel.initialize(t,{onPropertyChange:(n,r,a)=>{console.log("[Inspector] Property changed:",n,r,a)}}),this.brandVisionPanel.initialize(t,()=>{this.toggleDebug(!1);let n="/dashboard";window.location.pathname!==n&&(window.location.href=n)}),this.customizeSettingsPanel.initialize(t,{onApply:(n,r)=>this.applyCustomizeSettings(n,r)}),this.configPersistencePanel.initialize(t),this.loadingScreenPanel.initialize(t,{onShowLoadingScreen:()=>{let n=window;typeof n.__previewShowLoading=="function"?n.__previewShowLoading():console.warn("[DEBUG] __previewShowLoading not available")},onHideLoadingScreen:()=>{let n=window;typeof n.__previewHideLoading=="function"?n.__previewHideLoading():console.warn("[DEBUG] __previewHideLoading not available")},onUpdateLoading:n=>{let r=window;typeof r.applyEditableEngineConfig=="function"&&r.applyEditableEngineConfig({loading:n}),typeof r.__previewUpdateLoading=="function"?r.__previewUpdateLoading(n):console.warn("[DEBUG] __previewUpdateLoading not available")}}),window.__openAiEditor=(n,r,a,s)=>{this.customizeSettingsPanel.openAiEditor(n,r,a,s)},this.setupPanelLayout(),this.updateWorkbenchTabs(),window.__debugContext=this,window.__updateWorkbenchTabs=()=>this.updateWorkbenchTabs(),this.isDebugOpen=!0,(i=this.debugOverlay)==null||i.classList.remove("hidden"),this.updateDebugBadge(),this.sceneObjectsPanel.refreshObjects(),window.__previewSelectObject=n=>this.selectObject(n),window.addEventListener("config:changed",n=>{var r,a;((r=n.detail)==null?void 0:r.action)!=="remove"&&((a=n.detail)==null?void 0:a.action)!=="clear_object"&&this.highlightChangesTab()}),window.applyAssetToSlot=(n,r,a)=>this.applySlotAsset(n,r,a),window.refreshAssetLibrary=()=>this.libraryPanel.refresh(),window.reRenderAssetLibrary=()=>this.libraryPanel.reRender(),window.getEngineSplashConfig=()=>{var r;let n=window.getActiveConfig;if(typeof n=="function"){let a=n();return((r=a==null?void 0:a.engine)==null?void 0:r.splash)||null}return null},window.addAssetToRegistry=(n,r)=>{let a=window.getEditableAssets;if(typeof a=="function"){let s=a();if(s!=null&&s.libraryAssets&&(s.libraryAssets[n]||(s.libraryAssets[n]=[]),!s.libraryAssets[n].some(l=>l.filename===r))){let l=r.replace(/\.(png|jpg|jpeg)$/i,"").replace(/_/g," ");s.libraryAssets[n].unshift({filename:r,displayName:l}),console.log(`[DEBUG] Added ${r} to registry category ${n}`)}}}}selectObject(t){this.handleObjectSelect(t),this.activeTab!=="inspector"&&(this.activeTab="inspector",this.updateWorkbenchTabs())}highlightChangesTab(){var i;let t=(i=this.container)==null?void 0:i.querySelector('[data-tab="changes"]');t&&t.classList.add("has-pending-changes")}getDebugOverlayHTML(){return`
|
|
1094
1123
|
<div class="debug-overlay hidden" id="debug-overlay">
|
|
1095
1124
|
<div class="debug-workbench" id="debug-workbench">
|
|
1096
1125
|
<div class="workbench-header" id="workbench-handle">
|
|
@@ -1135,7 +1164,7 @@ Generate the requested asset matching the brand style.${e.needsTransparency?" Ba
|
|
|
1135
1164
|
<div class="workbench-resize-handle" id="workbench-resize"></div>
|
|
1136
1165
|
</div>
|
|
1137
1166
|
</div>
|
|
1138
|
-
`}refresh(){this.isDebugOpen&&(this.sceneObjectsPanel.refreshObjects(),this.libraryPanel.refresh(),this.brandVisionPanel.refresh(),this.selectedObjectId&&this.handleObjectSelect(this.selectedObjectId))}toggleDebug(t){var i;this.isDebugOpen=t!=null?t:!this.isDebugOpen,(i=this.debugOverlay)==null||i.classList.toggle("hidden",!this.isDebugOpen),this.updateDebugBadge(),this.isDebugOpen?this.refresh():this.stopObjectVisuals()}updateDebugBadge(){if(!this.container)return;let t=this.container.querySelector("#debug-badge");t&&t.classList.toggle("active",this.isDebugOpen)}handleObjectSelect(t){this.selectedObjectId=t,this.sceneObjectsPanel.setSelected(t),this.inspectorPanel.loadObject(t),this.loadObjectConfig(t),this.startObjectVisuals()}nudgeSelectedObject(t,i){var u,p,f,m,h,g,b,y,v;if(!this.container||!this.selectedObjectId)return;let r=this.sceneToolsPanel.getNudgeStep(),a=this.container.querySelector("#config-pos-x"),s=this.container.querySelector("#config-pos-y"),o=Number((u=a==null?void 0:a.value)!=null?u:0),l=Number((p=s==null?void 0:s.value)!=null?p:0);if(!Number.isFinite(o)||!Number.isFinite(l)){let x=this.getSelectedObjectConfig();o=(h=(m=(f=x==null?void 0:x.transform)==null?void 0:f.position)==null?void 0:m.x)!=null?h:0,l=(y=(b=(g=x==null?void 0:x.transform)==null?void 0:g.position)==null?void 0:b.y)!=null?y:0}let c=o+t*r,d=l+i*r;a&&(a.value=String(c)),s&&(s.value=String(d)),(v=this.configViewer)==null||v.style.setProperty("display","block"),this.scheduleObjectAutoApply()}};function
|
|
1167
|
+
`}refresh(){this.isDebugOpen&&(this.sceneObjectsPanel.refreshObjects(),this.libraryPanel.refresh(),this.brandVisionPanel.refresh(),this.selectedObjectId&&this.handleObjectSelect(this.selectedObjectId))}toggleDebug(t){var i;this.isDebugOpen=t!=null?t:!this.isDebugOpen,(i=this.debugOverlay)==null||i.classList.toggle("hidden",!this.isDebugOpen),this.updateDebugBadge(),this.isDebugOpen?this.refresh():this.stopObjectVisuals()}updateDebugBadge(){if(!this.container)return;let t=this.container.querySelector("#debug-badge");t&&t.classList.toggle("active",this.isDebugOpen)}handleObjectSelect(t){this.selectedObjectId=t,this.sceneObjectsPanel.setSelected(t),this.inspectorPanel.loadObject(t),this.loadObjectConfig(t),this.startObjectVisuals()}nudgeSelectedObject(t,i){var u,p,f,m,h,g,b,y,v;if(!this.container||!this.selectedObjectId)return;let r=this.sceneToolsPanel.getNudgeStep(),a=this.container.querySelector("#config-pos-x"),s=this.container.querySelector("#config-pos-y"),o=Number((u=a==null?void 0:a.value)!=null?u:0),l=Number((p=s==null?void 0:s.value)!=null?p:0);if(!Number.isFinite(o)||!Number.isFinite(l)){let x=this.getSelectedObjectConfig();o=(h=(m=(f=x==null?void 0:x.transform)==null?void 0:f.position)==null?void 0:m.x)!=null?h:0,l=(y=(b=(g=x==null?void 0:x.transform)==null?void 0:g.position)==null?void 0:b.y)!=null?y:0}let c=o+t*r,d=l+i*r;a&&(a.value=String(c)),s&&(s.value=String(d)),(v=this.configViewer)==null||v.style.setProperty("display","block"),this.scheduleObjectAutoApply()}};function Nw(e){return new Promise((t,i)=>{let n=new FileReader;n.onerror=()=>i(new Error("FileReader failed")),n.onload=()=>t(String(n.result||"")),n.readAsDataURL(e)})}function Bw(e){var r;let[t,i]=e.split(","),n=t==null?void 0:t.match(/data:(.*?);base64/);return{base64:i!=null?i:"",mimeType:(r=n==null?void 0:n[1])!=null?r:"image/png"}}function Fw(e){return`
|
|
1139
1168
|
Analyze these screenshots of a brand or game and extract its "Brand DNA".
|
|
1140
1169
|
|
|
1141
1170
|
Provide a concise summary (2-3 sentences) covering:
|
|
@@ -1152,9 +1181,9 @@ Palette: [#RRGGBB, #RRGGBB, ...]
|
|
|
1152
1181
|
${e?`
|
|
1153
1182
|
ADDITIONAL RULES/NOTES:
|
|
1154
1183
|
${e}`:""}
|
|
1155
|
-
`.trim()}function
|
|
1184
|
+
`.trim()}function Sg(){let e=[],t="",i=null;return{async addSources(n){let r=[];for(let a of n){let s=await Nw(a),o=Bw(s),l={id:`${Date.now()}-${Math.random().toString(16).slice(2)}`,name:a.name,base64:o.base64,mimeType:o.mimeType,dataUrl:s};e.push(l),r.push(l)}return r},getSources(){return e.slice()},async analyze(n,r,a){if(e.length===0)throw new Error("No screenshots to analyze.");let s=Fw(r),o=e.map(p=>({base64:p.base64,mimeType:p.mimeType})),l=await qa(n,s,o,{model:a}),c=t,d=[],u=l.split(`
|
|
1156
1185
|
`);for(let p of u)if(p.toLowerCase().startsWith("summary:"))c=p.slice(8).trim();else if(p.toLowerCase().includes("palette:")){let f=p.match(/#[0-9A-Fa-f]{6}/g);f&&f.forEach(m=>{d.includes(m.toUpperCase())||d.push(m.toUpperCase())})}return(!c||c===t)&&(c=l.split(`
|
|
1157
|
-
Palette:`)[0].replace(/^Summary:\s*/i,"").trim()),i={summary:c,palette:d.slice(0,10)},i},setSummary(n){t=n,i&&(i={...i,summary:n})},getResult(){return i}}}var ni="handler_api_key_";var qi=class{static setKey(t,i,n){try{let r={key:this.encryptKey(i),created:Date.now(),lastUsed:Date.now(),label:n||t},a=`${ni}${t}`;localStorage.setItem(a,JSON.stringify(r))}catch(r){console.error("[ApiKeyStorage] Failed to store API key:",r)}}static getKey(t){try{let i=`${ni}${t}`,n=localStorage.getItem(i);if(!n)return null;let r=JSON.parse(n);return r.lastUsed=Date.now(),localStorage.setItem(i,JSON.stringify(r)),this.decryptKey(r.key)}catch(i){return console.error("[ApiKeyStorage] Failed to retrieve API key:",i),null}}static hasKey(t){let i=`${ni}${t}`;return localStorage.getItem(i)!==null}static removeKey(t){try{let i=`${ni}${t}`;localStorage.removeItem(i)}catch(i){console.error("[ApiKeyStorage] Failed to remove API key:",i)}}static getStoredServices(){let t=[];try{for(let i=0;i<localStorage.length;i++){let n=localStorage.key(i);if(n&&n.startsWith(ni)){let r=n.substring(ni.length),a=localStorage.getItem(n);if(a){let s=JSON.parse(a);t.push({service:r,label:s.label,created:s.created,lastUsed:s.lastUsed})}}}}catch(i){console.error("[ApiKeyStorage] Failed to get stored services:",i)}return t.sort((i,n)=>n.lastUsed-i.lastUsed)}static clearAll(){try{let t=[];for(let i=0;i<localStorage.length;i++){let n=localStorage.key(i);n&&n.startsWith(ni)&&t.push(n)}t.forEach(i=>localStorage.removeItem(i))}catch(t){console.error("[ApiKeyStorage] Failed to clear API keys:",t)}}static encryptKey(t){try{let n="handler_preview_salt_2024"+t;return btoa(n)}catch(i){return console.warn("[ApiKeyStorage] Encryption failed, storing as-is:",i),t}}static decryptKey(t){try{let i=atob(t),n="handler_preview_salt_2024";return i.startsWith(n)?i.substring(n.length):i}catch(i){return console.warn("[ApiKeyStorage] Decryption failed, returning as-is:",i),t}}},
|
|
1186
|
+
Palette:`)[0].replace(/^Summary:\s*/i,"").trim()),i={summary:c,palette:d.slice(0,10)},i},setSummary(n){t=n,i&&(i={...i,summary:n})},getResult(){return i}}}var ni="handler_api_key_";var qi=class{static setKey(t,i,n){try{let r={key:this.encryptKey(i),created:Date.now(),lastUsed:Date.now(),label:n||t},a=`${ni}${t}`;localStorage.setItem(a,JSON.stringify(r))}catch(r){console.error("[ApiKeyStorage] Failed to store API key:",r)}}static getKey(t){try{let i=`${ni}${t}`,n=localStorage.getItem(i);if(!n)return null;let r=JSON.parse(n);return r.lastUsed=Date.now(),localStorage.setItem(i,JSON.stringify(r)),this.decryptKey(r.key)}catch(i){return console.error("[ApiKeyStorage] Failed to retrieve API key:",i),null}}static hasKey(t){let i=`${ni}${t}`;return localStorage.getItem(i)!==null}static removeKey(t){try{let i=`${ni}${t}`;localStorage.removeItem(i)}catch(i){console.error("[ApiKeyStorage] Failed to remove API key:",i)}}static getStoredServices(){let t=[];try{for(let i=0;i<localStorage.length;i++){let n=localStorage.key(i);if(n&&n.startsWith(ni)){let r=n.substring(ni.length),a=localStorage.getItem(n);if(a){let s=JSON.parse(a);t.push({service:r,label:s.label,created:s.created,lastUsed:s.lastUsed})}}}}catch(i){console.error("[ApiKeyStorage] Failed to get stored services:",i)}return t.sort((i,n)=>n.lastUsed-i.lastUsed)}static clearAll(){try{let t=[];for(let i=0;i<localStorage.length;i++){let n=localStorage.key(i);n&&n.startsWith(ni)&&t.push(n)}t.forEach(i=>localStorage.removeItem(i))}catch(t){console.error("[ApiKeyStorage] Failed to clear API keys:",t)}}static encryptKey(t){try{let n="handler_preview_salt_2024"+t;return btoa(n)}catch(i){return console.warn("[ApiKeyStorage] Encryption failed, storing as-is:",i),t}}static decryptKey(t){try{let i=atob(t),n="handler_preview_salt_2024";return i.startsWith(n)?i.substring(n.length):i}catch(i){return console.warn("[ApiKeyStorage] Decryption failed, returning as-is:",i),t}}},rc=()=>qi.getKey("gemini"),ac=(e,t)=>qi.setKey("gemini",e,t),Hw=()=>qi.hasKey("gemini");window.ApiKeyStorage=qi;window.getGeminiApiKey=rc;window.setGeminiApiKey=ac;window.hasGeminiApiKey=Hw;var oc=class{constructor(){this.modal=null;this.options=null;this.analyzer=Sg();this.currentPrompt="";this.isGenerating=!1;this.generatedImages=[];this.selectedImageIndex=-1;this.promptInput=null;this.generateBtn=null;this.loadingEl=null;this.galleryEl=null;this.previewEl=null}open(t){this.options=t,this.currentPrompt=t.initialPrompt||"",this.generatedImages=[],this.selectedImageIndex=-1,this.isGenerating=!1,this.createModal(),document.body.appendChild(this.modal),setTimeout(()=>{var i,n;(i=this.promptInput)==null||i.focus(),(n=this.promptInput)==null||n.select()},100)}createModal(){var i;let t=document.createElement("div");t.className="ai-modal",t.innerHTML=`
|
|
1158
1187
|
<div class="ai-modal-card">
|
|
1159
1188
|
<div class="ai-modal-header">
|
|
1160
1189
|
<div class="ai-modal-actions">
|
|
@@ -1235,12 +1264,12 @@ Palette:`)[0].replace(/^Summary:\s*/i,"").trim()),i={summary:c,palette:d.slice(0
|
|
|
1235
1264
|
</div>
|
|
1236
1265
|
`,this.modal=t,this.attachEventListeners(),this.updatePromptFromDna()}attachEventListeners(){var n;if(!this.modal)return;this.promptInput=this.modal.querySelector(".ai-textarea"),this.generateBtn=this.modal.querySelector('[data-action="generate"]'),this.loadingEl=this.modal.querySelector("[data-loading]"),this.galleryEl=this.modal.querySelector("[data-gallery]"),this.previewEl=this.modal.querySelector("[data-preview]"),(n=this.promptInput)==null||n.addEventListener("input",()=>{var r;this.currentPrompt=((r=this.promptInput)==null?void 0:r.value)||"",this.updateGenerateButton()});let t=this.modal.querySelector('[data-strength="creativity"]'),i=this.modal.querySelector(".ai-strength-value");t==null||t.addEventListener("input",()=>{i.textContent=t.value}),this.modal.addEventListener("click",r=>{var o;let a=r.target;switch(a.dataset.action||((o=a.closest("[data-action]"))==null?void 0:o.getAttribute("data-action"))){case"generate":this.generateImage();break;case"apply":this.applySelectedImage();break;case"gallery":this.toggleGallery();break;case"close":case"cancel":this.close();break}}),this.modal.addEventListener("click",r=>{let a=r.target;if(a.classList.contains("ai-gallery-item")||a.closest(".ai-gallery-item")){let s=a.closest(".ai-gallery-item"),o=parseInt(s.dataset.index||"-1");o>=0&&this.selectImage(o)}}),this.modal.addEventListener("click",r=>{r.target===this.modal&&this.close()}),this.updateGenerateButton()}updateGenerateButton(){if(!this.generateBtn)return;let t=this.currentPrompt.trim().length>0;this.generateBtn.disabled=!t||this.isGenerating}async updatePromptFromDna(){var i;let t=(i=this.modal)==null?void 0:i.querySelector("#ai-use-dna");if(t!=null&&t.checked)try{let n=this.analyzer.getResult();if(n!=null&&n.summary&&this.promptInput){let r=`${this.currentPrompt}
|
|
1237
1266
|
|
|
1238
|
-
Style guidelines: ${n.summary}`;this.promptInput.value=r,this.currentPrompt=r}}catch(n){console.warn("[AiEditorModal] Failed to apply brand DNA:",n)}}async generateImage(){var t,i,n,r;if(!(!this.options||this.isGenerating)){this.isGenerating=!0,this.updateGenerateButton(),(t=this.loadingEl)==null||t.classList.remove("hidden"),(i=this.previewEl)==null||i.classList.add("hidden");try{let a=this.getApiKey();if(!a){alert("Please set your Gemini API key first. You can do this in the AI Creative Suite panel.");return}let s=[];if(this.options.currentValue&&this.options.currentValue.startsWith("data:"))try{let c=await
|
|
1267
|
+
Style guidelines: ${n.summary}`;this.promptInput.value=r,this.currentPrompt=r}}catch(n){console.warn("[AiEditorModal] Failed to apply brand DNA:",n)}}async generateImage(){var t,i,n,r;if(!(!this.options||this.isGenerating)){this.isGenerating=!0,this.updateGenerateButton(),(t=this.loadingEl)==null||t.classList.remove("hidden"),(i=this.previewEl)==null||i.classList.add("hidden");try{let a=this.getApiKey();if(!a){alert("Please set your Gemini API key first. You can do this in the AI Creative Suite panel.");return}let s=[];if(this.options.currentValue&&this.options.currentValue.startsWith("data:"))try{let c=await Ua(this.options.currentValue);c&&(s=[{base64:c.base64,mimeType:c.mimeType}])}catch(c){console.warn("[AiEditorModal] Failed to load current image:",c)}let o=await Ui(a,this.currentPrompt,s,{aspectRatio:"1:1"}),l=await $i(o);this.generatedImages.push(l||o),this.selectedImageIndex=this.generatedImages.length-1,this.updateGallery(),this.updatePreview(),this.updateApplyButton()}catch(a){console.error("[AiEditorModal] Generation failed:",a),alert(`Generation failed: ${a instanceof Error?a.message:"Unknown error"}`)}finally{this.isGenerating=!1,(n=this.loadingEl)==null||n.classList.add("hidden"),(r=this.previewEl)==null||r.classList.remove("hidden"),this.updateGenerateButton()}}}updateGallery(){if(!this.galleryEl)return;let t=this.galleryEl.querySelector("[data-gallery-grid]");t&&(t.innerHTML=this.generatedImages.map((i,n)=>`
|
|
1239
1268
|
<div class="ai-gallery-item ${n===this.selectedImageIndex?"active":""}" data-index="${n}">
|
|
1240
1269
|
<img class="ai-gallery-thumb" src="${i}" alt="Generated ${n+1}" />
|
|
1241
1270
|
<div class="ai-gallery-label">#${n+1}</div>
|
|
1242
1271
|
</div>
|
|
1243
|
-
`).join(""))}updatePreview(){if(!this.previewEl||this.selectedImageIndex<0)return;let t=this.generatedImages[this.selectedImageIndex];this.previewEl.innerHTML=`<img src="${t}" alt="Selected image" />`}selectImage(t){t<0||t>=this.generatedImages.length||(this.selectedImageIndex=t,this.updateGallery(),this.updatePreview(),this.updateApplyButton())}toggleGallery(){this.galleryEl&&this.galleryEl.classList.toggle("hidden")}updateApplyButton(){var i;let t=(i=this.modal)==null?void 0:i.querySelector('[data-action="apply"]');t&&(t.disabled=this.selectedImageIndex<0)}applySelectedImage(){var i;if(this.selectedImageIndex<0||!((i=this.options)!=null&&i.onApply))return;let t=this.generatedImages[this.selectedImageIndex];this.options.onApply(t),this.close()}getApiKey(){let t=
|
|
1272
|
+
`).join(""))}updatePreview(){if(!this.previewEl||this.selectedImageIndex<0)return;let t=this.generatedImages[this.selectedImageIndex];this.previewEl.innerHTML=`<img src="${t}" alt="Selected image" />`}selectImage(t){t<0||t>=this.generatedImages.length||(this.selectedImageIndex=t,this.updateGallery(),this.updatePreview(),this.updateApplyButton())}toggleGallery(){this.galleryEl&&this.galleryEl.classList.toggle("hidden")}updateApplyButton(){var i;let t=(i=this.modal)==null?void 0:i.querySelector('[data-action="apply"]');t&&(t.disabled=this.selectedImageIndex<0)}applySelectedImage(){var i;if(this.selectedImageIndex<0||!((i=this.options)!=null&&i.onApply))return;let t=this.generatedImages[this.selectedImageIndex];this.options.onApply(t),this.close()}getApiKey(){let t=rc();if(t)return t;try{let i=this.analyzer.getResult();if(i&&i.apiKey)return ac(i.apiKey,"From Brand DNA"),i.apiKey}catch(i){console.warn("[AiEditorModal] Failed to get API key from brand DNA:",i)}return null}close(){this.modal&&this.modal.parentNode&&this.modal.parentNode.removeChild(this.modal),this.modal=null,this.options=null}},sc=null;window.__openAiEditor=function(e,t,i,n){sc||(sc=new oc),sc.open({objectId:e,initialPrompt:t,currentValue:i,path:n==null?void 0:n.path,onApply:r=>{if(n!=null&&n.path){let a=window.updateManager;if(a)a.updateProperty(e,n.path,r);else{let s=window.getEditableObjectConfig,o=s==null?void 0:s(e);if(o){let l=n.path.split("."),c=o;for(let d=0;d<l.length-1;d++)c[l[d]]||(c[l[d]]={}),c=c[l[d]];c[l[l.length-1]]=r}}}window.dispatchEvent(new CustomEvent("inspector:refresh"))}})};cc();var dc=class{constructor(){this.modal=null;this.options=null}open(t){this.options=t,this.createModal(),document.body.appendChild(this.modal)}createModal(){if(!this.options)return;let{assetPath:t,assetType:i,objectId:n}=this.options,r=n||"Asset Preview",a=document.createElement("div");a.className="asset-preview-modal",a.innerHTML=`
|
|
1244
1273
|
<div class="asset-preview-card">
|
|
1245
1274
|
<div class="asset-preview-header">
|
|
1246
1275
|
<div class="asset-preview-title">${r}</div>
|
|
@@ -1267,7 +1296,7 @@ Style guidelines: ${n.summary}`;this.promptInput.value=r,this.currentPrompt=r}}c
|
|
|
1267
1296
|
<source src="${r}" type="audio/wav">
|
|
1268
1297
|
Your browser does not support the audio element.
|
|
1269
1298
|
</audio>
|
|
1270
|
-
`;case"text":return`<pre style="background: rgba(0,0,0,0.2); padding: 16px; border-radius: 8px; max-height: 300px; overflow-y: auto; white-space: pre-wrap;">${t}</pre>`;default:return`<div class="asset-preview-placeholder">Cannot preview ${i} assets</div>`}}resolveAssetUrl(t){return t.startsWith("data:")||t.startsWith("blob:")||t.startsWith("/")?t:`/raw/${t}`}attachEventListeners(){if(!this.modal)return;this.modal.addEventListener("click",n=>{let r=n.target;(r.dataset.action==="close"||r===this.modal)&&this.close()});let t=this.modal.querySelector('[data-action="change"]');t&&t.addEventListener("click",()=>{this.openAssetEditor()});let i=this.modal.querySelector('[data-action="edit"]');i&&i.addEventListener("click",()=>{this.openAiEditor(),this.close()})}openAssetEditor(){this.options&&Promise.resolve().then(()=>(
|
|
1299
|
+
`;case"text":return`<pre style="background: rgba(0,0,0,0.2); padding: 16px; border-radius: 8px; max-height: 300px; overflow-y: auto; white-space: pre-wrap;">${t}</pre>`;default:return`<div class="asset-preview-placeholder">Cannot preview ${i} assets</div>`}}resolveAssetUrl(t){return t.startsWith("data:")||t.startsWith("blob:")||t.startsWith("/")?t:`/raw/${t}`}attachEventListeners(){if(!this.modal)return;this.modal.addEventListener("click",n=>{let r=n.target;(r.dataset.action==="close"||r===this.modal)&&this.close()});let t=this.modal.querySelector('[data-action="change"]');t&&t.addEventListener("click",()=>{this.openAssetEditor()});let i=this.modal.querySelector('[data-action="edit"]');i&&i.addEventListener("click",()=>{this.openAiEditor(),this.close()})}openAssetEditor(){this.options&&Promise.resolve().then(()=>(cc(),Ag)).then(({AssetEditorModal:t})=>{new t().show(this.options.objectId||"unknown",this.options.propertyPath||"",this.options.assetPath,n=>{var r;(r=this.options)!=null&&r.onChange&&this.options.onChange(n),this.close()})})}openAiEditor(){if(!this.options||this.options.assetType!=="image")return;let t=window.__openAiEditor;typeof t=="function"&&t(this.options.objectId||"asset","Edit this image asset",this.options.assetPath,{path:this.options.propertyPath,onApply:i=>{var n;(n=this.options)!=null&&n.onChange&&this.options.onChange(i)}})}close(){this.modal&&this.modal.parentNode&&this.modal.parentNode.removeChild(this.modal),this.modal=null,this.options=null}};window.openAssetPreview=function(e){new dc().open(e)};var uc=class{constructor(){this.modal=null;this.canvas=null;this.ctx=null;this.image=null;this.options=null;this.cropX=0;this.cropY=0;this.cropWidth=100;this.cropHeight=100;this.scale=1;this.panX=0;this.panY=0;this.isDragging=!1;this.dragStartX=0;this.dragStartY=0;this.lastPanX=0;this.lastPanY=0}open(t){this.options=t,this.createModal(),this.loadImage(),document.body.appendChild(this.modal)}createModal(){let t=document.createElement("div");t.className="asset-crop-modal",t.innerHTML=`
|
|
1271
1300
|
<div class="asset-crop-card">
|
|
1272
1301
|
<div class="asset-crop-header">
|
|
1273
1302
|
<div>
|
|
@@ -1318,7 +1347,7 @@ Style guidelines: ${n.summary}`;this.promptInput.value=r,this.currentPrompt=r}}c
|
|
|
1318
1347
|
<button class="asset-crop-apply primary" data-action="apply">Apply Crop</button>
|
|
1319
1348
|
</div>
|
|
1320
1349
|
</div>
|
|
1321
|
-
`,this.modal=t,this.attachEventListeners(),this.initializeCanvas()}initializeCanvas(){this.modal&&(this.canvas=this.modal.querySelector(".asset-crop-canvas"),this.canvas&&(this.ctx=this.canvas.getContext("2d"),this.canvas.width=400,this.canvas.height=300))}loadImage(){this.options&&(this.image=new Image,this.image.crossOrigin="anonymous",this.image.onload=()=>{this.initializeCrop(),this.render()},this.image.src=this.options.imageSrc)}initializeCrop(){var n;if(!this.image||!this.canvas)return;let t=this.image.width/this.image.height,i=this.canvas.width/this.canvas.height;t>i?(this.cropHeight=this.image.height,this.cropWidth=this.cropHeight*i,this.cropX=(this.image.width-this.cropWidth)/2,this.cropY=0):(this.cropWidth=this.image.width,this.cropHeight=this.cropWidth/i,this.cropX=0,this.cropY=(this.image.height-this.cropHeight)/2),(n=this.options)!=null&&n.aspectRatio&&this.applyAspectRatio(this.options.aspectRatio),this.fitToCanvas()}applyAspectRatio(t){if(!this.image)return;let i=this.image.width/this.image.height,n=this.cropX+this.cropWidth/2,r=this.cropY+this.cropHeight/2;t>i?(this.cropWidth=Math.min(this.image.width,this.cropHeight*t),this.cropHeight=this.cropWidth/t):(this.cropHeight=Math.min(this.image.height,this.cropWidth/t),this.cropWidth=this.cropHeight*t),this.cropX=Math.max(0,Math.min(this.image.width-this.cropWidth,n-this.cropWidth/2)),this.cropY=Math.max(0,Math.min(this.image.height-this.cropHeight,r-this.cropHeight/2))}fitToCanvas(){if(!this.image||!this.canvas)return;let t=this.canvas.width/this.cropWidth,i=this.canvas.height/this.cropHeight;this.scale=Math.min(t,i)*.9,this.panX=(this.canvas.width-this.cropWidth*this.scale)/2,this.panY=(this.canvas.height-this.cropHeight*this.scale)/2}render(){!this.ctx||!this.image||!this.canvas||(this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height),this.ctx.save(),this.ctx.translate(this.panX,this.panY),this.ctx.scale(this.scale,this.scale),this.ctx.drawImage(this.image,-this.cropX,-this.cropY,this.image.width,this.image.height),this.ctx.restore(),this.drawCropOverlay(),this.updatePreview())}drawCropOverlay(){if(!this.ctx||!this.canvas)return;let t=this.panX,i=this.panY,n=this.cropWidth*this.scale,r=this.cropHeight*this.scale;this.ctx.fillStyle="rgba(0, 0, 0, 0.5)",this.ctx.fillRect(0,0,this.canvas.width,this.canvas.height),this.ctx.clearRect(t,i,n,r),this.ctx.strokeStyle="#ffffff",this.ctx.lineWidth=2,this.ctx.strokeRect(t,i,n,r),this.ctx.fillStyle="#ffffff";let a=8;[[t,i],[t+n-a,i],[t,i+r-a],[t+n-a,i+r-a]].forEach(([o,l])=>{var c;(c=this.ctx)==null||c.fillRect(o,l,a,a)})}updatePreview(){if(!this.modal||!this.image)return;let t=this.modal.querySelector(".asset-crop-preview-canvas");if(!t)return;let i=t.getContext("2d");if(!i)return;let n=150;t.width=n,t.height=n;let r=n/this.cropWidth,a=n/this.cropHeight,s=Math.min(r,a),o=this.cropWidth*s,l=this.cropHeight*s,c=(n-o)/2,d=(n-l)/2;i.drawImage(this.image,this.cropX,this.cropY,this.cropWidth,this.cropHeight,c,d,o,l)}attachEventListeners(){if(!this.modal||!this.canvas)return;this.canvas.addEventListener("mousedown",this.handleMouseDown.bind(this)),this.canvas.addEventListener("mousemove",this.handleMouseMove.bind(this)),this.canvas.addEventListener("mouseup",this.handleMouseUp.bind(this)),this.canvas.addEventListener("wheel",this.handleWheel.bind(this)),this.canvas.addEventListener("touchstart",this.handleTouchStart.bind(this)),this.canvas.addEventListener("touchmove",this.handleTouchMove.bind(this)),this.canvas.addEventListener("touchend",this.handleTouchEnd.bind(this));let t=this.modal.querySelector(".asset-crop-zoom-slider");t==null||t.addEventListener("input",n=>{let r=parseFloat(n.target.value);this.setZoom(r)});let i=this.modal.querySelector(".asset-crop-aspect-select");i==null||i.addEventListener("change",n=>{let r=n.target.value;this.setAspectRatio(r)}),this.modal.addEventListener("click",n=>{switch(n.target.dataset.action){case"reset":this.reset();break;case"apply":this.applyCrop();break;case"cancel":case"close":this.close();break}}),this.modal.addEventListener("click",n=>{n.target===this.modal&&this.close()})}handleMouseDown(t){this.isDragging=!0,this.dragStartX=t.clientX,this.dragStartY=t.clientY,this.lastPanX=this.panX,this.lastPanY=this.panY,this.canvas.style.cursor="grabbing"}handleMouseMove(t){if(!this.isDragging)return;let i=t.clientX-this.dragStartX,n=t.clientY-this.dragStartY;this.panX=this.lastPanX+i,this.panY=this.lastPanY+n,this.constrainPan(),this.render()}handleMouseUp(){this.isDragging=!1,this.canvas.style.cursor="grab"}handleWheel(t){t.preventDefault();let i=t.deltaY>0?.9:1.1;this.setZoom(this.scale*i)}handleTouchStart(t){t.touches.length===1&&(this.isDragging=!0,this.dragStartX=t.touches[0].clientX,this.dragStartY=t.touches[0].clientY,this.lastPanX=this.panX,this.lastPanY=this.panY)}handleTouchMove(t){if(!this.isDragging||t.touches.length!==1)return;t.preventDefault();let i=t.touches[0].clientX-this.dragStartX,n=t.touches[0].clientY-this.dragStartY;this.panX=this.lastPanX+i,this.panY=this.lastPanY+n,this.constrainPan(),this.render()}handleTouchEnd(){this.isDragging=!1}setZoom(t){this.scale=Math.max(.1,Math.min(3,t)),this.updateZoomUI(),this.constrainPan(),this.render()}setAspectRatio(t){let i;switch(t){case"1:1":i=1;break;case"4:3":i=4/3;break;case"16:9":i=16/9;break;case"3:2":i=3/2;break;default:i=void 0}i&&this.applyAspectRatio(i),this.fitToCanvas(),this.render()}updateZoomUI(){if(!this.modal)return;let t=this.modal.querySelector(".asset-crop-zoom-value"),i=this.modal.querySelector(".asset-crop-zoom-slider");t&&(t.textContent=`${this.scale.toFixed(1)}x`),i&&(i.value=this.scale.toString())}constrainPan(){if(!this.canvas)return;let t=this.cropWidth*this.scale,i=this.cropHeight*this.scale;this.panX=Math.max(this.canvas.width-t,Math.min(0,this.panX)),this.panY=Math.max(this.canvas.height-i,Math.min(0,this.panY))}reset(){this.initializeCrop(),this.render()}applyCrop(){var r;if(!this.image||!((r=this.options)!=null&&r.onCrop))return;let t=document.createElement("canvas"),i=t.getContext("2d");if(!i)return;t.width=this.cropWidth,t.height=this.cropHeight,i.drawImage(this.image,this.cropX,this.cropY,this.cropWidth,this.cropHeight,0,0,this.cropWidth,this.cropHeight);let n=t.toDataURL("image/png");this.options.onCrop(n),this.close()}close(){this.modal&&this.modal.parentNode&&this.modal.parentNode.removeChild(this.modal);let t=this.options;this.modal=null,this.canvas=null,this.ctx=null,this.image=null,this.options=null,t!=null&&t.onCancel&&t.onCancel()}};window.openAssetCrop=function(e){new dc().open(e)};var es=class{constructor(t={}){this.isLandscape=!1;this.autoScale=1;this.userScaleMultiplier=1;this.viewMode="single";this.comparePresets=[Ht("playable-portrait"),Ht("iphone-14"),Ht("ipad-mini")];this.activeCompareId="playable-portrait";this.compareViewports=new Map;this.resizeObserver=null;this.rafFitHandle=null;this.ignoreNextWindowResize=!1;this.frameDragOffsetX=0;this.frameDragOffsetY=0;this.frameDragActive=!1;this.frameDragStartX=0;this.frameDragStartY=0;this.frameDragOriginX=0;this.frameDragOriginY=0;this.consolePanel=null;this.consoleMessages=[];this.isConsoleOpen=!1;this.hasInitialFit=!1;this.isMounted=!1;this.isInitialized=!1;this.gameReady=!1;this.resizeListenersDisabled=!1;this.compareSnapshotTimer=null;this.onWindowResize=t=>{if(this.ignoreNextWindowResize){this.ignoreNextWindowResize=!1;return}this.resizeListenersDisabled||!this.gameReady||this.scheduleFit()};this.onFrameDragMove=t=>{if(!this.frameDragActive)return;let i=t.clientX-this.frameDragStartX,n=t.clientY-this.frameDragStartY;this.frameDragOffsetX=this.frameDragOriginX+i,this.frameDragOffsetY=this.frameDragOriginY+n,this.applyFrameDrag()};this.onFrameDragEnd=()=>{this.frameDragActive&&(this.frameDragActive=!1,window.removeEventListener("pointermove",this.onFrameDragMove),window.removeEventListener("pointerup",this.onFrameDragEnd))};this.options=t,this.currentPreset=Ht(t.defaultDevice||Dr.id),this.debugPanel=new tr,this.container=this.createShell(),this.previewContainer=this.mustQuery(".preview-container"),this.singleStage=this.mustQuery('[data-preview-stage="single"]'),this.compareStage=this.mustQuery('[data-preview-stage="compare"]'),this.frameDragger=this.mustQuery(".frame-dragger"),this.frameWrapper=this.mustQuery(".frame-wrapper"),this.deviceFrame=this.mustQuery(".device-frame"),this.gameContainer=this.mustQuery(".game-container"),this.lastSinglePresetId=this.currentPreset.id,this.consolePanel=this.container.querySelector(".console-panel"),this.debugPanel.initialize(this.container),this.debugPanel.setupDebugEventListeners(),this.applyDeviceFrameStyles(),this.setupCompareViewports(),this.setupConsoleInterceptor(),this.setupObserversAndListeners(),this.setupFrameDragging(),this.setDevice(this.currentPreset.id,{suppressCallback:!0}),this.isInitialized=!0}mount(t=document.body){t.innerHTML="",t.appendChild(this.container),this.isMounted=!0,this.scheduleFit()}destroy(){if(this.disableResizeListeners(),this.resizeObserver){try{this.resizeObserver.disconnect()}catch{}this.resizeObserver=null}window.removeEventListener("resize",this.onWindowResize),this.rafFitHandle&&(cancelAnimationFrame(this.rafFitHandle),this.rafFitHandle=null),this.compareSnapshotTimer&&(window.clearInterval(this.compareSnapshotTimer),this.compareSnapshotTimer=null),this.gameReady=!1}getGameContainer(){return this.gameContainer}getScreen(){let t=this.getEffectivePreset();return{width:t.width,height:t.height}}getEffectivePreset(){var t;return this.isLandscape?{...this.currentPreset,width:this.currentPreset.height,height:this.currentPreset.width,ratio:((t=this.currentPreset.ratio)==null?void 0:t.split(":").reverse().join(":"))||this.currentPreset.ratio}:this.currentPreset}notifyGameLoaded(){this.gameReady=!0,this.enableResizeListeners(),this.scheduleFit(),this.debugPanel.refresh()}notifyGameDestroyed(){this.gameReady=!1,this.disableResizeListeners()}disableResizeListeners(){this.resizeListenersDisabled=!0,this.rafFitHandle&&(cancelAnimationFrame(this.rafFitHandle),this.rafFitHandle=null)}enableResizeListeners(){this.resizeListenersDisabled=!1}refresh(){this.options.onRefresh?this.options.onRefresh():window.location.reload()}setDevice(t,i={}){var r,a;let n=this.autoScale*this.userScaleMultiplier;this.isLandscape=!1,this.currentPreset=Ht(t),this.viewMode==="single"&&(this.lastSinglePresetId=this.currentPreset.id),this.applyPresetDimensions(),this.fitToScreen({keepVisibleScale:n}),i.suppressCallback||(a=(r=this.options).onDeviceChange)==null||a.call(r,this.getEffectivePreset()),this.emitScreenChange()}createShell(){var i;let t=document.createElement("div");return t.className="preview-shell",t.innerHTML=`
|
|
1350
|
+
`,this.modal=t,this.attachEventListeners(),this.initializeCanvas()}initializeCanvas(){this.modal&&(this.canvas=this.modal.querySelector(".asset-crop-canvas"),this.canvas&&(this.ctx=this.canvas.getContext("2d"),this.canvas.width=400,this.canvas.height=300))}loadImage(){this.options&&(this.image=new Image,this.image.crossOrigin="anonymous",this.image.onload=()=>{this.initializeCrop(),this.render()},this.image.src=this.options.imageSrc)}initializeCrop(){var n;if(!this.image||!this.canvas)return;let t=this.image.width/this.image.height,i=this.canvas.width/this.canvas.height;t>i?(this.cropHeight=this.image.height,this.cropWidth=this.cropHeight*i,this.cropX=(this.image.width-this.cropWidth)/2,this.cropY=0):(this.cropWidth=this.image.width,this.cropHeight=this.cropWidth/i,this.cropX=0,this.cropY=(this.image.height-this.cropHeight)/2),(n=this.options)!=null&&n.aspectRatio&&this.applyAspectRatio(this.options.aspectRatio),this.fitToCanvas()}applyAspectRatio(t){if(!this.image)return;let i=this.image.width/this.image.height,n=this.cropX+this.cropWidth/2,r=this.cropY+this.cropHeight/2;t>i?(this.cropWidth=Math.min(this.image.width,this.cropHeight*t),this.cropHeight=this.cropWidth/t):(this.cropHeight=Math.min(this.image.height,this.cropWidth/t),this.cropWidth=this.cropHeight*t),this.cropX=Math.max(0,Math.min(this.image.width-this.cropWidth,n-this.cropWidth/2)),this.cropY=Math.max(0,Math.min(this.image.height-this.cropHeight,r-this.cropHeight/2))}fitToCanvas(){if(!this.image||!this.canvas)return;let t=this.canvas.width/this.cropWidth,i=this.canvas.height/this.cropHeight;this.scale=Math.min(t,i)*.9,this.panX=(this.canvas.width-this.cropWidth*this.scale)/2,this.panY=(this.canvas.height-this.cropHeight*this.scale)/2}render(){!this.ctx||!this.image||!this.canvas||(this.ctx.clearRect(0,0,this.canvas.width,this.canvas.height),this.ctx.save(),this.ctx.translate(this.panX,this.panY),this.ctx.scale(this.scale,this.scale),this.ctx.drawImage(this.image,-this.cropX,-this.cropY,this.image.width,this.image.height),this.ctx.restore(),this.drawCropOverlay(),this.updatePreview())}drawCropOverlay(){if(!this.ctx||!this.canvas)return;let t=this.panX,i=this.panY,n=this.cropWidth*this.scale,r=this.cropHeight*this.scale;this.ctx.fillStyle="rgba(0, 0, 0, 0.5)",this.ctx.fillRect(0,0,this.canvas.width,this.canvas.height),this.ctx.clearRect(t,i,n,r),this.ctx.strokeStyle="#ffffff",this.ctx.lineWidth=2,this.ctx.strokeRect(t,i,n,r),this.ctx.fillStyle="#ffffff";let a=8;[[t,i],[t+n-a,i],[t,i+r-a],[t+n-a,i+r-a]].forEach(([o,l])=>{var c;(c=this.ctx)==null||c.fillRect(o,l,a,a)})}updatePreview(){if(!this.modal||!this.image)return;let t=this.modal.querySelector(".asset-crop-preview-canvas");if(!t)return;let i=t.getContext("2d");if(!i)return;let n=150;t.width=n,t.height=n;let r=n/this.cropWidth,a=n/this.cropHeight,s=Math.min(r,a),o=this.cropWidth*s,l=this.cropHeight*s,c=(n-o)/2,d=(n-l)/2;i.drawImage(this.image,this.cropX,this.cropY,this.cropWidth,this.cropHeight,c,d,o,l)}attachEventListeners(){if(!this.modal||!this.canvas)return;this.canvas.addEventListener("mousedown",this.handleMouseDown.bind(this)),this.canvas.addEventListener("mousemove",this.handleMouseMove.bind(this)),this.canvas.addEventListener("mouseup",this.handleMouseUp.bind(this)),this.canvas.addEventListener("wheel",this.handleWheel.bind(this)),this.canvas.addEventListener("touchstart",this.handleTouchStart.bind(this)),this.canvas.addEventListener("touchmove",this.handleTouchMove.bind(this)),this.canvas.addEventListener("touchend",this.handleTouchEnd.bind(this));let t=this.modal.querySelector(".asset-crop-zoom-slider");t==null||t.addEventListener("input",n=>{let r=parseFloat(n.target.value);this.setZoom(r)});let i=this.modal.querySelector(".asset-crop-aspect-select");i==null||i.addEventListener("change",n=>{let r=n.target.value;this.setAspectRatio(r)}),this.modal.addEventListener("click",n=>{switch(n.target.dataset.action){case"reset":this.reset();break;case"apply":this.applyCrop();break;case"cancel":case"close":this.close();break}}),this.modal.addEventListener("click",n=>{n.target===this.modal&&this.close()})}handleMouseDown(t){this.isDragging=!0,this.dragStartX=t.clientX,this.dragStartY=t.clientY,this.lastPanX=this.panX,this.lastPanY=this.panY,this.canvas.style.cursor="grabbing"}handleMouseMove(t){if(!this.isDragging)return;let i=t.clientX-this.dragStartX,n=t.clientY-this.dragStartY;this.panX=this.lastPanX+i,this.panY=this.lastPanY+n,this.constrainPan(),this.render()}handleMouseUp(){this.isDragging=!1,this.canvas.style.cursor="grab"}handleWheel(t){t.preventDefault();let i=t.deltaY>0?.9:1.1;this.setZoom(this.scale*i)}handleTouchStart(t){t.touches.length===1&&(this.isDragging=!0,this.dragStartX=t.touches[0].clientX,this.dragStartY=t.touches[0].clientY,this.lastPanX=this.panX,this.lastPanY=this.panY)}handleTouchMove(t){if(!this.isDragging||t.touches.length!==1)return;t.preventDefault();let i=t.touches[0].clientX-this.dragStartX,n=t.touches[0].clientY-this.dragStartY;this.panX=this.lastPanX+i,this.panY=this.lastPanY+n,this.constrainPan(),this.render()}handleTouchEnd(){this.isDragging=!1}setZoom(t){this.scale=Math.max(.1,Math.min(3,t)),this.updateZoomUI(),this.constrainPan(),this.render()}setAspectRatio(t){let i;switch(t){case"1:1":i=1;break;case"4:3":i=4/3;break;case"16:9":i=16/9;break;case"3:2":i=3/2;break;default:i=void 0}i&&this.applyAspectRatio(i),this.fitToCanvas(),this.render()}updateZoomUI(){if(!this.modal)return;let t=this.modal.querySelector(".asset-crop-zoom-value"),i=this.modal.querySelector(".asset-crop-zoom-slider");t&&(t.textContent=`${this.scale.toFixed(1)}x`),i&&(i.value=this.scale.toString())}constrainPan(){if(!this.canvas)return;let t=this.cropWidth*this.scale,i=this.cropHeight*this.scale;this.panX=Math.max(this.canvas.width-t,Math.min(0,this.panX)),this.panY=Math.max(this.canvas.height-i,Math.min(0,this.panY))}reset(){this.initializeCrop(),this.render()}applyCrop(){var r;if(!this.image||!((r=this.options)!=null&&r.onCrop))return;let t=document.createElement("canvas"),i=t.getContext("2d");if(!i)return;t.width=this.cropWidth,t.height=this.cropHeight,i.drawImage(this.image,this.cropX,this.cropY,this.cropWidth,this.cropHeight,0,0,this.cropWidth,this.cropHeight);let n=t.toDataURL("image/png");this.options.onCrop(n),this.close()}close(){this.modal&&this.modal.parentNode&&this.modal.parentNode.removeChild(this.modal);let t=this.options;this.modal=null,this.canvas=null,this.ctx=null,this.image=null,this.options=null,t!=null&&t.onCancel&&t.onCancel()}};window.openAssetCrop=function(e){new uc().open(e)};var ts=class{constructor(t={}){this.isLandscape=!1;this.autoScale=1;this.userScaleMultiplier=1;this.viewMode="single";this.comparePresets=[Ht("playable-portrait"),Ht("iphone-14"),Ht("ipad-mini")];this.activeCompareId="playable-portrait";this.compareViewports=new Map;this.resizeObserver=null;this.rafFitHandle=null;this.ignoreNextWindowResize=!1;this.frameDragOffsetX=0;this.frameDragOffsetY=0;this.frameDragActive=!1;this.frameDragStartX=0;this.frameDragStartY=0;this.frameDragOriginX=0;this.frameDragOriginY=0;this.consolePanel=null;this.consoleMessages=[];this.isConsoleOpen=!1;this.hasInitialFit=!1;this.isMounted=!1;this.isInitialized=!1;this.gameReady=!1;this.resizeListenersDisabled=!1;this.compareSnapshotTimer=null;this.onWindowResize=t=>{if(this.ignoreNextWindowResize){this.ignoreNextWindowResize=!1;return}this.resizeListenersDisabled||!this.gameReady||this.scheduleFit()};this.onFrameDragMove=t=>{if(!this.frameDragActive)return;let i=t.clientX-this.frameDragStartX,n=t.clientY-this.frameDragStartY;this.frameDragOffsetX=this.frameDragOriginX+i,this.frameDragOffsetY=this.frameDragOriginY+n,this.applyFrameDrag()};this.onFrameDragEnd=()=>{this.frameDragActive&&(this.frameDragActive=!1,window.removeEventListener("pointermove",this.onFrameDragMove),window.removeEventListener("pointerup",this.onFrameDragEnd))};this.options=t,this.currentPreset=Ht(t.defaultDevice||Dr.id),this.debugPanel=new tr,this.container=this.createShell(),this.previewContainer=this.mustQuery(".preview-container"),this.singleStage=this.mustQuery('[data-preview-stage="single"]'),this.compareStage=this.mustQuery('[data-preview-stage="compare"]'),this.frameDragger=this.mustQuery(".frame-dragger"),this.frameWrapper=this.mustQuery(".frame-wrapper"),this.deviceFrame=this.mustQuery(".device-frame"),this.gameContainer=this.mustQuery(".game-container"),this.lastSinglePresetId=this.currentPreset.id,this.consolePanel=this.container.querySelector(".console-panel"),this.debugPanel.initialize(this.container),this.debugPanel.setupDebugEventListeners(),this.applyDeviceFrameStyles(),this.setupCompareViewports(),this.setupConsoleInterceptor(),this.setupObserversAndListeners(),this.setupFrameDragging(),this.setDevice(this.currentPreset.id,{suppressCallback:!0}),this.isInitialized=!0}mount(t=document.body){t.innerHTML="",t.appendChild(this.container),this.isMounted=!0,this.scheduleFit()}destroy(){if(this.disableResizeListeners(),this.resizeObserver){try{this.resizeObserver.disconnect()}catch{}this.resizeObserver=null}window.removeEventListener("resize",this.onWindowResize),this.rafFitHandle&&(cancelAnimationFrame(this.rafFitHandle),this.rafFitHandle=null),this.compareSnapshotTimer&&(window.clearInterval(this.compareSnapshotTimer),this.compareSnapshotTimer=null),this.gameReady=!1}getGameContainer(){return this.gameContainer}getScreen(){let t=this.getEffectivePreset();return{width:t.width,height:t.height}}getEffectivePreset(){var t;return this.isLandscape?{...this.currentPreset,width:this.currentPreset.height,height:this.currentPreset.width,ratio:((t=this.currentPreset.ratio)==null?void 0:t.split(":").reverse().join(":"))||this.currentPreset.ratio}:this.currentPreset}notifyGameLoaded(){this.gameReady=!0,this.enableResizeListeners(),this.scheduleFit(),this.debugPanel.refresh()}notifyGameDestroyed(){this.gameReady=!1,this.disableResizeListeners()}disableResizeListeners(){this.resizeListenersDisabled=!0,this.rafFitHandle&&(cancelAnimationFrame(this.rafFitHandle),this.rafFitHandle=null)}enableResizeListeners(){this.resizeListenersDisabled=!1}refresh(){this.options.onRefresh?this.options.onRefresh():window.location.reload()}setDevice(t,i={}){var r,a;let n=this.autoScale*this.userScaleMultiplier;this.isLandscape=!1,this.currentPreset=Ht(t),this.viewMode==="single"&&(this.lastSinglePresetId=this.currentPreset.id),this.applyPresetDimensions(),this.fitToScreen({keepVisibleScale:n}),i.suppressCallback||(a=(r=this.options).onDeviceChange)==null||a.call(r,this.getEffectivePreset()),this.emitScreenChange()}createShell(){var i;let t=document.createElement("div");return t.className="preview-shell",t.innerHTML=`
|
|
1322
1351
|
<div class="preview-toolbar">
|
|
1323
1352
|
<div class="preview-toolbar-left">
|
|
1324
1353
|
<span class="preview-logo">PREVIEWER</span>
|
|
@@ -1327,7 +1356,7 @@ Style guidelines: ${n.summary}`;this.promptInput.value=r,this.currentPrompt=r}}c
|
|
|
1327
1356
|
<div class="preview-toolbar-center">
|
|
1328
1357
|
<div class="device-selector-wrapper">
|
|
1329
1358
|
<select class="device-dropdown" id="device-select">
|
|
1330
|
-
${
|
|
1359
|
+
${Gs.map(n=>`
|
|
1331
1360
|
<optgroup label="${n.label}">
|
|
1332
1361
|
${n.devices.map(r=>`
|
|
1333
1362
|
<option value="${r.id}" ${r.id===this.currentPreset.id?"selected":""}>
|
|
@@ -1433,7 +1462,7 @@ Style guidelines: ${n.summary}`;this.promptInput.value=r,this.currentPrompt=r}}c
|
|
|
1433
1462
|
<div class="console-messages" id="console-messages"></div>
|
|
1434
1463
|
</div>
|
|
1435
1464
|
</div>
|
|
1436
|
-
`,this.setupEventListeners(t),t}setupEventListeners(t){var r,a,s,o,l,c,d;let i=t.querySelector("#device-select");i==null||i.addEventListener("change",u=>{if(this.viewMode==="compare")return;let p=u.target.value;this.setDevice(p)}),Array.from(t.querySelectorAll("[data-view-toggle]")).forEach(u=>{u.addEventListener("click",()=>{let p=u.dataset.viewToggle;p&&this.setViewMode(p)})}),(r=t.querySelector("#rotate-btn"))==null||r.addEventListener("click",()=>this.toggleRotation()),(a=t.querySelector("#zoom-in-btn"))==null||a.addEventListener("click",()=>this.adjustUserZoom(.1)),(s=t.querySelector("#zoom-out-btn"))==null||s.addEventListener("click",()=>this.adjustUserZoom(-.1)),(o=t.querySelector("#refresh-btn"))==null||o.addEventListener("click",()=>this.refresh()),(l=t.querySelector("#console-toggle"))==null||l.addEventListener("click",()=>this.toggleConsole()),(c=t.querySelector("#console-close"))==null||c.addEventListener("click",()=>this.toggleConsole(!1)),(d=t.querySelector("#console-clear"))==null||d.addEventListener("click",()=>this.clearConsole())}applyDeviceFrameStyles(){Object.assign(this.frameDragger.style,{display:"flex",justifyContent:"center",alignItems:"center",transform:"translate(0px, 0px)",touchAction:"none"}),Object.assign(this.frameWrapper.style,{display:"flex",justifyContent:"center",alignItems:"center",transformOrigin:"center center",transition:"transform 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94)",boxShadow:"0 20px 50px rgba(0,0,0,0.5)",borderRadius:"0px",willChange:"transform"}),Object.assign(this.deviceFrame.style,{overflow:"hidden",position:"relative",borderRadius:"0px"}),Object.assign(this.gameContainer.style,{position:"relative",overflow:"hidden",minWidth:"0px",minHeight:"0px"})}setupObserversAndListeners(){this.resizeObserver=new ResizeObserver(()=>{this.resizeListenersDisabled||!this.gameReady||this.scheduleFit()}),this.resizeObserver.observe(this.previewContainer),window.addEventListener("resize",this.onWindowResize,{passive:!0})}scheduleFit(){this.rafFitHandle&&cancelAnimationFrame(this.rafFitHandle),this.rafFitHandle=requestAnimationFrame(()=>{this.rafFitHandle=null,this.fitToScreen()})}applyPresetDimensions(){let t=this.getEffectivePreset(),i=`${t.width}px`,n=`${t.height}px`;this.deviceFrame.style.width=i,this.deviceFrame.style.height=n,this.gameContainer.style.width=i,this.gameContainer.style.height=n,this.gameContainer.style.maxWidth=i,this.gameContainer.style.maxHeight=n,this.gameContainer.style.minWidth=i,this.gameContainer.style.minHeight=n,this.gameContainer.dataset.screenWidth=String(t.width),this.gameContainer.dataset.screenHeight=String(t.height),this.container.style.setProperty("--preview-screen-width",String(t.width)),this.container.style.setProperty("--preview-screen-height",String(t.height))}fitToScreen(t){if(!this.previewContainer)return;let i=this.getEffectivePreset(),n=this.getFitBounds(),r=Math.max(0,n.width),a=Math.max(0,n.height);if(r<=0||a<=0)return;this.applyPresetDimensions(),this.viewMode==="compare"&&this.applyCompareDimensions();let s=r/i.width,o=a/i.height;if(this.autoScale=Math.max(.01,Math.min(s,o)),!this.hasInitialFit){this.hasInitialFit=!0;let l=.6;this.userScaleMultiplier=l/this.autoScale}t!=null&&t.keepVisibleScale&&t.keepVisibleScale>0&&(this.userScaleMultiplier=t.keepVisibleScale/this.autoScale),this.applyTransform(),this.viewMode==="compare"&&this.fitCompareGhosts(),this.emitScreenChange()}applyTransform(){let t=this.autoScale*this.userScaleMultiplier;this.frameWrapper.style.transform=`scale(${t})`;let i=this.container.querySelector("#zoom-label");i&&(i.textContent=`${Math.round(t*100)}%`)}applyFrameDrag(){this.frameDragger.style.transform=`translate(${this.frameDragOffsetX}px, ${this.frameDragOffsetY}px)`}setupFrameDragging(){this.frameDragger.addEventListener("pointerdown",t=>{this.gameContainer.contains(t.target)||t.button===0&&(t.preventDefault(),this.frameDragActive=!0,this.frameDragStartX=t.clientX,this.frameDragStartY=t.clientY,this.frameDragOriginX=this.frameDragOffsetX,this.frameDragOriginY=this.frameDragOffsetY,window.addEventListener("pointermove",this.onFrameDragMove),window.addEventListener("pointerup",this.onFrameDragEnd))})}adjustUserZoom(t){this.userScaleMultiplier=Math.max(.1,Math.min(6,this.userScaleMultiplier+t)),this.applyTransform(),this.emitScreenChange()}toggleRotation(){var i,n;if(this.viewMode==="compare")return;let t=this.autoScale*this.userScaleMultiplier;this.isLandscape=!this.isLandscape,this.applyPresetDimensions(),this.fitToScreen({keepVisibleScale:t}),(n=(i=this.options).onDeviceChange)==null||n.call(i,this.getEffectivePreset()),this.emitScreenChange()}emitScreenChange(){if(!this.gameReady)return;let t=this.getEffectivePreset(),i={width:t.width,height:t.height,dpr:Math.max(1,Math.floor(window.devicePixelRatio||1)),presetId:t.id,isLandscape:this.isLandscape};if(window.dispatchEvent(new CustomEvent("handler-preview:screen",{detail:i})),this.viewMode==="compare"&&this.refreshCompareSnapshots(),this.isInitialized&&this.isMounted&&this.gameReady){let n=window.gameApp;if(!(n!=null&&n.renderer))return;this.ignoreNextWindowResize=!0,window.dispatchEvent(new Event("resize"))}}safeStringify(t){var n;let i=new WeakSet;try{return JSON.stringify(t,(r,a)=>{if(typeof a=="object"&&a!==null){if(i.has(a))return"[Circular]";i.add(a)}return a},2)}catch{try{if(t&&((n=t.constructor)!=null&&n.name))return`[object ${t.constructor.name}]`}catch{}return String(t)}}setupConsoleInterceptor(){let t=console.log.bind(console),i=console.warn.bind(console),n=console.error.bind(console),r=console.info.bind(console),a=(s,...o)=>{let l=o.map(d=>typeof d=="object"?this.safeStringify(d):String(d)).join(" ");this.consoleMessages.push({type:s,message:l,timestamp:new Date}),this.appendConsoleMessage(this.consoleMessages[this.consoleMessages.length-1]);let c=this.container.querySelector("#console-badge");if(c){let d=this.consoleMessages.filter(u=>u.type==="error").length;c.textContent=d>0?`${d}!`:"0",c.classList.toggle("has-errors",d>0)}};console.log=(...s)=>{t(...s),a("log",...s)},console.warn=(...s)=>{i(...s),a("warn",...s)},console.error=(...s)=>{n(...s),a("error",...s)},console.info=(...s)=>{r(...s),a("info",...s)}}appendConsoleMessage(t){let i=this.container.querySelector("#console-messages");if(!i)return;let n=document.createElement("div");n.className=`console-msg type-${t.type}`;let r=t.timestamp.toLocaleTimeString();n.innerHTML=`<span class="time">${this.escapeHtml(r)}</span> <pre>${this.escapeHtml(t.message)}</pre>`,i.appendChild(n),i.scrollTop=i.scrollHeight}escapeHtml(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}toggleConsole(t){var i;this.isConsoleOpen=t!=null?t:!this.isConsoleOpen,(i=this.consolePanel)==null||i.classList.toggle("closed",!this.isConsoleOpen)}clearConsole(){this.consoleMessages=[];let t=this.container.querySelector("#console-messages");t&&(t.innerHTML="");let i=this.container.querySelector("#console-badge");i&&(i.textContent="0")}setupCompareViewports(){Array.from(this.container.querySelectorAll("[data-viewport]")).forEach(i=>{let n=i.dataset.viewport;if(!n)return;let r=this.comparePresets.find(u=>u.id===n);if(!r)return;let a=i.querySelector("[data-compare-slot]"),s=i.querySelector("[data-compare-ghost]"),o=i.querySelector("[data-compare-wrapper]"),l=i.querySelector("[data-compare-frame]"),c=i.querySelector("[data-compare-snapshot]"),d=i.querySelector("[data-compare-focus]");!a||!s||!o||!l||(i.addEventListener("click",u=>{let p=u.target;if(p!=null&&p.closest("[data-compare-focus]")){u.preventDefault(),this.activateCompareViewport(n);return}i.classList.contains("is-active")||this.activateCompareViewport(n)}),this.compareViewports.set(n,{preset:r,root:i,slot:a,ghost:s,wrapper:o,frame:l,canvas:c,focus:d}))})}setViewMode(t){if(this.viewMode===t)return;this.viewMode=t,this.container.classList.toggle("compare-mode",t==="compare"),this.singleStage.classList.toggle("hidden",t!=="single"),this.compareStage.classList.toggle("hidden",t!=="compare");let i=this.container.querySelector("#device-select");i&&(i.disabled=t==="compare");let n=this.container.querySelector("#rotate-btn");if(n&&(n.disabled=t==="compare"),this.updateViewToggleUI(),t==="compare"){this.lastSinglePresetId=this.currentPreset.id,this.activateCompareViewport(this.activeCompareId),this.refreshCompareSnapshots(),this.startCompareSnapshots();return}this.stopCompareSnapshots(),this.singleStage.appendChild(this.frameDragger),this.setDevice(this.lastSinglePresetId,{suppressCallback:!0}),this.fitToScreen()}updateViewToggleUI(){Array.from(this.container.querySelectorAll("[data-view-toggle]")).forEach(i=>{i.classList.toggle("active",i.dataset.viewToggle===this.viewMode)})}activateCompareViewport(t){var a,s;let i=this.compareViewports.get(t);if(!i)return;let n=this.autoScale*this.userScaleMultiplier,r=this.activeCompareId;r&&r!==t&&this.captureCompareSnapshot(r),this.activeCompareId=t,this.currentPreset=i.preset,this.isLandscape=!1,i.slot.appendChild(this.frameDragger),this.frameDragOffsetX=0,this.frameDragOffsetY=0,this.applyFrameDrag(),this.compareViewports.forEach((o,l)=>{o.root.classList.toggle("is-active",l===t),o.ghost.classList.toggle("hidden",l===t),o.focus&&(o.focus.textContent=l===t?"Live":"Focus")}),this.applyPresetDimensions(),this.applyCompareDimensions(),this.fitToScreen({keepVisibleScale:n}),(s=(a=this.options).onDeviceChange)==null||s.call(a,this.getEffectivePreset())}applyCompareDimensions(){this.compareViewports.forEach(t=>{let i=t.preset,n=`${i.width}px`,r=`${i.height}px`;t.frame.style.width=n,t.frame.style.height=r,t.canvas&&(t.canvas.width=i.width,t.canvas.height=i.height)})}fitCompareGhosts(){this.compareViewports.forEach(t=>{let i=t.root.querySelector(".compare-body");if(!i)return;let n=Math.max(0,i.clientWidth-24),r=Math.max(0,i.clientHeight-24);if(n<=0||r<=0)return;let a=n/t.preset.width,s=r/t.preset.height,o=Math.max(.01,Math.min(a,s));t.wrapper.style.transform=`scale(${o})`})}captureCompareSnapshot(t){let i=this.compareViewports.get(t);if(!(i!=null&&i.canvas))return;let n=this.gameContainer.querySelector("canvas");if(!n)return;let r=i.canvas.getContext("2d");if(!r)return;let a=i.canvas.width,s=i.canvas.height,o=Math.min(a/n.width,s/n.height),l=n.width*o,c=n.height*o,d=(a-l)/2,u=(s-c)/2;r.clearRect(0,0,a,s),r.drawImage(n,d,u,l,c)}refreshCompareSnapshots(){this.compareViewports.forEach((t,i)=>{i!==this.activeCompareId&&this.captureCompareSnapshot(i)})}startCompareSnapshots(){this.compareSnapshotTimer||(this.compareSnapshotTimer=window.setInterval(()=>{this.viewMode==="compare"&&this.refreshCompareSnapshots()},500))}stopCompareSnapshots(){this.compareSnapshotTimer&&(window.clearInterval(this.compareSnapshotTimer),this.compareSnapshotTimer=null)}getFitBounds(){if(this.viewMode!=="compare")return{width:this.previewContainer.clientWidth-40,height:this.previewContainer.clientHeight-40};let t=this.compareViewports.get(this.activeCompareId),i=t==null?void 0:t.root.querySelector(".compare-body");return i?{width:i.clientWidth-24,height:i.clientHeight-24}:{width:this.previewContainer.clientWidth-40,height:this.previewContainer.clientHeight-40}}mustQuery(t){let i=this.container.querySelector(t);if(!i)throw new Error(`PreviewShell missing element: ${t}`);return i}};function uc(e={}){let t=new es(e);return typeof window!="undefined"&&(window.__previewShell=t),t.mount(),t}Te();function pc(e){try{if(e&&typeof e.keys=="function")return Array.from(e.keys())}catch{}return[]}function Sg(e){var t;return e?((t=e.getDisplayObject)==null?void 0:t.call(e))||e.pixiObject||e:null}function Bw(e,t){if(!e||!(t!=null&&t.interaction))return;let i=t.interaction,n=i.enabled!==!1&&(i.draggable===!0||i.clickable===!0);e.eventMode=n?"static":"none",e.interactive=n,n&&(e.cursor=i.draggable?"move":"pointer")}function Ag(e,t){var l,c,d,u,p;if(!e||!t)return;let i=t.transform||{};Bw(e,t);let n=i.position||{},r=i.offset||{},a=(typeof n.x=="number"?n.x:0)+(typeof r.x=="number"?r.x:0),s=(typeof n.y=="number"?n.y:0)+(typeof r.y=="number"?r.y:0);(l=e.position)!=null&&l.set?e.position.set(a,s):(typeof e.x=="number"&&(e.x=a),typeof e.y=="number"&&(e.y=s)),typeof i.scale=="number"&&((c=e.scale)!=null&&c.set?e.scale.set(i.scale):e.scale&&(e.scale.x=i.scale,e.scale.y=i.scale));let o=(u=i.anchor)!=null?u:(d=t.render)==null?void 0:d.anchor;o&&((p=e.anchor)!=null&&p.set)&&typeof o.x=="number"&&typeof o.y=="number"&&e.anchor.set(o.x,o.y)}function Cg(e){if(typeof window=="undefined")return;let t=e==null?void 0:e.objects,i=pc(t),n=a=>{try{let s=window.__HANDLER_ACTIVE_SCREEN;if(!s||s==="all")return a;let o=window.__HANDLER_SCREEN_INDEX,l=o==null?void 0:o.instanceToScreen;return l?a.filter(c=>l[c]===s):a}catch{return a}};window.__editableObjectConfigs=t;let r=new Map;i.forEach(a=>r.set(a,[a])),window.__editableObjectInstances=r,window.refreshEditableConfigIndex=()=>Cg(window.__editableConfig),window.getEditableObjectList=()=>{var a;return n(pc((a=window.__editableConfig)==null?void 0:a.objects))},window.getEditableObjectListAll=()=>{var a;return pc((a=window.__editableConfig)==null?void 0:a.objects)},window.getEditableObjectConfig=a=>{var d,u,p,f,m;let s=(f=(p=(u=(d=window.__editableConfig)==null?void 0:d.objects)==null?void 0:u.get)==null?void 0:p.call(u,a))!=null?f:null,o=window.__HANDLER_ACTIVE_SCREEN;if(!o||o==="all")return s;let l=window.__HANDLER_SCREEN_INDEX,c=(m=l==null?void 0:l.instanceToScreen)==null?void 0:m[a];return c&&c===o?s:null},window.getEditableEngineConfig=()=>{let a=window.__editableConfig;if(console.log("[BRIDGE] getEditableEngineConfig called, cfg present:",!!a),!a)return null;if(a.engine&&a.objects instanceof Map){console.log("[BRIDGE] Detected ObjectCentricConfig, flattening...");let s={...a.engine,objects:a.objects,scene:a.scene};return console.log("[BRIDGE] Returned assets:",Object.keys(s.assets||{})),s}return a}}function Fw(){if(typeof window=="undefined")return;let e=i=>{let n=String(i||"").trim();return n?/^(data:|blob:|https?:)/.test(n)||n.startsWith("/")?n:`/${n.replace(/^\.\//,"")}`:""},t=async(i,n)=>{var a,s,o;let r=e(n);if(r)try{let[{Assets:l},{AssetTextures:c}]=await Promise.all([import("pixi.js"),Promise.resolve().then(()=>(pi(),od))]),d=Date.now(),u=/^(data:|blob:)/.test(r)?r:r+(r.includes("?")?`&t=${d}`:`?t=${d}`),p=await l.load(u);if(!p)return;c[i]=p;let f=window.CustomAssets;(a=f==null?void 0:f[i])!=null&&a.texture&&(f[i].texture=p);let m=window.gameObjectManager,h=(s=m==null?void 0:m.get)==null?void 0:s.call(m,i);if(h){let g=((o=h.getDisplayObject)==null?void 0:o.call(h))||h.pixiObject||h.pixi||h;if(g!=null&&g.texture)g.texture=p;else if(g!=null&&g.children){let b=g.children.find(y=>y==null?void 0:y.texture);b!=null&&b.texture&&(b.texture=p)}}}catch(l){console.warn("[LIVE-EDIT] Failed to reload Pixi texture for",i,l)}};window.applyLiveEditOverrides=i=>{try{let n=de();Array.isArray(n)&&n.length&&(window.__editableConfig=i,bt(n,{silent:!0,persist:!1}))}catch{}},window.applyEngineOverrides=i=>{try{let n=de();Array.isArray(n)&&n.length&&(window.__editableConfig=i,bt(n,{silent:!0,persist:!1}))}catch{}},window.applyEditableEngineConfig=i=>{let n=window.__editableConfig;if(!(n!=null&&n.engine))return;let r=[];if(i.runtime)for(let[a,s]of Object.entries(i.runtime))r.push({path:`runtime.${a}`,value:s});if(i.assets)for(let[a,s]of Object.entries(i.assets))r.push({path:`assets.${a}`,value:s}),typeof s=="string"&&t(a,s);if(i.splash)for(let[a,s]of Object.entries(i.splash))r.push({path:`splash.${a}`,value:s});if(i.loading)for(let[a,s]of Object.entries(i.loading))r.push({path:`loading.${a}`,value:s});if(i.start)for(let[a,s]of Object.entries(i.start))r.push({path:`start.${a}`,value:s});r.length&&bt(r,{silent:!0,persist:!0,emitEvent:!0})}}function ts(e){let{getConfig:t,gameObjectManager:i,onObjectConfigApplied:n}=e;i&&(i.onObjectRebuildRequired=async(a,s)=>{console.log(`[LIVE-EDIT] \u{1F3D7}\uFE0F Rebuilding object ${a} due to type change...`);let o=i.get(a),l=o==null?void 0:o.pixiObject,c=l==null?void 0:l.parent,d=c==null?void 0:c.children.indexOf(l);o?i.remove(a):l&&l.destroy();let u=window.gameApp,p=await gt.create(a,s,u);c&&(d!==void 0&&d!==-1?c.addChildAt(p,d):c.addChild(p));let f=i.create(a,p);return console.log(`[LIVE-EDIT] \u2705 Rebuild complete for ${a}`),f}),typeof window!="undefined"&&(Fw(),window.applyEditableObjectConfig=(a,s)=>{var o,l,c;console.log("[LIVE-EDIT] \u{1F504} applyEditableObjectConfig called for:",a);try{let d=window.__editableConfig;(o=d==null?void 0:d.objects)!=null&&o.set&&(d.objects.set(a,s),console.log("[LIVE-EDIT] \u2705 Updated config in __editableConfig"));let u=(l=i==null?void 0:i.get)==null?void 0:l.call(i,a);if(console.log("[LIVE-EDIT] gameObject found?",!!u),u&&(console.log("[LIVE-EDIT] gameObject type:",(c=u.constructor)==null?void 0:c.name),console.log("[LIVE-EDIT] has updateConfig?",typeof u.updateConfig=="function"),console.log("[LIVE-EDIT] has onConfigUpdate?",typeof u.onConfigUpdate=="function")),u&&typeof u.updateConfig=="function")console.log("[LIVE-EDIT] \u2705 Calling updateConfig()"),u.updateConfig(s);else if(u&&typeof u.onConfigUpdate=="function")console.log("[LIVE-EDIT] \u2705 Calling onConfigUpdate()"),u.onConfigUpdate();else{console.log("[LIVE-EDIT] \u26A0\uFE0F No updateConfig or onConfigUpdate, applying transform directly");let p=Sg(u);Ag(p,s)}}catch(d){console.error("[LIVE-EDIT] \u274C Error in applyEditableObjectConfig:",d)}});let r={async applyObjectConfig(a,s){var d,u;console.log("[BRIDGE] \u{1F504} applyObjectConfig called for:",a);let o=t();(d=o==null?void 0:o.objects)!=null&&d.set&&(o.objects.set(a,s),console.log("[BRIDGE] \u2705 Updated config"));let l=(u=i==null?void 0:i.get)==null?void 0:u.call(i,a);if(console.log("[BRIDGE] gameObject found?",!!l),l&&(console.log("[BRIDGE] has updateConfig?",typeof l.updateConfig=="function"),console.log("[BRIDGE] has onConfigUpdate?",typeof l.onConfigUpdate=="function")),l&&typeof l.updateConfig=="function")console.log("[BRIDGE] \u2705 Calling updateConfig()"),l.updateConfig(s);else if(l&&typeof l.onConfigUpdate=="function")console.log("[BRIDGE] \u2705 Calling onConfigUpdate()"),l.onConfigUpdate();else{console.log("[BRIDGE] \u26A0\uFE0F Applying transform directly");let p=Sg(l);Ag(p,s)}let c=[a];n==null||n(a,s,c)},rebuildIndexes(){let a=t();typeof window!="undefined"&&(window.__editableConfig=a,Cg(a))}};return r.rebuildIndexes(),r}Te();var Lg=li(require("lottie-web"),1);vs(bs);typeof window!="undefined"&&!window.lottie&&(window.lottie=Lg.default);var Gi=null,Hw=async()=>{if(!Gi){let e=typeof window!="undefined"?window.INLINE_ASSETS:null,t=(e==null?void 0:e["handler.config"])||(e==null?void 0:e["handler.config.json"]);if(t)try{if(t.startsWith("data:")){let n=atob(t.split(",")[1]);Gi=JSON.parse(n)}else Gi=JSON.parse(t);return Gi}catch(n){console.warn("[CONFIG] Failed to parse inline handler.config.json:",n)}Gi=await(await fetch("./handler.config.json")).json()}return Gi},mc,nr,Og,Wi,hc,gc;function $w(e){mc=e.initGame,nr=e.CustomAssets,Og=e.updateScreenState,Wi=e.globalResponsiveMultipliers,hc=e.layout,gc=e.clearResponsiveElements}var is="web_embed",ir="https://example.com",Tg={profile_id:is},Mt=null,Ge=null,fc={width:0,height:0},Uw=!0,qw=async()=>{var c,d,u,p;document.title="Handler Pixi Game";let e=await Hw();Tg={...e.ids||{},profile_id:is},ir=e.destination_url||((d=(c=e.export_profiles)==null?void 0:c[is])==null?void 0:d.destination_url)||ir,jt.init({ids:Tg,profile:is,destinationUrl:ir});let t=jt.getRoot();if(typeof __PREVIEW_SHELL__!="undefined"&&__PREVIEW_SHELL__){console.log("[BOOTSTRAP] Initializing Preview Shell..."),Ge=uc({onDeviceChange:m=>{console.log(`[PREVIEW] Device switched to ${m.width}x${m.height}, restarting game...`),kg()},onRefresh:kg});let f=Ge.getGameContainer();f&&(t=f),window.addEventListener("handler-preview:screen",m=>{var v,x,w,S,A,_,T,R,E,L,z;let h=window.gameApp,g=window.gameObjectManager,{width:b,height:y}=m.detail;if(fc.width=b,fc.height=y,Og(b,y),!(!h||!h.renderer)){g&&o(h,g);try{h.renderer.resize(b,y);let D=h.view;D&&(D.style.width="100%",D.style.height="100%",D.style.display="block")}catch(D){console.warn("[SCREEN] Error resizing renderer:",D);return}if(i&&g&&hc)try{let D=(v=window.__mainContainer)!=null?v:h.stage,B=(T=(_=(S=window.__tutorialLabel)!=null?S:(w=(x=g.get("label_1"))==null?void 0:x.getDisplayObject)==null?void 0:w.call(x))!=null?_:(A=g.get("label_1"))==null?void 0:A.pixiObject)!=null?T:g.get("label_1"),O=g.get("background_1"),P=(z=(L=(E=window.__background)!=null?E:(R=O==null?void 0:O.getDisplayObject)==null?void 0:R.call(O))!=null?L:O==null?void 0:O.pixiObject)!=null?z:O;if(D){let C=D===h.stage;hc({mainContainer:D,label:B,background:P,backgroundTexture:(P==null?void 0:P.texture)||null,app:h},i,0,fc,g,{skipMainContainerTransform:C})}}catch(D){console.warn("[SCREEN] Error in layout:",D)}}})}let i=await Qe("scene.main");window.__editableConfig=i,s(),window.__editableConfigBaseline||(window.__editableConfigBaseline=ne(i),console.log("[BOOTSTRAP] Frozen config baseline for persistence")),(p=(u=i.engine.runtime)==null?void 0:u.layout)!=null&&p.design_width_portrait||(console.warn("[BOOTSTRAP] Config layout missing, retrying..."),await new Promise(f=>setTimeout(f,100)),i=await Qe("scene.main"));let n=await mc(t,i,ir,Ge);Mt=n.app;let r=n.gameObjectManager;window.gameApp=Mt,window.gameObjectManager=r;try{window.__liveEditBridge=ts({getConfig:()=>window.__editableConfig,gameObjectManager:r,assets:nr})}catch(f){console.warn("[BOOTSTRAP] Failed to initialize live-edit bridge",f)}Ge&&Ge.notifyGameLoaded();let a=window.__debugScale;a&&typeof a=="number"&&(Wi.scale=a,console.log(`[DEBUG] Applied persisted debug scale: ${a}`)),o(Mt,r);async function s(){try{let f=async y=>{let v=y.startsWith("/")?y:`/${y}`,x=await fetch(v,{cache:"no-cache"});if(!x.ok)return null;let w=await x.text();try{return JSON.parse(w)}catch{return null}},m=await f("configs/flow/app.flow.json");if(!m||typeof m!="object")return;let h=m.screens;if(!h||typeof h!="object")return;let g={},b={};for(let[y,v]of Object.entries(h)){let x=v==null?void 0:v.source;if(typeof x!="string")continue;let w=await f(x),S=w==null?void 0:w.elements;if(!Array.isArray(S))continue;let A=S.map(_=>_==null?void 0:_.instance_id).filter(_=>typeof _=="string");g[y]=A;for(let _ of A)b[_]||(b[_]=y)}window.__HANDLER_APP_FLOW=m,window.__HANDLER_SCREEN_INDEX={screenToInstances:g,instanceToScreen:b},window.dispatchEvent(new CustomEvent("handler:screen-index-loaded"))}catch{}}function o(f,m){if(Uw){console.log("[RESPONSIVE] Skipping global scaling; using config-driven layout");return}if(console.log("[RESPONSIVE] ===== APPLYING GLOBAL RESPONSIVE SCALING ====="),console.log(`[RESPONSIVE] Scale multiplier: ${Wi.scale.toFixed(3)}`),f.stage){let g=function(b,y=0){if(!b||!b.children)return;let v=" ".repeat(y);b.children.forEach((x,w)=>{if(x&&x.zIndex===9999){console.log(`${v}[RESPONSIVE] Skipping debug border (zIndex 9999)`);return}if(x&&x.scale){let S=x.scale.x||1,A=x.scale.y||1;x.__originalScale||(x.__originalScale={x:S,y:A},console.log(`${v}[RESPONSIVE] Stored original scale for child[${w}]: ${S.toFixed(3)}, ${A.toFixed(3)}`));let _=x.__originalScale.x*Wi.scale,T=x.__originalScale.y*Wi.scale;typeof x.scale.set=="function"?x.scale.set(_,T):(x.scale.x=_,x.scale.y=T),console.log(`${v}[RESPONSIVE] Child[${w}] scale: ${S.toFixed(3)}\u2192${x.scale.x.toFixed(3)} (type: ${x.constructor.name})`),g(x,y+1)}else x&&console.log(`${v}[RESPONSIVE] Child[${w}] has no scale (type: ${x.constructor.name})`)})};var h=g;console.log("[RESPONSIVE] Applying scale to PIXI stage children"),g(f.stage)}else console.warn("[RESPONSIVE] No app.stage found!");console.log("[REDDEBUG] Debug border left unscaled (fixed boundaries)"),console.log("[RESPONSIVE] ===== GLOBAL RESPONSIVE SCALING COMPLETE =====")}function l(f){if(f!==void 0){Wi.scale=f,console.log(`[RESPONSIVE] Updated global scale multiplier to: ${f.toFixed(3)}`);let m=window.gameApp,h=window.gameObjectManager;m&&h?(o(m,h),m.renderer&&(m.renderer.render(m.stage),console.log("[RESPONSIVE] Forced PIXI renderer update"))):console.warn(`[RESPONSIVE] No gameApp (${!!m}) or gameObjectManager (${!!h}) found in window for live update`)}}window.updateGlobalResponsiveMultipliers=l,jt.start()},kg=async()=>{var t,i,n,r;console.log("[PREVIEW] Restarting game in 1 seconds...");let e=(t=window.gameObjectManager)==null?void 0:t.get("character_1");if(e){let a=((i=e.getDisplayObject)==null?void 0:i.call(e))||e;a&&a.scale&&console.log(`[CHARACTER] Before restart - Current scale - x: ${((n=a.scale.x)!=null?n:1).toFixed(3)}, y: ${((r=a.scale.y)!=null?r:1).toFixed(3)}`)}if(Ge){Ge.notifyGameDestroyed();try{gc&&gc()}catch(a){console.warn("Failed to clear responsive elements",a)}setTimeout(()=>{console.log("[PREVIEW] Executing restart...");let a=Ge.getGameContainer(),s=window.gameObjectManager;if(s&&typeof s.clear=="function"&&(console.log("[PREVIEW] Clearing old GameObjectManager tickers..."),s.clear()),Mt){try{Mt.destroy(!0,{children:!0,texture:!1})}catch(o){console.warn("[PREVIEW] Destroy warning:",o)}Mt=null}window.gameApp=null,window.gameObjectManager=null,a&&(a.innerHTML="");try{typeof nr.resetScene=="function"&&nr.resetScene()}catch(o){console.warn("Asset reset failed",o)}setTimeout(()=>{Qe("scene.main").then(o=>{window.__editableConfig=o,window.__editableConfigBaseline||(window.__editableConfigBaseline=ne(o)),mc(a,o,ir).then(l=>{Mt=l.app,window.gameApp=Mt,window.gameObjectManager=l.gameObjectManager;try{window.__liveEditBridge=ts({getConfig:()=>window.__editableConfig,gameObjectManager:window.gameObjectManager,assets:nr})}catch(c){console.warn("[BOOTSTRAP] Failed to re-initialize live-edit bridge",c)}Ge&&Ge.notifyGameLoaded(),console.log("[PREVIEW] Game restarted successfully");try{jt.start()}catch{}})})},100)},1e3)}};jr();Te();var bc="0.3.12",Gw=new Set(["init","boot","view","ready","start","pause","resume","complete","error","engagement","first_interaction","retry","cta_show","cta_click","cta_dismiss","clickout","conversion","session_time","level_time","load_time","level_start","level_complete","level_fail","checkpoint","reward","tutorial_start","tutorial_complete","tutorial_skip","ab_assign","fps","memory","asset_load_start","asset_load_complete"]);zc();var zg={mechanic_id:"TODO_mechanic_id",variant_id:"TODO_variant_id",deployment_id:"TODO_deployment_id",export_id:"TODO_export_id",profile_id:"TODO_profile_id",instance_id:"default"},Ng=Math.random().toString(36).slice(2),Ki=null,Yi={...zg},Bg="web_embed",wc={},ar,yc=!1,rr=!1,or=!1,Fg=!1,Ac=1,rs=0,os=!1,ut=!1,Vi="",Xi=Math.floor(window.innerWidth),Zi=Math.floor(window.innerHeight),_c=Xi>Zi,pt=!1,sr=!1,Ig=!1,Mg=!1,vc=!1,as=null,ri=null,Ec=!1,Sc=!1,ns=new Map;function Hg(){if(!ri)return null;let e=Date.now()-ri;return!Number.isFinite(e)||e<0?null:e}function xc(e){if(Ec)return;let t=Hg();t!==null&&(Ec=!0,M("session_time",{duration_ms:t,reason:e}))}function Rg(){if(Ki)return Ki;let e=document.createElement("div");return e.id="handler-root",e.setAttribute("data-handler-root","true"),document.body.appendChild(e),Ki=e,e}function ss(e){switch(e){case"interaction":return"engagement";case"finish":return"complete";case"install":return"cta_click";default:return e}}function $g(e,t){return{event_name:e,ts:Date.now(),session_id:Ng,deployment_id:Yi.deployment_id,variant_id:Yi.variant_id,export_profile_id:Yi.profile_id,instance_id:Yi.instance_id||"default",env:Bg==="mraid"?"mraid":"web",attribution:ar,payload:t}}function M(e,t){let i=ss(e),n=$g(i,t);hs(n,!!wc.analytics),fr(i,n),i!==e&&fr(e,n)}function lr(){as&&(as(Xi,Zi),as=null)}function Ji(e){Ac=e,M("volume",e)}function Qi(e){e&&(Fg=!0),!or&&(or=!0,M("pause"),Ji(0))}function cr(e){!e&&Fg||or&&(or=!1,M("resume"),Ji(Ac))}function Rt(e,t){Xi=Math.floor(e||window.innerWidth),Zi=Math.floor(t||window.innerHeight),_c=Xi>Zi,M("resize",{width:Xi,height:Zi})}function Ww(){if(Kc())try{let e=mraid.getMaxSize();Rt(e.width,e.height);let t=()=>{mraid.isViewable()&&mraid.getState()!=="hidden"?cr():Qi()};if(mraid.addEventListener("viewableChange",t),mraid.addEventListener("stateChange",t),mraid.addEventListener("sizeChange",()=>{let i=mraid.getMaxSize();Rt(i.width,i.height)}),mraid.getAudioVolume){let i=mraid.getAudioVolume();Ji(i?1:0)}if(mraid.addEventListener("audioVolumeChange",i=>{i!==null&&Ji(i>0?1:0)}),mraid.addEventListener("error",(i,n)=>{console.warn("mraid error:",i,"action:",n)}),os=!0,mraid.isViewable()&&mraid.getState()!=="hidden")pt=!0,M("boot"),M("view"),M("ready"),ut=!0,lr();else{let i=()=>{pt=!0,M("boot"),M("view"),M("ready"),ut=!0,lr()};mraid.addEventListener("ready",i)}}catch(e){console.warn("MRAID hook skipped",e)}}function Yw(){if(Xc())try{let e=dapi.getScreenSize();Rt(e.width,e.height),dapi.addEventListener("viewableChange",i=>{i.isViewable?cr():Qi()}),dapi.addEventListener("adResized",i=>{let n=dapi.getScreenSize();Rt(i.width||n.width,i.height||n.height)});let t=dapi.getAudioVolume();if(Ji(t?1:0),dapi.addEventListener("audioVolumeChange",i=>Ji(i?1:0)),os=!0,dapi.isViewable())pt=!0,M("boot"),M("view"),M("ready"),ut=!0,lr();else{let i=()=>{pt=!0,M("boot"),M("view"),M("ready"),ut=!0,lr()};dapi.addEventListener("ready",i)}}catch(e){console.warn("DAPI hook skipped",e)}}function Pg(){let e=()=>{pt||document.visibilityState==="visible"&&(document.readyState==="complete"||document.readyState==="interactive")&&(pt=!0,M("boot"),M("view"),M("ready"),ut=!0,lr(),sr&&(sr=!1,Re.start()))};window.addEventListener("resize",()=>Rt()),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"?(cr(),e()):Qi()}),document.readyState==="complete"||document.readyState==="interactive"?e():window.addEventListener("load",e),os=!0}function Vw(){let e=t=>{typeof TouchEvent!="undefined"&&t instanceof TouchEvent&&(Ig=!0),!(Ig&&t instanceof MouseEvent)&&(rs+=1,Sc||(Sc=!0,M("first_interaction",{count:rs})),M("interaction",rs))};document.addEventListener("mousedown",e),document.addEventListener("touchstart",e)}function jg(e){var n,r,a,s,o,l,c,d,u,p,f,m;let t=typeof AD_PROTOCOL!="undefined"?AD_PROTOCOL:"none";if((typeof AD_NETWORK!="undefined"?AD_NETWORK:"web_embed")==="google")try{(n=window.ExitApi)==null||n.exit();return}catch{}if(t==="mraid"&&typeof mraid!="undefined")mraid.open(e||"");else if(t==="dapi"&&typeof dapi!="undefined")dapi.openStoreUrl();else if(ui())(a=(r=window.TJ_API)==null?void 0:r.click)==null||a.call(r);else if(Zc())(o=(s=window.FbPlayableAd)==null?void 0:s.onCTAClick)==null||o.call(s);else if(td())(c=(l=window.ScPlayableAd)==null?void 0:l.onCTAClick)==null||c.call(l);else if(ed())try{(u=(d=window.smxTracking)==null?void 0:d.redirect)==null||u.call(d)}catch(h){console.warn("Smadex redirect failed",h)}else if(Jc()){let h=window.ExitApi;h&&typeof h.exit=="function"?h.exit(e||Vi||""):e&&window.open(e)}else di()?(p=window.install)==null||p.call(window):Qc()?(f=window.openAppStore)==null||f.call(window):gs()?(m=parent==null?void 0:parent.postMessage)==null||m.call(parent,"download","*"):e&&window.open(e)}function Kw(){let e=typeof AD_NETWORK!="undefined"?AD_NETWORK:"web_embed",t=i=>{if(!i)return;let n=new Image;n.src=i};if(e==="bigabid"){let i=window.BIGABID_BIDTIMEMACROS;if(!i)return;be("view",()=>t(i.mraid_viewable)),be("start",()=>t(i.game_viewable)),be("engagement",()=>t(i.engagement));let n=()=>t(i.complete);be("complete",n),pr("engagement",r=>{var a;((a=r==null?void 0:r.payload)==null?void 0:a.count)>3&&n()}),be("cta_click",()=>t(i.click))}else if(e==="inmobi"){let i=window.INMOBI_DSPMACROS;if(!i)return;be("view",()=>t(i.Ad_Load_Start)),be("start",()=>t(i.Ad_Viewable)),be("engagement",()=>t(i.First_Engagement)),be("complete",()=>t(i.Gameplay_Complete)),be("cta_click",()=>t(i.DSP_Click)),be("start",()=>{[5,10,15,20,25,30].forEach(n=>setTimeout(()=>t(i[`Spent_${n}_Seconds`]),n*1e3))})}}function Xw(){if(!ui())return;let e=window.TJ_API;e&&e.setPlayableAPI&&e.setPlayableAPI({skipAd:()=>{try{Re.finish()}catch(t){console.warn("Tapjoy skip failed",t)}}})}function Dg(){var t,i,n;let e=window.TJ_API;(t=e==null?void 0:e.objectiveComplete)==null||t.call(e),(i=e==null?void 0:e.playableFinished)==null||i.call(e),(n=e==null?void 0:e.gameplayFinished)==null||n.call(e)}function Zw(){di()&&(window.mintGameStart=()=>{cr(!0),Rt()},window.mintGameClose=()=>{Qi(!0)})}function Jw(){if(!ms())return;let e=window.NUC;!e||!e.trigger||(Re.on("cta_click",()=>{var t,i;return(i=(t=e.trigger).convert)==null?void 0:i.call(t,Vi)}),Re.on("complete",()=>{var t,i;return(i=(t=e.trigger).tryAgain)==null?void 0:i.call(t)}))}var Re={init(e={},t){var i;if(Bg=e.profile||"web_embed",wc=e.consent||{},Yi={...zg,...e.ids||{}},Ki=e.rootEl||Ki,ar=void 0,Oc((i=e.telemetry)!=null&&i.endpoint?e.telemetry:null),ri=null,Ec=!1,Sc=!1,ns.clear(),Vi=e.destinationUrl||(/android/i.test(navigator.userAgent)?"https://play.google.com/store":"https://www.apple.com/app-store/"),t&&(as=t),M("init"),document.body.oncontextmenu=()=>!1,Rg(),e0(Ki),id(),Ww(),Yw(),!os){if(document.readyState==="complete")Pg();else if(!Mg){Mg=!0;let n=()=>{Pg(),window.removeEventListener("load",n),document.removeEventListener("DOMContentLoaded",n)};window.addEventListener("load",n),document.addEventListener("DOMContentLoaded",n)}}Vw(),Kw(),Xw(),Zw(),Jw(),console.log(`%c @handler/playable-sdk %c v${bc} `,"background: #007acc; color: #fff; font-size: 14px; padding: 4px 8px; border-top-left-radius: 4px; border-bottom-left-radius: 4px;","background: #e1e4e8; color: #333; font-size: 14px; padding: 4px 8px; border-top-right-radius: 4px; border-bottom-right-radius: 4px;"),pt&&!ut&&(M("boot"),M("view"),M("ready"),sr&&(sr=!1,Re.start()),ut=!0),ut=pt},getRoot(){return Rg()},get version(){return bc},get maxWidth(){return Xi},get maxHeight(){return Zi},get isLandscape(){return _c},get isReady(){return ut},get isStarted(){return yc},get isPaused(){return or},get isFinished(){return rr},get volume(){return Ac},get interactions(){return rs},on(e,t){pr(ss(e),t)},off(e,t){fs(ss(e),t)},start(){var e,t;if(!yc){if(!pt){sr=!0;return}if(yc=!0,ri||(ri=Date.now()),M("start"),Rt(),di())Qi(),(e=window.gameReady)==null||e.call(window);else if(ui()){let i=window.TJ_API;(t=i==null?void 0:i.setPlayableBuild)==null||t.call(i,{orientation:_c?"landscape":"portrait",buildID:bc})}}},finish(){var e,t;rr||(rr=!0,M("complete"),xc("complete"),di()?(e=window.gameEnd)==null||e.call(window):gs()?(t=parent==null?void 0:parent.postMessage)==null||t.call(parent,"complete","*"):ui()&&Dg())},install(e){if(!rr){rr=!0,ui()?(Dg(),setTimeout(()=>Re.install(e),300)):(M("complete"),setTimeout(()=>Re.install(e),0));return}vc||(vc=!0,setTimeout(()=>vc=!1,500),M("cta_click"),M("conversion"),xc("cta"),jg(e||Vi))},emit(e,t){let i=ss(e);if(!Gw.has(i)&&i!=="resize"&&i!=="volume"&&!i.startsWith("custom."))throw new Error(`Event ${e} must be canonical or namespaced as custom.<mechanic_id>.<event>`);let n=$g(i,t);hs(n,!!wc.analytics),fr(i,n)},gameStart(){Re.start()},gameEnd(){Re.finish()},ctaClick(e,t){M("cta_click",{url:e||Vi,manual:!0}),(t==null?void 0:t.open)!==!1&&jg(e||Vi)},ctaShow(e){M("cta_show",e)},ctaDismiss(e){M("cta_dismiss",e)},getGameTimeMs(){return Hg()},endSession(e="manual"){xc(e)},setAttribution(e){ar=e},abTest(e,t){if(!e)throw new Error("abTest requires experimentId");if(!Array.isArray(t)||t.length<2)throw new Error("abTest requires at least 2 variants");let i=Math.abs(Qw(`${Ng}:${e}`))%t.length,n=t[i];return ar={...ar||{},experiment_id:e},Yi.variant_id=n,M("ab_assign",{experiment_id:e,variant_id:n}),n},levelStart(e,t){ri||(ri=Date.now()),M("level_start",{level_id:e,...t})},levelComplete(e,t){M("level_complete",{level_id:e,...t})},levelFail(e,t){M("level_fail",{level_id:e,...t})},checkpoint(e,t){M("checkpoint",{checkpoint_id:e,...t})},reward(e,t){M("reward",{reward_id:e,...t})},tutorialStart(e,t){M("tutorial_start",{step_id:e,...t})},tutorialComplete(e,t){M("tutorial_complete",{step_id:e,...t})},tutorialSkip(e,t){M("tutorial_skip",{step_id:e,...t})},timerStart(e){e&&ns.set(e,Date.now())},timerEnd(e,t="custom",i){if(!e)return;let n=ns.get(e);if(!n)return;ns.delete(e);let r=Date.now()-n;if(!(!Number.isFinite(r)||r<0)){if(t==="custom"){M("engagement",{action:"timer",key:e,duration_ms:r,...i});return}M(t,{key:e,duration_ms:r,...i})}},fps(e,t){M("fps",{value:e,...t})},memory(e,t){M("memory",{bytes:e,...t})},assetLoadStart(e,t){M("asset_load_start",{asset_id:e,...t})},assetLoadComplete(e,t){M("asset_load_complete",{asset_id:e,...t})},reportError(e,t,i){M("error",{code:e,message:t,...i})},retry(){var e,t,i;if(di())(e=window.gameRetry)==null||e.call(window);else if(ms()){let n=window.NUC;(i=(t=n==null?void 0:n.trigger)==null?void 0:t.tryAgain)==null||i.call(t)}M("engagement",{action:"retry"})},pause(){Qi(!0)},resume(){cr(!0)},resize(e,t){Rt(e,t)}},jt=Re;function Qw(e){let t=2166136261;for(let i=0;i<e.length;i++)t^=e.charCodeAt(i),t=Math.imul(t,16777619);return t|0}function e0(e){let t=document.createElement("script");t.type="text/javascript",t.textContent=`
|
|
1465
|
+
`,this.setupEventListeners(t),t}setupEventListeners(t){var r,a,s,o,l,c,d;let i=t.querySelector("#device-select");i==null||i.addEventListener("change",u=>{if(this.viewMode==="compare")return;let p=u.target.value;this.setDevice(p)}),Array.from(t.querySelectorAll("[data-view-toggle]")).forEach(u=>{u.addEventListener("click",()=>{let p=u.dataset.viewToggle;p&&this.setViewMode(p)})}),(r=t.querySelector("#rotate-btn"))==null||r.addEventListener("click",()=>this.toggleRotation()),(a=t.querySelector("#zoom-in-btn"))==null||a.addEventListener("click",()=>this.adjustUserZoom(.1)),(s=t.querySelector("#zoom-out-btn"))==null||s.addEventListener("click",()=>this.adjustUserZoom(-.1)),(o=t.querySelector("#refresh-btn"))==null||o.addEventListener("click",()=>this.refresh()),(l=t.querySelector("#console-toggle"))==null||l.addEventListener("click",()=>this.toggleConsole()),(c=t.querySelector("#console-close"))==null||c.addEventListener("click",()=>this.toggleConsole(!1)),(d=t.querySelector("#console-clear"))==null||d.addEventListener("click",()=>this.clearConsole())}applyDeviceFrameStyles(){Object.assign(this.frameDragger.style,{display:"flex",justifyContent:"center",alignItems:"center",transform:"translate(0px, 0px)",touchAction:"none"}),Object.assign(this.frameWrapper.style,{display:"flex",justifyContent:"center",alignItems:"center",transformOrigin:"center center",transition:"transform 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94)",boxShadow:"0 20px 50px rgba(0,0,0,0.5)",borderRadius:"0px",willChange:"transform"}),Object.assign(this.deviceFrame.style,{overflow:"hidden",position:"relative",borderRadius:"0px"}),Object.assign(this.gameContainer.style,{position:"relative",overflow:"hidden",minWidth:"0px",minHeight:"0px"})}setupObserversAndListeners(){this.resizeObserver=new ResizeObserver(()=>{this.resizeListenersDisabled||!this.gameReady||this.scheduleFit()}),this.resizeObserver.observe(this.previewContainer),window.addEventListener("resize",this.onWindowResize,{passive:!0})}scheduleFit(){this.rafFitHandle&&cancelAnimationFrame(this.rafFitHandle),this.rafFitHandle=requestAnimationFrame(()=>{this.rafFitHandle=null,this.fitToScreen()})}applyPresetDimensions(){let t=this.getEffectivePreset(),i=`${t.width}px`,n=`${t.height}px`;this.deviceFrame.style.width=i,this.deviceFrame.style.height=n,this.gameContainer.style.width=i,this.gameContainer.style.height=n,this.gameContainer.style.maxWidth=i,this.gameContainer.style.maxHeight=n,this.gameContainer.style.minWidth=i,this.gameContainer.style.minHeight=n,this.gameContainer.dataset.screenWidth=String(t.width),this.gameContainer.dataset.screenHeight=String(t.height),this.container.style.setProperty("--preview-screen-width",String(t.width)),this.container.style.setProperty("--preview-screen-height",String(t.height))}fitToScreen(t){if(!this.previewContainer)return;let i=this.getEffectivePreset(),n=this.getFitBounds(),r=Math.max(0,n.width),a=Math.max(0,n.height);if(r<=0||a<=0)return;this.applyPresetDimensions(),this.viewMode==="compare"&&this.applyCompareDimensions();let s=r/i.width,o=a/i.height;if(this.autoScale=Math.max(.01,Math.min(s,o)),!this.hasInitialFit){this.hasInitialFit=!0;let l=.6;this.userScaleMultiplier=l/this.autoScale}t!=null&&t.keepVisibleScale&&t.keepVisibleScale>0&&(this.userScaleMultiplier=t.keepVisibleScale/this.autoScale),this.applyTransform(),this.viewMode==="compare"&&this.fitCompareGhosts(),this.emitScreenChange()}applyTransform(){let t=this.autoScale*this.userScaleMultiplier;this.frameWrapper.style.transform=`scale(${t})`;let i=this.container.querySelector("#zoom-label");i&&(i.textContent=`${Math.round(t*100)}%`)}applyFrameDrag(){this.frameDragger.style.transform=`translate(${this.frameDragOffsetX}px, ${this.frameDragOffsetY}px)`}setupFrameDragging(){this.frameDragger.addEventListener("pointerdown",t=>{this.gameContainer.contains(t.target)||t.button===0&&(t.preventDefault(),this.frameDragActive=!0,this.frameDragStartX=t.clientX,this.frameDragStartY=t.clientY,this.frameDragOriginX=this.frameDragOffsetX,this.frameDragOriginY=this.frameDragOffsetY,window.addEventListener("pointermove",this.onFrameDragMove),window.addEventListener("pointerup",this.onFrameDragEnd))})}adjustUserZoom(t){this.userScaleMultiplier=Math.max(.1,Math.min(6,this.userScaleMultiplier+t)),this.applyTransform(),this.emitScreenChange()}toggleRotation(){var i,n;if(this.viewMode==="compare")return;let t=this.autoScale*this.userScaleMultiplier;this.isLandscape=!this.isLandscape,this.applyPresetDimensions(),this.fitToScreen({keepVisibleScale:t}),(n=(i=this.options).onDeviceChange)==null||n.call(i,this.getEffectivePreset()),this.emitScreenChange()}emitScreenChange(){if(!this.gameReady)return;let t=this.getEffectivePreset(),i={width:t.width,height:t.height,dpr:Math.max(1,Math.floor(window.devicePixelRatio||1)),presetId:t.id,isLandscape:this.isLandscape};if(window.dispatchEvent(new CustomEvent("handler-preview:screen",{detail:i})),this.viewMode==="compare"&&this.refreshCompareSnapshots(),this.isInitialized&&this.isMounted&&this.gameReady){let n=window.gameApp;if(!(n!=null&&n.renderer))return;this.ignoreNextWindowResize=!0,window.dispatchEvent(new Event("resize"))}}safeStringify(t){var n;let i=new WeakSet;try{return JSON.stringify(t,(r,a)=>{if(typeof a=="object"&&a!==null){if(i.has(a))return"[Circular]";i.add(a)}return a},2)}catch{try{if(t&&((n=t.constructor)!=null&&n.name))return`[object ${t.constructor.name}]`}catch{}return String(t)}}setupConsoleInterceptor(){let t=console.log.bind(console),i=console.warn.bind(console),n=console.error.bind(console),r=console.info.bind(console),a=(s,...o)=>{let l=o.map(d=>typeof d=="object"?this.safeStringify(d):String(d)).join(" ");this.consoleMessages.push({type:s,message:l,timestamp:new Date}),this.appendConsoleMessage(this.consoleMessages[this.consoleMessages.length-1]);let c=this.container.querySelector("#console-badge");if(c){let d=this.consoleMessages.filter(u=>u.type==="error").length;c.textContent=d>0?`${d}!`:"0",c.classList.toggle("has-errors",d>0)}};console.log=(...s)=>{t(...s),a("log",...s)},console.warn=(...s)=>{i(...s),a("warn",...s)},console.error=(...s)=>{n(...s),a("error",...s)},console.info=(...s)=>{r(...s),a("info",...s)}}appendConsoleMessage(t){let i=this.container.querySelector("#console-messages");if(!i)return;let n=document.createElement("div");n.className=`console-msg type-${t.type}`;let r=t.timestamp.toLocaleTimeString();n.innerHTML=`<span class="time">${this.escapeHtml(r)}</span> <pre>${this.escapeHtml(t.message)}</pre>`,i.appendChild(n),i.scrollTop=i.scrollHeight}escapeHtml(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}toggleConsole(t){var i;this.isConsoleOpen=t!=null?t:!this.isConsoleOpen,(i=this.consolePanel)==null||i.classList.toggle("closed",!this.isConsoleOpen)}clearConsole(){this.consoleMessages=[];let t=this.container.querySelector("#console-messages");t&&(t.innerHTML="");let i=this.container.querySelector("#console-badge");i&&(i.textContent="0")}setupCompareViewports(){Array.from(this.container.querySelectorAll("[data-viewport]")).forEach(i=>{let n=i.dataset.viewport;if(!n)return;let r=this.comparePresets.find(u=>u.id===n);if(!r)return;let a=i.querySelector("[data-compare-slot]"),s=i.querySelector("[data-compare-ghost]"),o=i.querySelector("[data-compare-wrapper]"),l=i.querySelector("[data-compare-frame]"),c=i.querySelector("[data-compare-snapshot]"),d=i.querySelector("[data-compare-focus]");!a||!s||!o||!l||(i.addEventListener("click",u=>{let p=u.target;if(p!=null&&p.closest("[data-compare-focus]")){u.preventDefault(),this.activateCompareViewport(n);return}i.classList.contains("is-active")||this.activateCompareViewport(n)}),this.compareViewports.set(n,{preset:r,root:i,slot:a,ghost:s,wrapper:o,frame:l,canvas:c,focus:d}))})}setViewMode(t){if(this.viewMode===t)return;this.viewMode=t,this.container.classList.toggle("compare-mode",t==="compare"),this.singleStage.classList.toggle("hidden",t!=="single"),this.compareStage.classList.toggle("hidden",t!=="compare");let i=this.container.querySelector("#device-select");i&&(i.disabled=t==="compare");let n=this.container.querySelector("#rotate-btn");if(n&&(n.disabled=t==="compare"),this.updateViewToggleUI(),t==="compare"){this.lastSinglePresetId=this.currentPreset.id,this.activateCompareViewport(this.activeCompareId),this.refreshCompareSnapshots(),this.startCompareSnapshots();return}this.stopCompareSnapshots(),this.singleStage.appendChild(this.frameDragger),this.setDevice(this.lastSinglePresetId,{suppressCallback:!0}),this.fitToScreen()}updateViewToggleUI(){Array.from(this.container.querySelectorAll("[data-view-toggle]")).forEach(i=>{i.classList.toggle("active",i.dataset.viewToggle===this.viewMode)})}activateCompareViewport(t){var a,s;let i=this.compareViewports.get(t);if(!i)return;let n=this.autoScale*this.userScaleMultiplier,r=this.activeCompareId;r&&r!==t&&this.captureCompareSnapshot(r),this.activeCompareId=t,this.currentPreset=i.preset,this.isLandscape=!1,i.slot.appendChild(this.frameDragger),this.frameDragOffsetX=0,this.frameDragOffsetY=0,this.applyFrameDrag(),this.compareViewports.forEach((o,l)=>{o.root.classList.toggle("is-active",l===t),o.ghost.classList.toggle("hidden",l===t),o.focus&&(o.focus.textContent=l===t?"Live":"Focus")}),this.applyPresetDimensions(),this.applyCompareDimensions(),this.fitToScreen({keepVisibleScale:n}),(s=(a=this.options).onDeviceChange)==null||s.call(a,this.getEffectivePreset())}applyCompareDimensions(){this.compareViewports.forEach(t=>{let i=t.preset,n=`${i.width}px`,r=`${i.height}px`;t.frame.style.width=n,t.frame.style.height=r,t.canvas&&(t.canvas.width=i.width,t.canvas.height=i.height)})}fitCompareGhosts(){this.compareViewports.forEach(t=>{let i=t.root.querySelector(".compare-body");if(!i)return;let n=Math.max(0,i.clientWidth-24),r=Math.max(0,i.clientHeight-24);if(n<=0||r<=0)return;let a=n/t.preset.width,s=r/t.preset.height,o=Math.max(.01,Math.min(a,s));t.wrapper.style.transform=`scale(${o})`})}captureCompareSnapshot(t){let i=this.compareViewports.get(t);if(!(i!=null&&i.canvas))return;let n=this.gameContainer.querySelector("canvas");if(!n)return;let r=i.canvas.getContext("2d");if(!r)return;let a=i.canvas.width,s=i.canvas.height,o=Math.min(a/n.width,s/n.height),l=n.width*o,c=n.height*o,d=(a-l)/2,u=(s-c)/2;r.clearRect(0,0,a,s),r.drawImage(n,d,u,l,c)}refreshCompareSnapshots(){this.compareViewports.forEach((t,i)=>{i!==this.activeCompareId&&this.captureCompareSnapshot(i)})}startCompareSnapshots(){this.compareSnapshotTimer||(this.compareSnapshotTimer=window.setInterval(()=>{this.viewMode==="compare"&&this.refreshCompareSnapshots()},500))}stopCompareSnapshots(){this.compareSnapshotTimer&&(window.clearInterval(this.compareSnapshotTimer),this.compareSnapshotTimer=null)}getFitBounds(){if(this.viewMode!=="compare")return{width:this.previewContainer.clientWidth-40,height:this.previewContainer.clientHeight-40};let t=this.compareViewports.get(this.activeCompareId),i=t==null?void 0:t.root.querySelector(".compare-body");return i?{width:i.clientWidth-24,height:i.clientHeight-24}:{width:this.previewContainer.clientWidth-40,height:this.previewContainer.clientHeight-40}}mustQuery(t){let i=this.container.querySelector(t);if(!i)throw new Error(`PreviewShell missing element: ${t}`);return i}};function pc(e={}){let t=new ts(e);return typeof window!="undefined"&&(window.__previewShell=t),t.mount(),t}Te();function fc(e){try{if(e&&typeof e.keys=="function")return Array.from(e.keys())}catch{}return[]}function Cg(e){var t;return e?((t=e.getDisplayObject)==null?void 0:t.call(e))||e.pixiObject||e:null}function $w(e,t){if(!e||!(t!=null&&t.interaction))return;let i=t.interaction,n=i.enabled!==!1&&(i.draggable===!0||i.clickable===!0);e.eventMode=n?"static":"none",e.interactive=n,n&&(e.cursor=i.draggable?"move":"pointer")}function Tg(e,t){var l,c,d,u,p;if(!e||!t)return;let i=t.transform||{};$w(e,t);let n=i.position||{},r=i.offset||{},a=(typeof n.x=="number"?n.x:0)+(typeof r.x=="number"?r.x:0),s=(typeof n.y=="number"?n.y:0)+(typeof r.y=="number"?r.y:0);(l=e.position)!=null&&l.set?e.position.set(a,s):(typeof e.x=="number"&&(e.x=a),typeof e.y=="number"&&(e.y=s)),typeof i.scale=="number"&&((c=e.scale)!=null&&c.set?e.scale.set(i.scale):e.scale&&(e.scale.x=i.scale,e.scale.y=i.scale));let o=(u=i.anchor)!=null?u:(d=t.render)==null?void 0:d.anchor;o&&((p=e.anchor)!=null&&p.set)&&typeof o.x=="number"&&typeof o.y=="number"&&e.anchor.set(o.x,o.y)}function kg(e){if(typeof window=="undefined")return;let t=e==null?void 0:e.objects,i=fc(t),n=a=>{try{let s=window.__HANDLER_ACTIVE_SCREEN;if(!s||s==="all")return a;let o=window.__HANDLER_SCREEN_INDEX,l=o==null?void 0:o.instanceToScreen;return l?a.filter(c=>l[c]===s):a}catch{return a}};window.__editableObjectConfigs=t;let r=new Map;i.forEach(a=>r.set(a,[a])),window.__editableObjectInstances=r,window.refreshEditableConfigIndex=()=>kg(window.__editableConfig),window.getEditableObjectList=()=>{var a;return n(fc((a=window.__editableConfig)==null?void 0:a.objects))},window.getEditableObjectListAll=()=>{var a;return fc((a=window.__editableConfig)==null?void 0:a.objects)},window.getEditableObjectConfig=a=>{var d,u,p,f,m;let s=(f=(p=(u=(d=window.__editableConfig)==null?void 0:d.objects)==null?void 0:u.get)==null?void 0:p.call(u,a))!=null?f:null,o=window.__HANDLER_ACTIVE_SCREEN;if(!o||o==="all")return s;let l=window.__HANDLER_SCREEN_INDEX,c=(m=l==null?void 0:l.instanceToScreen)==null?void 0:m[a];return c&&c===o?s:null},window.getEditableEngineConfig=()=>{let a=window.__editableConfig;if(console.log("[BRIDGE] getEditableEngineConfig called, cfg present:",!!a),!a)return null;if(a.engine&&a.objects instanceof Map){console.log("[BRIDGE] Detected ObjectCentricConfig, flattening...");let s={...a.engine,objects:a.objects,scene:a.scene};return console.log("[BRIDGE] Returned assets:",Object.keys(s.assets||{})),s}return a}}function Uw(){if(typeof window=="undefined")return;let e=i=>{let n=String(i||"").trim();return n?/^(data:|blob:|https?:)/.test(n)||n.startsWith("/")?n:`/${n.replace(/^\.\//,"")}`:""},t=async(i,n)=>{var a,s,o;let r=e(n);if(r)try{let[{Assets:l},{AssetTextures:c}]=await Promise.all([import("pixi.js"),Promise.resolve().then(()=>(pi(),cd))]),d=Date.now(),u=/^(data:|blob:)/.test(r)?r:r+(r.includes("?")?`&t=${d}`:`?t=${d}`),p=await l.load(u);if(!p)return;c[i]=p;let f=window.CustomAssets;(a=f==null?void 0:f[i])!=null&&a.texture&&(f[i].texture=p);let m=window.gameObjectManager,h=(s=m==null?void 0:m.get)==null?void 0:s.call(m,i);if(h){let g=((o=h.getDisplayObject)==null?void 0:o.call(h))||h.pixiObject||h.pixi||h;if(g!=null&&g.texture)g.texture=p;else if(g!=null&&g.children){let b=g.children.find(y=>y==null?void 0:y.texture);b!=null&&b.texture&&(b.texture=p)}}}catch(l){console.warn("[LIVE-EDIT] Failed to reload Pixi texture for",i,l)}};window.applyLiveEditOverrides=i=>{try{let n=de();Array.isArray(n)&&n.length&&(window.__editableConfig=i,bt(n,{silent:!0,persist:!1}))}catch{}},window.applyEngineOverrides=i=>{try{let n=de();Array.isArray(n)&&n.length&&(window.__editableConfig=i,bt(n,{silent:!0,persist:!1}))}catch{}},window.applyEditableEngineConfig=i=>{let n=window.__editableConfig;if(!(n!=null&&n.engine))return;let r=[];if(i.runtime)for(let[a,s]of Object.entries(i.runtime))r.push({path:`runtime.${a}`,value:s});if(i.assets)for(let[a,s]of Object.entries(i.assets))r.push({path:`assets.${a}`,value:s}),typeof s=="string"&&t(a,s);if(i.splash)for(let[a,s]of Object.entries(i.splash))r.push({path:`splash.${a}`,value:s});if(i.loading)for(let[a,s]of Object.entries(i.loading))r.push({path:`loading.${a}`,value:s});if(i.start)for(let[a,s]of Object.entries(i.start))r.push({path:`start.${a}`,value:s});r.length&&bt(r,{silent:!0,persist:!0,emitEvent:!0})}}function is(e){let{getConfig:t,gameObjectManager:i,onObjectConfigApplied:n}=e;i&&(i.onObjectRebuildRequired=async(a,s)=>{console.log(`[LIVE-EDIT] \u{1F3D7}\uFE0F Rebuilding object ${a} due to type change...`);let o=i.get(a),l=o==null?void 0:o.pixiObject,c=l==null?void 0:l.parent,d=c==null?void 0:c.children.indexOf(l);o?i.remove(a):l&&l.destroy();let u=window.gameApp,p=await gt.create(a,s,u);c&&(d!==void 0&&d!==-1?c.addChildAt(p,d):c.addChild(p));let f=i.create(a,p);return console.log(`[LIVE-EDIT] \u2705 Rebuild complete for ${a}`),f}),typeof window!="undefined"&&(Uw(),window.applyEditableObjectConfig=(a,s)=>{var o,l,c;console.log("[LIVE-EDIT] \u{1F504} applyEditableObjectConfig called for:",a);try{let d=window.__editableConfig;(o=d==null?void 0:d.objects)!=null&&o.set&&(d.objects.set(a,s),console.log("[LIVE-EDIT] \u2705 Updated config in __editableConfig"));let u=(l=i==null?void 0:i.get)==null?void 0:l.call(i,a);if(console.log("[LIVE-EDIT] gameObject found?",!!u),u&&(console.log("[LIVE-EDIT] gameObject type:",(c=u.constructor)==null?void 0:c.name),console.log("[LIVE-EDIT] has updateConfig?",typeof u.updateConfig=="function"),console.log("[LIVE-EDIT] has onConfigUpdate?",typeof u.onConfigUpdate=="function")),u&&typeof u.updateConfig=="function")console.log("[LIVE-EDIT] \u2705 Calling updateConfig()"),u.updateConfig(s);else if(u&&typeof u.onConfigUpdate=="function")console.log("[LIVE-EDIT] \u2705 Calling onConfigUpdate()"),u.onConfigUpdate();else{console.log("[LIVE-EDIT] \u26A0\uFE0F No updateConfig or onConfigUpdate, applying transform directly");let p=Cg(u);Tg(p,s)}}catch(d){console.error("[LIVE-EDIT] \u274C Error in applyEditableObjectConfig:",d)}});let r={async applyObjectConfig(a,s){var d,u;console.log("[BRIDGE] \u{1F504} applyObjectConfig called for:",a);let o=t();(d=o==null?void 0:o.objects)!=null&&d.set&&(o.objects.set(a,s),console.log("[BRIDGE] \u2705 Updated config"));let l=(u=i==null?void 0:i.get)==null?void 0:u.call(i,a);if(console.log("[BRIDGE] gameObject found?",!!l),l&&(console.log("[BRIDGE] has updateConfig?",typeof l.updateConfig=="function"),console.log("[BRIDGE] has onConfigUpdate?",typeof l.onConfigUpdate=="function")),l&&typeof l.updateConfig=="function")console.log("[BRIDGE] \u2705 Calling updateConfig()"),l.updateConfig(s);else if(l&&typeof l.onConfigUpdate=="function")console.log("[BRIDGE] \u2705 Calling onConfigUpdate()"),l.onConfigUpdate();else{console.log("[BRIDGE] \u26A0\uFE0F Applying transform directly");let p=Cg(l);Tg(p,s)}let c=[a];n==null||n(a,s,c)},rebuildIndexes(){let a=t();typeof window!="undefined"&&(window.__editableConfig=a,kg(a))}};return r.rebuildIndexes(),r}Te();var Ig=li(require("lottie-web"),1);xs(ys);typeof window!="undefined"&&!window.lottie&&(window.lottie=Ig.default);var Gi=null,qw=async()=>{if(!Gi){let e=typeof window!="undefined"?window.INLINE_ASSETS:null,t=(e==null?void 0:e["handler.config"])||(e==null?void 0:e["handler.config.json"]);if(t)try{if(t.startsWith("data:")){let n=atob(t.split(",")[1]);Gi=JSON.parse(n)}else Gi=JSON.parse(t);return Gi}catch(n){console.warn("[CONFIG] Failed to parse inline handler.config.json:",n)}Gi=await(await fetch("./handler.config.json")).json()}return Gi},bc,nr,Mg,Wi,gc,mc;function Gw(e){bc=e.initGame,nr=e.CustomAssets,Mg=e.updateScreenState,Wi=e.globalResponsiveMultipliers,gc=e.layout,mc=e.clearResponsiveElements}var ns="web_embed",ir="https://example.com",Lg={profile_id:ns},Mt=null,Ge=null,hc={width:0,height:0},Ww=!0,Yw=async()=>{var c,d,u,p;document.title="Handler Pixi Game";let e=await qw();Lg={...e.ids||{},profile_id:ns},ir=e.destination_url||((d=(c=e.export_profiles)==null?void 0:c[ns])==null?void 0:d.destination_url)||ir,jt.init({ids:Lg,profile:ns,destinationUrl:ir});let t=jt.getRoot();if(typeof __PREVIEW_SHELL__!="undefined"&&__PREVIEW_SHELL__){console.log("[BOOTSTRAP] Initializing Preview Shell..."),Ge=pc({onDeviceChange:m=>{console.log(`[PREVIEW] Device switched to ${m.width}x${m.height}, restarting game...`),Og()},onRefresh:Og});let f=Ge.getGameContainer();f&&(t=f),window.addEventListener("handler-preview:screen",m=>{var v,x,w,S,A,_,T,R,E,L,z;let h=window.gameApp,g=window.gameObjectManager,{width:b,height:y}=m.detail;if(hc.width=b,hc.height=y,Mg(b,y),!(!h||!h.renderer)){g&&o(h,g);try{h.renderer.resize(b,y);let D=h.view;D&&(D.style.width="100%",D.style.height="100%",D.style.display="block")}catch(D){console.warn("[SCREEN] Error resizing renderer:",D);return}if(i&&g&&gc)try{let D=(v=window.__mainContainer)!=null?v:h.stage,B=(T=(_=(S=window.__tutorialLabel)!=null?S:(w=(x=g.get("label_1"))==null?void 0:x.getDisplayObject)==null?void 0:w.call(x))!=null?_:(A=g.get("label_1"))==null?void 0:A.pixiObject)!=null?T:g.get("label_1"),O=g.get("background_1"),P=(z=(L=(E=window.__background)!=null?E:(R=O==null?void 0:O.getDisplayObject)==null?void 0:R.call(O))!=null?L:O==null?void 0:O.pixiObject)!=null?z:O;if(D){let C=D===h.stage;gc({mainContainer:D,label:B,background:P,backgroundTexture:(P==null?void 0:P.texture)||null,app:h},i,0,hc,g,{skipMainContainerTransform:C})}}catch(D){console.warn("[SCREEN] Error in layout:",D)}}})}let i=await Qe("scene.main");window.__editableConfig=i,s(),window.__editableConfigBaseline||(window.__editableConfigBaseline=ne(i),console.log("[BOOTSTRAP] Frozen config baseline for persistence")),(p=(u=i.engine.runtime)==null?void 0:u.layout)!=null&&p.design_width_portrait||(console.warn("[BOOTSTRAP] Config layout missing, retrying..."),await new Promise(f=>setTimeout(f,100)),i=await Qe("scene.main"));let n=await bc(t,i,ir,Ge);Mt=n.app;let r=n.gameObjectManager;window.gameApp=Mt,window.gameObjectManager=r;try{window.__liveEditBridge=is({getConfig:()=>window.__editableConfig,gameObjectManager:r,assets:nr})}catch(f){console.warn("[BOOTSTRAP] Failed to initialize live-edit bridge",f)}Ge&&Ge.notifyGameLoaded();let a=window.__debugScale;a&&typeof a=="number"&&(Wi.scale=a,console.log(`[DEBUG] Applied persisted debug scale: ${a}`)),o(Mt,r);async function s(){try{let f=async y=>{let v=y.startsWith("/")?y:`/${y}`,x=await fetch(v,{cache:"no-cache"});if(!x.ok)return null;let w=await x.text();try{return JSON.parse(w)}catch{return null}},m=await f("configs/flow/app.flow.json");if(!m||typeof m!="object")return;let h=m.screens;if(!h||typeof h!="object")return;let g={},b={};for(let[y,v]of Object.entries(h)){let x=v==null?void 0:v.source;if(typeof x!="string")continue;let w=await f(x),S=w==null?void 0:w.elements;if(!Array.isArray(S))continue;let A=S.map(_=>_==null?void 0:_.instance_id).filter(_=>typeof _=="string");g[y]=A;for(let _ of A)b[_]||(b[_]=y)}window.__HANDLER_APP_FLOW=m,window.__HANDLER_SCREEN_INDEX={screenToInstances:g,instanceToScreen:b},window.dispatchEvent(new CustomEvent("handler:screen-index-loaded"))}catch{}}function o(f,m){if(Ww){console.log("[RESPONSIVE] Skipping global scaling; using config-driven layout");return}if(console.log("[RESPONSIVE] ===== APPLYING GLOBAL RESPONSIVE SCALING ====="),console.log(`[RESPONSIVE] Scale multiplier: ${Wi.scale.toFixed(3)}`),f.stage){let g=function(b,y=0){if(!b||!b.children)return;let v=" ".repeat(y);b.children.forEach((x,w)=>{if(x&&x.zIndex===9999){console.log(`${v}[RESPONSIVE] Skipping debug border (zIndex 9999)`);return}if(x&&x.scale){let S=x.scale.x||1,A=x.scale.y||1;x.__originalScale||(x.__originalScale={x:S,y:A},console.log(`${v}[RESPONSIVE] Stored original scale for child[${w}]: ${S.toFixed(3)}, ${A.toFixed(3)}`));let _=x.__originalScale.x*Wi.scale,T=x.__originalScale.y*Wi.scale;typeof x.scale.set=="function"?x.scale.set(_,T):(x.scale.x=_,x.scale.y=T),console.log(`${v}[RESPONSIVE] Child[${w}] scale: ${S.toFixed(3)}\u2192${x.scale.x.toFixed(3)} (type: ${x.constructor.name})`),g(x,y+1)}else x&&console.log(`${v}[RESPONSIVE] Child[${w}] has no scale (type: ${x.constructor.name})`)})};var h=g;console.log("[RESPONSIVE] Applying scale to PIXI stage children"),g(f.stage)}else console.warn("[RESPONSIVE] No app.stage found!");console.log("[REDDEBUG] Debug border left unscaled (fixed boundaries)"),console.log("[RESPONSIVE] ===== GLOBAL RESPONSIVE SCALING COMPLETE =====")}function l(f){if(f!==void 0){Wi.scale=f,console.log(`[RESPONSIVE] Updated global scale multiplier to: ${f.toFixed(3)}`);let m=window.gameApp,h=window.gameObjectManager;m&&h?(o(m,h),m.renderer&&(m.renderer.render(m.stage),console.log("[RESPONSIVE] Forced PIXI renderer update"))):console.warn(`[RESPONSIVE] No gameApp (${!!m}) or gameObjectManager (${!!h}) found in window for live update`)}}window.updateGlobalResponsiveMultipliers=l,jt.start()},Og=async()=>{var t,i,n,r;console.log("[PREVIEW] Restarting game in 1 seconds...");let e=(t=window.gameObjectManager)==null?void 0:t.get("character_1");if(e){let a=((i=e.getDisplayObject)==null?void 0:i.call(e))||e;a&&a.scale&&console.log(`[CHARACTER] Before restart - Current scale - x: ${((n=a.scale.x)!=null?n:1).toFixed(3)}, y: ${((r=a.scale.y)!=null?r:1).toFixed(3)}`)}if(Ge){Ge.notifyGameDestroyed();try{mc&&mc()}catch(a){console.warn("Failed to clear responsive elements",a)}setTimeout(()=>{console.log("[PREVIEW] Executing restart...");let a=Ge.getGameContainer(),s=window.gameObjectManager;if(s&&typeof s.clear=="function"&&(console.log("[PREVIEW] Clearing old GameObjectManager tickers..."),s.clear()),Mt){try{Mt.destroy(!0,{children:!0,texture:!1})}catch(o){console.warn("[PREVIEW] Destroy warning:",o)}Mt=null}window.gameApp=null,window.gameObjectManager=null,a&&(a.innerHTML="");try{typeof nr.resetScene=="function"&&nr.resetScene()}catch(o){console.warn("Asset reset failed",o)}setTimeout(()=>{Qe("scene.main").then(o=>{window.__editableConfig=o,window.__editableConfigBaseline||(window.__editableConfigBaseline=ne(o)),bc(a,o,ir).then(l=>{Mt=l.app,window.gameApp=Mt,window.gameObjectManager=l.gameObjectManager;try{window.__liveEditBridge=is({getConfig:()=>window.__editableConfig,gameObjectManager:window.gameObjectManager,assets:nr})}catch(c){console.warn("[BOOTSTRAP] Failed to re-initialize live-edit bridge",c)}Ge&&Ge.notifyGameLoaded(),console.log("[PREVIEW] Game restarted successfully");try{jt.start()}catch{}})})},100)},1e3)}};jr();Te();var yc=Bc.version,Vw=new Set(["init","boot","view","ready","start","pause","resume","complete","error","engagement","first_interaction","retry","cta_show","cta_click","cta_dismiss","clickout","conversion","session_time","level_time","load_time","level_start","level_complete","level_fail","checkpoint","reward","tutorial_start","tutorial_complete","tutorial_skip","ab_assign","fps","memory","asset_load_start","asset_load_complete"]);Nc();var Bg={mechanic_id:"TODO_mechanic_id",variant_id:"TODO_variant_id",deployment_id:"TODO_deployment_id",export_id:"TODO_export_id",profile_id:"TODO_profile_id",instance_id:"default"},Fg=Math.random().toString(36).slice(2),Ki=null,Yi={...Bg},Hg="web_embed",_c={},ar,vc=!1,rr=!1,or=!1,$g=!1,Cc=1,as=0,ls=!1,ut=!1,Vi="",Xi=Math.floor(window.innerWidth),Zi=Math.floor(window.innerHeight),Ec=Xi>Zi,pt=!1,sr=!1,Rg=!1,Pg=!1,xc=!1,ss=null,ri=null,Sc=!1,Ac=!1,rs=new Map;function Ug(){if(!ri)return null;let e=Date.now()-ri;return!Number.isFinite(e)||e<0?null:e}function wc(e){if(Sc)return;let t=Ug();t!==null&&(Sc=!0,M("session_time",{duration_ms:t,reason:e}))}function jg(){if(Ki)return Ki;let e=document.createElement("div");return e.id="handler-root",e.setAttribute("data-handler-root","true"),document.body.appendChild(e),Ki=e,e}function os(e){switch(e){case"interaction":return"engagement";case"finish":return"complete";case"install":return"cta_click";default:return e}}function qg(e,t){return{event_name:e,ts:Date.now(),session_id:Fg,deployment_id:Yi.deployment_id,variant_id:Yi.variant_id,export_profile_id:Yi.profile_id,instance_id:Yi.instance_id||"default",env:Hg==="mraid"?"mraid":"web",attribution:ar,payload:t}}function M(e,t){let i=os(e),n=qg(i,t);gs(n,!!_c.analytics),fr(i,n),i!==e&&fr(e,n)}function lr(){ss&&(ss(Xi,Zi),ss=null)}function Ji(e){Cc=e,M("volume",e)}function Qi(e){e&&($g=!0),!or&&(or=!0,M("pause"),Ji(0))}function cr(e){!e&&$g||or&&(or=!1,M("resume"),Ji(Cc))}function Rt(e,t){Xi=Math.floor(e||window.innerWidth),Zi=Math.floor(t||window.innerHeight),Ec=Xi>Zi,M("resize",{width:Xi,height:Zi})}function Kw(){if(Zc())try{let e=mraid.getMaxSize();Rt(e.width,e.height);let t=()=>{mraid.isViewable()&&mraid.getState()!=="hidden"?cr():Qi()};if(mraid.addEventListener("viewableChange",t),mraid.addEventListener("stateChange",t),mraid.addEventListener("sizeChange",()=>{let i=mraid.getMaxSize();Rt(i.width,i.height)}),mraid.getAudioVolume){let i=mraid.getAudioVolume();Ji(i?1:0)}if(mraid.addEventListener("audioVolumeChange",i=>{i!==null&&Ji(i>0?1:0)}),mraid.addEventListener("error",(i,n)=>{console.warn("mraid error:",i,"action:",n)}),ls=!0,mraid.isViewable()&&mraid.getState()!=="hidden")pt=!0,M("boot"),M("view"),M("ready"),ut=!0,lr();else{let i=()=>{pt=!0,M("boot"),M("view"),M("ready"),ut=!0,lr()};mraid.addEventListener("ready",i)}}catch(e){console.warn("MRAID hook skipped",e)}}function Xw(){if(Jc())try{let e=dapi.getScreenSize();Rt(e.width,e.height),dapi.addEventListener("viewableChange",i=>{i.isViewable?cr():Qi()}),dapi.addEventListener("adResized",i=>{let n=dapi.getScreenSize();Rt(i.width||n.width,i.height||n.height)});let t=dapi.getAudioVolume();if(Ji(t?1:0),dapi.addEventListener("audioVolumeChange",i=>Ji(i?1:0)),ls=!0,dapi.isViewable())pt=!0,M("boot"),M("view"),M("ready"),ut=!0,lr();else{let i=()=>{pt=!0,M("boot"),M("view"),M("ready"),ut=!0,lr()};dapi.addEventListener("ready",i)}}catch(e){console.warn("DAPI hook skipped",e)}}function Dg(){let e=()=>{pt||document.visibilityState==="visible"&&(document.readyState==="complete"||document.readyState==="interactive")&&(pt=!0,M("boot"),M("view"),M("ready"),ut=!0,lr(),sr&&(sr=!1,Re.start()))};window.addEventListener("resize",()=>Rt()),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"?(cr(),e()):Qi()}),document.readyState==="complete"||document.readyState==="interactive"?e():window.addEventListener("load",e),ls=!0}function Zw(){let e=t=>{typeof TouchEvent!="undefined"&&t instanceof TouchEvent&&(Rg=!0),!(Rg&&t instanceof MouseEvent)&&(as+=1,Ac||(Ac=!0,M("first_interaction",{count:as})),M("interaction",as))};document.addEventListener("mousedown",e),document.addEventListener("touchstart",e)}function zg(e){var n,r,a,s,o,l,c,d,u,p,f,m;let t=typeof AD_PROTOCOL!="undefined"?AD_PROTOCOL:"none";if((typeof AD_NETWORK!="undefined"?AD_NETWORK:"web_embed")==="google")try{(n=window.ExitApi)==null||n.exit();return}catch{}if(t==="mraid"&&typeof mraid!="undefined")mraid.open(e||"");else if(t==="dapi"&&typeof dapi!="undefined")dapi.openStoreUrl();else if(ui())(a=(r=window.TJ_API)==null?void 0:r.click)==null||a.call(r);else if(Qc())(o=(s=window.FbPlayableAd)==null?void 0:s.onCTAClick)==null||o.call(s);else if(nd())(c=(l=window.ScPlayableAd)==null?void 0:l.onCTAClick)==null||c.call(l);else if(id())try{(u=(d=window.smxTracking)==null?void 0:d.redirect)==null||u.call(d)}catch(h){console.warn("Smadex redirect failed",h)}else if(ed()){let h=window.ExitApi;h&&typeof h.exit=="function"?h.exit(e||Vi||""):e&&window.open(e)}else di()?(p=window.install)==null||p.call(window):td()?(f=window.openAppStore)==null||f.call(window):ms()?(m=parent==null?void 0:parent.postMessage)==null||m.call(parent,"download","*"):e&&window.open(e)}function Jw(){let e=typeof AD_NETWORK!="undefined"?AD_NETWORK:"web_embed",t=i=>{if(!i)return;let n=new Image;n.src=i};if(e==="bigabid"){let i=window.BIGABID_BIDTIMEMACROS;if(!i)return;be("view",()=>t(i.mraid_viewable)),be("start",()=>t(i.game_viewable)),be("engagement",()=>t(i.engagement));let n=()=>t(i.complete);be("complete",n),pr("engagement",r=>{var a;((a=r==null?void 0:r.payload)==null?void 0:a.count)>3&&n()}),be("cta_click",()=>t(i.click))}else if(e==="inmobi"){let i=window.INMOBI_DSPMACROS;if(!i)return;be("view",()=>t(i.Ad_Load_Start)),be("start",()=>t(i.Ad_Viewable)),be("engagement",()=>t(i.First_Engagement)),be("complete",()=>t(i.Gameplay_Complete)),be("cta_click",()=>t(i.DSP_Click)),be("start",()=>{[5,10,15,20,25,30].forEach(n=>setTimeout(()=>t(i[`Spent_${n}_Seconds`]),n*1e3))})}}function Qw(){if(!ui())return;let e=window.TJ_API;e&&e.setPlayableAPI&&e.setPlayableAPI({skipAd:()=>{try{Re.finish()}catch(t){console.warn("Tapjoy skip failed",t)}}})}function Ng(){var t,i,n;let e=window.TJ_API;(t=e==null?void 0:e.objectiveComplete)==null||t.call(e),(i=e==null?void 0:e.playableFinished)==null||i.call(e),(n=e==null?void 0:e.gameplayFinished)==null||n.call(e)}function e0(){di()&&(window.mintGameStart=()=>{cr(!0),Rt()},window.mintGameClose=()=>{Qi(!0)})}function t0(){if(!bs())return;let e=window.NUC;!e||!e.trigger||(Re.on("cta_click",()=>{var t,i;return(i=(t=e.trigger).convert)==null?void 0:i.call(t,Vi)}),Re.on("complete",()=>{var t,i;return(i=(t=e.trigger).tryAgain)==null?void 0:i.call(t)}))}var Re={init(e={},t){var i;if(Hg=e.profile||"web_embed",_c=e.consent||{},Yi={...Bg,...e.ids||{}},Ki=e.rootEl||Ki,ar=void 0,Ic((i=e.telemetry)!=null&&i.endpoint?e.telemetry:null),ri=null,Sc=!1,Ac=!1,rs.clear(),Vi=e.destinationUrl||(/android/i.test(navigator.userAgent)?"https://play.google.com/store":"https://www.apple.com/app-store/"),t&&(ss=t),M("init"),document.body.oncontextmenu=()=>!1,jg(),n0(Ki),rd(),Kw(),Xw(),!ls){if(document.readyState==="complete")Dg();else if(!Pg){Pg=!0;let n=()=>{Dg(),window.removeEventListener("load",n),document.removeEventListener("DOMContentLoaded",n)};window.addEventListener("load",n),document.addEventListener("DOMContentLoaded",n)}}Zw(),Jw(),Qw(),e0(),t0(),console.log(`%c @handler/playable-sdk %c v${yc} `,"background: #007acc; color: #fff; font-size: 14px; padding: 4px 8px; border-top-left-radius: 4px; border-bottom-left-radius: 4px;","background: #e1e4e8; color: #333; font-size: 14px; padding: 4px 8px; border-top-right-radius: 4px; border-bottom-right-radius: 4px;"),pt&&!ut&&(M("boot"),M("view"),M("ready"),sr&&(sr=!1,Re.start()),ut=!0),ut=pt},getRoot(){return jg()},get version(){return yc},get maxWidth(){return Xi},get maxHeight(){return Zi},get isLandscape(){return Ec},get isReady(){return ut},get isStarted(){return vc},get isPaused(){return or},get isFinished(){return rr},get volume(){return Cc},get interactions(){return as},on(e,t){pr(os(e),t)},off(e,t){hs(os(e),t)},start(){var e,t;if(!vc){if(!pt){sr=!0;return}if(vc=!0,ri||(ri=Date.now()),M("start"),Rt(),di())Qi(),(e=window.gameReady)==null||e.call(window);else if(ui()){let i=window.TJ_API;(t=i==null?void 0:i.setPlayableBuild)==null||t.call(i,{orientation:Ec?"landscape":"portrait",buildID:yc})}}},finish(){var e,t;rr||(rr=!0,M("complete"),wc("complete"),di()?(e=window.gameEnd)==null||e.call(window):ms()?(t=parent==null?void 0:parent.postMessage)==null||t.call(parent,"complete","*"):ui()&&Ng())},install(e){if(!rr){rr=!0,ui()?(Ng(),setTimeout(()=>Re.install(e),300)):(M("complete"),setTimeout(()=>Re.install(e),0));return}xc||(xc=!0,setTimeout(()=>xc=!1,500),M("cta_click"),M("conversion"),wc("cta"),zg(e||Vi))},emit(e,t){let i=os(e);if(!Vw.has(i)&&i!=="resize"&&i!=="volume"&&!i.startsWith("custom."))throw new Error(`Event ${e} must be canonical or namespaced as custom.<mechanic_id>.<event>`);let n=qg(i,t);gs(n,!!_c.analytics),fr(i,n)},gameStart(){Re.start()},gameEnd(){Re.finish()},ctaClick(e,t){M("cta_click",{url:e||Vi,manual:!0}),(t==null?void 0:t.open)!==!1&&zg(e||Vi)},ctaShow(e){M("cta_show",e)},ctaDismiss(e){M("cta_dismiss",e)},getGameTimeMs(){return Ug()},endSession(e="manual"){wc(e)},setAttribution(e){ar=e},abTest(e,t){if(!e)throw new Error("abTest requires experimentId");if(!Array.isArray(t)||t.length<2)throw new Error("abTest requires at least 2 variants");let i=Math.abs(i0(`${Fg}:${e}`))%t.length,n=t[i];return ar={...ar||{},experiment_id:e},Yi.variant_id=n,M("ab_assign",{experiment_id:e,variant_id:n}),n},levelStart(e,t){ri||(ri=Date.now()),M("level_start",{level_id:e,...t})},levelComplete(e,t){M("level_complete",{level_id:e,...t})},levelFail(e,t){M("level_fail",{level_id:e,...t})},checkpoint(e,t){M("checkpoint",{checkpoint_id:e,...t})},reward(e,t){M("reward",{reward_id:e,...t})},tutorialStart(e,t){M("tutorial_start",{step_id:e,...t})},tutorialComplete(e,t){M("tutorial_complete",{step_id:e,...t})},tutorialSkip(e,t){M("tutorial_skip",{step_id:e,...t})},timerStart(e){e&&rs.set(e,Date.now())},timerEnd(e,t="custom",i){if(!e)return;let n=rs.get(e);if(!n)return;rs.delete(e);let r=Date.now()-n;if(!(!Number.isFinite(r)||r<0)){if(t==="custom"){M("engagement",{action:"timer",key:e,duration_ms:r,...i});return}M(t,{key:e,duration_ms:r,...i})}},fps(e,t){M("fps",{value:e,...t})},memory(e,t){M("memory",{bytes:e,...t})},assetLoadStart(e,t){M("asset_load_start",{asset_id:e,...t})},assetLoadComplete(e,t){M("asset_load_complete",{asset_id:e,...t})},reportError(e,t,i){M("error",{code:e,message:t,...i})},retry(){var e,t,i;if(di())(e=window.gameRetry)==null||e.call(window);else if(bs()){let n=window.NUC;(i=(t=n==null?void 0:n.trigger)==null?void 0:t.tryAgain)==null||i.call(t)}M("engagement",{action:"retry"})},pause(){Qi(!0)},resume(){cr(!0)},resize(e,t){Rt(e,t)}},jt=Re;function i0(e){let t=2166136261;for(let i=0;i<e.length;i++)t^=e.charCodeAt(i),t=Math.imul(t,16777619);return t|0}function n0(e){let t=document.createElement("script");t.type="text/javascript",t.textContent=`
|
|
1437
1466
|
(function(){
|
|
1438
1467
|
var events = ['touchstart','touchend','mousedown','keydown'];
|
|
1439
1468
|
function unlock(){
|