handler-playable-sdk 0.3.7 → 0.3.9
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/README.md +19 -1
- package/dist/AssetTextures-TB4XIUX6.js +1 -0
- package/dist/{ConfigOverride-DFTDUTRQ.js → ConfigOverride-QGV5TX37.js} +1 -1
- package/dist/chunk-ES3S33UP.js +1 -0
- package/dist/chunk-OPT6F3HO.js +1398 -0
- package/dist/chunk-RXI7YH7M.js +1 -0
- package/dist/{chunk-J2CL6VOZ.js → chunk-V636YM4S.js} +1 -1
- package/dist/{config-7DI6U2YD.js → config-3INFO7FK.js} +1 -1
- package/dist/index.cjs +125 -52
- package/dist/index.d.cts +28 -5
- package/dist/index.d.ts +28 -5
- package/dist/index.js +1 -1
- package/dist/{loader-object-centric-Ce6MVkQw.d.cts → loader-object-centric-BeVsUAXI.d.cts} +4 -0
- package/dist/{loader-object-centric-Ce6MVkQw.d.ts → loader-object-centric-BeVsUAXI.d.ts} +4 -0
- package/dist/pixi/index.cjs +17 -17
- package/dist/pixi/index.d.cts +30 -2
- package/dist/pixi/index.d.ts +30 -2
- package/dist/pixi/index.js +1 -1
- package/dist/three/index.cjs +17 -17
- package/dist/three/index.js +1 -1
- package/package.json +1 -1
- package/dist/AssetTextures-NWHSMZNV.js +0 -1
- package/dist/chunk-BC5GBAMY.js +0 -1325
- package/dist/chunk-DHSGG7NF.js +0 -1
- package/dist/chunk-PWGHKK3J.js +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"use strict";var Rg=Object.create;var lr=Object.defineProperty;var Mg=Object.getOwnPropertyDescriptor;var jg=Object.getOwnPropertyNames;var Dg=Object.getPrototypeOf,zg=Object.prototype.hasOwnProperty;var Ye=(e,t)=>()=>(e&&(t=e(e=0)),t);var C=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),rn=(e,t)=>{for(var i in t)lr(e,i,{get:t[i],enumerable:!0})},Ec=(e,t,i,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of jg(t))!zg.call(e,r)&&r!==i&&lr(e,r,{get:()=>t[r],enumerable:!(n=Mg(t,r))||n.enumerable});return e};var ci=(e,t,i)=>(i=e!=null?Rg(Dg(e)):{},Ec(t||!e||!e.__esModule?lr(i,"default",{value:e,enumerable:!0}):i,e)),Bg=e=>Ec(lr({},"__esModule",{value:!0}),e);var Ve,vs=Ye(()=>{"use strict";Ve=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()}};Ve.store=new Map});function Hg(){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 Ug(){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 qg(){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 Gg(){if(console.log(`[AssetLoader] getInlineAssets() called - Effective mode: ${W}`),Object.keys(Ke).length>0)return console.log("[AssetLoader] Returning cached inline assets:",Object.keys(Ke)),Ke;if(typeof window!="undefined"&&window.INLINE_ASSETS)return console.log("[AssetLoader] Using pre-loaded INLINE_ASSETS from window:",Object.keys(window.INLINE_ASSETS)),Ke={...window.INLINE_ASSETS},Ke;if(!(W==="publish"&&ze!==!1))return console.log("[AssetLoader] Inline assets disabled for this build mode."),Ke;if(!ys){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),ys=(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 Ke=await ys,console.log("[AssetLoader] Final inline assets cache:",Object.keys(Ke)),Ke}function xs(e){return e===null||typeof e!="object"||(Object.freeze(e),Object.values(e).forEach(t=>xs(t))),e}function Wg(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),Xe.Texture.from(n)}function ws(e,t){Kc.set(e,t)}var Xe,Yc,Vc,jt,W,ze,gt,Ke,ys,Kc,Dt,pr=Ye(()=>{"use strict";Xe=require("pixi.js");vs();Yc=typeof __BUILD_MODE__!="undefined"?__BUILD_MODE__:"undefined",Vc=Hg(),jt=typeof window!="undefined"?window.__BUILD_SETTINGS__:null,W=Vc?"publish":Yc,ze=jt==null?void 0:jt.assetsInlined;jt!=null&&jt.buildMode&&(W=jt.buildMode,console.log(`[AssetLoader] Build mode overridden by inline settings: ${W}`));gt=qg();gt!=null&>.buildMode&&(W=gt.buildMode,console.log(`[AssetLoader] Build mode overridden by sync settings: ${W}`));(gt==null?void 0:gt.assetsInlined)!==void 0&&(ze=gt.assetsInlined);Ug().then(e=>{e!=null&&e.buildMode&&e.buildMode!==W&&(W=e.buildMode,console.log(`[AssetLoader] Build mode overridden by settings: ${W}`)),(e==null?void 0:e.assetsInlined)!==void 0&&(ze=e.assetsInlined)}).catch(()=>{});console.log(`[AssetLoader] MODULE LOADED - Compile: ${Yc}, Runtime: ${Vc?"publish":"dev"}, Effective: ${W}`);Ke={},ys=null;Kc=new Map;Dt=class{static async load(t,i,n,r){let a=`${t}:${i.path}`,s=Ve.get(a);if(s!==void 0)return s;console.log(`[AssetLoader] Loading asset: ${t}, type: ${i.type}, Effective mode: ${W}`),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 Gg(),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"),W==="publish"&&ze!==!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=Kc.get(i.type);if(d)try{let u=await d(i.path,l,t,n);return Ve.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=xs(u);break;default:throw new Error(`Unknown asset type: ${i.type}`)}return Ve.set(a,u),u}catch(u){return this.handleFailure(t,i.type,u)}}static async loadImage(t,i){let n=W==="publish",r=n&&ze!==!1;if(console.log(`[AssetLoader] loadImage - Effective mode: ${W}, 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 Xe.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 Xe.Assets.load(i)}catch(a){return console.error("[AssetLoader] Failed to load texture from data URI, falling back to path:",a),await Xe.Assets.load(t)}return await Xe.Assets.load(t)}static async loadJSON(t,i){let n=W==="publish",r=n&&ze!==!1;if(console.log(`[AssetLoader] loadJSON - Effective mode: ${W}, 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(W==="dev"){let a=i==="image"?Wg():xs({__placeholder:!0,type:i});return Ve.set(t+":"+((n==null?void 0:n.path)||"missing"),a),a}throw n}};ws("image",async(e,t)=>{let i=W==="publish",n=i&&ze!==!1,r=W==="brand",a=i&&ze===!1;if(console.log(`[AssetLoader] registerType('image') - Effective mode: ${W}, 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 Xe.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}"`))),Xe.Assets.load(t||s)});ws("json",async(e,t)=>{let i=W==="publish",n=i&&ze!==!1,r=W==="brand",a=i&&ze===!1;if(console.log(`[AssetLoader] registerType('json') - Effective mode: ${W}, 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 Zc={};rn(Zc,{AssetTextures:()=>Be,initAssetTextures:()=>Ss});function Ss(e,t){Xc.init(e,t),typeof window!="undefined"&&(window.__AssetTextures=Be)}var Es,Xc,Be,fi=Ye(()=>{"use strict";pr();Es=class{constructor(){this.textures=new Map;this.readyPromise=null;this.config=null;this.app=null}init(t,i){this.textures.clear(),this.readyPromise=null,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 r;console.log("[AssetTextures] Loading all assets...");let n=[];for(let[a,s]of t.objects.entries()){let o=(r=s.render)==null?void 0:r.asset;if(!o)continue;let l=(async()=>{var c;try{let d=(c=s.identity)==null?void 0:c.id;console.log(`[AssetTextures] Loading ${o.type}: ${a} (${d})`);let u=await Dt.load(a,o,i,d);this.textures.set(a,u),console.log(`[AssetTextures] \u2713 Loaded: ${a}`)}catch(d){console.error(`[AssetTextures] \u2717 Failed to load: ${a}`,d)}})();n.push(l)}await Promise.all(n),console.log("[AssetTextures] All textures loaded:",Array.from(this.textures.keys()))})(),this.readyPromise}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())}},Xc=new Es,Be=new Proxy(Xc,{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 Lr={};rn(Lr,{applyConfigOverride:()=>xe,applyConfigOverrides:()=>Bt,applyConfigsToDisk:()=>Tr,clearConfigOverrides:()=>cn,clearConfigOverridesForObject:()=>ad,configOverrideManager:()=>sd,deepClone:()=>ue,exportConfigsAsJSON:()=>ks,getConfigOverrides:()=>fe,getConfigStateSummary:()=>Cr,getOverrideMode:()=>Er,removeConfigOverride:()=>Ar,resetToApplied:()=>dn,resetToOriginal:()=>kr,setOverrideMode:()=>Sr});function bm(){if(typeof window=="undefined")return"unknown";let e=window;return typeof e.__HANDLER_PROJECT_ID=="string"?e.__HANDLER_PROJECT_ID:"handler-default"}function nd(){return`handler_preview_config_overrides::${bm()}`}function vm(){if(typeof window=="undefined")return[];try{let e=window.localStorage.getItem(nd());if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}function _r(e){if(typeof window!="undefined")try{window.localStorage.setItem(nd(),JSON.stringify(e))}catch{}}function Er(){return typeof window=="undefined"?!1:window.__enableConfigOverrides===!0}function Sr(e){if(typeof window!="undefined"){window.__enableConfigOverrides=e;try{window.localStorage.setItem(rd,e?"true":"false")}catch{}}}function xe(e,t={}){var u,p;let{objectId:i,path:n,value:r}=e,{silent:a=!1,persist:s=!0}=t,o=window.__editableConfig;if(!o){console.warn("[CONFIG] applyConfigOverride: No editable config found in window.__editableConfig");return}let l=i?(p=(u=o.objects)==null?void 0:u.get)==null?void 0:p.call(u,i):o.engine;if(!l){console.warn("[CONFIG] applyConfigOverride: Override target not found:",{objectId:i,path:n,hasObjects:!!o.objects});return}console.log("[CONFIG] applyConfigOverride: Target found, applying...",{objectId:i,path:n,value:r});let c=xm(l,n);wr(l,n,r),window.__configChanges=window.__configChanges||[];let d=window.__configChanges;if(d.push({objectId:i,path:n,oldValue:c,newValue:r,ts:Date.now()}),d.length>ym&&d.shift(),s){let f=fe(),m=f.findIndex(h=>h.objectId===i&&h.sceneId===e.sceneId&&h.path===n);m>=0?f[m].value=r:f.push(e),window.__configOverrides=f,_r(f)}a||console.log("[CONFIG] Applied override:",e),typeof window!="undefined"&&window.dispatchEvent(new CustomEvent("config:changed",{detail:e}))}function Bt(e,t={}){e.forEach(i=>xe(i,t))}function cn(){window.__configOverrides=[],window.__configChanges=[],_r([]),console.log("[CONFIG] Cleared all overrides")}function ad(e){let t=fe().filter(n=>n.objectId!==e);window.__configOverrides=t,_r(t);let i=window.__configChanges||[];window.__configChanges=i.filter(n=>n.objectId!==e),window.dispatchEvent(new CustomEvent("config:changed",{detail:{action:"clear_object",objectId:e}}))}function Ar(e,t){let i=fe().filter(n=>n.objectId!==e||n.path!==t);window.__configOverrides=i,_r(i),window.dispatchEvent(new CustomEvent("config:changed",{detail:{action:"remove",objectId:e,path:t}}))}function fe(){return typeof window=="undefined"?[]:(window.__configOverrides||(window.__configOverrides=vm()),window.__configOverrides||[])}function wr(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 xm(e,t){return t.split(".").reduce((i,n)=>i?i[n]:void 0,e)}function ue(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=>ue(i)));if(ArrayBuffer.isView(e))return e.slice();if(e instanceof Array)return e.map(i=>ue(i));if(e instanceof Map){let i=new Map;return e.forEach((n,r)=>i.set(r,ue(n))),i}let t={};for(let i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=ue(e[i]));return t}function ks(){let e=window.__editableConfigBaseline;if(!e){let t=window.__editableConfig;if(!t)throw new Error("Cannot export: no config loaded");return id(t)}return id(e)}function id(e){let t={objects:{},scenes:{},engine:ue(e.engine||{})},i=e.objects;if(i instanceof Map)i.forEach((a,s)=>{t.objects[s]=ue(a)});else if(i&&typeof i=="object")for(let a in i)t.objects[a]=ue(i[a]);let n=e.scenes;if(n instanceof Map)n.forEach((a,s)=>{t.scenes[s]=ue(a)});else if(n&&typeof n=="object")for(let a in n)t.scenes[a]=ue(n[a]);let r=fe();for(let a of r)a.objectId?(t.objects[a.objectId]||(t.objects[a.objectId]={}),wr(t.objects[a.objectId],a.path,a.value)):a.sceneId?(t.scenes[a.sceneId]||(t.scenes[a.sceneId]={}),wr(t.scenes[a.sceneId],a.path,a.value)):wr(t.engine,a.path,a.value);return t}function Cr(){let e=fe(),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 Tr(){let e=ks(),t={};for(let[n,r]of Object.entries(e.objects)){let a=r,s=n;/^(json\.|ui\.|effects\.|engine\.)/.test(s)||(s=`json.${n}`),a&&typeof a=="object"&&(a.identity||(a.identity={}),a.identity.id=s),t[`objects/${s}.json`]=a}e.engine&&(e.engine.runtime&&(t["engine/engine.runtime.json"]=e.engine.runtime),e.engine.assets&&(t["engine/engine.assets.json"]=e.engine.assets),e.engine.splash&&(t["engine/engine.splash.json"]=e.engine.splash),!e.engine.runtime&&!e.engine.assets&&(t["engine/engine.json"]=e.engine));for(let[n,r]of Object.entries(e.scenes)){let a=n.startsWith("scene.")?n:`scene.${n}`;t[`scenes/${a}.json`]=r}let i=await fetch("/api/apply",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({configs:t,assets:{},hadCacheAtApply:fe().length>0})});if(!i.ok){let n=await i.json();throw new Error(`Apply failed: ${n.error||"Unknown error"}`)}cn(),localStorage.setItem("handler_last_applied",Date.now().toString()),console.log("[Config Persistence] \u2705 Applied to disk successfully")}function dn(){cn(),Sr(!1),window.location.reload()}async function kr(){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"}`)}cn(),Sr(!1),window.location.reload()}var rd,ym,sd,ke=Ye(()=>{"use strict";rd="handler_preview_override_mode";if(typeof window!="undefined"){let e=window.localStorage.getItem(rd);window.__enableConfigOverrides=e===null?!0:e==="true"}ym=500;sd={getCurrentConfig(){return window.__editableConfig||null},getChanges(){return window.__configChanges||[]},clearChanges(){window.__configChanges=[]}}});function wm(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 _m(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=wm(s,a);if(o!==null)return o}}return null}async function Nt(e){if(Ls.has(e)&&!Is)return console.log(`[CONFIG] Using cached config for: "${e}"`),Ls.get(e);if(console.log(`[CONFIG] loadConfigFile called with: "${e}", MODE: ${H.toUpperCase()}, CACHE: ${Is?"DISABLED":"ENABLED"}`),H==="publish"){let n=_m(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`),{})}H==="brand"||console.log(`[CONFIG] DEV MODE: Trying nested paths first, then flattened for "${e}"`);let t;H==="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=Is?"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: ${H}):`,a)}return console.warn(`[CONFIG] \u2717 All attempts failed for ${e}; using defaults`),{}})();return Ls.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=H==="publish"||H==="brand"?i.split("/").pop()||i:`configs/${i}`,r=await Nt(n);r.component&&(t.set(r.component,r),console.log(`[CONFIG] \u2713 Schema loaded: ${r.component} ${H==="publish"||H==="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 bt(e){console.log(`[CONFIG] Loading object config: ${e}`);let t=H==="publish"||H==="brand"?`${e}.json`:`configs/objects/${e}.json`;return await Nt(t)}async function Or(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 bt(n);(!r||Object.keys(r).length===0)&&n!==i.instance_id&&(r=await bt(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 bt(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 Pr(){console.log("[CONFIG] Loading engine configs...");let[e,t,i]=await Promise.all([Nt(H==="publish"||H==="brand"?"engine.runtime.json":"configs/engine/engine.runtime.json"),Nt(H==="publish"||H==="brand"?"engine.assets.json":"configs/engine/engine.assets.json"),Nt(H==="publish"||H==="brand"?"engine.splash.json":"configs/engine/engine.splash.json")]);return console.log("[CONFIG] Engine configs loaded:",{runtime:Object.keys(e).length>0?Object.keys(e):"empty",assets:Object.keys(t).length>0?Object.keys(t):"empty",splash:Object.keys(i).length>0?Object.keys(i):"empty"}),{runtime:e,assets:t,splash:i}}async function Os(){return await Nt(H==="publish"||H==="brand"?"game.prompt.json":"configs/engine/game.prompt.json")}async function Rr(e="scene.main"){console.log(`[CONFIG] Loading scene config: ${e}`);let t=H==="publish"||H==="brand"?`${e}.json`:`configs/scenes/${e}.json`;return await Nt(t)}function hi(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 Ft(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 we(e,t,i,n){return typeof e!="number"||!Number.isFinite(e)?t:Math.min(Math.max(e,i),n)}function ld(e,t){if(Array.isArray(e))return{x:we(e[0],t.x,-2e3,2e3),y:we(e[1],t.y,-2e3,2e3)};if(!e||typeof e!="object")return t;let{x:i,y:n}=e;return{x:we(i,t.x,-2e3,2e3),y:we(n,t.y,-2e3,2e3)}}function Em(e,t){if(Array.isArray(e))return{x:we(e[0],t.x,0,1),y:we(e[1],t.y,0,1)};if(!e||typeof e!="object")return t;let{x:i,y:n}=e;return{x:we(i,t.x,0,1),y:we(n,t.y,0,1)}}function Sm(e){if(Array.isArray(e))return{x:we(e[0],.5,-10,10),y:we(e[1],.5,-10,10)};if(e&&typeof e=="object"){let{x:t,y:i}=e;return{x:we(t,.5,-10,10),y:we(i,.5,-10,10)}}return typeof e=="string"?e:null}async function et(e="scene.main",t){var l,c,d,u,p,f,m,h;console.log("[CONFIG] ===== Starting Object-Centric Config Load =====");let i=await Ir(),n=fe();n.length>0&&console.log(`[CONFIG] Applying ${n.length} active overrides`);let r=await Rr(e);console.log(`[CONFIG] Scene config loaded: ${((l=r.objects)==null?void 0:l.length)||0} objects`);let a=await Pr();console.log("[CONFIG] Loading object configs...");let s=await Or(r);console.log(`[CONFIG] Loaded ${s.size} object configs:`,Array.from(s.keys()));for(let[g,b]of s.entries()){let v=Ft(b,i),y=hi(v,i);y.valid||console.warn(`Object ${g} validation errors:`,y.errors),(c=v.transform)!=null&&c.position&&(v.transform.position=ld(v.transform.position,{x:0,y:0})),(d=v.transform)!=null&&d.offset&&(v.transform.offset=ld(v.transform.offset,{x:0,y:0})),((u=v.transform)==null?void 0:u.anchor)!==void 0&&(v.transform.anchor=Sm(v.transform.anchor)),((p=v.transform)==null?void 0:p.position_ratio)!==void 0&&v.transform.position_ratio!==null&&(v.transform.position_ratio=Em(v.transform.position_ratio,{x:.5,y:.5})),s.set(g,v)}if(t){if(t.objects)for(let[g,b]of t.objects.entries())s.set(g,b);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=Ft(o,i))),n.length>0&&Er()&&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(a.runtime),assets:Object.keys(a.assets),splash:Object.keys((h=a.splash)!=null?h:{})},scene:r.scene_id||"unknown"}),o}function Ps(e){var i,n,r,a,s,o,l,c,d,u,p,f,m,h,g,b,v,y,x,w,S,A,E,k,O,_,T,R,B,M,L,P,F;let t={gameplay:{},ui:{},theme:{},assets:{}};for(let[re,j]of e.objects.entries()){let J=((i=j.identity)==null?void 0:i.id)||re;J.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),(J.includes("gun")||J.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)||{}),J.includes("diamond")&&(t.gameplay.diamond=j),J.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=((v=j.effects)==null?void 0:v.melting_particles)||{},t.gameplay.hard_ice=j.hard_ice||{}),J.includes("water")&&(t.gameplay.water_drops=j),J.includes("crack")&&(t.gameplay.crack=j),J.includes("hand")&&(t.gameplay.hand=((y=j.gameplay)==null?void 0:y.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),J.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=((k=(E=j.gameplay)==null?void 0:E.tuning)==null?void 0:k.danger_pulse)||{},t.gameplay.hazard_height=((_=(O=j.gameplay)==null?void 0:O.tuning)==null?void 0:_.hazard_height)||140)}return t.gameplay.timeline=((T=e.engine.runtime)==null?void 0:T.timeline)||{},t.gameplay.drag_surface=((R=e.engine.runtime)==null?void 0:R.drag_surface)||{},t.gameplay.background=((B=e.engine.runtime)==null?void 0:B.background)||{},t.gameplay.ui_styles=((M=e.engine.runtime)==null?void 0:M.ui_styles)||{},t.gameplay.label_pulse=((L=e.engine.runtime)==null?void 0:L.label_pulse)||{},t.ui=((P=e.engine.runtime)==null?void 0:P.ui)||{},t.theme=((F=e.engine.runtime)==null?void 0:F.theme)||{},t.assets=e.engine.assets||{},t}var od,H,Ls,Is,Rs=Ye(()=>{"use strict";ke();od=null,H="dev";if(typeof window!="undefined"){let e=window.__BUILD_SETTINGS__;if(e!=null&&e.buildMode)od=e,H=e.buildMode,console.log("[CONFIG] Loaded inline build settings:",e,"buildMode:",H);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);od=i,H=i.buildMode||"dev",console.log("[CONFIG] Loaded build settings:",i,"buildMode:",H)}else console.log("[CONFIG] No build-settings.json found, using default buildMode:",H)}catch(t){console.log("[CONFIG] Failed to load build-settings.json:",t instanceof Error?t.message:String(t))}}console.log("[CONFIG] Final buildMode:",H);Ls=new Map,Is=H==="dev"||typeof window!="undefined"&&window.location.search.includes("hot-reload")});function Ms(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 js(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 un,$t,Ds=Ye(()=>{"use strict";un=class{shouldFullReload(t){return t.type==="component"||t.type==="scene"}getAffectedObjects(t){return t.type==="object"&&t.objectId?[t.objectId]:[]}},$t=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 Bs(e){if(typeof window=="undefined")return;let t=typeof zs!="undefined"&&!!zs.hot,i=window.location.search.includes("hot-reload");if(!(t||i))return;let r=null,a=!1,s=null;if(i){s=new $t;let m=window.__configWatcher;m!=null&&m.stop&&m.stop(),window.__configWatcher=s}let o=new Set,l=m=>{var b,v;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=(v=(b=m.scene)==null?void 0:b.objects)!=null?v:[];for(let y of g)y!=null&&y.object_config&&h.add(`configs/objects/${y.object_config}.json`);for(let y of o)h.has(y)||s.unwatch(y);for(let y of h)o.has(y)||s.watch(y,x=>f(x));o=h},c=new Set,d=!1,u=async m=>{let h=await bt(m),g=Ft(h,e.activeConfig.schemas),b=hi(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 et("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&&zs.hot.on("config-change",()=>{f({type:"hmr"})}),i&&(l(e.activeConfig),console.log(`[GAME] Hot-reload watcher enabled (${o.size} files)`))}var zs,cd=Ye(()=>{"use strict";Ds();Rs();zs={}});var dd={};rn(dd,{ConfigWatcher:()=>$t,DefaultReloadStrategy:()=>un,applyDefaults:()=>Ft,diffConfigs:()=>Ms,loadAllObjectConfigs:()=>Or,loadComponentSchemas:()=>Ir,loadEngineConfig:()=>Pr,loadGamePromptConfig:()=>Os,loadObjectCentricConfig:()=>et,loadObjectConfig:()=>bt,loadSceneConfig:()=>Rr,rehydrateObject:()=>js,setupHotReload:()=>Bs,toLegacyFormat:()=>Ps,validateObjectConfig:()=>hi});var Mr=Ye(()=>{"use strict";Rs();Ds();cd()});var pn=C(($_,Hs)=>{"use strict";typeof process=="undefined"||!process.version||process.version.indexOf("v0.")===0||process.version.indexOf("v1.")===0&&process.version.indexOf("v1.8.")!==0?Hs.exports={nextTick:Tm}:Hs.exports=process;function Tm(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 pd=C((H_,ud)=>{"use strict";var km={}.toString;ud.exports=Array.isArray||function(e){return km.call(e)=="[object Array]"}});var Us=C((U_,fd)=>{"use strict";fd.exports=require("stream")});var fn=C((qs,gd)=>{"use strict";var Xr=require("buffer"),tt=Xr.Buffer;function hd(e,t){for(var i in e)t[i]=e[i]}tt.from&&tt.alloc&&tt.allocUnsafe&&tt.allocUnsafeSlow?gd.exports=Xr:(hd(Xr,qs),qs.Buffer=mi);function mi(e,t,i){return tt(e,t,i)}hd(tt,mi);mi.from=function(e,t,i){if(typeof e=="number")throw new TypeError("Argument must not be a number");return tt(e,t,i)};mi.alloc=function(e,t,i){if(typeof e!="number")throw new TypeError("Argument must be a number");var n=tt(e);return t!==void 0?typeof i=="string"?n.fill(t,i):n.fill(t):n.fill(0),n};mi.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return tt(e)};mi.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return Xr.SlowBuffer(e)}});var bi=C(se=>{"use strict";function Lm(e){return Array.isArray?Array.isArray(e):Zr(e)==="[object Array]"}se.isArray=Lm;function Im(e){return typeof e=="boolean"}se.isBoolean=Im;function Om(e){return e===null}se.isNull=Om;function Pm(e){return e==null}se.isNullOrUndefined=Pm;function Rm(e){return typeof e=="number"}se.isNumber=Rm;function Mm(e){return typeof e=="string"}se.isString=Mm;function jm(e){return typeof e=="symbol"}se.isSymbol=jm;function Dm(e){return e===void 0}se.isUndefined=Dm;function zm(e){return Zr(e)==="[object RegExp]"}se.isRegExp=zm;function Bm(e){return typeof e=="object"&&e!==null}se.isObject=Bm;function Nm(e){return Zr(e)==="[object Date]"}se.isDate=Nm;function Fm(e){return Zr(e)==="[object Error]"||e instanceof Error}se.isError=Fm;function $m(e){return typeof e=="function"}se.isFunction=$m;function Hm(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"||typeof e=="symbol"||typeof e=="undefined"}se.isPrimitive=Hm;se.isBuffer=require("buffer").Buffer.isBuffer;function Zr(e){return Object.prototype.toString.call(e)}});var md=C((G_,Gs)=>{"use strict";typeof Object.create=="function"?Gs.exports=function(t,i){i&&(t.super_=i,t.prototype=Object.create(i.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:Gs.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 vi=C((W_,Ys)=>{"use strict";try{if(Ws=require("util"),typeof Ws.inherits!="function")throw"";Ys.exports=Ws.inherits}catch{Ys.exports=md()}var Ws});var vd=C((Y_,Vs)=>{"use strict";function Um(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var bd=fn().Buffer,hn=require("util");function qm(e,t,i){e.copy(t,i)}Vs.exports=(function(){function e(){Um(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 bd.alloc(0);for(var n=bd.allocUnsafe(i>>>0),r=this.head,a=0;r;)qm(r.data,n,a),a+=r.data.length,r=r.next;return n},e})();hn&&hn.inspect&&hn.inspect.custom&&(Vs.exports.prototype[hn.inspect.custom]=function(){var e=hn.inspect({length:this.length});return this.constructor.name+" "+e})});var Ks=C((V_,yd)=>{"use strict";var Jr=pn();function Gm(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,Jr.nextTick(Qr,this,e)):Jr.nextTick(Qr,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,Jr.nextTick(Qr,i,a)):Jr.nextTick(Qr,i,a):t&&t(a)}),this)}function Wm(){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 Qr(e,t){e.emit("error",t)}yd.exports={destroy:Gm,undestroy:Wm}});var wd=C((K_,xd)=>{"use strict";xd.exports=require("util").deprecate});var Zs=C((X_,Ld)=>{"use strict";var Ut=pn();Ld.exports=X;function Ed(e){var t=this;this.next=null,this.entry=null,this.finish=function(){db(t,e)}}var Ym=!process.browser&&["v0.10","v0.9."].indexOf(process.version.slice(0,5))>-1?setImmediate:Ut.nextTick,yi;X.WritableState=mn;var Sd=Object.create(bi());Sd.inherits=vi();var Vm={deprecate:wd()},Ad=Us(),ta=fn().Buffer,Km=(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:{}).Uint8Array||function(){};function Xm(e){return ta.from(e)}function Zm(e){return ta.isBuffer(e)||e instanceof Km}var Cd=Ks();Sd.inherits(X,Ad);function Jm(){}function mn(e,t){yi=yi||qt(),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){ab(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 Ed(this)}mn.prototype.getBuffer=function(){for(var t=this.bufferedRequest,i=[];t;)i.push(t),t=t.next;return i};(function(){try{Object.defineProperty(mn.prototype,"buffer",{get:Vm.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var ea;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(ea=Function.prototype[Symbol.hasInstance],Object.defineProperty(X,Symbol.hasInstance,{value:function(e){return ea.call(this,e)?!0:this!==X?!1:e&&e._writableState instanceof mn}})):ea=function(e){return e instanceof this};function X(e){if(yi=yi||qt(),!ea.call(X,this)&&!(this instanceof yi))return new X(e);this._writableState=new mn(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)),Ad.call(this)}X.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))};function Qm(e,t){var i=new Error("write after end");e.emit("error",i),Ut.nextTick(t,i)}function eb(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),Ut.nextTick(n,a),r=!1),r}X.prototype.write=function(e,t,i){var n=this._writableState,r=!1,a=!n.objectMode&&Zm(e);return a&&!ta.isBuffer(e)&&(e=Xm(e)),typeof t=="function"&&(i=t,t=null),a?t="buffer":t||(t=n.defaultEncoding),typeof i!="function"&&(i=Jm),n.ended?Qm(this,i):(a||eb(this,n,e,i))&&(n.pendingcb++,r=ib(this,n,a,e,t,i)),r};X.prototype.cork=function(){var e=this._writableState;e.corked++};X.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,!e.writing&&!e.corked&&!e.bufferProcessing&&e.bufferedRequest&&Td(this,e))};X.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 tb(e,t,i){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=ta.from(t,i)),t}Object.defineProperty(X.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function ib(e,t,i,n,r,a){if(!i){var s=tb(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 Xs(e,t,!1,o,n,r,a);return l}function Xs(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 nb(e,t,i,n,r){--t.pendingcb,i?(Ut.nextTick(r,n),Ut.nextTick(gn,e,t),e._writableState.errorEmitted=!0,e.emit("error",n)):(r(n),e._writableState.errorEmitted=!0,e.emit("error",n),gn(e,t))}function rb(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}function ab(e,t){var i=e._writableState,n=i.sync,r=i.writecb;if(rb(i),t)nb(e,i,n,t,r);else{var a=kd(i);!a&&!i.corked&&!i.bufferProcessing&&i.bufferedRequest&&Td(e,i),n?Ym(_d,e,i,a,r):_d(e,i,a,r)}}function _d(e,t,i,n){i||sb(e,t),t.pendingcb--,n(),gn(e,t)}function sb(e,t){t.length===0&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}function Td(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,Xs(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 Ed(t),t.bufferedRequestCount=0}else{for(;i;){var l=i.chunk,c=i.encoding,d=i.callback,u=t.objectMode?1:l.length;if(Xs(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}X.prototype._write=function(e,t,i){i(new Error("_write() is not implemented"))};X.prototype._writev=null;X.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||cb(this,n,i)};function kd(e){return e.ending&&e.length===0&&e.bufferedRequest===null&&!e.finished&&!e.writing}function ob(e,t){e._final(function(i){t.pendingcb--,i&&e.emit("error",i),t.prefinished=!0,e.emit("prefinish"),gn(e,t)})}function lb(e,t){!t.prefinished&&!t.finalCalled&&(typeof e._final=="function"?(t.pendingcb++,t.finalCalled=!0,Ut.nextTick(ob,e,t)):(t.prefinished=!0,e.emit("prefinish")))}function gn(e,t){var i=kd(t);return i&&(lb(e,t),t.pendingcb===0&&(t.finished=!0,e.emit("finish"))),i}function cb(e,t,i){t.ending=!0,gn(e,t),i&&(t.finished?Ut.nextTick(i):e.once("finish",i)),t.ended=!0,e.writable=!1}function db(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(X.prototype,"destroyed",{get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}});X.prototype.destroy=Cd.destroy;X.prototype._undestroy=Cd.undestroy;X.prototype._destroy=function(e,t){this.end(),t(e)}});var qt=C((Z_,Rd)=>{"use strict";var Id=pn(),ub=Object.keys||function(e){var t=[];for(var i in e)t.push(i);return t};Rd.exports=it;var Od=Object.create(bi());Od.inherits=vi();var Pd=eo(),Qs=Zs();Od.inherits(it,Pd);for(Js=ub(Qs.prototype),ia=0;ia<Js.length;ia++)na=Js[ia],it.prototype[na]||(it.prototype[na]=Qs.prototype[na]);var Js,na,ia;function it(e){if(!(this instanceof it))return new it(e);Pd.call(this,e),Qs.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",pb)}Object.defineProperty(it.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function pb(){this.allowHalfOpen||this._writableState.ended||Id.nextTick(fb,this)}function fb(e){e.end()}Object.defineProperty(it.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)}});it.prototype._destroy=function(e,t){this.push(null),this.end(),Id.nextTick(t,e)}});var no=C(jd=>{"use strict";var io=fn().Buffer,Md=io.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 hb(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 gb(e){var t=hb(e);if(typeof t!="string"&&(io.isEncoding===Md||!Md(e)))throw new Error("Unknown encoding: "+e);return t||e}jd.StringDecoder=bn;function bn(e){this.encoding=gb(e);var t;switch(this.encoding){case"utf16le":this.text=wb,this.end=_b,t=4;break;case"utf8":this.fillLast=vb,t=4;break;case"base64":this.text=Eb,this.end=Sb,t=3;break;default:this.write=Ab,this.end=Cb;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=io.allocUnsafe(t)}bn.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||""};bn.prototype.end=xb;bn.prototype.text=yb;bn.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 to(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function mb(e,t,i){var n=t.length-1;if(n<i)return 0;var r=to(t[n]);return r>=0?(r>0&&(e.lastNeed=r-1),r):--n<i||r===-2?0:(r=to(t[n]),r>=0?(r>0&&(e.lastNeed=r-2),r):--n<i||r===-2?0:(r=to(t[n]),r>=0?(r>0&&(r===2?r=0:e.lastNeed=r-3),r):0))}function bb(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 vb(e){var t=this.lastTotal-this.lastNeed,i=bb(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 yb(e,t){var i=mb(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 xb(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"\uFFFD":t}function wb(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 _b(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 Eb(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 Sb(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function Ab(e){return e.toString(this.encoding)}function Cb(e){return e&&e.length?this.write(e):""}});var eo=C((e1,Yd)=>{"use strict";var wi=pn();Yd.exports=q;var Tb=pd(),vn;q.ReadableState=Hd;var Q_=require("events").EventEmitter,Nd=function(e,t){return e.listeners(t).length},lo=Us(),yn=fn().Buffer,kb=(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:{}).Uint8Array||function(){};function Lb(e){return yn.from(e)}function Ib(e){return yn.isBuffer(e)||e instanceof kb}var Fd=Object.create(bi());Fd.inherits=vi();var ro=require("util"),N=void 0;ro&&ro.debuglog?N=ro.debuglog("stream"):N=function(){};var Ob=vd(),$d=Ks(),xi;Fd.inherits(q,lo);var ao=["error","close","destroy","pause","resume"];function Pb(e,t,i){if(typeof e.prependListener=="function")return e.prependListener(t,i);!e._events||!e._events[t]?e.on(t,i):Tb(e._events[t])?e._events[t].unshift(i):e._events[t]=[i,e._events[t]]}function Hd(e,t){vn=vn||qt(),e=e||{};var i=t instanceof vn;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 Ob,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&&(xi||(xi=no().StringDecoder),this.decoder=new xi(e.encoding),this.encoding=e.encoding)}function q(e){if(vn=vn||qt(),!(this instanceof q))return new q(e);this._readableState=new Hd(e,this),this.readable=!0,e&&(typeof e.read=="function"&&(this._read=e.read),typeof e.destroy=="function"&&(this._destroy=e.destroy)),lo.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=$d.destroy;q.prototype._undestroy=$d.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=yn.from(e,t),t=""),n=!0),Ud(this,e,t,!1,n)};q.prototype.unshift=function(e){return Ud(this,e,null,!0,!1)};function Ud(e,t,i,n,r){var a=e._readableState;if(t===null)a.reading=!1,Db(e,a);else{var s;r||(s=Rb(a,t)),s?e.emit("error",s):a.objectMode||t&&t.length>0?(typeof t!="string"&&!a.objectMode&&Object.getPrototypeOf(t)!==yn.prototype&&(t=Lb(t)),n?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):so(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?so(e,a,t,!1):qd(e,a)):so(e,a,t,!1))):n||(a.reading=!1)}return Mb(a)}function so(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&&ra(e)),qd(e,t)}function Rb(e,t){var i;return!Ib(t)&&typeof t!="string"&&t!==void 0&&!e.objectMode&&(i=new TypeError("Invalid non-string/buffer chunk")),i}function Mb(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 xi||(xi=no().StringDecoder),this._readableState.decoder=new xi(e),this._readableState.encoding=e,this};var Dd=8388608;function jb(e){return e>=Dd?e=Dd:(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=jb(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}q.prototype.read=function(e){N("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 N("read: emitReadable",t.length,t.ended),t.length===0&&t.ended?oo(this):ra(this),null;if(e=zd(e,t),e===0&&t.ended)return t.length===0&&oo(this),null;var n=t.needReadable;N("need readable",n),(t.length===0||t.length-e<t.highWaterMark)&&(n=!0,N("length less than watermark",n)),t.ended||t.reading?(n=!1,N("reading or ended",n)):n&&(N("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=Gd(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&&oo(this)),r!==null&&this.emit("data",r),r};function Db(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,ra(e)}}function ra(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(N("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?wi.nextTick(Bd,e):Bd(e))}function Bd(e){N("emit readable"),e.emit("readable"),co(e)}function qd(e,t){t.readingMore||(t.readingMore=!0,wi.nextTick(zb,e,t))}function zb(e,t){for(var i=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(N("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,N("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?wi.nextTick(a):i.once("end",a),e.on("unpipe",s);function s(b,v){N("onunpipe"),b===i&&v&&v.hasUnpiped===!1&&(v.hasUnpiped=!0,d())}function o(){N("onend"),e.end()}var l=Bb(i);e.on("drain",l);var c=!1;function d(){N("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){N("ondata"),u=!1;var v=e.write(b);v===!1&&!u&&((n.pipesCount===1&&n.pipes===e||n.pipesCount>1&&Wd(n.pipes,e)!==-1)&&!c&&(N("false write response, pause",n.awaitDrain),n.awaitDrain++,u=!0),i.pause())}function f(b){N("onerror",b),g(),e.removeListener("error",f),Nd(e,"error")===0&&e.emit("error",b)}Pb(e,"error",f);function m(){e.removeListener("finish",h),g()}e.once("close",m);function h(){N("onfinish"),e.removeListener("close",m),g()}e.once("finish",h);function g(){N("unpipe"),i.unpipe(e)}return e.emit("pipe",i),n.flowing||(N("pipe resume"),i.resume()),e};function Bb(e){return function(){var t=e._readableState;N("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&Nd(e,"data")&&(t.flowing=!0,co(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=Wd(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=lo.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&&ra(this):wi.nextTick(Nb,this))}return i};q.prototype.addListener=q.prototype.on;function Nb(e){N("readable nexttick read 0"),e.read(0)}q.prototype.resume=function(){var e=this._readableState;return e.flowing||(N("resume"),e.flowing=!0,Fb(this,e)),this};function Fb(e,t){t.resumeScheduled||(t.resumeScheduled=!0,wi.nextTick($b,e,t))}function $b(e,t){t.reading||(N("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),co(e),t.flowing&&!t.reading&&e.read(0)}q.prototype.pause=function(){return N("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(N("pause"),this._readableState.flowing=!1,this.emit("pause")),this};function co(e){var t=e._readableState;for(N("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(N("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(N("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<ao.length;a++)e.on(ao[a],this.emit.bind(this,ao[a]));return this._read=function(s){N("wrapped _read",s),n&&(n=!1,e.resume())},this};Object.defineProperty(q.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}});q._fromList=Gd;function Gd(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=Hb(e,t.buffer,t.decoder),i}function Hb(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?Ub(e,t):qb(e,t),n}function Ub(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 qb(e,t){var i=yn.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 oo(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,wi.nextTick(Gb,t,e))}function Gb(e,t){!e.endEmitted&&e.length===0&&(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function Wd(e,t){for(var i=0,n=e.length;i<n;i++)if(e[i]===t)return i;return-1}});var uo=C((t1,Xd)=>{"use strict";Xd.exports=nt;var aa=qt(),Kd=Object.create(bi());Kd.inherits=vi();Kd.inherits(nt,aa);function Wb(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 nt(e){if(!(this instanceof nt))return new nt(e);aa.call(this,e),this._transformState={afterTransform:Wb.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",Yb)}function Yb(){var e=this;typeof this._flush=="function"?this._flush(function(t,i){Vd(e,t,i)}):Vd(this,null,null)}nt.prototype.push=function(e,t){return this._transformState.needTransform=!1,aa.prototype.push.call(this,e,t)};nt.prototype._transform=function(e,t,i){throw new Error("_transform() is not implemented")};nt.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)}};nt.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};nt.prototype._destroy=function(e,t){var i=this;aa.prototype._destroy.call(this,e,function(n){t(n),i.emit("close")})};function Vd(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 eu=C((i1,Qd)=>{"use strict";Qd.exports=xn;var Zd=uo(),Jd=Object.create(bi());Jd.inherits=vi();Jd.inherits(xn,Zd);function xn(e){if(!(this instanceof xn))return new xn(e);Zd.call(this,e)}xn.prototype._transform=function(e,t,i){i(null,e)}});var po=C((ie,sa)=>{"use strict";var Ne=require("stream");process.env.READABLE_STREAM==="disable"&&Ne?(sa.exports=Ne,ie=sa.exports=Ne.Readable,ie.Readable=Ne.Readable,ie.Writable=Ne.Writable,ie.Duplex=Ne.Duplex,ie.Transform=Ne.Transform,ie.PassThrough=Ne.PassThrough,ie.Stream=Ne):(ie=sa.exports=eo(),ie.Stream=Ne||ie,ie.Readable=ie,ie.Writable=Zs(),ie.Duplex=qt(),ie.Transform=uo(),ie.PassThrough=eu())});var rt=C(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{fo=new ArrayBuffer(0);try{he.blob=new Blob([fo],{type:"application/zip"}).size===0}catch{try{tu=self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder,ho=new tu,ho.append(fo),he.blob=ho.getBlob("application/zip").size===0}catch{he.blob=!1}}}var fo,tu,ho;try{he.nodestream=!!po().Readable}catch{he.nodestream=!1}});var mo=C(go=>{"use strict";var Vb=Y(),Kb=rt(),Fe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";go.encode=function(e){for(var t=[],i,n,r,a,s,o,l,c=0,d=e.length,u=d,p=Vb.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(Fe.charAt(a)+Fe.charAt(s)+Fe.charAt(o)+Fe.charAt(l));return t.join("")};go.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)===Fe.charAt(64)&&u--,e.charAt(e.length-2)===Fe.charAt(64)&&u--,u%1!==0)throw new Error("Invalid base64 input, bad content length.");var p;for(Kb.uint8array?p=new Uint8Array(u|0):p=new Array(u|0);l<e.length;)r=Fe.indexOf(e.charAt(l++)),a=Fe.indexOf(e.charAt(l++)),s=Fe.indexOf(e.charAt(l++)),o=Fe.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 wn=C((a1,iu)=>{"use strict";iu.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 su=C((s1,au)=>{"use strict";var nu=global.MutationObserver||global.WebKitMutationObserver,_i;process.browser?nu?(bo=0,ru=new nu(_n),vo=global.document.createTextNode(""),ru.observe(vo,{characterData:!0}),_i=function(){vo.data=bo=++bo%2}):!global.setImmediate&&typeof global.MessageChannel!="undefined"?(yo=new global.MessageChannel,yo.port1.onmessage=_n,_i=function(){yo.port2.postMessage(0)}):"document"in global&&"onreadystatechange"in global.document.createElement("script")?_i=function(){var e=global.document.createElement("script");e.onreadystatechange=function(){_n(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},global.document.documentElement.appendChild(e)}:_i=function(){setTimeout(_n,0)}:_i=function(){process.nextTick(_n)};var bo,ru,vo,yo,xo,En=[];function _n(){xo=!0;for(var e,t,i=En.length;i;){for(t=En,En=[],e=-1;++e<i;)t[e]();i=En.length}xo=!1}au.exports=Xb;function Xb(e){En.push(e)===1&&!xo&&_i()}});var fu=C((o1,pu)=>{"use strict";var ou=su();function Ei(){}var oe={},lu=["REJECTED"],wo=["FULFILLED"],cu=["PENDING"];process.browser||(Sn=["UNHANDLED"]);var Sn;pu.exports=vt;function vt(e){if(typeof e!="function")throw new TypeError("resolver must be a function");this.state=cu,this.queue=[],this.outcome=void 0,process.browser||(this.handled=Sn),e!==Ei&&du(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===wo||typeof t!="function"&&this.state===lu)return this;var i=new this.constructor(Ei);if(process.browser||this.handled===Sn&&(this.handled=null),this.state!==cu){var n=this.state===wo?e:t;_o(i,n,this.outcome)}else this.queue.push(new An(i,e,t));return i};function An(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)}An.prototype.callFulfilled=function(e){oe.resolve(this.promise,e)};An.prototype.otherCallFulfilled=function(e){_o(this.promise,this.onFulfilled,e)};An.prototype.callRejected=function(e){oe.reject(this.promise,e)};An.prototype.otherCallRejected=function(e){_o(this.promise,this.onRejected,e)};function _o(e,t,i){ou(function(){var n;try{n=t(i)}catch(r){return oe.reject(e,r)}n===e?oe.reject(e,new TypeError("Cannot resolve promise with itself")):oe.resolve(e,n)})}oe.resolve=function(e,t){var i=uu(Zb,t);if(i.status==="error")return oe.reject(e,i.value);var n=i.value;if(n)du(e,n);else{e.state=wo,e.outcome=t;for(var r=-1,a=e.queue.length;++r<a;)e.queue[r].callFulfilled(t)}return e};oe.reject=function(e,t){e.state=lu,e.outcome=t,process.browser||e.handled===Sn&&ou(function(){e.handled===Sn&&process.emit("unhandledRejection",t,e)});for(var i=-1,n=e.queue.length;++i<n;)e.queue[i].callRejected(t);return e};function Zb(e){var t=e&&e.then;if(e&&(typeof e=="object"||typeof e=="function")&&typeof t=="function")return function(){t.apply(e,arguments)}}function du(e,t){var i=!1;function n(o){i||(i=!0,oe.reject(e,o))}function r(o){i||(i=!0,oe.resolve(e,o))}function a(){t(r,n)}var s=uu(a);s.status==="error"&&n(s.value)}function uu(e,t){var i={};try{i.value=e(t),i.status="success"}catch(n){i.status="error",i.value=n}return i}vt.resolve=Jb;function Jb(e){return e instanceof this?e:oe.resolve(new this(Ei),e)}vt.reject=Qb;function Qb(e){var t=new this(Ei);return oe.reject(t,e)}vt.all=ev;function ev(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(Ei);++s<i;)l(e[s],s);return o;function l(c,d){t.resolve(c).then(u,function(p){n||(n=!0,oe.reject(o,p))});function u(p){r[d]=p,++a===i&&!n&&(n=!0,oe.resolve(o,r))}}}vt.race=tv;function tv(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(Ei);++r<i;)s(e[r]);return a;function s(o){t.resolve(o).then(function(l){n||(n=!0,oe.resolve(a,l))},function(l){n||(n=!0,oe.reject(a,l))})}}});var Si=C((l1,hu)=>{"use strict";var Eo=null;typeof Promise!="undefined"?Eo=Promise:Eo=fu();hu.exports={Promise:Eo}});var mu=C(gu=>{"use strict";(function(e,t){"use strict";if(e.setImmediate)return;var i=1,n={},r=!1,a=e.document,s;function o(v){typeof v!="function"&&(v=new Function(""+v));for(var y=new Array(arguments.length-1),x=0;x<y.length;x++)y[x]=arguments[x+1];var w={callback:v,args:y};return n[i]=w,s(i),i++}function l(v){delete n[v]}function c(v){var y=v.callback,x=v.args;switch(x.length){case 0:y();break;case 1:y(x[0]);break;case 2:y(x[0],x[1]);break;case 3:y(x[0],x[1],x[2]);break;default:y.apply(t,x);break}}function d(v){if(r)setTimeout(d,0,v);else{var y=n[v];if(y){r=!0;try{c(y)}finally{l(v),r=!1}}}}function u(){s=function(v){process.nextTick(function(){d(v)})}}function p(){if(e.postMessage&&!e.importScripts){var v=!0,y=e.onmessage;return e.onmessage=function(){v=!1},e.postMessage("","*"),e.onmessage=y,v}}function f(){var v="setImmediate$"+Math.random()+"$",y=function(x){x.source===e&&typeof x.data=="string"&&x.data.indexOf(v)===0&&d(+x.data.slice(v.length))};e.addEventListener?e.addEventListener("message",y,!1):e.attachEvent("onmessage",y),s=function(x){e.postMessage(v+x,"*")}}function m(){var v=new MessageChannel;v.port1.onmessage=function(y){var x=y.data;d(x)},s=function(y){v.port2.postMessage(y)}}function h(){var v=a.documentElement;s=function(y){var x=a.createElement("script");x.onreadystatechange=function(){d(y),x.onreadystatechange=null,v.removeChild(x),x=null},v.appendChild(x)}}function g(){s=function(v){setTimeout(d,0,v)}}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"?gu:global:self)});var Y=C(Z=>{"use strict";var yt=rt(),iv=mo(),Ai=wn(),So=Si();mu();function nv(e){var t=null;return yt.uint8array?t=new Uint8Array(e.length):t=new Array(e.length),la(e,t)}Z.newBlob=function(e,t){Z.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 Cn(e){return e}function la(e,t){for(var i=0;i<e.length;++i)t[i]=e.charCodeAt(i)&255;return t}var oa={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 yt.uint8array&&String.fromCharCode.apply(null,new Uint8Array(1)).length===1}catch{return!1}})(),nodebuffer:(function(){try{return yt.nodebuffer&&String.fromCharCode.apply(null,Ai.allocBuffer(1)).length===1}catch{return!1}})()}};function Tn(e){var t=65536,i=Z.getTypeOf(e),n=!0;if(i==="uint8array"?n=oa.applyCanBeUsed.uint8array:i==="nodebuffer"&&(n=oa.applyCanBeUsed.nodebuffer),n)for(;t>1;)try{return oa.stringifyByChunk(e,i,t)}catch{t=Math.floor(t/2)}return oa.stringifyByChar(e)}Z.applyFromCharCode=Tn;function ca(e,t){for(var i=0;i<e.length;i++)t[i]=e[i];return t}var xt={};xt.string={string:Cn,array:function(e){return la(e,new Array(e.length))},arraybuffer:function(e){return xt.string.uint8array(e).buffer},uint8array:function(e){return la(e,new Uint8Array(e.length))},nodebuffer:function(e){return la(e,Ai.allocBuffer(e.length))}};xt.array={string:Tn,array:Cn,arraybuffer:function(e){return new Uint8Array(e).buffer},uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return Ai.newBufferFrom(e)}};xt.arraybuffer={string:function(e){return Tn(new Uint8Array(e))},array:function(e){return ca(new Uint8Array(e),new Array(e.byteLength))},arraybuffer:Cn,uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return Ai.newBufferFrom(new Uint8Array(e))}};xt.uint8array={string:Tn,array:function(e){return ca(e,new Array(e.length))},arraybuffer:function(e){return e.buffer},uint8array:Cn,nodebuffer:function(e){return Ai.newBufferFrom(e)}};xt.nodebuffer={string:Tn,array:function(e){return ca(e,new Array(e.length))},arraybuffer:function(e){return xt.nodebuffer.uint8array(e).buffer},uint8array:function(e){return ca(e,new Uint8Array(e.length))},nodebuffer:Cn};Z.transformTo=function(e,t){if(t||(t=""),!e)return t;Z.checkSupport(e);var i=Z.getTypeOf(t),n=xt[i][e](t);return n};Z.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("/")};Z.getTypeOf=function(e){if(typeof e=="string")return"string";if(Object.prototype.toString.call(e)==="[object Array]")return"array";if(yt.nodebuffer&&Ai.isBuffer(e))return"nodebuffer";if(yt.uint8array&&e instanceof Uint8Array)return"uint8array";if(yt.arraybuffer&&e instanceof ArrayBuffer)return"arraybuffer"};Z.checkSupport=function(e){var t=yt[e.toLowerCase()];if(!t)throw new Error(e+" is not supported by this platform")};Z.MAX_VALUE_16BITS=65535;Z.MAX_VALUE_32BITS=-1;Z.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};Z.delay=function(e,t,i){setImmediate(function(){e.apply(i||null,t||[])})};Z.inherits=function(e,t){var i=function(){};i.prototype=t.prototype,e.prototype=new i};Z.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};Z.prepareContent=function(e,t,i,n,r){var a=So.Promise.resolve(t).then(function(s){var o=yt.blob&&(s instanceof Blob||["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(s))!==-1);return o&&typeof FileReader!="undefined"?new So.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=Z.getTypeOf(s);return o?(o==="arraybuffer"?s=Z.transformTo("uint8array",s):o==="string"&&(r?s=iv.decode(s):i&&n!==!0&&(s=nv(s))),s):So.Promise.reject(new Error("Can't read the data of '"+e+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})}});var ge=C((u1,vu)=>{"use strict";function bu(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}bu.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}};vu.exports=bu});var Ti=C(wt=>{"use strict";var Ci=Y(),Gt=rt(),rv=wn(),da=ge(),kn=new Array(256);for(at=0;at<256;at++)kn[at]=at>=252?6:at>=248?5:at>=240?4:at>=224?3:at>=192?2:1;var at;kn[254]=kn[254]=1;var av=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(Gt.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},sv=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+kn[e[i]]>t?i:t},ov=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=kn[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),Ci.applyFromCharCode(s)};wt.utf8encode=function(t){return Gt.nodebuffer?rv.newBufferFrom(t,"utf-8"):av(t)};wt.utf8decode=function(t){return Gt.nodebuffer?Ci.transformTo("nodebuffer",t).toString("utf-8"):(t=Ci.transformTo(Gt.uint8array?"uint8array":"array",t),ov(t))};function ua(){da.call(this,"utf-8 decode"),this.leftOver=null}Ci.inherits(ua,da);ua.prototype.processChunk=function(e){var t=Ci.transformTo(Gt.uint8array?"uint8array":"array",e.data);if(this.leftOver&&this.leftOver.length){if(Gt.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=sv(t),r=t;n!==t.length&&(Gt.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:wt.utf8decode(r),meta:e.meta})};ua.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:wt.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)};wt.Utf8DecodeWorker=ua;function Ao(){da.call(this,"utf-8 encode")}Ci.inherits(Ao,da);Ao.prototype.processChunk=function(e){this.push({data:wt.utf8encode(e.data),meta:e.meta})};wt.Utf8EncodeWorker=Ao});var _u=C((f1,wu)=>{"use strict";var yu=ge(),xu=Y();function Co(e){yu.call(this,"ConvertWorker to "+e),this.destType=e}xu.inherits(Co,yu);Co.prototype.processChunk=function(e){this.push({data:xu.transformTo(this.destType,e.data),meta:e.meta})};wu.exports=Co});var Au=C((h1,Su)=>{"use strict";var Eu=po().Readable,lv=Y();lv.inherits(To,Eu);function To(e,t,i){Eu.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)})}To.prototype._read=function(){this._helper.resume()};Su.exports=To});var ko=C((g1,ku)=>{"use strict";var Wt=Y(),cv=_u(),dv=ge(),uv=mo(),pv=rt(),fv=Si(),Cu=null;if(pv.nodestream)try{Cu=Au()}catch{}function hv(e,t,i){switch(e){case"blob":return Wt.newBlob(Wt.transformTo("arraybuffer",t),i);case"base64":return uv.encode(t);default:return Wt.transformTo(e,t)}}function gv(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 mv(e,t){return new fv.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=hv(s,gv(a,r),o);i(l)}catch(c){n(c)}r=[]}).resume()})}function Tu(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,Wt.checkSupport(n),this._worker=e.pipe(new cv(n)),e.lock()}catch(r){this._worker=new dv("error"),this._worker.error(r)}}Tu.prototype={accumulate:function(e){return mv(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(){Wt.delay(t,arguments,i)}),this},resume:function(){return Wt.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(e){if(Wt.checkSupport("nodestream"),this._outputType!=="nodebuffer")throw new Error(this._outputType+" is not supported by this method");return new Cu(this,{objectMode:this._outputType!=="nodebuffer"},e)}};ku.exports=Tu});var Lo=C(Le=>{"use strict";Le.base64=!1;Le.binary=!1;Le.dir=!1;Le.createFolders=!0;Le.date=null;Le.compression=null;Le.compressionOptions=null;Le.comment=null;Le.unixPermissions=null;Le.dosPermissions=null});var Io=C((b1,Lu)=>{"use strict";var pa=Y(),fa=ge(),bv=16*1024;function ki(e){fa.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=pa.getTypeOf(i),t.isPaused||t._tickAndRepeat()},function(i){t.error(i)})}pa.inherits(ki,fa);ki.prototype.cleanUp=function(){fa.prototype.cleanUp.call(this),this.data=null};ki.prototype.resume=function(){return fa.prototype.resume.call(this)?(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,pa.delay(this._tickAndRepeat,[],this)),!0):!1};ki.prototype._tickAndRepeat=function(){this._tickScheduled=!1,!(this.isPaused||this.isFinished)&&(this._tick(),this.isFinished||(pa.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))};ki.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=bv,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}})};Lu.exports=ki});var ha=C((v1,Ou)=>{"use strict";var vv=Y();function yv(){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 Iu=yv();function xv(e,t,i,n){var r=Iu,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 wv(e,t,i,n){var r=Iu,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}Ou.exports=function(t,i){if(typeof t=="undefined"||!t.length)return 0;var n=vv.getTypeOf(t)!=="string";return n?xv(i|0,t,t.length,0):wv(i|0,t,t.length,0)}});var Po=C((y1,Ru)=>{"use strict";var Pu=ge(),_v=ha(),Ev=Y();function Oo(){Pu.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}Ev.inherits(Oo,Pu);Oo.prototype.processChunk=function(e){this.streamInfo.crc32=_v(e.data,this.streamInfo.crc32||0),this.push(e)};Ru.exports=Oo});var ju=C((x1,Mu)=>{"use strict";var Sv=Y(),Ro=ge();function Mo(e){Ro.call(this,"DataLengthProbe for "+e),this.propName=e,this.withStreamInfo(e,0)}Sv.inherits(Mo,Ro);Mo.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}Ro.prototype.processChunk.call(this,e)};Mu.exports=Mo});var ga=C((w1,Bu)=>{"use strict";var Du=Si(),zu=Io(),Av=Po(),jo=ju();function Do(e,t,i,n,r){this.compressedSize=e,this.uncompressedSize=t,this.crc32=i,this.compression=n,this.compressedContent=r}Do.prototype={getContentWorker:function(){var e=new zu(Du.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new jo("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(Du.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}};Do.createWorkerFrom=function(e,t,i){return e.pipe(new Av).pipe(new jo("uncompressedSize")).pipe(t.compressWorker(i)).pipe(new jo("compressedSize")).withStreamInfo("compression",t)};Bu.exports=Do});var Hu=C((_1,$u)=>{"use strict";var Cv=ko(),Tv=Io(),zo=Ti(),Bo=ga(),Nu=ge(),No=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}};No.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 zo.Utf8EncodeWorker)),!r&&n&&(t=t.pipe(new zo.Utf8DecodeWorker))}catch(a){t=new Nu("error"),t.error(a)}return new Cv(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 Bo&&this._data.compression.magic===e.magic)return this._data.getCompressedWorker();var i=this._decompressWorker();return this._dataBinary||(i=i.pipe(new zo.Utf8EncodeWorker)),Bo.createWorkerFrom(i,e,t)},_decompressWorker:function(){return this._data instanceof Bo?this._data.getContentWorker():this._data instanceof Nu?this._data:new Tv(this._data)}};var Fu=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],kv=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")};for(ma=0;ma<Fu.length;ma++)No.prototype[Fu[ma]]=kv;var ma;$u.exports=No});var st=C(ce=>{"use strict";var Lv=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Int32Array!="undefined";function Iv(e,t){return Object.prototype.hasOwnProperty.call(e,t)}ce.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)Iv(i,n)&&(e[n]=i[n])}}return e};ce.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var Ov={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}},Pv={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)}};ce.setTyped=function(e){e?(ce.Buf8=Uint8Array,ce.Buf16=Uint16Array,ce.Buf32=Int32Array,ce.assign(ce,Ov)):(ce.Buf8=Array,ce.Buf16=Array,ce.Buf32=Array,ce.assign(ce,Pv))};ce.setTyped(Lv)});var up=C(Oi=>{"use strict";var Rv=st(),Mv=4,Uu=0,qu=1,jv=2;function Ii(e){for(var t=e.length;--t>=0;)e[t]=0}var Dv=0,Xu=1,zv=2,Bv=3,Nv=258,Wo=29,Mn=256,In=Mn+1+Wo,Li=30,Yo=19,Zu=2*In+1,Yt=15,Fo=16,Fv=7,Vo=256,Ju=16,Qu=17,ep=18,qo=[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],ba=[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],$v=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],tp=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Hv=512,ot=new Array((In+2)*2);Ii(ot);var Ln=new Array(Li*2);Ii(Ln);var On=new Array(Hv);Ii(On);var Pn=new Array(Nv-Bv+1);Ii(Pn);var Ko=new Array(Wo);Ii(Ko);var va=new Array(Li);Ii(va);function $o(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 ip,np,rp;function Ho(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function ap(e){return e<256?On[e]:On[256+(e>>>7)]}function Rn(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function pe(e,t,i){e.bi_valid>Fo-i?(e.bi_buf|=t<<e.bi_valid&65535,Rn(e,e.bi_buf),e.bi_buf=t>>Fo-e.bi_valid,e.bi_valid+=i-Fo):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=i)}function $e(e,t,i){pe(e,i[t*2],i[t*2+1])}function sp(e,t){var i=0;do i|=e&1,e>>>=1,i<<=1;while(--t>0);return i>>>1}function Uv(e){e.bi_valid===16?(Rn(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 qv(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<=Yt;p++)e.bl_count[p]=0;for(i[e.heap[e.heap_max]*2+1]=0,c=e.heap_max+1;c<Zu;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 op(e,t,i){var n=new Array(Yt+1),r=0,a,s;for(a=1;a<=Yt;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]=sp(n[o]++,o))}}function Gv(){var e,t,i,n,r,a=new Array(Yt+1);for(i=0,n=0;n<Wo-1;n++)for(Ko[n]=i,e=0;e<1<<qo[n];e++)Pn[i++]=n;for(Pn[i-1]=n,r=0,n=0;n<16;n++)for(va[n]=r,e=0;e<1<<ba[n];e++)On[r++]=n;for(r>>=7;n<Li;n++)for(va[n]=r<<7,e=0;e<1<<ba[n]-7;e++)On[256+r++]=n;for(t=0;t<=Yt;t++)a[t]=0;for(e=0;e<=143;)ot[e*2+1]=8,e++,a[8]++;for(;e<=255;)ot[e*2+1]=9,e++,a[9]++;for(;e<=279;)ot[e*2+1]=7,e++,a[7]++;for(;e<=287;)ot[e*2+1]=8,e++,a[8]++;for(op(ot,In+1,a),e=0;e<Li;e++)Ln[e*2+1]=5,Ln[e*2]=sp(e,5);ip=new $o(ot,qo,Mn+1,In,Yt),np=new $o(Ln,ba,0,Li,Yt),rp=new $o(new Array(0),$v,0,Yo,Fv)}function lp(e){var t;for(t=0;t<In;t++)e.dyn_ltree[t*2]=0;for(t=0;t<Li;t++)e.dyn_dtree[t*2]=0;for(t=0;t<Yo;t++)e.bl_tree[t*2]=0;e.dyn_ltree[Vo*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function cp(e){e.bi_valid>8?Rn(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 Wv(e,t,i,n){cp(e),n&&(Rn(e,i),Rn(e,~i)),Rv.arraySet(e.pending_buf,e.window,t,i,e.pending),e.pending+=i}function Gu(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 Uo(e,t,i){for(var n=e.heap[i],r=i<<1;r<=e.heap_len&&(r<e.heap_len&&Gu(t,e.heap[r+1],e.heap[r],e.depth)&&r++,!Gu(t,n,e.heap[r],e.depth));)e.heap[i]=e.heap[r],i=r,r<<=1;e.heap[i]=n}function Wu(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?$e(e,r,t):(s=Pn[r],$e(e,s+Mn+1,t),o=qo[s],o!==0&&(r-=Ko[s],pe(e,r,o)),n--,s=ap(n),$e(e,s,i),o=ba[s],o!==0&&(n-=va[s],pe(e,n,o)));while(a<e.last_lit);$e(e,Vo,t)}function Go(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=Zu,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--)Uo(e,i,s);c=a;do s=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Uo(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++,Uo(e,i,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],qv(e,t),op(i,l,e.bl_count)}function Yu(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[Ju*2]++):o<=10?e.bl_tree[Qu*2]++:e.bl_tree[ep*2]++,o=0,r=a,s===0?(l=138,c=3):a===s?(l=6,c=3):(l=7,c=4))}function Vu(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 $e(e,a,e.bl_tree);while(--o!==0);else a!==0?(a!==r&&($e(e,a,e.bl_tree),o--),$e(e,Ju,e.bl_tree),pe(e,o-3,2)):o<=10?($e(e,Qu,e.bl_tree),pe(e,o-3,3)):($e(e,ep,e.bl_tree),pe(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 Yv(e){var t;for(Yu(e,e.dyn_ltree,e.l_desc.max_code),Yu(e,e.dyn_dtree,e.d_desc.max_code),Go(e,e.bl_desc),t=Yo-1;t>=3&&e.bl_tree[tp[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function Vv(e,t,i,n){var r;for(pe(e,t-257,5),pe(e,i-1,5),pe(e,n-4,4),r=0;r<n;r++)pe(e,e.bl_tree[tp[r]*2+1],3);Vu(e,e.dyn_ltree,t-1),Vu(e,e.dyn_dtree,i-1)}function Kv(e){var t=4093624447,i;for(i=0;i<=31;i++,t>>>=1)if(t&1&&e.dyn_ltree[i*2]!==0)return Uu;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return qu;for(i=32;i<Mn;i++)if(e.dyn_ltree[i*2]!==0)return qu;return Uu}var Ku=!1;function Xv(e){Ku||(Gv(),Ku=!0),e.l_desc=new Ho(e.dyn_ltree,ip),e.d_desc=new Ho(e.dyn_dtree,np),e.bl_desc=new Ho(e.bl_tree,rp),e.bi_buf=0,e.bi_valid=0,lp(e)}function dp(e,t,i,n){pe(e,(Dv<<1)+(n?1:0),3),Wv(e,t,i,!0)}function Zv(e){pe(e,Xu<<1,3),$e(e,Vo,ot),Uv(e)}function Jv(e,t,i,n){var r,a,s=0;e.level>0?(e.strm.data_type===jv&&(e.strm.data_type=Kv(e)),Go(e,e.l_desc),Go(e,e.d_desc),s=Yv(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?dp(e,t,i,n):e.strategy===Mv||a===r?(pe(e,(Xu<<1)+(n?1:0),3),Wu(e,ot,Ln)):(pe(e,(zv<<1)+(n?1:0),3),Vv(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),Wu(e,e.dyn_ltree,e.dyn_dtree)),lp(e),n&&cp(e)}function Qv(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[(Pn[i]+Mn+1)*2]++,e.dyn_dtree[ap(t)*2]++),e.last_lit===e.lit_bufsize-1}Oi._tr_init=Xv;Oi._tr_stored_block=dp;Oi._tr_flush_block=Jv;Oi._tr_tally=Qv;Oi._tr_align=Zv});var Xo=C((A1,pp)=>{"use strict";function ey(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}pp.exports=ey});var Zo=C((C1,fp)=>{"use strict";function ty(){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 iy=ty();function ny(e,t,i,n){var r=iy,a=n+i;e^=-1;for(var s=n;s<a;s++)e=e>>>8^r[(e^t[s])&255];return e^-1}fp.exports=ny});var ya=C((T1,hp)=>{"use strict";hp.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 Ep=C(qe=>{"use strict";var de=st(),_e=up(),vp=Xo(),_t=Zo(),ry=ya(),Zt=0,ay=1,sy=3,Tt=4,gp=5,Ue=0,mp=1,Ee=-2,oy=-3,Jo=-5,ly=-1,cy=1,xa=2,dy=3,uy=4,py=0,fy=2,Sa=8,hy=9,gy=15,my=8,by=29,vy=256,el=vy+1+by,yy=30,xy=19,wy=2*el+1,_y=15,D=3,At=258,Ie=At+D+1,Ey=32,Aa=42,tl=69,wa=73,_a=91,Ea=103,Vt=113,Dn=666,te=1,zn=2,Kt=3,Mi=4,Sy=3;function Ct(e,t){return e.msg=ry[t],t}function bp(e){return(e<<1)-(e>4?9:0)}function St(e){for(var t=e.length;--t>=0;)e[t]=0}function Et(e){var t=e.state,i=t.pending;i>e.avail_out&&(i=e.avail_out),i!==0&&(de.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 ne(e,t){_e._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Et(e.strm)}function z(e,t){e.pending_buf[e.pending++]=t}function jn(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function Ay(e,t,i,n){var r=e.avail_in;return r>n&&(r=n),r===0?0:(e.avail_in-=r,de.arraySet(t,e.input,e.next_in,r,i),e.state.wrap===1?e.adler=vp(e.adler,t,r,i):e.state.wrap===2&&(e.adler=_t(e.adler,t,r,i)),e.next_in+=r,e.total_in+=r,r)}function yp(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-Ie?e.strstart-(e.w_size-Ie):0,c=e.window,d=e.w_mask,u=e.prev,p=e.strstart+At,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=At-(p-n),n=p-At,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 Xt(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-Ie)){de.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=Ay(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=n,e.lookahead+e.insert>=D)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+D-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<D)););}while(e.lookahead<Ie&&e.strm.avail_in!==0)}function Cy(e,t){var i=65535;for(i>e.pending_buf_size-5&&(i=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Xt(e),e.lookahead===0&&t===Zt)return te;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,ne(e,!1),e.strm.avail_out===0)||e.strstart-e.block_start>=e.w_size-Ie&&(ne(e,!1),e.strm.avail_out===0))return te}return e.insert=0,t===Tt?(ne(e,!0),e.strm.avail_out===0?Kt:Mi):(e.strstart>e.block_start&&(ne(e,!1),e.strm.avail_out===0),te)}function Qo(e,t){for(var i,n;;){if(e.lookahead<Ie){if(Xt(e),e.lookahead<Ie&&t===Zt)return te;if(e.lookahead===0)break}if(i=0,e.lookahead>=D&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+D-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-Ie&&(e.match_length=yp(e,i)),e.match_length>=D)if(n=_e._tr_tally(e,e.strstart-e.match_start,e.match_length-D),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=D){e.match_length--;do e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+D-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=_e._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(ne(e,!1),e.strm.avail_out===0))return te}return e.insert=e.strstart<D-1?e.strstart:D-1,t===Tt?(ne(e,!0),e.strm.avail_out===0?Kt:Mi):e.last_lit&&(ne(e,!1),e.strm.avail_out===0)?te:zn}function Pi(e,t){for(var i,n,r;;){if(e.lookahead<Ie){if(Xt(e),e.lookahead<Ie&&t===Zt)return te;if(e.lookahead===0)break}if(i=0,e.lookahead>=D&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+D-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=D-1,i!==0&&e.prev_length<e.max_lazy_match&&e.strstart-i<=e.w_size-Ie&&(e.match_length=yp(e,i),e.match_length<=5&&(e.strategy===cy||e.match_length===D&&e.strstart-e.match_start>4096)&&(e.match_length=D-1)),e.prev_length>=D&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-D,n=_e._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-D),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+D-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=D-1,e.strstart++,n&&(ne(e,!1),e.strm.avail_out===0))return te}else if(e.match_available){if(n=_e._tr_tally(e,0,e.window[e.strstart-1]),n&&ne(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return te}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=_e._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<D-1?e.strstart:D-1,t===Tt?(ne(e,!0),e.strm.avail_out===0?Kt:Mi):e.last_lit&&(ne(e,!1),e.strm.avail_out===0)?te:zn}function Ty(e,t){for(var i,n,r,a,s=e.window;;){if(e.lookahead<=At){if(Xt(e),e.lookahead<=At&&t===Zt)return te;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=D&&e.strstart>0&&(r=e.strstart-1,n=s[r],n===s[++r]&&n===s[++r]&&n===s[++r])){a=e.strstart+At;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=At-(a-r),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=D?(i=_e._tr_tally(e,1,e.match_length-D),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(i=_e._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),i&&(ne(e,!1),e.strm.avail_out===0))return te}return e.insert=0,t===Tt?(ne(e,!0),e.strm.avail_out===0?Kt:Mi):e.last_lit&&(ne(e,!1),e.strm.avail_out===0)?te:zn}function ky(e,t){for(var i;;){if(e.lookahead===0&&(Xt(e),e.lookahead===0)){if(t===Zt)return te;break}if(e.match_length=0,i=_e._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,i&&(ne(e,!1),e.strm.avail_out===0))return te}return e.insert=0,t===Tt?(ne(e,!0),e.strm.avail_out===0?Kt:Mi):e.last_lit&&(ne(e,!1),e.strm.avail_out===0)?te:zn}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 Ri;Ri=[new He(0,0,0,0,Cy),new He(4,4,8,4,Qo),new He(4,5,16,8,Qo),new He(4,6,32,32,Qo),new He(4,4,16,16,Pi),new He(8,16,32,32,Pi),new He(8,16,128,128,Pi),new He(8,32,128,256,Pi),new He(32,128,258,1024,Pi),new He(32,258,258,4096,Pi)];function Ly(e){e.window_size=2*e.w_size,St(e.head),e.max_lazy_match=Ri[e.level].max_lazy,e.good_match=Ri[e.level].good_length,e.nice_match=Ri[e.level].nice_length,e.max_chain_length=Ri[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=D-1,e.match_available=0,e.ins_h=0}function Iy(){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=Sa,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 de.Buf16(wy*2),this.dyn_dtree=new de.Buf16((2*yy+1)*2),this.bl_tree=new de.Buf16((2*xy+1)*2),St(this.dyn_ltree),St(this.dyn_dtree),St(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new de.Buf16(_y+1),this.heap=new de.Buf16(2*el+1),St(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new de.Buf16(2*el+1),St(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 xp(e){var t;return!e||!e.state?Ct(e,Ee):(e.total_in=e.total_out=0,e.data_type=fy,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?Aa:Vt,e.adler=t.wrap===2?0:1,t.last_flush=Zt,_e._tr_init(t),Ue)}function wp(e){var t=xp(e);return t===Ue&&Ly(e.state),t}function Oy(e,t){return!e||!e.state||e.state.wrap!==2?Ee:(e.state.gzhead=t,Ue)}function _p(e,t,i,n,r,a){if(!e)return Ee;var s=1;if(t===ly&&(t=6),n<0?(s=0,n=-n):n>15&&(s=2,n-=16),r<1||r>hy||i!==Sa||n<8||n>15||t<0||t>9||a<0||a>uy)return Ct(e,Ee);n===8&&(n=9);var o=new Iy;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+D-1)/D),o.window=new de.Buf8(o.w_size*2),o.head=new de.Buf16(o.hash_size),o.prev=new de.Buf16(o.w_size),o.lit_bufsize=1<<r+6,o.pending_buf_size=o.lit_bufsize*4,o.pending_buf=new de.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,wp(e)}function Py(e,t){return _p(e,t,Sa,gy,my,py)}function Ry(e,t){var i,n,r,a;if(!e||!e.state||t>gp||t<0)return e?Ct(e,Ee):Ee;if(n=e.state,!e.output||!e.input&&e.avail_in!==0||n.status===Dn&&t!==Tt)return Ct(e,e.avail_out===0?Jo:Ee);if(n.strm=e,i=n.last_flush,n.last_flush=t,n.status===Aa)if(n.wrap===2)e.adler=0,z(n,31),z(n,139),z(n,8),n.gzhead?(z(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)),z(n,n.gzhead.time&255),z(n,n.gzhead.time>>8&255),z(n,n.gzhead.time>>16&255),z(n,n.gzhead.time>>24&255),z(n,n.level===9?2:n.strategy>=xa||n.level<2?4:0),z(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(z(n,n.gzhead.extra.length&255),z(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=_t(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=tl):(z(n,0),z(n,0),z(n,0),z(n,0),z(n,0),z(n,n.level===9?2:n.strategy>=xa||n.level<2?4:0),z(n,Sy),n.status=Vt);else{var s=Sa+(n.w_bits-8<<4)<<8,o=-1;n.strategy>=xa||n.level<2?o=0:n.level<6?o=1:n.level===6?o=2:o=3,s|=o<<6,n.strstart!==0&&(s|=Ey),s+=31-s%31,n.status=Vt,jn(n,s),n.strstart!==0&&(jn(n,e.adler>>>16),jn(n,e.adler&65535)),e.adler=1}if(n.status===tl)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=_t(e.adler,n.pending_buf,n.pending-r,r)),Et(e),r=n.pending,n.pending===n.pending_buf_size));)z(n,n.gzhead.extra[n.gzindex]&255),n.gzindex++;n.gzhead.hcrc&&n.pending>r&&(e.adler=_t(e.adler,n.pending_buf,n.pending-r,r)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=wa)}else n.status=wa;if(n.status===wa)if(n.gzhead.name){r=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>r&&(e.adler=_t(e.adler,n.pending_buf,n.pending-r,r)),Et(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,z(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>r&&(e.adler=_t(e.adler,n.pending_buf,n.pending-r,r)),a===0&&(n.gzindex=0,n.status=_a)}else n.status=_a;if(n.status===_a)if(n.gzhead.comment){r=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>r&&(e.adler=_t(e.adler,n.pending_buf,n.pending-r,r)),Et(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,z(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>r&&(e.adler=_t(e.adler,n.pending_buf,n.pending-r,r)),a===0&&(n.status=Ea)}else n.status=Ea;if(n.status===Ea&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&Et(e),n.pending+2<=n.pending_buf_size&&(z(n,e.adler&255),z(n,e.adler>>8&255),e.adler=0,n.status=Vt)):n.status=Vt),n.pending!==0){if(Et(e),e.avail_out===0)return n.last_flush=-1,Ue}else if(e.avail_in===0&&bp(t)<=bp(i)&&t!==Tt)return Ct(e,Jo);if(n.status===Dn&&e.avail_in!==0)return Ct(e,Jo);if(e.avail_in!==0||n.lookahead!==0||t!==Zt&&n.status!==Dn){var l=n.strategy===xa?ky(n,t):n.strategy===dy?Ty(n,t):Ri[n.level].func(n,t);if((l===Kt||l===Mi)&&(n.status=Dn),l===te||l===Kt)return e.avail_out===0&&(n.last_flush=-1),Ue;if(l===zn&&(t===ay?_e._tr_align(n):t!==gp&&(_e._tr_stored_block(n,0,0,!1),t===sy&&(St(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),Et(e),e.avail_out===0))return n.last_flush=-1,Ue}return t!==Tt?Ue:n.wrap<=0?mp:(n.wrap===2?(z(n,e.adler&255),z(n,e.adler>>8&255),z(n,e.adler>>16&255),z(n,e.adler>>24&255),z(n,e.total_in&255),z(n,e.total_in>>8&255),z(n,e.total_in>>16&255),z(n,e.total_in>>24&255)):(jn(n,e.adler>>>16),jn(n,e.adler&65535)),Et(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?Ue:mp)}function My(e){var t;return!e||!e.state?Ee:(t=e.state.status,t!==Aa&&t!==tl&&t!==wa&&t!==_a&&t!==Ea&&t!==Vt&&t!==Dn?Ct(e,Ee):(e.state=null,t===Vt?Ct(e,oy):Ue))}function jy(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!==Aa||n.lookahead))return Ee;for(s===1&&(e.adler=vp(e.adler,t,i,0)),n.wrap=0,i>=n.w_size&&(s===0&&(St(n.head),n.strstart=0,n.block_start=0,n.insert=0),d=new de.Buf8(n.w_size),de.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,Xt(n);n.lookahead>=D;){r=n.strstart,a=n.lookahead-(D-1);do n.ins_h=(n.ins_h<<n.hash_shift^n.window[r+D-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=D-1,Xt(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=D-1,n.match_available=0,e.next_in=l,e.input=c,e.avail_in=o,n.wrap=s,Ue}qe.deflateInit=Py;qe.deflateInit2=_p;qe.deflateReset=wp;qe.deflateResetKeep=xp;qe.deflateSetHeader=Oy;qe.deflate=Ry;qe.deflateEnd=My;qe.deflateSetDictionary=jy;qe.deflateInfo="pako deflate (from Nodeca project)"});var il=C(ji=>{"use strict";var Ca=st(),Sp=!0,Ap=!0;try{String.fromCharCode.apply(null,[0])}catch{Sp=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Ap=!1}var Bn=new Ca.Buf8(256);for(lt=0;lt<256;lt++)Bn[lt]=lt>=252?6:lt>=248?5:lt>=240?4:lt>=224?3:lt>=192?2:1;var lt;Bn[254]=Bn[254]=1;ji.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 Ca.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 Cp(e,t){if(t<65534&&(e.subarray&&Ap||!e.subarray&&Sp))return String.fromCharCode.apply(null,Ca.shrinkBuf(e,t));for(var i="",n=0;n<t;n++)i+=String.fromCharCode(e[n]);return i}ji.buf2binstring=function(e){return Cp(e,e.length)};ji.binstring2buf=function(e){for(var t=new Ca.Buf8(e.length),i=0,n=t.length;i<n;i++)t[i]=e.charCodeAt(i);return t};ji.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=Bn[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 Cp(o,n)};ji.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+Bn[e[i]]>t?i:t}});var nl=C((I1,Tp)=>{"use strict";function Dy(){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}Tp.exports=Dy});var Op=C($n=>{"use strict";var Nn=Ep(),Fn=st(),al=il(),sl=ya(),zy=nl(),Ip=Object.prototype.toString,By=0,rl=4,Di=0,kp=1,Lp=2,Ny=-1,Fy=0,$y=8;function Jt(e){if(!(this instanceof Jt))return new Jt(e);this.options=Fn.assign({level:Ny,method:$y,chunkSize:16384,windowBits:15,memLevel:8,strategy:Fy,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 zy,this.strm.avail_out=0;var i=Nn.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(i!==Di)throw new Error(sl[i]);if(t.header&&Nn.deflateSetHeader(this.strm,t.header),t.dictionary){var n;if(typeof t.dictionary=="string"?n=al.string2buf(t.dictionary):Ip.call(t.dictionary)==="[object ArrayBuffer]"?n=new Uint8Array(t.dictionary):n=t.dictionary,i=Nn.deflateSetDictionary(this.strm,n),i!==Di)throw new Error(sl[i]);this._dict_set=!0}}Jt.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?rl:By,typeof e=="string"?i.input=al.string2buf(e):Ip.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 Fn.Buf8(n),i.next_out=0,i.avail_out=n),r=Nn.deflate(i,a),r!==kp&&r!==Di)return this.onEnd(r),this.ended=!0,!1;(i.avail_out===0||i.avail_in===0&&(a===rl||a===Lp))&&(this.options.to==="string"?this.onData(al.buf2binstring(Fn.shrinkBuf(i.output,i.next_out))):this.onData(Fn.shrinkBuf(i.output,i.next_out)))}while((i.avail_in>0||i.avail_out===0)&&r!==kp);return a===rl?(r=Nn.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===Di):(a===Lp&&(this.onEnd(Di),i.avail_out=0),!0)};Jt.prototype.onData=function(e){this.chunks.push(e)};Jt.prototype.onEnd=function(e){e===Di&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Fn.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function ol(e,t){var i=new Jt(t);if(i.push(e,!0),i.err)throw i.msg||sl[i.err];return i.result}function Hy(e,t){return t=t||{},t.raw=!0,ol(e,t)}function Uy(e,t){return t=t||{},t.gzip=!0,ol(e,t)}$n.Deflate=Jt;$n.deflate=ol;$n.deflateRaw=Hy;$n.gzip=Uy});var Rp=C((P1,Pp)=>{"use strict";var Ta=30,qy=12;Pp.exports=function(t,i){var n,r,a,s,o,l,c,d,u,p,f,m,h,g,b,v,y,x,w,S,A,E,k,O,_;n=t.state,r=t.next_in,O=t.input,a=r+(t.avail_in-5),s=t.next_out,_=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,v=(1<<n.lenbits)-1,y=(1<<n.distbits)-1;e:do{h<15&&(m+=O[r++]<<h,h+=8,m+=O[r++]<<h,h+=8),x=g[m&v];t:for(;;){if(w=x>>>24,m>>>=w,h-=w,w=x>>>16&255,w===0)_[s++]=x&65535;else if(w&16){S=x&65535,w&=15,w&&(h<w&&(m+=O[r++]<<h,h+=8),S+=m&(1<<w)-1,m>>>=w,h-=w),h<15&&(m+=O[r++]<<h,h+=8,m+=O[r++]<<h,h+=8),x=b[m&y];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+=O[r++]<<h,h+=8,h<w&&(m+=O[r++]<<h,h+=8)),A+=m&(1<<w)-1,A>c){t.msg="invalid distance too far back",n.mode=Ta;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=Ta;break e}if(E=0,k=f,p===0){if(E+=d-w,w<S){S-=w;do _[s++]=f[E++];while(--w);E=s-A,k=_}}else if(p<w){if(E+=d+p-w,w-=p,w<S){S-=w;do _[s++]=f[E++];while(--w);if(E=0,p<S){w=p,S-=w;do _[s++]=f[E++];while(--w);E=s-A,k=_}}}else if(E+=p-w,w<S){S-=w;do _[s++]=f[E++];while(--w);E=s-A,k=_}for(;S>2;)_[s++]=k[E++],_[s++]=k[E++],_[s++]=k[E++],S-=3;S&&(_[s++]=k[E++],S>1&&(_[s++]=k[E++]))}else{E=s-A;do _[s++]=_[E++],_[s++]=_[E++],_[s++]=_[E++],S-=3;while(S>2);S&&(_[s++]=_[E++],S>1&&(_[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=Ta;break e}break}}else if((w&64)===0){x=g[(x&65535)+(m&(1<<w)-1)];continue t}else if(w&32){n.mode=qy;break e}else{t.msg="invalid literal/length code",n.mode=Ta;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 Fp=C((R1,Np)=>{"use strict";var Mp=st(),zi=15,jp=852,Dp=592,zp=0,ll=1,Bp=2,Gy=[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],Wy=[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],Yy=[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],Vy=[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];Np.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,v=0,y=0,x,w,S,A,E,k=null,O=0,_,T=new Mp.Buf16(zi+1),R=new Mp.Buf16(zi+1),B=null,M=0,L,P,F;for(d=0;d<=zi;d++)T[d]=0;for(u=0;u<r;u++)T[i[n+u]]++;for(m=c,f=zi;f>=1&&T[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&&T[p]===0;p++);for(m<p&&(m=p),b=1,d=1;d<=zi;d++)if(b<<=1,b-=T[d],b<0)return-1;if(b>0&&(t===zp||f!==1))return-1;for(R[1]=0,d=1;d<zi;d++)R[d+1]=R[d]+T[d];for(u=0;u<r;u++)i[n+u]!==0&&(o[R[i[n+u]]++]=u);if(t===zp?(k=B=o,_=19):t===ll?(k=Gy,O-=257,B=Wy,M-=257,_=256):(k=Yy,B=Vy,_=-1),y=0,u=0,d=p,E=s,h=m,g=0,S=-1,v=1<<m,A=v-1,t===ll&&v>jp||t===Bp&&v>Dp)return 1;for(;;){L=d-g,o[u]<_?(P=0,F=o[u]):o[u]>_?(P=B[M+o[u]],F=k[O+o[u]]):(P=96,F=0),x=1<<d-g,w=1<<h,p=w;do w-=x,a[E+(y>>g)+w]=L<<24|P<<16|F|0;while(w!==0);for(x=1<<d-1;y&x;)x>>=1;if(x!==0?(y&=x-1,y+=x):y=0,u++,--T[d]===0){if(d===f)break;d=i[n+o[u]]}if(d>m&&(y&A)!==S){for(g===0&&(g=m),E+=p,h=d-g,b=1<<h;h+g<f&&(b-=T[h+g],!(b<=0));)h++,b<<=1;if(v+=1<<h,t===ll&&v>jp||t===Bp&&v>Dp)return 1;S=y&A,a[S]=m<<24|h<<16|E-s|0}}return y!==0&&(a[E+y]=d-g<<24|64<<16|0),l.bits=m,0}});var _f=C(Oe=>{"use strict";var me=st(),hl=Xo(),Ge=Zo(),Ky=Rp(),Hn=Fp(),Xy=0,ff=1,hf=2,$p=4,Zy=5,ka=6,Qt=0,Jy=1,Qy=2,Se=-2,gf=-3,gl=-4,ex=-5,Hp=8,mf=1,Up=2,qp=3,Gp=4,Wp=5,Yp=6,Vp=7,Kp=8,Xp=9,Zp=10,Oa=11,ct=12,cl=13,Jp=14,dl=15,Qp=16,ef=17,tf=18,nf=19,La=20,Ia=21,rf=22,af=23,sf=24,of=25,lf=26,ul=27,cf=28,df=29,G=30,ml=31,tx=32,ix=852,nx=592,rx=15,ax=rx;function uf(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 bf(e){var t;return!e||!e.state?Se:(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(ix),t.distcode=t.distdyn=new me.Buf32(nx),t.sane=1,t.back=-1,Qt)}function vf(e){var t;return!e||!e.state?Se:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,bf(e))}function yf(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))?Se:(n.window!==null&&n.wbits!==t&&(n.window=null),n.wrap=i,n.wbits=t,vf(e))}function xf(e,t){var i,n;return e?(n=new sx,e.state=n,n.window=null,i=yf(e,t),i!==Qt&&(e.state=null),i):Se}function ox(e){return xf(e,ax)}var pf=!0,pl,fl;function lx(e){if(pf){var t;for(pl=new me.Buf32(512),fl=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(Hn(ff,e.lens,0,288,pl,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Hn(hf,e.lens,0,32,fl,0,e.work,{bits:5}),pf=!1}e.lencode=pl,e.lenbits=9,e.distcode=fl,e.distbits=5}function wf(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 cx(e,t){var i,n,r,a,s,o,l,c,d,u,p,f,m,h,g=0,b,v,y,x,w,S,A,E,k=new me.Buf8(4),O,_,T=[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 Se;i=e.state,i.mode===ct&&(i.mode=cl),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,E=Qt;e:for(;;)switch(i.mode){case mf:if(i.wrap===0){i.mode=cl;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,k[0]=c&255,k[1]=c>>>8&255,i.check=Ge(i.check,k,2,0),c=0,d=0,i.mode=Up;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=G;break}if((c&15)!==Hp){e.msg="unknown compression method",i.mode=G;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=G;break}i.dmax=1<<A,e.adler=i.check=1,i.mode=c&512?Zp:ct,c=0,d=0;break;case Up:for(;d<16;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}if(i.flags=c,(i.flags&255)!==Hp){e.msg="unknown compression method",i.mode=G;break}if(i.flags&57344){e.msg="unknown header flags set",i.mode=G;break}i.head&&(i.head.text=c>>8&1),i.flags&512&&(k[0]=c&255,k[1]=c>>>8&255,i.check=Ge(i.check,k,2,0)),c=0,d=0,i.mode=qp;case qp:for(;d<32;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}i.head&&(i.head.time=c),i.flags&512&&(k[0]=c&255,k[1]=c>>>8&255,k[2]=c>>>16&255,k[3]=c>>>24&255,i.check=Ge(i.check,k,4,0)),c=0,d=0,i.mode=Gp;case Gp: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&&(k[0]=c&255,k[1]=c>>>8&255,i.check=Ge(i.check,k,2,0)),c=0,d=0,i.mode=Wp;case Wp: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&&(k[0]=c&255,k[1]=c>>>8&255,i.check=Ge(i.check,k,2,0)),c=0,d=0}else i.head&&(i.head.extra=null);i.mode=Yp;case Yp: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=Ge(i.check,n,f,a)),o-=f,a+=f,i.length-=f),i.length))break e;i.length=0,i.mode=Vp;case Vp: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=Ge(i.check,n,f,a)),o-=f,a+=f,A)break e}else i.head&&(i.head.name=null);i.length=0,i.mode=Kp;case Kp: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=Ge(i.check,n,f,a)),o-=f,a+=f,A)break e}else i.head&&(i.head.comment=null);i.mode=Xp;case Xp: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=G;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=ct;break;case Zp:for(;d<32;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}e.adler=i.check=uf(c),c=0,d=0,i.mode=Oa;case Oa: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,Qy;e.adler=i.check=1,i.mode=ct;case ct:if(t===Zy||t===ka)break e;case cl:if(i.last){c>>>=d&7,d-=d&7,i.mode=ul;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=Jp;break;case 1:if(lx(i),i.mode=La,t===ka){c>>>=2,d-=2;break e}break;case 2:i.mode=ef;break;case 3:e.msg="invalid block type",i.mode=G}c>>>=2,d-=2;break;case Jp: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=G;break}if(i.length=c&65535,c=0,d=0,i.mode=dl,t===ka)break e;case dl:i.mode=Qp;case Qp: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=ct;break;case ef: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=G;break}i.have=0,i.mode=tf;case tf:for(;i.have<i.ncode;){for(;d<3;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}i.lens[T[i.have++]]=c&7,c>>>=3,d-=3}for(;i.have<19;)i.lens[T[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,O={bits:i.lenbits},E=Hn(Xy,i.lens,0,19,i.lencode,0,i.work,O),i.lenbits=O.bits,E){e.msg="invalid code lengths set",i.mode=G;break}i.have=0,i.mode=nf;case nf:for(;i.have<i.nlen+i.ndist;){for(;g=i.lencode[c&(1<<i.lenbits)-1],b=g>>>24,v=g>>>16&255,y=g&65535,!(b<=d);){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}if(y<16)c>>>=b,d-=b,i.lens[i.have++]=y;else{if(y===16){for(_=b+2;d<_;){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=G;break}A=i.lens[i.have-1],f=3+(c&3),c>>>=2,d-=2}else if(y===17){for(_=b+3;d<_;){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(_=b+7;d<_;){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=G;break}for(;f--;)i.lens[i.have++]=A}}if(i.mode===G)break;if(i.lens[256]===0){e.msg="invalid code -- missing end-of-block",i.mode=G;break}if(i.lenbits=9,O={bits:i.lenbits},E=Hn(ff,i.lens,0,i.nlen,i.lencode,0,i.work,O),i.lenbits=O.bits,E){e.msg="invalid literal/lengths set",i.mode=G;break}if(i.distbits=6,i.distcode=i.distdyn,O={bits:i.distbits},E=Hn(hf,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,O),i.distbits=O.bits,E){e.msg="invalid distances set",i.mode=G;break}if(i.mode=La,t===ka)break e;case La: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,Ky(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===ct&&(i.back=-1);break}for(i.back=0;g=i.lencode[c&(1<<i.lenbits)-1],b=g>>>24,v=g>>>16&255,y=g&65535,!(b<=d);){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}if(v&&(v&240)===0){for(x=b,w=v,S=y;g=i.lencode[S+((c&(1<<x+w)-1)>>x)],b=g>>>24,v=g>>>16&255,y=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=y,v===0){i.mode=lf;break}if(v&32){i.back=-1,i.mode=ct;break}if(v&64){e.msg="invalid literal/length code",i.mode=G;break}i.extra=v&15,i.mode=rf;case rf:if(i.extra){for(_=i.extra;d<_;){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=af;case af:for(;g=i.distcode[c&(1<<i.distbits)-1],b=g>>>24,v=g>>>16&255,y=g&65535,!(b<=d);){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}if((v&240)===0){for(x=b,w=v,S=y;g=i.distcode[S+((c&(1<<x+w)-1)>>x)],b=g>>>24,v=g>>>16&255,y=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,v&64){e.msg="invalid distance code",i.mode=G;break}i.offset=y,i.extra=v&15,i.mode=sf;case sf:if(i.extra){for(_=i.extra;d<_;){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=G;break}i.mode=of;case of: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=G;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 lf:if(l===0)break e;r[s++]=i.length,l--,i.mode=Ia;break;case ul: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?Ge(i.check,r,p,s-p):hl(i.check,r,p,s-p)),p=l,(i.flags?c:uf(c))!==i.check){e.msg="incorrect data check",i.mode=G;break}c=0,d=0}i.mode=cf;case cf: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=G;break}c=0,d=0}i.mode=df;case df:E=Jy;break e;case G:E=gf;break e;case ml:return gl;case tx:default:return Se}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<G&&(i.mode<ul||t!==$p))&&wf(e,e.output,e.next_out,p-e.avail_out)?(i.mode=ml,gl):(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?Ge(i.check,r,p,e.next_out-p):hl(i.check,r,p,e.next_out-p)),e.data_type=i.bits+(i.last?64:0)+(i.mode===ct?128:0)+(i.mode===La||i.mode===dl?256:0),(u===0&&p===0||t===$p)&&E===Qt&&(E=ex),E)}function dx(e){if(!e||!e.state)return Se;var t=e.state;return t.window&&(t.window=null),e.state=null,Qt}function ux(e,t){var i;return!e||!e.state||(i=e.state,(i.wrap&2)===0)?Se:(i.head=t,t.done=!1,Qt)}function px(e,t){var i=t.length,n,r,a;return!e||!e.state||(n=e.state,n.wrap!==0&&n.mode!==Oa)?Se:n.mode===Oa&&(r=1,r=hl(r,t,i,0),r!==n.check)?gf:(a=wf(e,t,i,i),a?(n.mode=ml,gl):(n.havedict=1,Qt))}Oe.inflateReset=vf;Oe.inflateReset2=yf;Oe.inflateResetKeep=bf;Oe.inflateInit=ox;Oe.inflateInit2=xf;Oe.inflate=cx;Oe.inflateEnd=dx;Oe.inflateGetHeader=ux;Oe.inflateSetDictionary=px;Oe.inflateInfo="pako inflate (from Nodeca project)"});var bl=C((j1,Ef)=>{"use strict";Ef.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 Af=C((D1,Sf)=>{"use strict";function fx(){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}Sf.exports=fx});var Tf=C(qn=>{"use strict";var Bi=_f(),Un=st(),Pa=il(),K=bl(),vl=ya(),hx=nl(),gx=Af(),Cf=Object.prototype.toString;function ei(e){if(!(this instanceof ei))return new ei(e);this.options=Un.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 hx,this.strm.avail_out=0;var i=Bi.inflateInit2(this.strm,t.windowBits);if(i!==K.Z_OK)throw new Error(vl[i]);if(this.header=new gx,Bi.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Pa.string2buf(t.dictionary):Cf.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(i=Bi.inflateSetDictionary(this.strm,t.dictionary),i!==K.Z_OK)))throw new Error(vl[i])}ei.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?K.Z_FINISH:K.Z_NO_FLUSH,typeof e=="string"?i.input=Pa.binstring2buf(e):Cf.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),a=Bi.inflate(i,K.Z_NO_FLUSH),a===K.Z_NEED_DICT&&r&&(a=Bi.inflateSetDictionary(this.strm,r)),a===K.Z_BUF_ERROR&&d===!0&&(a=K.Z_OK,d=!1),a!==K.Z_STREAM_END&&a!==K.Z_OK)return this.onEnd(a),this.ended=!0,!1;i.next_out&&(i.avail_out===0||a===K.Z_STREAM_END||i.avail_in===0&&(s===K.Z_FINISH||s===K.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&&Un.arraySet(i.output,i.output,o,l,0),this.onData(c)):this.onData(Un.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!==K.Z_STREAM_END);return a===K.Z_STREAM_END&&(s=K.Z_FINISH),s===K.Z_FINISH?(a=Bi.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===K.Z_OK):(s===K.Z_SYNC_FLUSH&&(this.onEnd(K.Z_OK),i.avail_out=0),!0)};ei.prototype.onData=function(e){this.chunks.push(e)};ei.prototype.onEnd=function(e){e===K.Z_OK&&(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 yl(e,t){var i=new ei(t);if(i.push(e,!0),i.err)throw i.msg||vl[i.err];return i.result}function mx(e,t){return t=t||{},t.raw=!0,yl(e,t)}qn.Inflate=ei;qn.inflate=yl;qn.inflateRaw=mx;qn.ungzip=yl});var If=C((B1,Lf)=>{"use strict";var bx=st().assign,vx=Op(),yx=Tf(),xx=bl(),kf={};bx(kf,vx,yx,xx);Lf.exports=kf});var Pf=C(Ma=>{"use strict";var wx=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Uint32Array!="undefined",_x=If(),Of=Y(),Ra=ge(),Ex=wx?"uint8array":"array";Ma.magic="\b\0";function ti(e,t){Ra.call(this,"FlateWorker/"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}Of.inherits(ti,Ra);ti.prototype.processChunk=function(e){this.meta=e.meta,this._pako===null&&this._createPako(),this._pako.push(Of.transformTo(Ex,e.data),!1)};ti.prototype.flush=function(){Ra.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)};ti.prototype.cleanUp=function(){Ra.prototype.cleanUp.call(this),this._pako=null};ti.prototype._createPako=function(){this._pako=new _x[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}};Ma.compressWorker=function(e){return new ti("Deflate",e)};Ma.uncompressWorker=function(){return new ti("Inflate",{})}});var wl=C(xl=>{"use strict";var Rf=ge();xl.STORE={magic:"\0\0",compressWorker:function(){return new Rf("STORE compression")},uncompressWorker:function(){return new Rf("STORE decompression")}};xl.DEFLATE=Pf()});var _l=C(ii=>{"use strict";ii.LOCAL_FILE_HEADER="PK";ii.CENTRAL_FILE_HEADER="PK";ii.CENTRAL_DIRECTORY_END="PK";ii.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07";ii.ZIP64_CENTRAL_DIRECTORY_END="PK";ii.DATA_DESCRIPTOR="PK\x07\b"});var zf=C((H1,Df)=>{"use strict";var Ni=Y(),Fi=ge(),El=Ti(),Mf=ha(),ja=_l(),U=function(e,t){var i="",n;for(n=0;n<t;n++)i+=String.fromCharCode(e&255),e=e>>>8;return i},Sx=function(e,t){var i=e;return e||(i=t?16893:33204),(i&65535)<<16},Ax=function(e){return(e||0)&63},jf=function(e,t,i,n,r,a){var s=e.file,o=e.compression,l=a!==El.utf8encode,c=Ni.transformTo("string",a(s.name)),d=Ni.transformTo("string",El.utf8encode(s.name)),u=s.comment,p=Ni.transformTo("string",a(u)),f=Ni.transformTo("string",El.utf8encode(u)),m=d.length!==s.name.length,h=f.length!==u.length,g,b,v="",y="",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 E=0;t&&(E|=8),!l&&(m||h)&&(E|=2048);var k=0,O=0;w&&(k|=16),r==="UNIX"?(O=798,k|=Sx(s.unixPermissions,w)):(O=20,k|=Ax(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&&(y=U(1,1)+U(Mf(c),4)+d,v+="up"+U(y.length,2)+y),h&&(x=U(1,1)+U(Mf(p),4)+f,v+="uc"+U(x.length,2)+x);var _="";_+=`
|
|
2
|
-
\0`,_+=U(E,2),_+=o.magic,_+=U(g,2),_+=U(b,2),_+=U(A.crc32,4),_+=U(A.compressedSize,4),_+=U(A.uncompressedSize,4),_+=U(c.length,2),_+=U(v.length,2);var T=ja.LOCAL_FILE_HEADER+_+c+v,R=ja.CENTRAL_FILE_HEADER+U(O,2)+_+U(p.length,2)+"\0\0\0\0"+U(k,4)+U(n,4)+c+v+p;return{fileRecord:T,dirRecord:R}},Cx=function(e,t,i,n,r){var a="",s=Ni.transformTo("string",r(n));return a=ja.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},Tx=function(e){var t="";return t=ja.DATA_DESCRIPTOR+U(e.crc32,4)+U(e.compressedSize,4)+U(e.uncompressedSize,4),t};function Pe(e,t,i,n){Fi.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(Pe,Fi);Pe.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,Fi.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:i?(t+100*(i-n-1))/i:100}}))};Pe.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var i=jf(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:i.fileRecord,meta:{percent:0}})}else this.accumulate=!0};Pe.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,i=jf(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(i.dirRecord),t)this.push({data:Tx(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};Pe.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=Cx(this.dirRecords.length,i,e,this.zipComment,this.encodeFileName);this.push({data:n,meta:{percent:100}})};Pe.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()};Pe.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};Pe.prototype.resume=function(){if(!Fi.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};Pe.prototype.error=function(e){var t=this._sources;if(!Fi.prototype.error.call(this,e))return!1;for(var i=0;i<t.length;i++)try{t[i].error(e)}catch{}return!0};Pe.prototype.lock=function(){Fi.prototype.lock.call(this);for(var e=this._sources,t=0;t<e.length;t++)e[t].lock()};Df.exports=Pe});var Nf=C(Bf=>{"use strict";var kx=wl(),Lx=zf(),Ix=function(e,t){var i=e||t,n=kx[i];if(!n)throw new Error(i+" is not a valid compression method !");return n};Bf.generateWorker=function(e,t,i){var n=new Lx(t.streamFiles,i,t.platform,t.encodeFileName),r=0;try{e.forEach(function(a,s){r++;var o=Ix(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 $f=C((q1,Ff)=>{"use strict";var Ox=Y(),Da=ge();function Gn(e,t){Da.call(this,"Nodejs stream input adapter for "+e),this._upstreamEnded=!1,this._bindStream(t)}Ox.inherits(Gn,Da);Gn.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()})};Gn.prototype.pause=function(){return Da.prototype.pause.call(this)?(this._stream.pause(),!0):!1};Gn.prototype.resume=function(){return Da.prototype.resume.call(this)?(this._upstreamEnded?this.end():this._stream.resume(),!0):!1};Ff.exports=Gn});var Zf=C((G1,Xf)=>{"use strict";var Px=Ti(),Wn=Y(),Gf=ge(),Rx=ko(),Wf=Lo(),Hf=ga(),Mx=Hu(),jx=Nf(),Uf=wn(),Dx=$f(),Yf=function(e,t,i){var n=Wn.getTypeOf(t),r,a=Wn.extend(i||{},Wf);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=Vf(e)),a.createFolders&&(r=zx(e))&&Kf.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 Hf&&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 Hf||t instanceof Gf?l=t:Uf.isNode&&Uf.isStream(t)?l=new Dx(e,t):l=Wn.prepareContent(e,t,a.binary,a.optimizedBinaryString,a.base64);var c=new Mx(e,l,a);this.files[e]=c},zx=function(e){e.slice(-1)==="/"&&(e=e.substring(0,e.length-1));var t=e.lastIndexOf("/");return t>0?e.substring(0,t):""},Vf=function(e){return e.slice(-1)!=="/"&&(e+="/"),e},Kf=function(e,t){return t=typeof t!="undefined"?t:Wf.createFolders,e=Vf(e),this.files[e]||Yf.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]};function qf(e){return Object.prototype.toString.call(e)==="[object RegExp]"}var Bx={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(qf(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,Yf.call(this,e,t,i);return this},folder:function(e){if(!e)return this;if(qf(e))return this.filter(function(r,a){return a.dir&&e.test(r)});var t=this.root+e,i=Kf.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=Wn.extend(e||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:Px.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.");Wn.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=jx.generateWorker(this,i,n)}catch(r){t=new Gf("error"),t.error(r)}return new Rx(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)}};Xf.exports=Bx});var Sl=C((W1,Qf)=>{"use strict";var Nx=Y();function Jf(e){this.data=e,this.length=e.length,this.index=0,this.zero=0}Jf.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 Nx.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))}};Qf.exports=Jf});var Al=C((Y1,th)=>{"use strict";var eh=Sl(),Fx=Y();function $i(e){eh.call(this,e);for(var t=0;t<this.data.length;t++)e[t]=e[t]&255}Fx.inherits($i,eh);$i.prototype.byteAt=function(e){return this.data[this.zero+e]};$i.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};$i.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]};$i.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};th.exports=$i});var rh=C((V1,nh)=>{"use strict";var ih=Sl(),$x=Y();function Hi(e){ih.call(this,e)}$x.inherits(Hi,ih);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};nh.exports=Hi});var Tl=C((K1,sh)=>{"use strict";var ah=Al(),Hx=Y();function Cl(e){ah.call(this,e)}Hx.inherits(Cl,ah);Cl.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};sh.exports=Cl});var ch=C((X1,lh)=>{"use strict";var oh=Tl(),Ux=Y();function kl(e){oh.call(this,e)}Ux.inherits(kl,oh);kl.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};lh.exports=kl});var Ll=C((Z1,uh)=>{"use strict";var za=Y(),dh=rt(),qx=Al(),Gx=rh(),Wx=ch(),Yx=Tl();uh.exports=function(e){var t=za.getTypeOf(e);return za.checkSupport(t),t==="string"&&!dh.uint8array?new Gx(e):t==="nodebuffer"?new Wx(e):dh.uint8array?new Yx(za.transformTo("uint8array",e)):new qx(za.transformTo("array",e))}});var gh=C((J1,hh)=>{"use strict";var Il=Ll(),kt=Y(),Vx=ga(),ph=ha(),Ba=Ti(),Na=wl(),Kx=rt(),Xx=0,Zx=3,Jx=function(e){for(var t in Na)if(Object.prototype.hasOwnProperty.call(Na,t)&&Na[t].magic===e)return Na[t];return null};function fh(e,t){this.options=e,this.loadOptions=t}fh.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=Jx(this.compressionMethod),t===null)throw new Error("Corrupted zip : compression "+kt.pretty(this.compressionMethod)+" unknown (inner file : "+kt.transformTo("string",this.fileName)+")");this.decompressed=new Vx(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===Xx&&(this.dosPermissions=this.externalFileAttributes&63),e===Zx&&(this.unixPermissions=this.externalFileAttributes>>16&65535),!this.dir&&this.fileNameStr.slice(-1)==="/"&&(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=Il(this.extraFields[1].value);this.uncompressedSize===kt.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===kt.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===kt.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===kt.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=Kx.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=kt.transformTo(e,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(i)}var n=this.findExtraFieldUnicodeComment();if(n!==null)this.fileCommentStr=n;else{var r=kt.transformTo(e,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(r)}}},findExtraFieldUnicodePath:function(){var e=this.extraFields[28789];if(e){var t=Il(e.value);return t.readInt(1)!==1||ph(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=Il(e.value);return t.readInt(1)!==1||ph(this.fileComment)!==t.readInt(4)?null:Ba.utf8decode(t.readData(e.length-5))}return null}};hh.exports=fh});var vh=C((Q1,bh)=>{"use strict";var Qx=Ll(),dt=Y(),Re=_l(),ew=gh(),tw=rt();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 ("+dt.pretty(t)+", expected "+dt.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=tw.uint8array?"uint8array":"array",i=dt.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(Re.LOCAL_FILE_HEADER),t.readLocalPart(this.reader),t.handleUTF8(),t.processAttributes()},readCentralDir:function(){var e;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(Re.CENTRAL_FILE_HEADER);)e=new ew({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(Re.CENTRAL_DIRECTORY_END);if(e<0){var t=!this.isSignature(0,Re.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(Re.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===dt.MAX_VALUE_16BITS||this.diskWithCentralDirStart===dt.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===dt.MAX_VALUE_16BITS||this.centralDirRecords===dt.MAX_VALUE_16BITS||this.centralDirSize===dt.MAX_VALUE_32BITS||this.centralDirOffset===dt.MAX_VALUE_32BITS){if(this.zip64=!0,e=this.reader.lastIndexOfSignature(Re.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(Re.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,Re.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(Re.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(Re.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,Re.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=Qx(e)},load:function(e){this.prepareReader(e),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}};bh.exports=mh});var wh=C((eE,xh)=>{"use strict";var Ol=Y(),Fa=Si(),iw=Ti(),nw=vh(),rw=Po(),yh=wn();function aw(e){return new Fa.Promise(function(t,i){var n=e.decompressed.getContentWorker().pipe(new rw);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()})}xh.exports=function(e,t){var i=this;return t=Ol.extend(t||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:iw.utf8decode}),yh.isNode&&yh.isStream(e)?Fa.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):Ol.prepareContent("the loaded zip file",e,!0,t.optimizedBinaryString,t.base64).then(function(n){var r=new nw(t);return r.load(n),r}).then(function(r){var a=[Fa.Promise.resolve(r)],s=r.files;if(t.checkCRC32)for(var o=0;o<s.length;o++)a.push(aw(s[o]));return Fa.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=Ol.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 Eh=C((tE,_h)=>{"use strict";function Ae(){if(!(this instanceof Ae))return new Ae;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 Ae;for(var t in this)typeof this[t]!="function"&&(e[t]=this[t]);return e}}Ae.prototype=Zf();Ae.prototype.loadAsync=wh();Ae.support=rt();Ae.defaults=Lo();Ae.version="3.10.1";Ae.loadAsync=function(e,t){return new Ae().loadAsync(e,t)};Ae.external=Si();_h.exports=Ae});var cg={};rn(cg,{AssetEditorModal:()=>rc});var rc,ac=Ye(()=>{"use strict";rc=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 Bg=Object.create;var dr=Object.defineProperty;var Fg=Object.getOwnPropertyDescriptor;var Hg=Object.getOwnPropertyNames;var $g=Object.getPrototypeOf,Ug=Object.prototype.hasOwnProperty;var Ye=(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)dr(e,i,{get:t[i],enumerable:!0})},Cc=(e,t,i,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Hg(t))!Ug.call(e,r)&&r!==i&&dr(e,r,{get:()=>t[r],enumerable:!(n=Fg(t,r))||n.enumerable});return e};var li=(e,t,i)=>(i=e!=null?Bg($g(e)):{},Cc(t||!e||!e.__esModule?dr(i,"default",{value:e,enumerable:!0}):i,e)),qg=e=>Cc(dr({},"__esModule",{value:!0}),e);var Ve,vs=Ye(()=>{"use strict";Ve=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()}};Ve.store=new Map});function Vg(){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 Kg(){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 Xg(){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 Zg(){if(console.log(`[AssetLoader] getInlineAssets() called - Effective mode: ${Y}`),Object.keys(Ke).length>0)return console.log("[AssetLoader] Returning cached inline assets:",Object.keys(Ke)),Ke;if(typeof window!="undefined"&&window.INLINE_ASSETS)return console.log("[AssetLoader] Using pre-loaded INLINE_ASSETS from window:",Object.keys(window.INLINE_ASSETS)),Ke={...window.INLINE_ASSETS},Ke;if(!(Y==="publish"&&ze!==!1))return console.log("[AssetLoader] Inline assets disabled for this build mode."),Ke;if(!xs){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),xs=(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 Ke=await xs,console.log("[AssetLoader] Final inline assets cache:",Object.keys(Ke)),Ke}function ws(e){return e===null||typeof e!="object"||(Object.freeze(e),Object.values(e).forEach(t=>ws(t))),e}function Jg(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),Xe.Texture.from(n)}function _s(e,t){Jc.set(e,t)}var Xe,Xc,Zc,jt,Y,ze,gt,Ke,xs,Jc,Dt,hr=Ye(()=>{"use strict";Xe=require("pixi.js");vs();Xc=typeof __BUILD_MODE__!="undefined"?__BUILD_MODE__:"undefined",Zc=Vg(),jt=typeof window!="undefined"?window.__BUILD_SETTINGS__:null,Y=Zc?"publish":Xc,ze=jt==null?void 0:jt.assetsInlined;jt!=null&&jt.buildMode&&(Y=jt.buildMode,console.log(`[AssetLoader] Build mode overridden by inline settings: ${Y}`));gt=Xg();gt!=null&>.buildMode&&(Y=gt.buildMode,console.log(`[AssetLoader] Build mode overridden by sync settings: ${Y}`));(gt==null?void 0:gt.assetsInlined)!==void 0&&(ze=gt.assetsInlined);Kg().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&&(ze=e.assetsInlined)}).catch(()=>{});console.log(`[AssetLoader] MODULE LOADED - Compile: ${Xc}, Runtime: ${Zc?"publish":"dev"}, Effective: ${Y}`);Ke={},xs=null;Jc=new Map;Dt=class{static async load(t,i,n,r){let a=`${t}:${i.path}`,s=Ve.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 Zg(),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"&&ze!==!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=Jc.get(i.type);if(d)try{let u=await d(i.path,l,t,n);return Ve.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=ws(u);break;default:throw new Error(`Unknown asset type: ${i.type}`)}return Ve.set(a,u),u}catch(u){return this.handleFailure(t,i.type,u)}}static async loadImage(t,i){let n=Y==="publish",r=n&&ze!==!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 Xe.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 Xe.Assets.load(i)}catch(a){return console.error("[AssetLoader] Failed to load texture from data URI, falling back to path:",a),await Xe.Assets.load(t)}return await Xe.Assets.load(t)}static async loadJSON(t,i){let n=Y==="publish",r=n&&ze!==!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"?Jg():ws({__placeholder:!0,type:i});return Ve.set(t+":"+((n==null?void 0:n.path)||"missing"),a),a}throw n}};_s("image",async(e,t)=>{let i=Y==="publish",n=i&&ze!==!1,r=Y==="brand",a=i&&ze===!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 Xe.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}"`))),Xe.Assets.load(t||s)});_s("json",async(e,t)=>{let i=Y==="publish",n=i&&ze!==!1,r=Y==="brand",a=i&&ze===!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 ed={};nn(ed,{AssetTextures:()=>Ne,initAssetTextures:()=>As});function As(e,t){Qc.init(e,t),typeof window!="undefined"&&(window.__AssetTextures=Ne)}var Ss,Qc,Ne,pi=Ye(()=>{"use strict";hr();Ss=class{constructor(){this.textures=new Map;this.readyPromise=null;this.priorityReadyPromise=null;this.priorityReadyResolve=null;this.config=null;this.app=null}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.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 Dt.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)}};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()}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())}},Qc=new Ss,Ne=new Proxy(Qc,{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 Lr={};nn(Lr,{applyConfigOverride:()=>fe,applyConfigOverrides:()=>Nt,applyConfigsToDisk:()=>Tr,clearConfigOverrides:()=>dn,clearConfigOverridesForObject:()=>pd,configOverrideManager:()=>fd,deepClone:()=>ne,exportConfigsAsJSON:()=>Os,getConfigOverrides:()=>de,getConfigStateSummary:()=>Cr,getOverrideMode:()=>cn,removeConfigOverride:()=>Ar,resetToApplied:()=>un,resetToOriginal:()=>kr,setOverrideMode:()=>Ls});function Er(){return typeof window=="undefined"?null:window.__editableConfig||null}function od(){return typeof window=="undefined"?null:window.__editableConfigBaseline||null}function ad(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 Em(e,t,i){if(e){if(e instanceof Map){e.set(t,i);return}typeof e=="object"&&(e[t]=i)}}function ld(e,t){for(let i of t)ln(e,i.path,i.value)}function cd(e){var o;if(typeof window=="undefined")return;let t=Er();if(!t)return;let i=od(),n=(o=i?ad(i.objects,e):null)!=null?o:ad(t.objects,e);if(!n)return;let r=ne(n),a=de().filter(l=>l.objectId===e);try{ld(r,a)}catch(l){console.error("[CONFIG] Failed to reapply overrides for object",e,l);return}Em(t.objects,e,r);let s=window.applyEditableObjectConfig;if(typeof s=="function")try{s(e,r)}catch{}}function Sm(){var r;if(typeof window=="undefined")return;let e=Er();if(!(e!=null&&e.engine))return;let t=od(),i=ne(((r=t==null?void 0:t.engine)!=null?r:e.engine)||{}),n=de().filter(a=>!a.objectId&&!a.sceneId);try{ld(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 Am(){if(typeof window=="undefined")return"unknown";let e=window;return typeof e.__HANDLER_PROJECT_ID=="string"?e.__HANDLER_PROJECT_ID:"handler-default"}function dd(){return`handler_preview_config_overrides::${Am()}`}function Cm(){if(typeof window=="undefined")return[];try{let e=window.localStorage.getItem(dd());if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}function Sr(e){if(typeof window!="undefined")try{window.localStorage.setItem(dd(),JSON.stringify(e))}catch{}}function cn(){return typeof window=="undefined"?!1:window.__enableConfigOverrides===!0}function Ls(e){if(typeof window!="undefined"){window.__enableConfigOverrides=e;try{window.localStorage.setItem(ud,e?"true":"false")}catch{}}}function fe(e,t={}){var u,p;let{objectId:i,path:n,value:r}=e,{silent:a=!1,persist:s=!0}=t,o=Er();if(!o){console.warn("[CONFIG] applyConfigOverride: No editable config found in window.__editableConfig");return}let l=i?(p=(u=o.objects)==null?void 0:u.get)==null?void 0:p.call(u,i):o.engine;if(!l){console.warn("[CONFIG] applyConfigOverride: Override target not found:",{objectId:i,path:n,hasObjects:!!o.objects});return}console.log("[CONFIG] applyConfigOverride: Target found, applying...",{objectId:i,path:n,value:r});let c;try{c=km(l,n),ln(l,n,r)}catch(f){console.error("[CONFIG] applyConfigOverride failed:",{objectId:i,path:n,value:r},f);return}window.__configChanges=window.__configChanges||[];let d=window.__configChanges;if(d.push({objectId:i,path:n,oldValue:c,newValue:r,ts:Date.now()}),d.length>Tm&&d.shift(),s){let f=de(),m=f.findIndex(h=>h.objectId===i&&h.sceneId===e.sceneId&&h.path===n);m>=0?f[m].value=r:f.push(e),window.__configOverrides=f,Sr(f),cn()||Ls(!0)}a||console.log("[CONFIG] Applied override:",e),typeof window!="undefined"&&window.dispatchEvent(new CustomEvent("config:changed",{detail:e}))}function Nt(e,t={}){e.forEach(i=>fe(i,t))}function dn(){window.__configOverrides=[],window.__configChanges=[],Sr([]),console.log("[CONFIG] Cleared all overrides")}function pd(e){let t=de().filter(n=>n.objectId!==e);window.__configOverrides=t,Sr(t);let i=window.__configChanges||[];window.__configChanges=i.filter(n=>n.objectId!==e),cd(e),window.dispatchEvent(new CustomEvent("config:changed",{detail:{action:"clear_object",objectId:e}}))}function Ar(e,t){let i=de().filter(r=>r.objectId!==e||r.path!==t);window.__configOverrides=i,Sr(i);let n=window.__configChanges||[];window.__configChanges=n.filter(r=>r.objectId!==e||r.path!==t),e?cd(e):Sm(),window.dispatchEvent(new CustomEvent("config:changed",{detail:{action:"remove",objectId:e,path:t}}))}function de(){return typeof window=="undefined"?[]:(window.__configOverrides||(window.__configOverrides=Cm()),window.__configOverrides||[])}function ln(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 km(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 Os(){let e=window.__editableConfigBaseline;if(!e){let t=window.__editableConfig;if(!t)throw new Error("Cannot export: no config loaded");return sd(t)}return sd(e)}function sd(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]={}),ln(t.objects[a.objectId],a.path,a.value)):a.sceneId?(t.scenes[a.sceneId]||(t.scenes[a.sceneId]={}),ln(t.scenes[a.sceneId],a.path,a.value)):ln(t.engine,a.path,a.value);return t}function Cr(){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 Tr(e){let t=Os(),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"}`)}dn();try{let r=Er();r&&(window.__editableConfigBaseline=ne(r))}catch{}localStorage.setItem("handler_last_applied",Date.now().toString()),console.log("[Config Persistence] \u2705 Applied to disk successfully")}function un(){dn(),window.location.reload()}async function kr(){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"}`)}dn(),window.location.reload()}var ud,Tm,fd,ke=Ye(()=>{"use strict";ud="handler_preview_override_mode";if(typeof window!="undefined"){let e=window.localStorage.getItem(ud);window.__enableConfigOverrides=e===null?!0:e==="true"}Tm=500;fd={getCurrentConfig(){return window.__editableConfig||null},getChanges(){return window.__configChanges||[]},clearChanges(){window.__configChanges=[]}}});function Lm(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 Om(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=Lm(s,a);if(o!==null)return o}}return null}async function pn(e){if(Is.has(e)&&!Ps)return console.log(`[CONFIG] Using cached config for: "${e}"`),Is.get(e);if(console.log(`[CONFIG] loadConfigFile called with: "${e}", MODE: ${G.toUpperCase()}, CACHE: ${Ps?"DISABLED":"ENABLED"}`),G==="publish"){let n=Om(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 Is.set(e,i),i}async function Or(){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 pn(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 bt(e){console.log(`[CONFIG] Loading object config: ${e}`);let t=G==="publish"||G==="brand"?`${e}.json`:`configs/objects/${e}.json`;return await pn(t)}async function Ir(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 bt(n);(!r||Object.keys(r).length===0)&&n!==i.instance_id&&(r=await bt(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 bt(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 Pr(){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 pn(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 Rs(){return await pn(G==="publish"||G==="brand"?"game.prompt.json":"configs/engine/game.prompt.json")}async function Rr(e="scene.main"){console.log(`[CONFIG] Loading scene config: ${e}`);let t=G==="publish"||G==="brand"?`${e}.json`:`configs/scenes/${e}.json`;return await pn(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 we(e,t,i,n){return typeof e!="number"||!Number.isFinite(e)?t:Math.min(Math.max(e,i),n)}function gd(e,t){if(Array.isArray(e))return{x:we(e[0],t.x,-2e3,2e3),y:we(e[1],t.y,-2e3,2e3)};if(!e||typeof e!="object")return t;let{x:i,y:n}=e;return{x:we(i,t.x,-2e3,2e3),y:we(n,t.y,-2e3,2e3)}}function Im(e,t){if(Array.isArray(e))return{x:we(e[0],t.x,0,1),y:we(e[1],t.y,0,1)};if(!e||typeof e!="object")return t;let{x:i,y:n}=e;return{x:we(i,t.x,0,1),y:we(n,t.y,0,1)}}function Pm(e){if(Array.isArray(e))return{x:we(e[0],.5,-10,10),y:we(e[1],.5,-10,10)};if(e&&typeof e=="object"){let{x:t,y:i}=e;return{x:we(t,.5,-10,10),y:we(i,.5,-10,10)}}return typeof e=="string"?e:null}async function et(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 Or(),n=de();n.length>0&&console.log(`[CONFIG] Applying ${n.length} active overrides`);let r=await Rr(e);console.log(`[CONFIG] Scene config loaded: ${((l=r.objects)==null?void 0:l.length)||0} objects`);let a=await Pr();console.log("[CONFIG] Loading object configs...");let s=await Ir(r);console.log(`[CONFIG] Loaded ${s.size} object configs:`,Array.from(s.keys()));for(let[S,C]of s.entries()){let _=Bt(C,i),T=fi(_,i);T.valid||console.warn(`Object ${S} validation errors:`,T.errors),(c=_.transform)!=null&&c.position&&(_.transform.position=gd(_.transform.position,{x:0,y:0})),(d=_.transform)!=null&&d.offset&&(_.transform.offset=gd(_.transform.offset,{x:0,y:0})),((u=_.transform)==null?void 0:u.anchor)!==void 0&&(_.transform.anchor=Pm(_.transform.anchor)),((p=_.transform)==null?void 0:p.position_ratio)!==void 0&&_.transform.position_ratio!==null&&(_.transform.position_ratio=Im(_.transform.position_ratio,{x:.5,y:.5})),s.set(S,_)}if(t){if(t.objects)for(let[S,C]of t.objects.entries())s.set(S,C);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&&cn()&&Nt(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 Ms(e){var i,n,r,a,s,o,l,c,d,u,p,f,m,h,g,b,y,v,x,w,S,C,_,T,R,E,L,z,D,B,O,M,A;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=((C=j.transform)==null?void 0:C.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=((M=e.engine.runtime)==null?void 0:M.ui)||{},t.theme=((A=e.engine.runtime)==null?void 0:A.theme)||{},t.assets=e.engine.assets||{},t}var hd,G,Is,Ps,js=Ye(()=>{"use strict";ke();hd=null,G="dev";if(typeof window!="undefined"){let e=window.__BUILD_SETTINGS__;if(e!=null&&e.buildMode)hd=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);hd=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);Is=new Map,Ps=G==="dev"||typeof window!="undefined"&&window.location.search.includes("hot-reload")});function Ds(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 zs(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 fn,Ft,Ns=Ye(()=>{"use strict";fn=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 Fs(e){if(typeof window=="undefined")return;let t=typeof Bs!="undefined"&&!!Bs.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 bt(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 et("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&&Bs.hot.on("config-change",()=>{f({type:"hmr"})}),i&&(l(e.activeConfig),console.log(`[GAME] Hot-reload watcher enabled (${o.size} files)`))}var Bs,md=Ye(()=>{"use strict";Ns();js();Bs={}});var bd={};nn(bd,{ConfigWatcher:()=>Ft,DefaultReloadStrategy:()=>fn,applyDefaults:()=>Bt,diffConfigs:()=>Ds,loadAllObjectConfigs:()=>Ir,loadComponentSchemas:()=>Or,loadEngineConfig:()=>Pr,loadGamePromptConfig:()=>Rs,loadObjectCentricConfig:()=>et,loadObjectConfig:()=>bt,loadSceneConfig:()=>Rr,rehydrateObject:()=>zs,setupHotReload:()=>Fs,toLegacyFormat:()=>Ms,validateObjectConfig:()=>fi});var Mr=Ye(()=>{"use strict";js();Ns();md()});var hn=k((K_,qs)=>{"use strict";typeof process=="undefined"||!process.version||process.version.indexOf("v0.")===0||process.version.indexOf("v1.")===0&&process.version.indexOf("v1.8.")!==0?qs.exports={nextTick:jm}:qs.exports=process;function jm(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 vd=k((X_,yd)=>{"use strict";var Dm={}.toString;yd.exports=Array.isArray||function(e){return Dm.call(e)=="[object Array]"}});var Gs=k((Z_,xd)=>{"use strict";xd.exports=require("stream")});var gn=k((Ws,_d)=>{"use strict";var Xr=require("buffer"),tt=Xr.Buffer;function wd(e,t){for(var i in e)t[i]=e[i]}tt.from&&tt.alloc&&tt.allocUnsafe&&tt.allocUnsafeSlow?_d.exports=Xr:(wd(Xr,Ws),Ws.Buffer=gi);function gi(e,t,i){return tt(e,t,i)}wd(tt,gi);gi.from=function(e,t,i){if(typeof e=="number")throw new TypeError("Argument must not be a number");return tt(e,t,i)};gi.alloc=function(e,t,i){if(typeof e!="number")throw new TypeError("Argument must be a number");var n=tt(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 tt(e)};gi.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return Xr.SlowBuffer(e)}});var mi=k(oe=>{"use strict";function zm(e){return Array.isArray?Array.isArray(e):Zr(e)==="[object Array]"}oe.isArray=zm;function Nm(e){return typeof e=="boolean"}oe.isBoolean=Nm;function Bm(e){return e===null}oe.isNull=Bm;function Fm(e){return e==null}oe.isNullOrUndefined=Fm;function Hm(e){return typeof e=="number"}oe.isNumber=Hm;function $m(e){return typeof e=="string"}oe.isString=$m;function Um(e){return typeof e=="symbol"}oe.isSymbol=Um;function qm(e){return e===void 0}oe.isUndefined=qm;function Gm(e){return Zr(e)==="[object RegExp]"}oe.isRegExp=Gm;function Wm(e){return typeof e=="object"&&e!==null}oe.isObject=Wm;function Ym(e){return Zr(e)==="[object Date]"}oe.isDate=Ym;function Vm(e){return Zr(e)==="[object Error]"||e instanceof Error}oe.isError=Vm;function Km(e){return typeof e=="function"}oe.isFunction=Km;function Xm(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"||typeof e=="symbol"||typeof e=="undefined"}oe.isPrimitive=Xm;oe.isBuffer=require("buffer").Buffer.isBuffer;function Zr(e){return Object.prototype.toString.call(e)}});var Ed=k((Q_,Ys)=>{"use strict";typeof Object.create=="function"?Ys.exports=function(t,i){i&&(t.super_=i,t.prototype=Object.create(i.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:Ys.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((e1,Ks)=>{"use strict";try{if(Vs=require("util"),typeof Vs.inherits!="function")throw"";Ks.exports=Vs.inherits}catch{Ks.exports=Ed()}var Vs});var Ad=k((t1,Xs)=>{"use strict";function Zm(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var Sd=gn().Buffer,mn=require("util");function Jm(e,t,i){e.copy(t,i)}Xs.exports=(function(){function e(){Zm(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 Sd.alloc(0);for(var n=Sd.allocUnsafe(i>>>0),r=this.head,a=0;r;)Jm(r.data,n,a),a+=r.data.length,r=r.next;return n},e})();mn&&mn.inspect&&mn.inspect.custom&&(Xs.exports.prototype[mn.inspect.custom]=function(){var e=mn.inspect({length:this.length});return this.constructor.name+" "+e})});var Zs=k((i1,Cd)=>{"use strict";var Jr=hn();function Qm(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,Jr.nextTick(Qr,this,e)):Jr.nextTick(Qr,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,Jr.nextTick(Qr,i,a)):Jr.nextTick(Qr,i,a):t&&t(a)}),this)}function eb(){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 Qr(e,t){e.emit("error",t)}Cd.exports={destroy:Qm,undestroy:eb}});var kd=k((n1,Td)=>{"use strict";Td.exports=require("util").deprecate});var Qs=k((r1,Dd)=>{"use strict";var $t=hn();Dd.exports=Z;function Od(e){var t=this;this.next=null,this.entry=null,this.finish=function(){yb(t,e)}}var tb=!process.browser&&["v0.10","v0.9."].indexOf(process.version.slice(0,5))>-1?setImmediate:$t.nextTick,yi;Z.WritableState=yn;var Id=Object.create(mi());Id.inherits=bi();var ib={deprecate:kd()},Pd=Gs(),ta=gn().Buffer,nb=(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:{}).Uint8Array||function(){};function rb(e){return ta.from(e)}function ab(e){return ta.isBuffer(e)||e instanceof nb}var Rd=Zs();Id.inherits(Z,Pd);function sb(){}function yn(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){fb(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 Od(this)}yn.prototype.getBuffer=function(){for(var t=this.bufferedRequest,i=[];t;)i.push(t),t=t.next;return i};(function(){try{Object.defineProperty(yn.prototype,"buffer",{get:ib.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var ea;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(ea=Function.prototype[Symbol.hasInstance],Object.defineProperty(Z,Symbol.hasInstance,{value:function(e){return ea.call(this,e)?!0:this!==Z?!1:e&&e._writableState instanceof yn}})):ea=function(e){return e instanceof this};function Z(e){if(yi=yi||Ut(),!ea.call(Z,this)&&!(this instanceof yi))return new Z(e);this._writableState=new yn(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)),Pd.call(this)}Z.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))};function ob(e,t){var i=new Error("write after end");e.emit("error",i),$t.nextTick(t,i)}function lb(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&&ab(e);return a&&!ta.isBuffer(e)&&(e=rb(e)),typeof t=="function"&&(i=t,t=null),a?t="buffer":t||(t=n.defaultEncoding),typeof i!="function"&&(i=sb),n.ended?ob(this,i):(a||lb(this,n,e,i))&&(n.pendingcb++,r=db(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&&Md(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 cb(e,t,i){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=ta.from(t,i)),t}Object.defineProperty(Z.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function db(e,t,i,n,r,a){if(!i){var s=cb(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 Js(e,t,!1,o,n,r,a);return l}function Js(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 ub(e,t,i,n,r){--t.pendingcb,i?($t.nextTick(r,n),$t.nextTick(bn,e,t),e._writableState.errorEmitted=!0,e.emit("error",n)):(r(n),e._writableState.errorEmitted=!0,e.emit("error",n),bn(e,t))}function pb(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}function fb(e,t){var i=e._writableState,n=i.sync,r=i.writecb;if(pb(i),t)ub(e,i,n,t,r);else{var a=jd(i);!a&&!i.corked&&!i.bufferProcessing&&i.bufferedRequest&&Md(e,i),n?tb(Ld,e,i,a,r):Ld(e,i,a,r)}}function Ld(e,t,i,n){i||hb(e,t),t.pendingcb--,n(),bn(e,t)}function hb(e,t){t.length===0&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}function Md(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,Js(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 Od(t),t.bufferedRequestCount=0}else{for(;i;){var l=i.chunk,c=i.encoding,d=i.callback,u=t.objectMode?1:l.length;if(Js(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||bb(this,n,i)};function jd(e){return e.ending&&e.length===0&&e.bufferedRequest===null&&!e.finished&&!e.writing}function gb(e,t){e._final(function(i){t.pendingcb--,i&&e.emit("error",i),t.prefinished=!0,e.emit("prefinish"),bn(e,t)})}function mb(e,t){!t.prefinished&&!t.finalCalled&&(typeof e._final=="function"?(t.pendingcb++,t.finalCalled=!0,$t.nextTick(gb,e,t)):(t.prefinished=!0,e.emit("prefinish")))}function bn(e,t){var i=jd(t);return i&&(mb(e,t),t.pendingcb===0&&(t.finished=!0,e.emit("finish"))),i}function bb(e,t,i){t.ending=!0,bn(e,t),i&&(t.finished?$t.nextTick(i):e.once("finish",i)),t.ended=!0,e.writable=!1}function yb(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=Rd.destroy;Z.prototype._undestroy=Rd.undestroy;Z.prototype._destroy=function(e,t){this.end(),t(e)}});var Ut=k((a1,Fd)=>{"use strict";var zd=hn(),vb=Object.keys||function(e){var t=[];for(var i in e)t.push(i);return t};Fd.exports=it;var Nd=Object.create(mi());Nd.inherits=bi();var Bd=io(),to=Qs();Nd.inherits(it,Bd);for(eo=vb(to.prototype),ia=0;ia<eo.length;ia++)na=eo[ia],it.prototype[na]||(it.prototype[na]=to.prototype[na]);var eo,na,ia;function it(e){if(!(this instanceof it))return new it(e);Bd.call(this,e),to.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",xb)}Object.defineProperty(it.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function xb(){this.allowHalfOpen||this._writableState.ended||zd.nextTick(wb,this)}function wb(e){e.end()}Object.defineProperty(it.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)}});it.prototype._destroy=function(e,t){this.push(null),this.end(),zd.nextTick(t,e)}});var ao=k($d=>{"use strict";var ro=gn().Buffer,Hd=ro.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 _b(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 Eb(e){var t=_b(e);if(typeof t!="string"&&(ro.isEncoding===Hd||!Hd(e)))throw new Error("Unknown encoding: "+e);return t||e}$d.StringDecoder=vn;function vn(e){this.encoding=Eb(e);var t;switch(this.encoding){case"utf16le":this.text=Lb,this.end=Ob,t=4;break;case"utf8":this.fillLast=Cb,t=4;break;case"base64":this.text=Ib,this.end=Pb,t=3;break;default:this.write=Rb,this.end=Mb;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=ro.allocUnsafe(t)}vn.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||""};vn.prototype.end=kb;vn.prototype.text=Tb;vn.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 no(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function Sb(e,t,i){var n=t.length-1;if(n<i)return 0;var r=no(t[n]);return r>=0?(r>0&&(e.lastNeed=r-1),r):--n<i||r===-2?0:(r=no(t[n]),r>=0?(r>0&&(e.lastNeed=r-2),r):--n<i||r===-2?0:(r=no(t[n]),r>=0?(r>0&&(r===2?r=0:e.lastNeed=r-3),r):0))}function Ab(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 Cb(e){var t=this.lastTotal-this.lastNeed,i=Ab(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 Tb(e,t){var i=Sb(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 kb(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"\uFFFD":t}function Lb(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 Ob(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 Ib(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 Pb(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function Rb(e){return e.toString(this.encoding)}function Mb(e){return e&&e.length?this.write(e):""}});var io=k((l1,eu)=>{"use strict";var xi=hn();eu.exports=q;var jb=vd(),xn;q.ReadableState=Kd;var o1=require("events").EventEmitter,Wd=function(e,t){return e.listeners(t).length},uo=Gs(),wn=gn().Buffer,Db=(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:{}).Uint8Array||function(){};function zb(e){return wn.from(e)}function Nb(e){return wn.isBuffer(e)||e instanceof Db}var Yd=Object.create(mi());Yd.inherits=bi();var so=require("util"),H=void 0;so&&so.debuglog?H=so.debuglog("stream"):H=function(){};var Bb=Ad(),Vd=Zs(),vi;Yd.inherits(q,uo);var oo=["error","close","destroy","pause","resume"];function Fb(e,t,i){if(typeof e.prependListener=="function")return e.prependListener(t,i);!e._events||!e._events[t]?e.on(t,i):jb(e._events[t])?e._events[t].unshift(i):e._events[t]=[i,e._events[t]]}function Kd(e,t){xn=xn||Ut(),e=e||{};var i=t instanceof xn;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 Bb,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=ao().StringDecoder),this.decoder=new vi(e.encoding),this.encoding=e.encoding)}function q(e){if(xn=xn||Ut(),!(this instanceof q))return new q(e);this._readableState=new Kd(e,this),this.readable=!0,e&&(typeof e.read=="function"&&(this._read=e.read),typeof e.destroy=="function"&&(this._destroy=e.destroy)),uo.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=Vd.destroy;q.prototype._undestroy=Vd.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=wn.from(e,t),t=""),n=!0),Xd(this,e,t,!1,n)};q.prototype.unshift=function(e){return Xd(this,e,null,!0,!1)};function Xd(e,t,i,n,r){var a=e._readableState;if(t===null)a.reading=!1,qb(e,a);else{var s;r||(s=Hb(a,t)),s?e.emit("error",s):a.objectMode||t&&t.length>0?(typeof t!="string"&&!a.objectMode&&Object.getPrototypeOf(t)!==wn.prototype&&(t=zb(t)),n?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):lo(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?lo(e,a,t,!1):Zd(e,a)):lo(e,a,t,!1))):n||(a.reading=!1)}return $b(a)}function lo(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&&ra(e)),Zd(e,t)}function Hb(e,t){var i;return!Nb(t)&&typeof t!="string"&&t!==void 0&&!e.objectMode&&(i=new TypeError("Invalid non-string/buffer chunk")),i}function $b(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=ao().StringDecoder),this._readableState.decoder=new vi(e),this._readableState.encoding=e,this};var Ud=8388608;function Ub(e){return e>=Ud?e=Ud:(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=Ub(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?co(this):ra(this),null;if(e=qd(e,t),e===0&&t.ended)return t.length===0&&co(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=Jd(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&&co(this)),r!==null&&this.emit("data",r),r};function qb(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,ra(e)}}function ra(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(H("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?xi.nextTick(Gd,e):Gd(e))}function Gd(e){H("emit readable"),e.emit("readable"),po(e)}function Zd(e,t){t.readingMore||(t.readingMore=!0,xi.nextTick(Gb,e,t))}function Gb(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=Wb(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&&Qd(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),Wd(e,"error")===0&&e.emit("error",b)}Fb(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 Wb(e){return function(){var t=e._readableState;H("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,t.awaitDrain===0&&Wd(e,"data")&&(t.flowing=!0,po(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=Qd(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=uo.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&&ra(this):xi.nextTick(Yb,this))}return i};q.prototype.addListener=q.prototype.on;function Yb(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,Vb(this,e)),this};function Vb(e,t){t.resumeScheduled||(t.resumeScheduled=!0,xi.nextTick(Kb,e,t))}function Kb(e,t){t.reading||(H("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),po(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 po(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<oo.length;a++)e.on(oo[a],this.emit.bind(this,oo[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=Jd;function Jd(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=Xb(e,t.buffer,t.decoder),i}function Xb(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?Zb(e,t):Jb(e,t),n}function Zb(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 Jb(e,t){var i=wn.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 co(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(Qb,t,e))}function Qb(e,t){!e.endEmitted&&e.length===0&&(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function Qd(e,t){for(var i=0,n=e.length;i<n;i++)if(e[i]===t)return i;return-1}});var fo=k((c1,nu)=>{"use strict";nu.exports=nt;var aa=Ut(),iu=Object.create(mi());iu.inherits=bi();iu.inherits(nt,aa);function ey(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 nt(e){if(!(this instanceof nt))return new nt(e);aa.call(this,e),this._transformState={afterTransform:ey.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",ty)}function ty(){var e=this;typeof this._flush=="function"?this._flush(function(t,i){tu(e,t,i)}):tu(this,null,null)}nt.prototype.push=function(e,t){return this._transformState.needTransform=!1,aa.prototype.push.call(this,e,t)};nt.prototype._transform=function(e,t,i){throw new Error("_transform() is not implemented")};nt.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)}};nt.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};nt.prototype._destroy=function(e,t){var i=this;aa.prototype._destroy.call(this,e,function(n){t(n),i.emit("close")})};function tu(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 ou=k((d1,su)=>{"use strict";su.exports=_n;var ru=fo(),au=Object.create(mi());au.inherits=bi();au.inherits(_n,ru);function _n(e){if(!(this instanceof _n))return new _n(e);ru.call(this,e)}_n.prototype._transform=function(e,t,i){i(null,e)}});var ho=k((re,sa)=>{"use strict";var Be=require("stream");process.env.READABLE_STREAM==="disable"&&Be?(sa.exports=Be,re=sa.exports=Be.Readable,re.Readable=Be.Readable,re.Writable=Be.Writable,re.Duplex=Be.Duplex,re.Transform=Be.Transform,re.PassThrough=Be.PassThrough,re.Stream=Be):(re=sa.exports=io(),re.Stream=Be||re,re.Readable=re,re.Writable=Qs(),re.Duplex=Ut(),re.Transform=fo(),re.PassThrough=ou())});var rt=k(ge=>{"use strict";ge.base64=!0;ge.array=!0;ge.string=!0;ge.arraybuffer=typeof ArrayBuffer!="undefined"&&typeof Uint8Array!="undefined";ge.nodebuffer=typeof Buffer!="undefined";ge.uint8array=typeof Uint8Array!="undefined";if(typeof ArrayBuffer=="undefined")ge.blob=!1;else{go=new ArrayBuffer(0);try{ge.blob=new Blob([go],{type:"application/zip"}).size===0}catch{try{lu=self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder,mo=new lu,mo.append(go),ge.blob=mo.getBlob("application/zip").size===0}catch{ge.blob=!1}}}var go,lu,mo;try{ge.nodestream=!!ho().Readable}catch{ge.nodestream=!1}});var yo=k(bo=>{"use strict";var iy=V(),ny=rt(),Fe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";bo.encode=function(e){for(var t=[],i,n,r,a,s,o,l,c=0,d=e.length,u=d,p=iy.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(Fe.charAt(a)+Fe.charAt(s)+Fe.charAt(o)+Fe.charAt(l));return t.join("")};bo.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)===Fe.charAt(64)&&u--,e.charAt(e.length-2)===Fe.charAt(64)&&u--,u%1!==0)throw new Error("Invalid base64 input, bad content length.");var p;for(ny.uint8array?p=new Uint8Array(u|0):p=new Array(u|0);l<e.length;)r=Fe.indexOf(e.charAt(l++)),a=Fe.indexOf(e.charAt(l++)),s=Fe.indexOf(e.charAt(l++)),o=Fe.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 En=k((f1,cu)=>{"use strict";cu.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 fu=k((h1,pu)=>{"use strict";var du=global.MutationObserver||global.WebKitMutationObserver,wi;process.browser?du?(vo=0,uu=new du(Sn),xo=global.document.createTextNode(""),uu.observe(xo,{characterData:!0}),wi=function(){xo.data=vo=++vo%2}):!global.setImmediate&&typeof global.MessageChannel!="undefined"?(wo=new global.MessageChannel,wo.port1.onmessage=Sn,wi=function(){wo.port2.postMessage(0)}):"document"in global&&"onreadystatechange"in global.document.createElement("script")?wi=function(){var e=global.document.createElement("script");e.onreadystatechange=function(){Sn(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},global.document.documentElement.appendChild(e)}:wi=function(){setTimeout(Sn,0)}:wi=function(){process.nextTick(Sn)};var vo,uu,xo,wo,_o,An=[];function Sn(){_o=!0;for(var e,t,i=An.length;i;){for(t=An,An=[],e=-1;++e<i;)t[e]();i=An.length}_o=!1}pu.exports=ry;function ry(e){An.push(e)===1&&!_o&&wi()}});var xu=k((g1,vu)=>{"use strict";var hu=fu();function _i(){}var le={},gu=["REJECTED"],Eo=["FULFILLED"],mu=["PENDING"];process.browser||(Cn=["UNHANDLED"]);var Cn;vu.exports=yt;function yt(e){if(typeof e!="function")throw new TypeError("resolver must be a function");this.state=mu,this.queue=[],this.outcome=void 0,process.browser||(this.handled=Cn),e!==_i&&bu(this,e)}yt.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)}};yt.prototype.catch=function(e){return this.then(null,e)};yt.prototype.then=function(e,t){if(typeof e!="function"&&this.state===Eo||typeof t!="function"&&this.state===gu)return this;var i=new this.constructor(_i);if(process.browser||this.handled===Cn&&(this.handled=null),this.state!==mu){var n=this.state===Eo?e:t;So(i,n,this.outcome)}else this.queue.push(new Tn(i,e,t));return i};function Tn(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)}Tn.prototype.callFulfilled=function(e){le.resolve(this.promise,e)};Tn.prototype.otherCallFulfilled=function(e){So(this.promise,this.onFulfilled,e)};Tn.prototype.callRejected=function(e){le.reject(this.promise,e)};Tn.prototype.otherCallRejected=function(e){So(this.promise,this.onRejected,e)};function So(e,t,i){hu(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=yu(ay,t);if(i.status==="error")return le.reject(e,i.value);var n=i.value;if(n)bu(e,n);else{e.state=Eo,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=gu,e.outcome=t,process.browser||e.handled===Cn&&hu(function(){e.handled===Cn&&process.emit("unhandledRejection",t,e)});for(var i=-1,n=e.queue.length;++i<n;)e.queue[i].callRejected(t);return e};function ay(e){var t=e&&e.then;if(e&&(typeof e=="object"||typeof e=="function")&&typeof t=="function")return function(){t.apply(e,arguments)}}function bu(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=yu(a);s.status==="error"&&n(s.value)}function yu(e,t){var i={};try{i.value=e(t),i.status="success"}catch(n){i.status="error",i.value=n}return i}yt.resolve=sy;function sy(e){return e instanceof this?e:le.resolve(new this(_i),e)}yt.reject=oy;function oy(e){var t=new this(_i);return le.reject(t,e)}yt.all=ly;function ly(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))}}}yt.race=cy;function cy(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((m1,wu)=>{"use strict";var Ao=null;typeof Promise!="undefined"?Ao=Promise:Ao=xu();wu.exports={Promise:Ao}});var Eu=k(_u=>{"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"?_u:global:self)});var V=k(J=>{"use strict";var vt=rt(),dy=yo(),Si=En(),Co=Ei();Eu();function uy(e){var t=null;return vt.uint8array?t=new Uint8Array(e.length):t=new Array(e.length),la(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 kn(e){return e}function la(e,t){for(var i=0;i<e.length;++i)t[i]=e.charCodeAt(i)&255;return t}var oa={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 vt.uint8array&&String.fromCharCode.apply(null,new Uint8Array(1)).length===1}catch{return!1}})(),nodebuffer:(function(){try{return vt.nodebuffer&&String.fromCharCode.apply(null,Si.allocBuffer(1)).length===1}catch{return!1}})()}};function Ln(e){var t=65536,i=J.getTypeOf(e),n=!0;if(i==="uint8array"?n=oa.applyCanBeUsed.uint8array:i==="nodebuffer"&&(n=oa.applyCanBeUsed.nodebuffer),n)for(;t>1;)try{return oa.stringifyByChunk(e,i,t)}catch{t=Math.floor(t/2)}return oa.stringifyByChar(e)}J.applyFromCharCode=Ln;function ca(e,t){for(var i=0;i<e.length;i++)t[i]=e[i];return t}var xt={};xt.string={string:kn,array:function(e){return la(e,new Array(e.length))},arraybuffer:function(e){return xt.string.uint8array(e).buffer},uint8array:function(e){return la(e,new Uint8Array(e.length))},nodebuffer:function(e){return la(e,Si.allocBuffer(e.length))}};xt.array={string:Ln,array:kn,arraybuffer:function(e){return new Uint8Array(e).buffer},uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return Si.newBufferFrom(e)}};xt.arraybuffer={string:function(e){return Ln(new Uint8Array(e))},array:function(e){return ca(new Uint8Array(e),new Array(e.byteLength))},arraybuffer:kn,uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return Si.newBufferFrom(new Uint8Array(e))}};xt.uint8array={string:Ln,array:function(e){return ca(e,new Array(e.length))},arraybuffer:function(e){return e.buffer},uint8array:kn,nodebuffer:function(e){return Si.newBufferFrom(e)}};xt.nodebuffer={string:Ln,array:function(e){return ca(e,new Array(e.length))},arraybuffer:function(e){return xt.nodebuffer.uint8array(e).buffer},uint8array:function(e){return ca(e,new Uint8Array(e.length))},nodebuffer:kn};J.transformTo=function(e,t){if(t||(t=""),!e)return t;J.checkSupport(e);var i=J.getTypeOf(t),n=xt[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(vt.nodebuffer&&Si.isBuffer(e))return"nodebuffer";if(vt.uint8array&&e instanceof Uint8Array)return"uint8array";if(vt.arraybuffer&&e instanceof ArrayBuffer)return"arraybuffer"};J.checkSupport=function(e){var t=vt[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=Co.Promise.resolve(t).then(function(s){var o=vt.blob&&(s instanceof Blob||["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(s))!==-1);return o&&typeof FileReader!="undefined"?new Co.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=dy.decode(s):i&&n!==!0&&(s=uy(s))),s):Co.Promise.reject(new Error("Can't read the data of '"+e+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})}});var me=k((v1,Au)=>{"use strict";function Su(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}Su.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}};Au.exports=Su});var Ci=k(wt=>{"use strict";var Ai=V(),qt=rt(),py=En(),da=me(),On=new Array(256);for(at=0;at<256;at++)On[at]=at>=252?6:at>=248?5:at>=240?4:at>=224?3:at>=192?2:1;var at;On[254]=On[254]=1;var fy=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},hy=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+On[e[i]]>t?i:t},gy=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=On[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)};wt.utf8encode=function(t){return qt.nodebuffer?py.newBufferFrom(t,"utf-8"):fy(t)};wt.utf8decode=function(t){return qt.nodebuffer?Ai.transformTo("nodebuffer",t).toString("utf-8"):(t=Ai.transformTo(qt.uint8array?"uint8array":"array",t),gy(t))};function ua(){da.call(this,"utf-8 decode"),this.leftOver=null}Ai.inherits(ua,da);ua.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=hy(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:wt.utf8decode(r),meta:e.meta})};ua.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:wt.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)};wt.Utf8DecodeWorker=ua;function To(){da.call(this,"utf-8 encode")}Ai.inherits(To,da);To.prototype.processChunk=function(e){this.push({data:wt.utf8encode(e.data),meta:e.meta})};wt.Utf8EncodeWorker=To});var Lu=k((w1,ku)=>{"use strict";var Cu=me(),Tu=V();function ko(e){Cu.call(this,"ConvertWorker to "+e),this.destType=e}Tu.inherits(ko,Cu);ko.prototype.processChunk=function(e){this.push({data:Tu.transformTo(this.destType,e.data),meta:e.meta})};ku.exports=ko});var Pu=k((_1,Iu)=>{"use strict";var Ou=ho().Readable,my=V();my.inherits(Lo,Ou);function Lo(e,t,i){Ou.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)})}Lo.prototype._read=function(){this._helper.resume()};Iu.exports=Lo});var Oo=k((E1,ju)=>{"use strict";var Gt=V(),by=Lu(),yy=me(),vy=yo(),xy=rt(),wy=Ei(),Ru=null;if(xy.nodestream)try{Ru=Pu()}catch{}function _y(e,t,i){switch(e){case"blob":return Gt.newBlob(Gt.transformTo("arraybuffer",t),i);case"base64":return vy.encode(t);default:return Gt.transformTo(e,t)}}function Ey(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 Sy(e,t){return new wy.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=_y(s,Ey(a,r),o);i(l)}catch(c){n(c)}r=[]}).resume()})}function Mu(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 by(n)),e.lock()}catch(r){this._worker=new yy("error"),this._worker.error(r)}}Mu.prototype={accumulate:function(e){return Sy(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 Ru(this,{objectMode:this._outputType!=="nodebuffer"},e)}};ju.exports=Mu});var Io=k(Le=>{"use strict";Le.base64=!1;Le.binary=!1;Le.dir=!1;Le.createFolders=!0;Le.date=null;Le.compression=null;Le.compressionOptions=null;Le.comment=null;Le.unixPermissions=null;Le.dosPermissions=null});var Po=k((A1,Du)=>{"use strict";var pa=V(),fa=me(),Ay=16*1024;function Ti(e){fa.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=pa.getTypeOf(i),t.isPaused||t._tickAndRepeat()},function(i){t.error(i)})}pa.inherits(Ti,fa);Ti.prototype.cleanUp=function(){fa.prototype.cleanUp.call(this),this.data=null};Ti.prototype.resume=function(){return fa.prototype.resume.call(this)?(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,pa.delay(this._tickAndRepeat,[],this)),!0):!1};Ti.prototype._tickAndRepeat=function(){this._tickScheduled=!1,!(this.isPaused||this.isFinished)&&(this._tick(),this.isFinished||(pa.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))};Ti.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=Ay,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}})};Du.exports=Ti});var ha=k((C1,Nu)=>{"use strict";var Cy=V();function Ty(){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 zu=Ty();function ky(e,t,i,n){var r=zu,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 Ly(e,t,i,n){var r=zu,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}Nu.exports=function(t,i){if(typeof t=="undefined"||!t.length)return 0;var n=Cy.getTypeOf(t)!=="string";return n?ky(i|0,t,t.length,0):Ly(i|0,t,t.length,0)}});var Mo=k((T1,Fu)=>{"use strict";var Bu=me(),Oy=ha(),Iy=V();function Ro(){Bu.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}Iy.inherits(Ro,Bu);Ro.prototype.processChunk=function(e){this.streamInfo.crc32=Oy(e.data,this.streamInfo.crc32||0),this.push(e)};Fu.exports=Ro});var $u=k((k1,Hu)=>{"use strict";var Py=V(),jo=me();function Do(e){jo.call(this,"DataLengthProbe for "+e),this.propName=e,this.withStreamInfo(e,0)}Py.inherits(Do,jo);Do.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}jo.prototype.processChunk.call(this,e)};Hu.exports=Do});var ga=k((L1,Gu)=>{"use strict";var Uu=Ei(),qu=Po(),Ry=Mo(),zo=$u();function No(e,t,i,n,r){this.compressedSize=e,this.uncompressedSize=t,this.crc32=i,this.compression=n,this.compressedContent=r}No.prototype={getContentWorker:function(){var e=new qu(Uu.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new zo("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(Uu.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}};No.createWorkerFrom=function(e,t,i){return e.pipe(new Ry).pipe(new zo("uncompressedSize")).pipe(t.compressWorker(i)).pipe(new zo("compressedSize")).withStreamInfo("compression",t)};Gu.exports=No});var Ku=k((O1,Vu)=>{"use strict";var My=Oo(),jy=Po(),Bo=Ci(),Fo=ga(),Wu=me(),Ho=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}};Ho.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 Bo.Utf8EncodeWorker)),!r&&n&&(t=t.pipe(new Bo.Utf8DecodeWorker))}catch(a){t=new Wu("error"),t.error(a)}return new My(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 Fo&&this._data.compression.magic===e.magic)return this._data.getCompressedWorker();var i=this._decompressWorker();return this._dataBinary||(i=i.pipe(new Bo.Utf8EncodeWorker)),Fo.createWorkerFrom(i,e,t)},_decompressWorker:function(){return this._data instanceof Fo?this._data.getContentWorker():this._data instanceof Wu?this._data:new jy(this._data)}};var Yu=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],Dy=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")};for(ma=0;ma<Yu.length;ma++)Ho.prototype[Yu[ma]]=Dy;var ma;Vu.exports=Ho});var st=k(ue=>{"use strict";var zy=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Int32Array!="undefined";function Ny(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)Ny(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 By={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}},Fy={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,By)):(ue.Buf8=Array,ue.Buf16=Array,ue.Buf32=Array,ue.assign(ue,Fy))};ue.setTyped(zy)});var yp=k(Oi=>{"use strict";var Hy=st(),$y=4,Xu=0,Zu=1,Uy=2;function Li(e){for(var t=e.length;--t>=0;)e[t]=0}var qy=0,np=1,Gy=2,Wy=3,Yy=258,Vo=29,Dn=256,Pn=Dn+1+Vo,ki=30,Ko=19,rp=2*Pn+1,Wt=15,$o=16,Vy=7,Xo=256,ap=16,sp=17,op=18,Wo=[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],ba=[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],Ky=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],lp=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Xy=512,ot=new Array((Pn+2)*2);Li(ot);var In=new Array(ki*2);Li(In);var Rn=new Array(Xy);Li(Rn);var Mn=new Array(Yy-Wy+1);Li(Mn);var Zo=new Array(Vo);Li(Zo);var ya=new Array(ki);Li(ya);function Uo(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 cp,dp,up;function qo(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function pp(e){return e<256?Rn[e]:Rn[256+(e>>>7)]}function jn(e,t){e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255}function he(e,t,i){e.bi_valid>$o-i?(e.bi_buf|=t<<e.bi_valid&65535,jn(e,e.bi_buf),e.bi_buf=t>>$o-e.bi_valid,e.bi_valid+=i-$o):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=i)}function He(e,t,i){he(e,i[t*2],i[t*2+1])}function fp(e,t){var i=0;do i|=e&1,e>>>=1,i<<=1;while(--t>0);return i>>>1}function Zy(e){e.bi_valid===16?(jn(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 Jy(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<rp;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 hp(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]=fp(n[o]++,o))}}function Qy(){var e,t,i,n,r,a=new Array(Wt+1);for(i=0,n=0;n<Vo-1;n++)for(Zo[n]=i,e=0;e<1<<Wo[n];e++)Mn[i++]=n;for(Mn[i-1]=n,r=0,n=0;n<16;n++)for(ya[n]=r,e=0;e<1<<ba[n];e++)Rn[r++]=n;for(r>>=7;n<ki;n++)for(ya[n]=r<<7,e=0;e<1<<ba[n]-7;e++)Rn[256+r++]=n;for(t=0;t<=Wt;t++)a[t]=0;for(e=0;e<=143;)ot[e*2+1]=8,e++,a[8]++;for(;e<=255;)ot[e*2+1]=9,e++,a[9]++;for(;e<=279;)ot[e*2+1]=7,e++,a[7]++;for(;e<=287;)ot[e*2+1]=8,e++,a[8]++;for(hp(ot,Pn+1,a),e=0;e<ki;e++)In[e*2+1]=5,In[e*2]=fp(e,5);cp=new Uo(ot,Wo,Dn+1,Pn,Wt),dp=new Uo(In,ba,0,ki,Wt),up=new Uo(new Array(0),Ky,0,Ko,Vy)}function gp(e){var t;for(t=0;t<Pn;t++)e.dyn_ltree[t*2]=0;for(t=0;t<ki;t++)e.dyn_dtree[t*2]=0;for(t=0;t<Ko;t++)e.bl_tree[t*2]=0;e.dyn_ltree[Xo*2]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function mp(e){e.bi_valid>8?jn(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 ev(e,t,i,n){mp(e),n&&(jn(e,i),jn(e,~i)),Hy.arraySet(e.pending_buf,e.window,t,i,e.pending),e.pending+=i}function Ju(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 Go(e,t,i){for(var n=e.heap[i],r=i<<1;r<=e.heap_len&&(r<e.heap_len&&Ju(t,e.heap[r+1],e.heap[r],e.depth)&&r++,!Ju(t,n,e.heap[r],e.depth));)e.heap[i]=e.heap[r],i=r,r<<=1;e.heap[i]=n}function Qu(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?He(e,r,t):(s=Mn[r],He(e,s+Dn+1,t),o=Wo[s],o!==0&&(r-=Zo[s],he(e,r,o)),n--,s=pp(n),He(e,s,i),o=ba[s],o!==0&&(n-=ya[s],he(e,n,o)));while(a<e.last_lit);He(e,Xo,t)}function Yo(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=rp,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--)Go(e,i,s);c=a;do s=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Go(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++,Go(e,i,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],Jy(e,t),hp(i,l,e.bl_count)}function ep(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[ap*2]++):o<=10?e.bl_tree[sp*2]++:e.bl_tree[op*2]++,o=0,r=a,s===0?(l=138,c=3):a===s?(l=6,c=3):(l=7,c=4))}function tp(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 He(e,a,e.bl_tree);while(--o!==0);else a!==0?(a!==r&&(He(e,a,e.bl_tree),o--),He(e,ap,e.bl_tree),he(e,o-3,2)):o<=10?(He(e,sp,e.bl_tree),he(e,o-3,3)):(He(e,op,e.bl_tree),he(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 tv(e){var t;for(ep(e,e.dyn_ltree,e.l_desc.max_code),ep(e,e.dyn_dtree,e.d_desc.max_code),Yo(e,e.bl_desc),t=Ko-1;t>=3&&e.bl_tree[lp[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t}function iv(e,t,i,n){var r;for(he(e,t-257,5),he(e,i-1,5),he(e,n-4,4),r=0;r<n;r++)he(e,e.bl_tree[lp[r]*2+1],3);tp(e,e.dyn_ltree,t-1),tp(e,e.dyn_dtree,i-1)}function nv(e){var t=4093624447,i;for(i=0;i<=31;i++,t>>>=1)if(t&1&&e.dyn_ltree[i*2]!==0)return Xu;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return Zu;for(i=32;i<Dn;i++)if(e.dyn_ltree[i*2]!==0)return Zu;return Xu}var ip=!1;function rv(e){ip||(Qy(),ip=!0),e.l_desc=new qo(e.dyn_ltree,cp),e.d_desc=new qo(e.dyn_dtree,dp),e.bl_desc=new qo(e.bl_tree,up),e.bi_buf=0,e.bi_valid=0,gp(e)}function bp(e,t,i,n){he(e,(qy<<1)+(n?1:0),3),ev(e,t,i,!0)}function av(e){he(e,np<<1,3),He(e,Xo,ot),Zy(e)}function sv(e,t,i,n){var r,a,s=0;e.level>0?(e.strm.data_type===Uy&&(e.strm.data_type=nv(e)),Yo(e,e.l_desc),Yo(e,e.d_desc),s=tv(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?bp(e,t,i,n):e.strategy===$y||a===r?(he(e,(np<<1)+(n?1:0),3),Qu(e,ot,In)):(he(e,(Gy<<1)+(n?1:0),3),iv(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),Qu(e,e.dyn_ltree,e.dyn_dtree)),gp(e),n&&mp(e)}function ov(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[(Mn[i]+Dn+1)*2]++,e.dyn_dtree[pp(t)*2]++),e.last_lit===e.lit_bufsize-1}Oi._tr_init=rv;Oi._tr_stored_block=bp;Oi._tr_flush_block=sv;Oi._tr_tally=ov;Oi._tr_align=av});var Jo=k((R1,vp)=>{"use strict";function lv(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}vp.exports=lv});var Qo=k((M1,xp)=>{"use strict";function cv(){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 dv=cv();function uv(e,t,i,n){var r=dv,a=n+i;e^=-1;for(var s=n;s<a;s++)e=e>>>8^r[(e^t[s])&255];return e^-1}xp.exports=uv});var va=k((j1,wp)=>{"use strict";wp.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 Op=k(qe=>{"use strict";var pe=st(),_e=yp(),Ap=Jo(),_t=Qo(),pv=va(),Xt=0,fv=1,hv=3,Tt=4,_p=5,Ue=0,Ep=1,Ee=-2,gv=-3,el=-5,mv=-1,bv=1,xa=2,yv=3,vv=4,xv=0,wv=2,Sa=8,_v=9,Ev=15,Sv=8,Av=29,Cv=256,il=Cv+1+Av,Tv=30,kv=19,Lv=2*il+1,Ov=15,N=3,At=258,Oe=At+N+1,Iv=32,Aa=42,nl=69,wa=73,_a=91,Ea=103,Yt=113,Nn=666,ie=1,Bn=2,Vt=3,Ri=4,Pv=3;function Ct(e,t){return e.msg=pv[t],t}function Sp(e){return(e<<1)-(e>4?9:0)}function St(e){for(var t=e.length;--t>=0;)e[t]=0}function Et(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){_e._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Et(e.strm)}function F(e,t){e.pending_buf[e.pending++]=t}function zn(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255}function Rv(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=Ap(e.adler,t,r,i):e.state.wrap===2&&(e.adler=_t(e.adler,t,r,i)),e.next_in+=r,e.total_in+=r,r)}function Cp(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-Oe?e.strstart-(e.w_size-Oe):0,c=e.window,d=e.w_mask,u=e.prev,p=e.strstart+At,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=At-(p-n),n=p-At,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-Oe)){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=Rv(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<Oe&&e.strm.avail_in!==0)}function Mv(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-Oe&&(ae(e,!1),e.strm.avail_out===0))return ie}return e.insert=0,t===Tt?(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 tl(e,t){for(var i,n;;){if(e.lookahead<Oe){if(Kt(e),e.lookahead<Oe&&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-Oe&&(e.match_length=Cp(e,i)),e.match_length>=N)if(n=_e._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=_e._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===Tt?(ae(e,!0),e.strm.avail_out===0?Vt:Ri):e.last_lit&&(ae(e,!1),e.strm.avail_out===0)?ie:Bn}function Ii(e,t){for(var i,n,r;;){if(e.lookahead<Oe){if(Kt(e),e.lookahead<Oe&&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-Oe&&(e.match_length=Cp(e,i),e.match_length<=5&&(e.strategy===bv||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=_e._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=_e._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=_e._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<N-1?e.strstart:N-1,t===Tt?(ae(e,!0),e.strm.avail_out===0?Vt:Ri):e.last_lit&&(ae(e,!1),e.strm.avail_out===0)?ie:Bn}function jv(e,t){for(var i,n,r,a,s=e.window;;){if(e.lookahead<=At){if(Kt(e),e.lookahead<=At&&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+At;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=At-(a-r),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=N?(i=_e._tr_tally(e,1,e.match_length-N),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(i=_e._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===Tt?(ae(e,!0),e.strm.avail_out===0?Vt:Ri):e.last_lit&&(ae(e,!1),e.strm.avail_out===0)?ie:Bn}function Dv(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=_e._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===Tt?(ae(e,!0),e.strm.avail_out===0?Vt:Ri):e.last_lit&&(ae(e,!1),e.strm.avail_out===0)?ie:Bn}function $e(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 Pi;Pi=[new $e(0,0,0,0,Mv),new $e(4,4,8,4,tl),new $e(4,5,16,8,tl),new $e(4,6,32,32,tl),new $e(4,4,16,16,Ii),new $e(8,16,32,32,Ii),new $e(8,16,128,128,Ii),new $e(8,32,128,256,Ii),new $e(32,128,258,1024,Ii),new $e(32,258,258,4096,Ii)];function zv(e){e.window_size=2*e.w_size,St(e.head),e.max_lazy_match=Pi[e.level].max_lazy,e.good_match=Pi[e.level].good_length,e.nice_match=Pi[e.level].nice_length,e.max_chain_length=Pi[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 Nv(){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=Sa,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(Lv*2),this.dyn_dtree=new pe.Buf16((2*Tv+1)*2),this.bl_tree=new pe.Buf16((2*kv+1)*2),St(this.dyn_ltree),St(this.dyn_dtree),St(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new pe.Buf16(Ov+1),this.heap=new pe.Buf16(2*il+1),St(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new pe.Buf16(2*il+1),St(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 Tp(e){var t;return!e||!e.state?Ct(e,Ee):(e.total_in=e.total_out=0,e.data_type=wv,t=e.state,t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?Aa:Yt,e.adler=t.wrap===2?0:1,t.last_flush=Xt,_e._tr_init(t),Ue)}function kp(e){var t=Tp(e);return t===Ue&&zv(e.state),t}function Bv(e,t){return!e||!e.state||e.state.wrap!==2?Ee:(e.state.gzhead=t,Ue)}function Lp(e,t,i,n,r,a){if(!e)return Ee;var s=1;if(t===mv&&(t=6),n<0?(s=0,n=-n):n>15&&(s=2,n-=16),r<1||r>_v||i!==Sa||n<8||n>15||t<0||t>9||a<0||a>vv)return Ct(e,Ee);n===8&&(n=9);var o=new Nv;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,kp(e)}function Fv(e,t){return Lp(e,t,Sa,Ev,Sv,xv)}function Hv(e,t){var i,n,r,a;if(!e||!e.state||t>_p||t<0)return e?Ct(e,Ee):Ee;if(n=e.state,!e.output||!e.input&&e.avail_in!==0||n.status===Nn&&t!==Tt)return Ct(e,e.avail_out===0?el:Ee);if(n.strm=e,i=n.last_flush,n.last_flush=t,n.status===Aa)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>=xa||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=_t(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=nl):(F(n,0),F(n,0),F(n,0),F(n,0),F(n,0),F(n,n.level===9?2:n.strategy>=xa||n.level<2?4:0),F(n,Pv),n.status=Yt);else{var s=Sa+(n.w_bits-8<<4)<<8,o=-1;n.strategy>=xa||n.level<2?o=0:n.level<6?o=1:n.level===6?o=2:o=3,s|=o<<6,n.strstart!==0&&(s|=Iv),s+=31-s%31,n.status=Yt,zn(n,s),n.strstart!==0&&(zn(n,e.adler>>>16),zn(n,e.adler&65535)),e.adler=1}if(n.status===nl)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=_t(e.adler,n.pending_buf,n.pending-r,r)),Et(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=_t(e.adler,n.pending_buf,n.pending-r,r)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=wa)}else n.status=wa;if(n.status===wa)if(n.gzhead.name){r=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>r&&(e.adler=_t(e.adler,n.pending_buf,n.pending-r,r)),Et(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=_t(e.adler,n.pending_buf,n.pending-r,r)),a===0&&(n.gzindex=0,n.status=_a)}else n.status=_a;if(n.status===_a)if(n.gzhead.comment){r=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>r&&(e.adler=_t(e.adler,n.pending_buf,n.pending-r,r)),Et(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=_t(e.adler,n.pending_buf,n.pending-r,r)),a===0&&(n.status=Ea)}else n.status=Ea;if(n.status===Ea&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&Et(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(Et(e),e.avail_out===0)return n.last_flush=-1,Ue}else if(e.avail_in===0&&Sp(t)<=Sp(i)&&t!==Tt)return Ct(e,el);if(n.status===Nn&&e.avail_in!==0)return Ct(e,el);if(e.avail_in!==0||n.lookahead!==0||t!==Xt&&n.status!==Nn){var l=n.strategy===xa?Dv(n,t):n.strategy===yv?jv(n,t):Pi[n.level].func(n,t);if((l===Vt||l===Ri)&&(n.status=Nn),l===ie||l===Vt)return e.avail_out===0&&(n.last_flush=-1),Ue;if(l===Bn&&(t===fv?_e._tr_align(n):t!==_p&&(_e._tr_stored_block(n,0,0,!1),t===hv&&(St(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),Et(e),e.avail_out===0))return n.last_flush=-1,Ue}return t!==Tt?Ue:n.wrap<=0?Ep:(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)):(zn(n,e.adler>>>16),zn(n,e.adler&65535)),Et(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?Ue:Ep)}function $v(e){var t;return!e||!e.state?Ee:(t=e.state.status,t!==Aa&&t!==nl&&t!==wa&&t!==_a&&t!==Ea&&t!==Yt&&t!==Nn?Ct(e,Ee):(e.state=null,t===Yt?Ct(e,gv):Ue))}function Uv(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!==Aa||n.lookahead))return Ee;for(s===1&&(e.adler=Ap(e.adler,t,i,0)),n.wrap=0,i>=n.w_size&&(s===0&&(St(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,Ue}qe.deflateInit=Fv;qe.deflateInit2=Lp;qe.deflateReset=kp;qe.deflateResetKeep=Tp;qe.deflateSetHeader=Bv;qe.deflate=Hv;qe.deflateEnd=$v;qe.deflateSetDictionary=Uv;qe.deflateInfo="pako deflate (from Nodeca project)"});var rl=k(Mi=>{"use strict";var Ca=st(),Ip=!0,Pp=!0;try{String.fromCharCode.apply(null,[0])}catch{Ip=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Pp=!1}var Fn=new Ca.Buf8(256);for(lt=0;lt<256;lt++)Fn[lt]=lt>=252?6:lt>=248?5:lt>=240?4:lt>=224?3:lt>=192?2:1;var lt;Fn[254]=Fn[254]=1;Mi.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 Ca.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 Rp(e,t){if(t<65534&&(e.subarray&&Pp||!e.subarray&&Ip))return String.fromCharCode.apply(null,Ca.shrinkBuf(e,t));for(var i="",n=0;n<t;n++)i+=String.fromCharCode(e[n]);return i}Mi.buf2binstring=function(e){return Rp(e,e.length)};Mi.binstring2buf=function(e){for(var t=new Ca.Buf8(e.length),i=0,n=t.length;i<n;i++)t[i]=e.charCodeAt(i);return t};Mi.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=Fn[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 Rp(o,n)};Mi.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+Fn[e[i]]>t?i:t}});var al=k((N1,Mp)=>{"use strict";function qv(){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}Mp.exports=qv});var Np=k(Un=>{"use strict";var Hn=Op(),$n=st(),ol=rl(),ll=va(),Gv=al(),zp=Object.prototype.toString,Wv=0,sl=4,ji=0,jp=1,Dp=2,Yv=-1,Vv=0,Kv=8;function Zt(e){if(!(this instanceof Zt))return new Zt(e);this.options=$n.assign({level:Yv,method:Kv,chunkSize:16384,windowBits:15,memLevel:8,strategy:Vv,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 Gv,this.strm.avail_out=0;var i=Hn.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(i!==ji)throw new Error(ll[i]);if(t.header&&Hn.deflateSetHeader(this.strm,t.header),t.dictionary){var n;if(typeof t.dictionary=="string"?n=ol.string2buf(t.dictionary):zp.call(t.dictionary)==="[object ArrayBuffer]"?n=new Uint8Array(t.dictionary):n=t.dictionary,i=Hn.deflateSetDictionary(this.strm,n),i!==ji)throw new Error(ll[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?sl:Wv,typeof e=="string"?i.input=ol.string2buf(e):zp.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 $n.Buf8(n),i.next_out=0,i.avail_out=n),r=Hn.deflate(i,a),r!==jp&&r!==ji)return this.onEnd(r),this.ended=!0,!1;(i.avail_out===0||i.avail_in===0&&(a===sl||a===Dp))&&(this.options.to==="string"?this.onData(ol.buf2binstring($n.shrinkBuf(i.output,i.next_out))):this.onData($n.shrinkBuf(i.output,i.next_out)))}while((i.avail_in>0||i.avail_out===0)&&r!==jp);return a===sl?(r=Hn.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===ji):(a===Dp&&(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=$n.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function cl(e,t){var i=new Zt(t);if(i.push(e,!0),i.err)throw i.msg||ll[i.err];return i.result}function Xv(e,t){return t=t||{},t.raw=!0,cl(e,t)}function Zv(e,t){return t=t||{},t.gzip=!0,cl(e,t)}Un.Deflate=Zt;Un.deflate=cl;Un.deflateRaw=Xv;Un.gzip=Zv});var Fp=k((F1,Bp)=>{"use strict";var Ta=30,Jv=12;Bp.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,C,_,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(C=x&65535,w&=15,h<w&&(m+=R[r++]<<h,h+=8,h<w&&(m+=R[r++]<<h,h+=8)),C+=m&(1<<w)-1,C>c){t.msg="invalid distance too far back",n.mode=Ta;break e}if(m>>>=w,h-=w,w=s-o,C>w){if(w=C-w,w>u&&n.sane){t.msg="invalid distance too far back",n.mode=Ta;break e}if(_=0,T=f,p===0){if(_+=d-w,w<S){S-=w;do E[s++]=f[_++];while(--w);_=s-C,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-C,T=E}}}else if(_+=p-w,w<S){S-=w;do E[s++]=f[_++];while(--w);_=s-C,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-C;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=Ta;break e}break}}else if((w&64)===0){x=g[(x&65535)+(m&(1<<w)-1)];continue t}else if(w&32){n.mode=Jv;break e}else{t.msg="invalid literal/length code",n.mode=Ta;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 Yp=k((H1,Wp)=>{"use strict";var Hp=st(),Di=15,$p=852,Up=592,qp=0,dl=1,Gp=2,Qv=[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],ex=[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],tx=[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],ix=[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];Wp.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,C,_,T=null,R=0,E,L=new Hp.Buf16(Di+1),z=new Hp.Buf16(Di+1),D=null,B=0,O,M,A;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===dl?(T=Qv,R-=257,D=ex,B-=257,E=256):(T=tx,D=ix,E=-1),v=0,u=0,d=p,_=s,h=m,g=0,S=-1,y=1<<m,C=y-1,t===dl&&y>$p||t===Gp&&y>Up)return 1;for(;;){O=d-g,o[u]<E?(M=0,A=o[u]):o[u]>E?(M=D[B+o[u]],A=T[R+o[u]]):(M=96,A=0),x=1<<d-g,w=1<<h,p=w;do w-=x,a[_+(v>>g)+w]=O<<24|M<<16|A|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&C)!==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===dl&&y>$p||t===Gp&&y>Up)return 1;S=v&C,a[S]=m<<24|h<<16|_-s|0}}return v!==0&&(a[_+v]=d-g<<24|64<<16|0),l.bits=m,0}});var Lf=k(Ie=>{"use strict";var be=st(),ml=Jo(),Ge=Qo(),nx=Fp(),qn=Yp(),rx=0,xf=1,wf=2,Vp=4,ax=5,ka=6,Jt=0,sx=1,ox=2,Se=-2,_f=-3,bl=-4,lx=-5,Kp=8,Ef=1,Xp=2,Zp=3,Jp=4,Qp=5,ef=6,tf=7,nf=8,rf=9,af=10,Ia=11,ct=12,ul=13,sf=14,pl=15,of=16,lf=17,cf=18,df=19,La=20,Oa=21,uf=22,pf=23,ff=24,hf=25,gf=26,fl=27,mf=28,bf=29,W=30,yl=31,cx=32,dx=852,ux=592,px=15,fx=px;function yf(e){return(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24)}function hx(){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 be.Buf16(320),this.work=new be.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Sf(e){var t;return!e||!e.state?Se:(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=Ef,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new be.Buf32(dx),t.distcode=t.distdyn=new be.Buf32(ux),t.sane=1,t.back=-1,Jt)}function Af(e){var t;return!e||!e.state?Se:(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,Sf(e))}function Cf(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))?Se:(n.window!==null&&n.wbits!==t&&(n.window=null),n.wrap=i,n.wbits=t,Af(e))}function Tf(e,t){var i,n;return e?(n=new hx,e.state=n,n.window=null,i=Cf(e,t),i!==Jt&&(e.state=null),i):Se}function gx(e){return Tf(e,fx)}var vf=!0,hl,gl;function mx(e){if(vf){var t;for(hl=new be.Buf32(512),gl=new be.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(qn(xf,e.lens,0,288,hl,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;qn(wf,e.lens,0,32,gl,0,e.work,{bits:5}),vf=!1}e.lencode=hl,e.lenbits=9,e.distcode=gl,e.distbits=5}function kf(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 be.Buf8(a.wsize)),n>=a.wsize?(be.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),be.arraySet(a.window,t,i-n,r,a.wnext),n-=r,n?(be.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 bx(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,C,_,T=new be.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 Se;i=e.state,i.mode===ct&&(i.mode=ul),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 Ef:if(i.wrap===0){i.mode=ul;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=Ge(i.check,T,2,0),c=0,d=0,i.mode=Xp;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)!==Kp){e.msg="unknown compression method",i.mode=W;break}if(c>>>=4,d-=4,C=(c&15)+8,i.wbits===0)i.wbits=C;else if(C>i.wbits){e.msg="invalid window size",i.mode=W;break}i.dmax=1<<C,e.adler=i.check=1,i.mode=c&512?af:ct,c=0,d=0;break;case Xp:for(;d<16;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}if(i.flags=c,(i.flags&255)!==Kp){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=Ge(i.check,T,2,0)),c=0,d=0,i.mode=Zp;case Zp: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=Ge(i.check,T,4,0)),c=0,d=0,i.mode=Jp;case Jp: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=Ge(i.check,T,2,0)),c=0,d=0,i.mode=Qp;case Qp: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=Ge(i.check,T,2,0)),c=0,d=0}else i.head&&(i.head.extra=null);i.mode=ef;case ef:if(i.flags&1024&&(f=i.length,f>o&&(f=o),f&&(i.head&&(C=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Array(i.head.extra_len)),be.arraySet(i.head.extra,n,a,f,C)),i.flags&512&&(i.check=Ge(i.check,n,f,a)),o-=f,a+=f,i.length-=f),i.length))break e;i.length=0,i.mode=tf;case tf:if(i.flags&2048){if(o===0)break e;f=0;do C=n[a+f++],i.head&&C&&i.length<65536&&(i.head.name+=String.fromCharCode(C));while(C&&f<o);if(i.flags&512&&(i.check=Ge(i.check,n,f,a)),o-=f,a+=f,C)break e}else i.head&&(i.head.name=null);i.length=0,i.mode=nf;case nf:if(i.flags&4096){if(o===0)break e;f=0;do C=n[a+f++],i.head&&C&&i.length<65536&&(i.head.comment+=String.fromCharCode(C));while(C&&f<o);if(i.flags&512&&(i.check=Ge(i.check,n,f,a)),o-=f,a+=f,C)break e}else i.head&&(i.head.comment=null);i.mode=rf;case rf: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=ct;break;case af:for(;d<32;){if(o===0)break e;o--,c+=n[a++]<<d,d+=8}e.adler=i.check=yf(c),c=0,d=0,i.mode=Ia;case Ia: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,ox;e.adler=i.check=1,i.mode=ct;case ct:if(t===ax||t===ka)break e;case ul:if(i.last){c>>>=d&7,d-=d&7,i.mode=fl;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=sf;break;case 1:if(mx(i),i.mode=La,t===ka){c>>>=2,d-=2;break e}break;case 2:i.mode=lf;break;case 3:e.msg="invalid block type",i.mode=W}c>>>=2,d-=2;break;case sf: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=pl,t===ka)break e;case pl:i.mode=of;case of:if(f=i.length,f){if(f>o&&(f=o),f>l&&(f=l),f===0)break e;be.arraySet(r,n,a,f,s),o-=f,a+=f,l-=f,s+=f,i.length-=f;break}i.mode=ct;break;case lf: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=cf;case cf: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},_=qn(rx,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=df;case df: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}C=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,C=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,C=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++]=C}}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},_=qn(xf,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},_=qn(wf,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=La,t===ka)break e;case La:i.mode=Oa;case Oa: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,nx(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===ct&&(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=gf;break}if(y&32){i.back=-1,i.mode=ct;break}if(y&64){e.msg="invalid literal/length code",i.mode=W;break}i.extra=y&15,i.mode=uf;case uf: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=pf;case pf: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=ff;case ff: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=hf;case hf: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=Oa);break;case gf:if(l===0)break e;r[s++]=i.length,l--,i.mode=Oa;break;case fl: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?Ge(i.check,r,p,s-p):ml(i.check,r,p,s-p)),p=l,(i.flags?c:yf(c))!==i.check){e.msg="incorrect data check",i.mode=W;break}c=0,d=0}i.mode=mf;case mf: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=bf;case bf:_=sx;break e;case W:_=_f;break e;case yl:return bl;case cx:default:return Se}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<fl||t!==Vp))&&kf(e,e.output,e.next_out,p-e.avail_out)?(i.mode=yl,bl):(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?Ge(i.check,r,p,e.next_out-p):ml(i.check,r,p,e.next_out-p)),e.data_type=i.bits+(i.last?64:0)+(i.mode===ct?128:0)+(i.mode===La||i.mode===pl?256:0),(u===0&&p===0||t===Vp)&&_===Jt&&(_=lx),_)}function yx(e){if(!e||!e.state)return Se;var t=e.state;return t.window&&(t.window=null),e.state=null,Jt}function vx(e,t){var i;return!e||!e.state||(i=e.state,(i.wrap&2)===0)?Se:(i.head=t,t.done=!1,Jt)}function xx(e,t){var i=t.length,n,r,a;return!e||!e.state||(n=e.state,n.wrap!==0&&n.mode!==Ia)?Se:n.mode===Ia&&(r=1,r=ml(r,t,i,0),r!==n.check)?_f:(a=kf(e,t,i,i),a?(n.mode=yl,bl):(n.havedict=1,Jt))}Ie.inflateReset=Af;Ie.inflateReset2=Cf;Ie.inflateResetKeep=Sf;Ie.inflateInit=gx;Ie.inflateInit2=Tf;Ie.inflate=bx;Ie.inflateEnd=yx;Ie.inflateGetHeader=vx;Ie.inflateSetDictionary=xx;Ie.inflateInfo="pako inflate (from Nodeca project)"});var vl=k((U1,Of)=>{"use strict";Of.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 Pf=k((q1,If)=>{"use strict";function wx(){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}If.exports=wx});var Mf=k(Wn=>{"use strict";var zi=Lf(),Gn=st(),Pa=rl(),X=vl(),xl=va(),_x=al(),Ex=Pf(),Rf=Object.prototype.toString;function Qt(e){if(!(this instanceof Qt))return new Qt(e);this.options=Gn.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 _x,this.strm.avail_out=0;var i=zi.inflateInit2(this.strm,t.windowBits);if(i!==X.Z_OK)throw new Error(xl[i]);if(this.header=new Ex,zi.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Pa.string2buf(t.dictionary):Rf.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(xl[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):Rf.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 Gn.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&&Gn.arraySet(i.output,i.output,o,l,0),this.onData(c)):this.onData(Gn.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=Gn.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function wl(e,t){var i=new Qt(t);if(i.push(e,!0),i.err)throw i.msg||xl[i.err];return i.result}function Sx(e,t){return t=t||{},t.raw=!0,wl(e,t)}Wn.Inflate=Qt;Wn.inflate=wl;Wn.inflateRaw=Sx;Wn.ungzip=wl});var zf=k((W1,Df)=>{"use strict";var Ax=st().assign,Cx=Np(),Tx=Mf(),kx=vl(),jf={};Ax(jf,Cx,Tx,kx);Df.exports=jf});var Bf=k(Ma=>{"use strict";var Lx=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Uint32Array!="undefined",Ox=zf(),Nf=V(),Ra=me(),Ix=Lx?"uint8array":"array";Ma.magic="\b\0";function ei(e,t){Ra.call(this,"FlateWorker/"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}Nf.inherits(ei,Ra);ei.prototype.processChunk=function(e){this.meta=e.meta,this._pako===null&&this._createPako(),this._pako.push(Nf.transformTo(Ix,e.data),!1)};ei.prototype.flush=function(){Ra.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)};ei.prototype.cleanUp=function(){Ra.prototype.cleanUp.call(this),this._pako=null};ei.prototype._createPako=function(){this._pako=new Ox[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}};Ma.compressWorker=function(e){return new ei("Deflate",e)};Ma.uncompressWorker=function(){return new ei("Inflate",{})}});var El=k(_l=>{"use strict";var Ff=me();_l.STORE={magic:"\0\0",compressWorker:function(){return new Ff("STORE compression")},uncompressWorker:function(){return new Ff("STORE decompression")}};_l.DEFLATE=Bf()});var Sl=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((X1,Uf)=>{"use strict";var Ni=V(),Bi=me(),Al=Ci(),Hf=ha(),ja=Sl(),U=function(e,t){var i="",n;for(n=0;n<t;n++)i+=String.fromCharCode(e&255),e=e>>>8;return i},Px=function(e,t){var i=e;return e||(i=t?16893:33204),(i&65535)<<16},Rx=function(e){return(e||0)&63},$f=function(e,t,i,n,r,a){var s=e.file,o=e.compression,l=a!==Al.utf8encode,c=Ni.transformTo("string",a(s.name)),d=Ni.transformTo("string",Al.utf8encode(s.name)),u=s.comment,p=Ni.transformTo("string",a(u)),f=Ni.transformTo("string",Al.utf8encode(u)),m=d.length!==s.name.length,h=f.length!==u.length,g,b,y="",v="",x="",w=s.dir,S=s.date,C={crc32:0,compressedSize:0,uncompressedSize:0};(!t||i)&&(C.crc32=e.crc32,C.compressedSize=e.compressedSize,C.uncompressedSize=e.uncompressedSize);var _=0;t&&(_|=8),!l&&(m||h)&&(_|=2048);var T=0,R=0;w&&(T|=16),r==="UNIX"?(R=798,T|=Px(s.unixPermissions,w)):(R=20,T|=Rx(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(Hf(c),4)+d,y+="up"+U(v.length,2)+v),h&&(x=U(1,1)+U(Hf(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(C.crc32,4),E+=U(C.compressedSize,4),E+=U(C.uncompressedSize,4),E+=U(c.length,2),E+=U(y.length,2);var L=ja.LOCAL_FILE_HEADER+E+c+y,z=ja.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}},Mx=function(e,t,i,n,r){var a="",s=Ni.transformTo("string",r(n));return a=ja.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},jx=function(e){var t="";return t=ja.DATA_DESCRIPTOR+U(e.crc32,4)+U(e.compressedSize,4)+U(e.uncompressedSize,4),t};function Pe(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(Pe,Bi);Pe.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}}))};Pe.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var i=$f(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:i.fileRecord,meta:{percent:0}})}else this.accumulate=!0};Pe.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,i=$f(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(i.dirRecord),t)this.push({data:jx(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};Pe.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=Mx(this.dirRecords.length,i,e,this.zipComment,this.encodeFileName);this.push({data:n,meta:{percent:100}})};Pe.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()};Pe.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};Pe.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};Pe.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};Pe.prototype.lock=function(){Bi.prototype.lock.call(this);for(var e=this._sources,t=0;t<e.length;t++)e[t].lock()};Uf.exports=Pe});var Wf=k(Gf=>{"use strict";var Dx=El(),zx=qf(),Nx=function(e,t){var i=e||t,n=Dx[i];if(!n)throw new Error(i+" is not a valid compression method !");return n};Gf.generateWorker=function(e,t,i){var n=new zx(t.streamFiles,i,t.platform,t.encodeFileName),r=0;try{e.forEach(function(a,s){r++;var o=Nx(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 Vf=k((J1,Yf)=>{"use strict";var Bx=V(),Da=me();function Yn(e,t){Da.call(this,"Nodejs stream input adapter for "+e),this._upstreamEnded=!1,this._bindStream(t)}Bx.inherits(Yn,Da);Yn.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()})};Yn.prototype.pause=function(){return Da.prototype.pause.call(this)?(this._stream.pause(),!0):!1};Yn.prototype.resume=function(){return Da.prototype.resume.call(this)?(this._upstreamEnded?this.end():this._stream.resume(),!0):!1};Yf.exports=Yn});var rh=k((Q1,nh)=>{"use strict";var Fx=Ci(),Vn=V(),Jf=me(),Hx=Oo(),Qf=Io(),Kf=ga(),$x=Ku(),Ux=Wf(),Xf=En(),qx=Vf(),eh=function(e,t,i){var n=Vn.getTypeOf(t),r,a=Vn.extend(i||{},Qf);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=th(e)),a.createFolders&&(r=Gx(e))&&ih.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 Kf&&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 Kf||t instanceof Jf?l=t:Xf.isNode&&Xf.isStream(t)?l=new qx(e,t):l=Vn.prepareContent(e,t,a.binary,a.optimizedBinaryString,a.base64);var c=new $x(e,l,a);this.files[e]=c},Gx=function(e){e.slice(-1)==="/"&&(e=e.substring(0,e.length-1));var t=e.lastIndexOf("/");return t>0?e.substring(0,t):""},th=function(e){return e.slice(-1)!=="/"&&(e+="/"),e},ih=function(e,t){return t=typeof t!="undefined"?t:Qf.createFolders,e=th(e),this.files[e]||eh.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]};function Zf(e){return Object.prototype.toString.call(e)==="[object RegExp]"}var Wx={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(Zf(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,eh.call(this,e,t,i);return this},folder:function(e){if(!e)return this;if(Zf(e))return this.filter(function(r,a){return a.dir&&e.test(r)});var t=this.root+e,i=ih.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=Vn.extend(e||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:Fx.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.");Vn.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=Ux.generateWorker(this,i,n)}catch(r){t=new Jf("error"),t.error(r)}return new Hx(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)}};nh.exports=Wx});var Cl=k((eE,sh)=>{"use strict";var Yx=V();function ah(e){this.data=e,this.length=e.length,this.index=0,this.zero=0}ah.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 Yx.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))}};sh.exports=ah});var Tl=k((tE,lh)=>{"use strict";var oh=Cl(),Vx=V();function Fi(e){oh.call(this,e);for(var t=0;t<this.data.length;t++)e[t]=e[t]&255}Vx.inherits(Fi,oh);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};lh.exports=Fi});var uh=k((iE,dh)=>{"use strict";var ch=Cl(),Kx=V();function Hi(e){ch.call(this,e)}Kx.inherits(Hi,ch);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};dh.exports=Hi});var Ll=k((nE,fh)=>{"use strict";var ph=Tl(),Xx=V();function kl(e){ph.call(this,e)}Xx.inherits(kl,ph);kl.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};fh.exports=kl});var mh=k((rE,gh)=>{"use strict";var hh=Ll(),Zx=V();function Ol(e){hh.call(this,e)}Zx.inherits(Ol,hh);Ol.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};gh.exports=Ol});var Il=k((aE,yh)=>{"use strict";var za=V(),bh=rt(),Jx=Tl(),Qx=uh(),ew=mh(),tw=Ll();yh.exports=function(e){var t=za.getTypeOf(e);return za.checkSupport(t),t==="string"&&!bh.uint8array?new Qx(e):t==="nodebuffer"?new ew(e):bh.uint8array?new tw(za.transformTo("uint8array",e)):new Jx(za.transformTo("array",e))}});var _h=k((sE,wh)=>{"use strict";var Pl=Il(),kt=V(),iw=ga(),vh=ha(),Na=Ci(),Ba=El(),nw=rt(),rw=0,aw=3,sw=function(e){for(var t in Ba)if(Object.prototype.hasOwnProperty.call(Ba,t)&&Ba[t].magic===e)return Ba[t];return null};function xh(e,t){this.options=e,this.loadOptions=t}xh.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=sw(this.compressionMethod),t===null)throw new Error("Corrupted zip : compression "+kt.pretty(this.compressionMethod)+" unknown (inner file : "+kt.transformTo("string",this.fileName)+")");this.decompressed=new iw(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===rw&&(this.dosPermissions=this.externalFileAttributes&63),e===aw&&(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===kt.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===kt.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===kt.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===kt.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=nw.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=Na.utf8decode(this.fileName),this.fileCommentStr=Na.utf8decode(this.fileComment);else{var t=this.findExtraFieldUnicodePath();if(t!==null)this.fileNameStr=t;else{var i=kt.transformTo(e,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(i)}var n=this.findExtraFieldUnicodeComment();if(n!==null)this.fileCommentStr=n;else{var r=kt.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||vh(this.fileName)!==t.readInt(4)?null:Na.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||vh(this.fileComment)!==t.readInt(4)?null:Na.utf8decode(t.readData(e.length-5))}return null}};wh.exports=xh});var Ah=k((oE,Sh)=>{"use strict";var ow=Il(),dt=V(),Re=Sl(),lw=_h(),cw=rt();function Eh(e){this.files=[],this.loadOptions=e}Eh.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 ("+dt.pretty(t)+", expected "+dt.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=cw.uint8array?"uint8array":"array",i=dt.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(Re.LOCAL_FILE_HEADER),t.readLocalPart(this.reader),t.handleUTF8(),t.processAttributes()},readCentralDir:function(){var e;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(Re.CENTRAL_FILE_HEADER);)e=new lw({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(Re.CENTRAL_DIRECTORY_END);if(e<0){var t=!this.isSignature(0,Re.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(Re.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===dt.MAX_VALUE_16BITS||this.diskWithCentralDirStart===dt.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===dt.MAX_VALUE_16BITS||this.centralDirRecords===dt.MAX_VALUE_16BITS||this.centralDirSize===dt.MAX_VALUE_32BITS||this.centralDirOffset===dt.MAX_VALUE_32BITS){if(this.zip64=!0,e=this.reader.lastIndexOfSignature(Re.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(Re.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,Re.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(Re.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(Re.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,Re.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=ow(e)},load:function(e){this.prepareReader(e),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}};Sh.exports=Eh});var kh=k((lE,Th)=>{"use strict";var Rl=V(),Fa=Ei(),dw=Ci(),uw=Ah(),pw=Mo(),Ch=En();function fw(e){return new Fa.Promise(function(t,i){var n=e.decompressed.getContentWorker().pipe(new pw);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()})}Th.exports=function(e,t){var i=this;return t=Rl.extend(t||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:dw.utf8decode}),Ch.isNode&&Ch.isStream(e)?Fa.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):Rl.prepareContent("the loaded zip file",e,!0,t.optimizedBinaryString,t.base64).then(function(n){var r=new uw(t);return r.load(n),r}).then(function(r){var a=[Fa.Promise.resolve(r)],s=r.files;if(t.checkCRC32)for(var o=0;o<s.length;o++)a.push(fw(s[o]));return Fa.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=Rl.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 Oh=k((cE,Lh)=>{"use strict";function Ae(){if(!(this instanceof Ae))return new Ae;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 Ae;for(var t in this)typeof this[t]!="function"&&(e[t]=this[t]);return e}}Ae.prototype=rh();Ae.prototype.loadAsync=kh();Ae.support=rt();Ae.defaults=Io();Ae.version="3.10.1";Ae.loadAsync=function(e,t){return new Ae().loadAsync(e,t)};Ae.external=Ei();Lh.exports=Ae});var mg={};nn(mg,{AssetEditorModal:()=>sc});var sc,oc=Ye(()=>{"use strict";sc=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 zw={};rn(zw,{ConfigWatcher:()=>$t,DebugPanel:()=>Jn,DefaultReloadStrategy:()=>un,Handler:()=>Me,PreviewShell:()=>Ja,applyConfigOverride:()=>xe,applyConfigOverrides:()=>Bt,applyConfigsToDisk:()=>Tr,applyDefaults:()=>Ft,baseLottie:()=>gs,bootstrap:()=>Cw,clearConfigOverrides:()=>cn,clearConfigOverridesForObject:()=>ad,configOverrideManager:()=>sd,createPreviewShell:()=>lc,deepClone:()=>ue,default:()=>Mt,defaultPreset:()=>jr,deviceGroups:()=>$s,devicePresets:()=>Fs,diffConfigs:()=>Ms,exportConfigsAsJSON:()=>ks,getConfigOverrides:()=>fe,getConfigStateSummary:()=>Cr,getOverrideMode:()=>Er,getPresetById:()=>Ht,getPresetsByCategory:()=>Am,loadAllObjectConfigs:()=>Or,loadComponentSchemas:()=>Ir,loadEngineConfig:()=>Pr,loadGamePromptConfig:()=>Os,loadObjectCentricConfig:()=>et,loadObjectConfig:()=>bt,loadSceneConfig:()=>Rr,rehydrateObject:()=>js,removeConfigOverride:()=>Ar,resetToApplied:()=>dn,resetToOriginal:()=>kr,setBootstrapDependencies:()=>Sw,setOverrideMode:()=>Sr,setupHotReload:()=>Bs,setupLiveEditBridge:()=>Qa,toLegacyFormat:()=>Ps,validateObjectConfig:()=>hi});module.exports=Bg(zw);var ht={};function cr(e,t,i=!1){ht[e]||(ht[e]=[]),ht[e].push({fn:t,once:i})}function us(e,t){if(ht[e]){if(!t){delete ht[e];return}ht[e]=ht[e].filter(i=>i.fn!==t)}}function dr(e,...t){let i=ht[e];if(i)for(let n of[...i])n.fn(...t),n.once&&us(e,n.fn)}function be(e,t){cr(e,t,!0)}var Q=null,Te=[],di=null;function Cc(e){Q=e,Te=[],di!==null&&(clearTimeout(di),di=null)}function Tc(){var e,t,i;return{endpoint:(Q==null?void 0:Q.endpoint)||"",transport:(Q==null?void 0:Q.transport)||"beacon",batchSize:(e=Q==null?void 0:Q.batchSize)!=null?e:10,flushIntervalMs:(t=Q==null?void 0:Q.flushIntervalMs)!=null?t:300,maxQueue:(i=Q==null?void 0:Q.maxQueue)!=null?i:200,debug:!!(Q!=null&&Q.debug)}}async function Sc(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 ps(e,t){let i=Tc();if(t&&i.endpoint){if(Te.push(e),Te.length>i.maxQueue&&(Te=Te.slice(Te.length-i.maxQueue)),Te.length>=i.batchSize){Ac();return}di===null&&(di=window.setTimeout(()=>{di=null,Ac()},i.flushIntervalMs))}}async function Ac(){let e=Tc();if(!e.endpoint||Te.length===0)return;let t=Te.splice(0,e.batchSize);await Sc(e.endpoint,{events:t},e.transport,e.debug),Te.length>0&&await Sc(e.endpoint,{events:Te.splice(0,e.batchSize)},e.transport,e.debug)}var ve=0,Ng=ve++,kc=ve++,Lc=ve++,Ic=ve++,Oc=ve++,Pc=ve++,Rc=ve++,Mc=ve++,jc=ve++,Dc=ve++,zc=ve++,Bc=ve++,V=Ng;function Nc(){return V===kc}function Fc(){return V===Lc}function $c(){return V===Ic}function Hc(){return V===Oc}function ui(){return V===Pc}function pi(){return V===Rc}function Uc(){return V===Mc}function qc(){return V===jc}function Gc(){return V===Dc}function fs(){return V===zc}function hs(){return V===Bc}function Wc(){let e=typeof AD_PROTOCOL!="undefined"?AD_PROTOCOL:"none",t=typeof AD_NETWORK!="undefined"?AD_NETWORK:"web_embed";if(e==="mraid")try{mraid.getState(),V=kc;return}catch{}else if(e==="dapi")try{dapi.isReady(),V=Lc;return}catch{}if(t==="facebook")try{typeof FbPlayableAd!="undefined"&&(V=Ic)}catch{}else if(t==="google")try{typeof ExitApi!="undefined"&&(V=Oc)}catch{}else if(t==="mintegral")window.gameReady&&(V=Pc);else if(t==="tapjoy")window.TJ_API&&(V=Rc);else if(t==="tiktok")window.openAppStore&&(V=Mc);else if(t==="smadex")try{window.smxTracking&&(V=jc)}catch{}else if(t==="snapchat")try{window.ScPlayableAd&&(V=Dc)}catch{}else t==="vungle"?V=zc:(e==="nucleo"||t==="nucleo")&&(V=Bc)}var ur=ci(require("lottie-web"),1),gs=ur.default;typeof window!="undefined"&&(window.lottie=ur.default,window.__baseLottie=ur.default);var Fg=require("pixi.js");var ms=require("pixi.js");var $g=null;function bs(e){$g=e}pr();vs();var an=require("pixi.js");pr();var Yg=typeof __BUILD_MODE__!="undefined"?__BUILD_MODE__:"undefined",_s=Yg;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&&(_s=t.buildMode,console.log(`[ObjectFactory] Build mode overridden by settings: ${_s}`))}}catch{}var mt=class{static async create(t,i,n){var l,c,d,u,p,f,m;console.log(`[ObjectFactory] create() called for: ${t}, __BUILD_MODE__: ${_s}`);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 Dt.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 v=await fetch(b);if(v.ok){o=await v.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 Xg=ci(require("pixi.js"),1);typeof window!="undefined"&&(window.__basePixi=Xg);fi();var fr=require("pixi.js");fi();var As=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 mt.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 mt.create(t,i,this.app);this.instanceCache.set(t,n)}}get(t){return this.instanceCache.get(t)}},Zg=new As,Jg=new Proxy(Zg,{get(e,t){if(t in e&&typeof e[t]=="function")return e[t].bind(e);if(e.get(t))return e.get(t)}});fi();var Jc=require("pixi.js"),Ze={width:400,height:600,designWidth:400,scaleFactor:1},gr={scale:1,position:1},Ts=[];function em(e,t,i,n,r,a,s){Ts.push({element:e,originalScale:a,positionHelper:t,heightPercent:r}),t(e,i,n,r,a,s,!1)}function tm(){Ts.forEach(({element:e,originalScale:t,positionHelper:i,heightPercent:n})=>{let r=t*Ze.scaleFactor;i(e,Ze.width,Ze.height,n,r,!0,!1)})}function Cs(e,t){console.log(`[SCREEN] updateScreenState called: ${e}x${t}`),Ze.width=e,Ze.height=t,Ze.scaleFactor=Math.min(e/Ze.designWidth,1.15),gr.scale=Ze.scaleFactor,gr.position=1,console.log(`[SCREEN] Global multipliers - scale: ${gr.scale.toFixed(3)}`),tm()}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 im(e,t,i){let n=ln[e];n&&n[t]!==void 0&&(n[t]=i,console.log(`Updated ${e}.${t} = ${i}`))}function nm(){return ln}var rm={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 hr(e,t){return typeof e=="number"&&Number.isFinite(e)?e:t}function mr(e,t={x:.5,y:.5}){var i;if(Array.isArray(e))return{x:hr(e[0],t.x),y:hr(e[1],t.y)};if(e&&typeof e=="object"){let n=e;return{x:hr(n.x,t.x),y:hr(n.y,t.y)}}if(typeof e=="string"){let n=e.trim().toLowerCase();return(i=rm[n])!=null?i:t}return t}function Qc(e,t,i,n={}){var f,m,h,g,b,v;let r=mr(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=((v=a.bottom)!=null?v: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 ed(e,t,i,n={}){var h,g,b,v,y,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=((v=r.right)!=null?v:0)+a.x,l=((y=r.top)!=null?y: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=mr(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,Cs(n,r))};window.addEventListener("resize",i),window.addEventListener("orientationchange",()=>{setTimeout(i,100)}),window.mraid&&(window.mraid.addEventListener("viewableChange",i),window.mraid.addEventListener("sizeChange",i)),Cs(window.innerWidth,window.innerHeight),window.updateDebugConfig=im,window.getDebugConfig=nm,window.copyConfig=gm,window.applyConfig=on,window.applyConfigForRatio=mm,window.positionAtBottom=td,window.positionAtTop=om,window.positionAtCenter=lm,window.positionAtLeft=cm,window.positionAtRight=dm,window.positionAtBottomLeft=um,window.positionAtBottomRight=pm,window.positionAtTopLeft=fm,window.positionAtTopRight=hm,window.applyPositionContract=sm,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 br(e,t,i=0){return e*t+i}function vr(e,t,i=0){return e*(1-t)+i}function yr(e,t,i=0){return e*t+i}function xr(e,t,i=0){return e*(1-t)+i}function ye(e,t=0){return e/2+t}function am(e,t){return e*t}function sm(e,t,i,n){var s,o,l,c,d,u,p,f,m,h,g,b,v,y,x,w,S,A,E,k;let r=0,a=0;switch(n.type){case"top":r=ye(t,(o=(s=n.offset)==null?void 0:s.x)!=null?o:0),a=br(i,n.percent,(c=(l=n.offset)==null?void 0:l.y)!=null?c:0);break;case"bottom":r=ye(t,(u=(d=n.offset)==null?void 0:d.x)!=null?u:0),a=vr(i,n.percent,(f=(p=n.offset)==null?void 0:p.y)!=null?f:0);break;case"left":r=yr(t,n.percent,(h=(m=n.offset)==null?void 0:m.x)!=null?h:0),a=ye(i,(b=(g=n.offset)==null?void 0:g.y)!=null?b:0);break;case"right":r=xr(t,n.percent,(y=(v=n.offset)==null?void 0:v.x)!=null?y:0),a=ye(i,(w=(x=n.offset)==null?void 0:x.y)!=null?w:0);break;case"center":r=ye(t,(A=(S=n.offset)==null?void 0:S.x)!=null?A:0),a=ye(i,(k=(E=n.offset)==null?void 0:E.y)!=null?k: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 td(e,t,i,n=.2,r=1,a=!0,s=!1){let o=am(i,n),l=vr(i,n/2);Je(e,ye(t),l);let c=a?r*Ze.scaleFactor:r;Qe(e,c),s&&!Ts.find(d=>d.element===e)&&em(e,td,t,i,n,r,a)}function om(e,t,i,n=.1,r=1){Je(e,ye(t),br(i,n)),Qe(e,r)}function lm(e,t,i,n=0,r=0,a=1){Je(e,ye(t,n),ye(i,r)),Qe(e,a)}function cm(e,t,i,n=.1,r=1){Je(e,yr(t,n),ye(i)),Qe(e,r)}function dm(e,t,i,n=.1,r=1){Je(e,xr(t,n),ye(i)),Qe(e,r)}function um(e,t,i,n=.05,r=.05,a=1){Je(e,yr(t,r),vr(i,n)),Qe(e,a)}function pm(e,t,i,n=.05,r=.05,a=1){Je(e,xr(t,r),vr(i,n)),Qe(e,a)}function fm(e,t,i,n=.05,r=.05,a=1){Je(e,yr(t,r),br(i,n)),Qe(e,a)}function hm(e,t,i,n=.05,r=.05,a=1){Je(e,xr(t,r),br(i,n)),Qe(e,a)}function Je(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 Qe(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 zt={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 gm(e){return e&&zt[e]?JSON.parse(JSON.stringify(zt[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(zt.wide),console.log("Applied WIDE config for ratio:",i)):i<.7?(on(zt.tall),console.log("Applied TALL config for ratio:",i)):i>.8&&i<1.2?(on(zt.square),console.log("Applied SQUARE config for ratio:",i)):(on(zt.default),console.log("Applied DEFAULT config for ratio:",i))}if(typeof window!="undefined"){let e=window;e.configPresets=zt,e.resolveAnchorVec2=e.resolveAnchorVec2||mr,e.resolveScreenAnchorPoint=e.resolveScreenAnchorPoint||Qc,e.resolveScreenRatioPoint=e.resolveScreenRatioPoint||ed}Mr();function ee(e,t){let i=(r,a)=>a===0?r:i(a,r%a),n=i(e,t);return`${e/n}:${t/n}`}var o_=[{id:"iphone-15-pro-max",label:"iPhone 15 Pro Max",width:430,height:932,category:"iphone",ratio:ee(430,932)},{id:"iphone-15-pro",label:"iPhone 15 Pro",width:393,height:852,category:"iphone",ratio:ee(393,852)},{id:"iphone-15",label:"iPhone 15",width:393,height:852,category:"iphone",ratio:ee(393,852)},{id:"iphone-14",label:"iPhone 14",width:390,height:844,category:"iphone",ratio:ee(390,844)},{id:"iphone-se",label:"iPhone SE",width:375,height:667,category:"iphone",ratio:ee(375,667)},{id:"iphone-12-mini",label:"iPhone 12 Mini",width:360,height:780,category:"iphone",ratio:ee(360,780)}],l_=[{id:"pixel-8-pro",label:"Pixel 8 Pro",width:448,height:998,category:"android",ratio:ee(448,998)},{id:"pixel-8",label:"Pixel 8",width:412,height:915,category:"android",ratio:ee(412,915)},{id:"samsung-s24-ultra",label:"Samsung S24 Ultra",width:412,height:915,category:"android",ratio:ee(412,915)},{id:"samsung-s24",label:"Samsung S24",width:360,height:780,category:"android",ratio:ee(360,780)},{id:"samsung-a54",label:"Samsung A54",width:412,height:915,category:"android",ratio:ee(412,915)},{id:"oneplus-12",label:"OnePlus 12",width:412,height:915,category:"android",ratio:ee(412,915)}],c_=[{id:"ipad-pro-12",label:'iPad Pro 12.9"',width:1024,height:1366,category:"tablet",ratio:ee(1024,1366)},{id:"ipad-pro-11",label:'iPad Pro 11"',width:834,height:1194,category:"tablet",ratio:ee(834,1194)},{id:"ipad-air",label:"iPad Air",width:820,height:1180,category:"tablet",ratio:ee(820,1180)},{id:"ipad-mini",label:"iPad Mini",width:768,height:1024,category:"tablet",ratio:ee(768,1024)},{id:"samsung-tab-s9",label:"Samsung Tab S9",width:800,height:1280,category:"tablet",ratio:ee(800,1280)}],Ns=[{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:ee(390,844),mraidScale:.7},{id:"ipad-mini",label:"iPad Mini",width:768,height:1024,category:"playable",ratio:ee(768,1024),mraidScale:.7}];var Fs=[...Ns],$s=[{category:"playable",label:"Playable Ad",devices:Ns}],jr=Ns[0];function Ht(e){return Fs.find(t=>t.id===e)||jr}function Am(e){return Fs.filter(t=>t.category===e)}var Dr=class{constructor(){this.root=null;this.listContainer=null;this.searchInput=null;this.selectedId=null;this.options=null;this.retryTimer=null;this.filterMode="all"}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 Gw={};nn(Gw,{ConfigWatcher:()=>Ft,DebugPanel:()=>er,DefaultReloadStrategy:()=>fn,Handler:()=>Me,PreviewShell:()=>Qa,applyConfigOverride:()=>fe,applyConfigOverrides:()=>Nt,applyConfigsToDisk:()=>Tr,applyDefaults:()=>Bt,baseLottie:()=>ms,bootstrap:()=>Mw,clearConfigOverrides:()=>dn,clearConfigOverridesForObject:()=>pd,configOverrideManager:()=>fd,createPreviewShell:()=>dc,deepClone:()=>ne,default:()=>Mt,defaultPreset:()=>jr,deviceGroups:()=>Us,devicePresets:()=>$s,diffConfigs:()=>Ds,exportConfigsAsJSON:()=>Os,getConfigOverrides:()=>de,getConfigStateSummary:()=>Cr,getOverrideMode:()=>cn,getPresetById:()=>Ht,getPresetsByCategory:()=>Rm,loadAllObjectConfigs:()=>Ir,loadComponentSchemas:()=>Or,loadEngineConfig:()=>Pr,loadGamePromptConfig:()=>Rs,loadObjectCentricConfig:()=>et,loadObjectConfig:()=>bt,loadSceneConfig:()=>Rr,rehydrateObject:()=>zs,removeConfigOverride:()=>Ar,resetToApplied:()=>un,resetToOriginal:()=>kr,setBootstrapDependencies:()=>Pw,setOverrideMode:()=>Ls,setupHotReload:()=>Fs,setupLiveEditBridge:()=>es,toLegacyFormat:()=>Ms,validateObjectConfig:()=>fi});module.exports=qg(Gw);var ht={};function ur(e,t,i=!1){ht[e]||(ht[e]=[]),ht[e].push({fn:t,once:i})}function ps(e,t){if(ht[e]){if(!t){delete ht[e];return}ht[e]=ht[e].filter(i=>i.fn!==t)}}function pr(e,...t){let i=ht[e];if(i)for(let n of[...i])n.fn(...t),n.once&&ps(e,n.fn)}function ye(e,t){ur(e,t,!0)}var ee=null,Te=[],ci=null;function Lc(e){ee=e,Te=[],ci!==null&&(clearTimeout(ci),ci=null)}function Oc(){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 Tc(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 fs(e,t){let i=Oc();if(t&&i.endpoint){if(Te.push(e),Te.length>i.maxQueue&&(Te=Te.slice(Te.length-i.maxQueue)),Te.length>=i.batchSize){kc();return}ci===null&&(ci=window.setTimeout(()=>{ci=null,kc()},i.flushIntervalMs))}}async function kc(){let e=Oc();if(!e.endpoint||Te.length===0)return;let t=Te.splice(0,e.batchSize);await Tc(e.endpoint,{events:t},e.transport,e.debug),Te.length>0&&await Tc(e.endpoint,{events:Te.splice(0,e.batchSize)},e.transport,e.debug)}var ve=0,Gg=ve++,Ic=ve++,Pc=ve++,Rc=ve++,Mc=ve++,jc=ve++,Dc=ve++,zc=ve++,Nc=ve++,Bc=ve++,Fc=ve++,Hc=ve++,K=Gg;function $c(){return K===Ic}function Uc(){return K===Pc}function qc(){return K===Rc}function Gc(){return K===Mc}function di(){return K===jc}function ui(){return K===Dc}function Wc(){return K===zc}function Yc(){return K===Nc}function Vc(){return K===Bc}function hs(){return K===Fc}function gs(){return K===Hc}function Kc(){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=Ic;return}catch{}else if(e==="dapi")try{dapi.isReady(),K=Pc;return}catch{}if(t==="facebook")try{typeof FbPlayableAd!="undefined"&&(K=Rc)}catch{}else if(t==="google")try{typeof ExitApi!="undefined"&&(K=Mc)}catch{}else if(t==="mintegral")window.gameReady&&(K=jc);else if(t==="tapjoy")window.TJ_API&&(K=Dc);else if(t==="tiktok")window.openAppStore&&(K=zc);else if(t==="smadex")try{window.smxTracking&&(K=Nc)}catch{}else if(t==="snapchat")try{window.ScPlayableAd&&(K=Bc)}catch{}else t==="vungle"?K=Fc:(e==="nucleo"||t==="nucleo")&&(K=Hc)}var fr=li(require("lottie-web"),1),ms=fr.default;typeof window!="undefined"&&(window.lottie=fr.default,window.__baseLottie=fr.default);var Wg=require("pixi.js");var bs=require("pixi.js");var Yg=null;function ys(e){Yg=e}hr();vs();var rn=require("pixi.js");hr();var Qg=typeof __BUILD_MODE__!="undefined"?__BUILD_MODE__:"undefined",Es=Qg;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&&(Es=t.buildMode,console.log(`[ObjectFactory] Build mode overridden by settings: ${Es}`))}}catch{}var mt=class{static async create(t,i,n){var l,c,d,u,p,f,m;console.log(`[ObjectFactory] create() called for: ${t}, __BUILD_MODE__: ${Es}`);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 rn.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 Dt.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 rn.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 rn.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 an=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 im=li(require("pixi.js"),1);typeof window!="undefined"&&(window.__basePixi=im);pi();var gr=require("pixi.js");pi();var Cs=class{constructor(){this.instanceCache=new Map;this.readyPromise=null;this.app=null;this.registry=new an}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 mt.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 mt.create(t,i,this.app);this.instanceCache.set(t,n)}}get(t){return this.instanceCache.get(t)}},nm=new Cs,rm=new Proxy(nm,{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 td=require("pixi.js"),Ze={width:400,height:600,designWidth:400,scaleFactor:1},br={scale:1,position:1},ks=[];function sm(e,t,i,n,r,a,s){ks.push({element:e,originalScale:a,positionHelper:t,heightPercent:r}),t(e,i,n,r,a,s,!1)}function om(){ks.forEach(({element:e,originalScale:t,positionHelper:i,heightPercent:n})=>{let r=t*Ze.scaleFactor;i(e,Ze.width,Ze.height,n,r,!0,!1)})}function Ts(e,t){console.log(`[SCREEN] updateScreenState called: ${e}x${t}`),Ze.width=e,Ze.height=t,Ze.scaleFactor=Math.min(e/Ze.designWidth,1.15),br.scale=Ze.scaleFactor,br.position=1,console.log(`[SCREEN] Global multipliers - scale: ${br.scale.toFixed(3)}`),om()}var on={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 lm(e,t,i){let n=on[e];n&&n[t]!==void 0&&(n[t]=i,console.log(`Updated ${e}.${t} = ${i}`))}function cm(){return on}var dm={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 mr(e,t){return typeof e=="number"&&Number.isFinite(e)?e:t}function yr(e,t={x:.5,y:.5}){var i;if(Array.isArray(e))return{x:mr(e[0],t.x),y:mr(e[1],t.y)};if(e&&typeof e=="object"){let n=e;return{x:mr(n.x,t.x),y:mr(n.y,t.y)}}if(typeof e=="string"){let n=e.trim().toLowerCase();return(i=dm[n])!=null?i:t}return t}function id(e,t,i,n={}){var f,m,h,g,b,y;let r=yr(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 nd(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=yr(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,Ts(n,r))};window.addEventListener("resize",i),window.addEventListener("orientationchange",()=>{setTimeout(i,100)}),window.mraid&&(window.mraid.addEventListener("viewableChange",i),window.mraid.addEventListener("sizeChange",i)),Ts(window.innerWidth,window.innerHeight),window.updateDebugConfig=lm,window.getDebugConfig=cm,window.copyConfig=wm,window.applyConfig=sn,window.applyConfigForRatio=_m,window.positionAtBottom=rd,window.positionAtTop=fm,window.positionAtCenter=hm,window.positionAtLeft=gm,window.positionAtRight=mm,window.positionAtBottomLeft=bm,window.positionAtBottomRight=ym,window.positionAtTopLeft=vm,window.positionAtTopRight=xm,window.applyPositionContract=pm,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 vr(e,t,i=0){return e*t+i}function xr(e,t,i=0){return e*(1-t)+i}function wr(e,t,i=0){return e*t+i}function _r(e,t,i=0){return e*(1-t)+i}function xe(e,t=0){return e/2+t}function um(e,t){return e*t}function pm(e,t,i,n){var s,o,l,c,d,u,p,f,m,h,g,b,y,v,x,w,S,C,_,T;let r=0,a=0;switch(n.type){case"top":r=xe(t,(o=(s=n.offset)==null?void 0:s.x)!=null?o:0),a=vr(i,n.percent,(c=(l=n.offset)==null?void 0:l.y)!=null?c:0);break;case"bottom":r=xe(t,(u=(d=n.offset)==null?void 0:d.x)!=null?u:0),a=xr(i,n.percent,(f=(p=n.offset)==null?void 0:p.y)!=null?f:0);break;case"left":r=wr(t,n.percent,(h=(m=n.offset)==null?void 0:m.x)!=null?h:0),a=xe(i,(b=(g=n.offset)==null?void 0:g.y)!=null?b:0);break;case"right":r=_r(t,n.percent,(v=(y=n.offset)==null?void 0:y.x)!=null?v:0),a=xe(i,(w=(x=n.offset)==null?void 0:x.y)!=null?w:0);break;case"center":r=xe(t,(C=(S=n.offset)==null?void 0:S.x)!=null?C:0),a=xe(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 rd(e,t,i,n=.2,r=1,a=!0,s=!1){let o=um(i,n),l=xr(i,n/2);Je(e,xe(t),l);let c=a?r*Ze.scaleFactor:r;Qe(e,c),s&&!ks.find(d=>d.element===e)&&sm(e,rd,t,i,n,r,a)}function fm(e,t,i,n=.1,r=1){Je(e,xe(t),vr(i,n)),Qe(e,r)}function hm(e,t,i,n=0,r=0,a=1){Je(e,xe(t,n),xe(i,r)),Qe(e,a)}function gm(e,t,i,n=.1,r=1){Je(e,wr(t,n),xe(i)),Qe(e,r)}function mm(e,t,i,n=.1,r=1){Je(e,_r(t,n),xe(i)),Qe(e,r)}function bm(e,t,i,n=.05,r=.05,a=1){Je(e,wr(t,r),xr(i,n)),Qe(e,a)}function ym(e,t,i,n=.05,r=.05,a=1){Je(e,_r(t,r),xr(i,n)),Qe(e,a)}function vm(e,t,i,n=.05,r=.05,a=1){Je(e,wr(t,r),vr(i,n)),Qe(e,a)}function xm(e,t,i,n=.05,r=.05,a=1){Je(e,_r(t,r),vr(i,n)),Qe(e,a)}function Je(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 Qe(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 zt={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 wm(e){return e&&zt[e]?JSON.parse(JSON.stringify(zt[e])):JSON.parse(JSON.stringify(on))}function sn(e){Object.keys(e).forEach(t=>{let i=t;on[i]&&e[i]&&Object.assign(on[i],e[i])}),console.log("Config applied:",e)}function _m(e,t){let i=e/t;i>1.6?(sn(zt.wide),console.log("Applied WIDE config for ratio:",i)):i<.7?(sn(zt.tall),console.log("Applied TALL config for ratio:",i)):i>.8&&i<1.2?(sn(zt.square),console.log("Applied SQUARE config for ratio:",i)):(sn(zt.default),console.log("Applied DEFAULT config for ratio:",i))}if(typeof window!="undefined"){let e=window;e.configPresets=zt,e.resolveAnchorVec2=e.resolveAnchorVec2||yr,e.resolveScreenAnchorPoint=e.resolveScreenAnchorPoint||id,e.resolveScreenRatioPoint=e.resolveScreenRatioPoint||nd}Mr();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 g_=[{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)}],m_=[{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)}],b_=[{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)}],Hs=[{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 $s=[...Hs],Us=[{category:"playable",label:"Playable Ad",devices:Hs}],jr=Hs[0];function Ht(e){return $s.find(t=>t.id===e)||jr}function Rm(e){return $s.filter(t=>t.category===e)}var Dr=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">
|
|
@@ -59,29 +59,32 @@
|
|
|
59
59
|
<div class="scene-panel-search">
|
|
60
60
|
<input type="text" id="scene-object-search" placeholder="Search ids, tags, UI">
|
|
61
61
|
</div>
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
62
|
+
<div class="scene-panel-filters">
|
|
63
|
+
<select id="scene-screen-filter" class="scene-screen-filter" title="Filter by screen">
|
|
64
|
+
<option value="all">All Screens</option>
|
|
65
|
+
<option value="loading">Loading</option>
|
|
66
|
+
<option value="start">Start</option>
|
|
67
|
+
<option value="gameplay">Gameplay</option>
|
|
68
|
+
<option value="tutorial">Tutorial</option>
|
|
69
|
+
<option value="endgame">Endgame</option>
|
|
70
|
+
</select>
|
|
71
|
+
</div>
|
|
72
|
+
<div class="scene-object-list" data-object-list></div>
|
|
73
|
+
</div>
|
|
74
|
+
</div>
|
|
75
|
+
`}initialize(t,i){var r,a,s,o,l;this.options=i,this.root=t.querySelector('[data-panel="scene-objects"]'),this.listContainer=(r=this.root)==null?void 0:r.querySelector("[data-object-list]"),this.searchInput=(a=this.root)==null?void 0:a.querySelector("#scene-object-search"),(s=this.searchInput)==null||s.addEventListener("input",()=>this.refreshObjects());let n=(o=this.root)==null?void 0:o.querySelector("#scene-screen-filter");if(n){try{let c=window.localStorage.getItem(this.getScreenFilterStorageKey());c&&(this.screenFilter=c)}catch{}n.value=this.screenFilter;try{window.__HANDLER_ACTIVE_SCREEN=this.screenFilter,window.dispatchEvent(new CustomEvent("handler:active-screen-changed",{detail:{screen:this.screenFilter}}))}catch{}n.addEventListener("change",()=>{let c=n.value||"all";this.screenFilter=c;try{window.localStorage.setItem(this.getScreenFilterStorageKey(),this.screenFilter)}catch{}try{window.__HANDLER_ACTIVE_SCREEN=this.screenFilter,window.dispatchEvent(new CustomEvent("handler:active-screen-changed",{detail:{screen:this.screenFilter}}))}catch{}this.refreshObjects()})}(l=this.root)==null||l.addEventListener("click",c=>{let d=c.target;if(!d)return;let u=d.closest("[data-object-id]");if(!u)return;let p=u.dataset.objectId;p&&this.select(p)}),window.addEventListener("handler:screen-index-loaded",()=>this.refreshObjects())}setSelected(t){if(this.selectedId=t,!this.listContainer)return;Array.from(this.listContainer.querySelectorAll("[data-object-id]")).forEach(n=>{n.classList.toggle("selected",n.dataset.objectId===t)})}refreshObjects(){var d;if(!this.listContainer)return;let t=window.getEditableObjectList,i=window.getEditableObjectConfig,n=window.refreshEditableConfigIndex;if(typeof n=="function"&&n(),typeof t!="function"){this.scheduleRetry();return}let r=t();if(!Array.isArray(r)||r.length===0){let u=window.__editableObjectConfigs;u&&typeof u.keys=="function"&&(r=Array.from(u.keys()))}if(!Array.isArray(r)||r.length===0){this.scheduleRetry();return}let a=(((d=this.searchInput)==null?void 0:d.value)||"").trim().toLowerCase(),s=["loading","start","gameplay","tutorial","endgame"],o=Object.fromEntries(s.map(u=>[u,[]])),l=Object.fromEntries(s.map(u=>[u,[]]));r.forEach(u=>{var T,R,E,L;let p=typeof i=="function"?i(u):null;if(!p){let z=window.__editableObjectConfigs;z&&typeof z.get=="function"&&(p=(T=z.get(u))!=null?T:null)}let f=(((R=p==null?void 0:p.identity)==null?void 0:R.category)||"scene").toString(),m=(((E=p==null?void 0:p.identity)==null?void 0:E.id)||u).toString(),h=f.toLowerCase(),g=m.toLowerCase(),b=h.includes("ui")||g.startsWith("ui")||g.includes("label"),y=this.formatDisplayName(m||u),v=((L=p==null?void 0:p.render)==null?void 0:L.visible)===!1||(p==null?void 0:p.enabled)===!1,x=this.getObjectType(p),w={id:u,label:y,category:f,isUi:b,isUnused:v,objectType:x},S=this.inferScreen(w.id,p);if(this.screenFilter!=="all"&&S!==this.screenFilter||!(!a||w.id.toLowerCase().includes(a)||w.label.toLowerCase().includes(a)))return;(w.isUnused?l:o)[S].push(w)});let c={loading:"Loading Screen",start:"Start Screen",gameplay:"Gameplay",tutorial:"Tutorial",endgame:"Endgame"};this.listContainer.innerHTML=`
|
|
76
|
+
${s.map(u=>this.renderGroup(c[u],[...o[u],...l[u]])).join("")}
|
|
77
|
+
`,this.setSelected(this.selectedId)}formatDisplayName(t){let i=t.replace(/^json\./,"").replace(/^ui\./,"").replace(/_\d+$/,"").replace(/\./g," ").replace(/_/g," ");return i=i.split(" ").map(n=>n.charAt(0).toUpperCase()+n.slice(1).toLowerCase()).join(" "),i}inferScreen(t,i){var o,l;let n=window.__HANDLER_SCREEN_INDEX,r=(o=n==null?void 0:n.instanceToScreen)==null?void 0:o[t];if(r==="loading"||r==="start"||r==="gameplay"||r==="tutorial"||r==="endgame")return r;let a=(((l=i==null?void 0:i.identity)==null?void 0:l.id)||"").toString(),s=`${t} ${a}`.toLowerCase();return s.includes("loading")?"loading":s.includes("start")?"start":s.includes("tutorial")?"tutorial":s.includes("endgame")||s.includes("end_card")||s.includes("endcard")?"endgame":"gameplay"}getObjectType(t){var i,n,r,a,s,o,l,c,d;return t?(i=t.ui)!=null&&i.text?"text":(a=(r=(n=t.render)==null?void 0:n.asset)==null?void 0:r.path)!=null&&a.endsWith(".json")?"animation":((o=(s=t.render)==null?void 0:s.asset)==null?void 0:o.type)==="image"||(l=t.render)!=null&&l.texture?"sprite":(d=(c=t.gameplay)==null?void 0:c.tuning)!=null&&d.panel_width?"graphics":"container":"container"}renderGroup(t,i){if(!i.length)return"";let n=window.getEditableObjectConfig,r=i.map(a=>{var d,u;let s=typeof n=="function"?n(a.id):null;if(!s){let p=window.__editableObjectConfigs;p&&typeof p.get=="function"&&(s=(d=p.get(a.id))!=null?d:null)}let o=this.getTypeIconByType(a.objectType),l=this.getAssetPreview(s),c=(u=s==null?void 0:s.ui)!=null&&u.text?`"${s.ui.text.substring(0,12)}${s.ui.text.length>12?"...":""}"`:"";return`
|
|
78
|
+
<button class="scene-object-item ${a.isUnused?"unused":""}" data-object-id="${a.id}">
|
|
79
|
+
<span class="scene-object-label">${a.label}</span>
|
|
80
|
+
${c?`<span class="scene-object-text-preview">${c}</span>`:""}
|
|
81
|
+
<span class="scene-object-badge ${a.isUi?"ui":"scene"}">${a.category}</span>
|
|
79
82
|
</button>
|
|
80
83
|
`}).join("");return`
|
|
81
|
-
<div class="scene-object-group
|
|
84
|
+
<div class="scene-object-group">
|
|
82
85
|
<div class="scene-object-group-title">${t} <span class="scene-object-count">${i.length}</span></div>
|
|
83
86
|
<div class="scene-object-group-items">
|
|
84
|
-
${
|
|
87
|
+
${r}
|
|
85
88
|
</div>
|
|
86
89
|
</div>
|
|
87
90
|
`}getTypeIconByType(t){return{text:"\u{1F4DD}",sprite:"\u{1F5BC}\uFE0F",graphics:"\u2B1C",container:"\u{1F4E6}",animation:"\u{1F3AC}"}[t]||"\u{1F4E6}"}getTypeIcon(t){var n,r,a,s,o,l;if(!t)return"\u{1F4E6}";if((n=t.render)!=null&&n.texture){let c=t.render.texture;return c.includes("button")?"\u{1F518}":c.includes("key")?"\u{1F511}":"\u{1F5BC}\uFE0F"}if((r=t.ui)!=null&&r.text)return"\u{1F4DD}";if(((a=t.identity)==null?void 0:a.category)==="ui")return"\u{1F3A8}";if(t.effects||(o=(s=t.identity)==null?void 0:s.id)!=null&&o.includes("effect"))return"\u2728";if(t.audio)return"\u{1F50A}";let i=((l=t.identity)==null?void 0:l.id)||"";return i.includes("background")?"\u{1F5BC}\uFE0F":i.includes("character")?"\u{1F464}":i.includes("key")?"\u{1F511}":i.includes("draggable")?"\u{1F3AF}":i.includes("machine")?"\u2699\uFE0F":i.includes("tutorial")||i.includes("hand")?"\u{1F446}":"\u{1F4E6}"}getAssetPreview(t){var n;if(!t)return null;let i=(n=t.render)==null?void 0:n.texture;return i&&(i.endsWith(".png")||i.endsWith(".jpg")||i.endsWith(".jpeg"))?i.startsWith("library/")||i.startsWith("/raw/")?`/raw/${i.replace(/^\/raw\//,"")}`:`/raw/${i}`:null}getColorIndicator(t){var n,r,a,s;if(!t)return"";let i=((n=t.render)==null?void 0:n.background_color)||((a=(r=t.gameplay)==null?void 0:r.tuning)==null?void 0:a.panel_bg_color)||((s=t.ui)==null?void 0:s.backgroundColor);return i?`<span class="scene-object-color-dot" style="background-color: ${i}" title="${i}"></span>`:""}getMetadata(t){var n,r,a,s;if(!t)return"";let i=[];return((n=t.render)==null?void 0:n.visible)===!1&&i.push("hidden"),((r=t.render)==null?void 0:r.z_index)!==void 0&&i.push(`z:${t.render.z_index}`),((a=t.interaction)!=null&&a.clickable||(s=t.ui)!=null&&s.button)&&i.push("clickable"),i.length>0?i.join(" \u2022 "):""}scheduleRetry(){this.retryTimer||(this.retryTimer=window.setTimeout(()=>{this.retryTimer=null,this.refreshObjects()},400))}select(t){var i;this.selectedId=t,this.setSelected(t),(i=this.options)==null||i.onSelect(t)}};var zr=class{constructor(){this.root=null;this.infoEls={};this.options=null}render(){return`
|
|
@@ -243,7 +246,7 @@
|
|
|
243
246
|
</div>
|
|
244
247
|
</div>
|
|
245
248
|
</div>
|
|
246
|
-
`}initialize(t,i){var g,b,v,
|
|
249
|
+
`}initialize(t,i){var g,b,y,v,x,w,S,C,_,T,R,E,L,z,D,B;this.options=i,this.root=t.querySelector('[data-panel="scene-tools"]');let n=(g=this.root)==null?void 0:g.querySelector("#debug-highlight-object");n==null||n.addEventListener("change",()=>{var O;return(O=this.options)==null?void 0:O.onHighlightObject(!!n.checked)});let r=(b=this.root)==null?void 0:b.querySelector("#debug-highlight-anchor");r==null||r.addEventListener("change",()=>{var O;return(O=this.options)==null?void 0:O.onHighlightAnchor(!!r.checked)});let a=(y=this.root)==null?void 0:y.querySelector("#debug-nudge-enabled"),s=(v=this.root)==null?void 0:v.querySelector("#debug-nudge-controls");if(a&&s){let O=()=>s.classList.toggle("hidden",!a.checked);a.addEventListener("change",O),O()}Array.from(((x=this.root)==null?void 0:x.querySelectorAll(".debug-arrow-btn"))||[]).forEach(O=>{O.addEventListener("click",()=>{var A,I,j,Q;switch(O.dataset.nudge){case"up":(A=this.options)==null||A.onNudge(0,-1);break;case"down":(I=this.options)==null||I.onNudge(0,1);break;case"left":(j=this.options)==null||j.onNudge(-1,0);break;case"right":(Q=this.options)==null||Q.onNudge(1,0);break;default:break}})});let c=(()=>{var M;let O=window.getEditableEngineConfig;if(typeof O=="function"){let A=O();return(M=A==null?void 0:A.splash)!=null?M:{}}return{}})(),d=(w=this.root)==null?void 0:w.querySelector("#debug-loading-text"),u=(S=this.root)==null?void 0:S.querySelector("#debug-loading-text-scale"),p=(C=this.root)==null?void 0:C.querySelector("#debug-loading-text-scale-value"),f=(_=this.root)==null?void 0:_.querySelector("#debug-splash-on-start"),m=(T=this.root)==null?void 0:T.querySelector("#debug-show-splash");if(d&&(d.value=typeof c.loading_text=="string"&&c.loading_text.length>0?c.loading_text:"Y\xFCkleniyor...",d.addEventListener("input",()=>{var O,M;(M=(O=this.options)==null?void 0:O.onUpdateSplash)==null||M.call(O,{loading_text:d.value})})),u){let O=typeof c.loading_text_scale=="number"?c.loading_text_scale:.6;u.value=O.toString(),p&&(p.textContent=O.toFixed(2)),u.addEventListener("input",()=>{var A,I;let M=Number(u.value);p&&(p.textContent=Number.isFinite(M)?M.toFixed(2):"0.6"),Number.isFinite(M)&&((I=(A=this.options)==null?void 0:A.onUpdateSplash)==null||I.call(A,{loading_text_scale:M}))})}f&&(f.checked=!!c.show_on_start,f.addEventListener("change",()=>{var O,M;(M=(O=this.options)==null?void 0:O.onUpdateSplash)==null||M.call(O,{show_on_start:!!f.checked})})),m==null||m.addEventListener("click",()=>{var O,M;(M=(O=this.options)==null?void 0:O.onShowSplash)==null||M.call(O)}),this.infoEls={instance:(R=this.root)==null?void 0:R.querySelector("#debug-instance-id"),worldX:(E=this.root)==null?void 0:E.querySelector("#debug-world-x"),worldY:(L=this.root)==null?void 0:L.querySelector("#debug-world-y"),anchorX:(z=this.root)==null?void 0:z.querySelector("#debug-config-x"),anchorY:(D=this.root)==null?void 0:D.querySelector("#debug-config-y")};let h=(B=this.root)==null?void 0:B.querySelector("[data-advanced-toggle]");h&&h.addEventListener("click",()=>{let O=h.closest(".debug-collapsible");O==null||O.classList.toggle("collapsed")})}getNudgeStep(){var n,r;let t=(n=this.root)==null?void 0:n.querySelector("#debug-nudge-step"),i=Number((r=t==null?void 0:t.value)!=null?r:10);return Number.isFinite(i)?i:10}updateInfo(t){if(!t){this.infoEls.instance&&(this.infoEls.instance.textContent="\u2014"),this.infoEls.worldX&&(this.infoEls.worldX.textContent="0"),this.infoEls.worldY&&(this.infoEls.worldY.textContent="0"),this.infoEls.anchorX&&(this.infoEls.anchorX.textContent="\u2014"),this.infoEls.anchorY&&(this.infoEls.anchorY.textContent="\u2014");return}this.infoEls.instance&&(this.infoEls.instance.textContent=t.instanceId),this.infoEls.worldX&&(this.infoEls.worldX.textContent=t.worldX.toFixed(1)),this.infoEls.worldY&&(this.infoEls.worldY.textContent=t.worldY.toFixed(1)),this.infoEls.anchorX&&(this.infoEls.anchorX.textContent=t.anchorX==null?"\u2014":t.anchorX.toFixed(1)),this.infoEls.anchorY&&(this.infoEls.anchorY.textContent=t.anchorY==null?"\u2014":t.anchorY.toFixed(1))}};var Nr=class{constructor(){this.root=null;this.slotsContainer=null;this.options=null;this.registry=null;this.expandedSlot=null}mergeRegistries(t,i){let n=t||{},r=i||{},a={slots:Array.isArray(r.slots)?[...r.slots]:[],libraryAssets:typeof r.libraryAssets=="object"&&r.libraryAssets?{...r.libraryAssets}:{},categories:Array.isArray(r.categories)?[...r.categories]:[]},s=Array.isArray(n.slots)?n.slots:[];if(s.length>0&&a.slots.length>0)for(let c of a.slots){let d=s.find(u=>(u==null?void 0:u.slotId)&&u.slotId===(c==null?void 0:c.slotId));d!=null&&d.currentAsset&&d.currentAsset!==(c==null?void 0:c.currentAsset)&&(c.currentAsset=d.currentAsset)}let o=n.libraryAssets||{};for(let[c,d]of Object.entries(o)){if(!Array.isArray(d))continue;a.libraryAssets[c]||(a.libraryAssets[c]=[]);let u=new Set((a.libraryAssets[c]||[]).map(p=>p==null?void 0:p.filename));for(let p of d){let f=p==null?void 0:p.filename;!f||u.has(f)||(a.libraryAssets[c].unshift(p),u.add(f))}}let l=new Set(a.categories||[]);for(let c of n.categories||[])typeof c=="string"&&l.add(c);return a.categories=Array.from(l),a}render(){return`
|
|
247
250
|
<div class="scene-panel library-panel panel-accent-purple" data-panel="library">
|
|
248
251
|
<div class="scene-panel-header" data-panel-handle>
|
|
249
252
|
<div class="panel-title">
|
|
@@ -262,7 +265,7 @@
|
|
|
262
265
|
</div>
|
|
263
266
|
<div class="panel-resize-handle" data-panel-resize></div>
|
|
264
267
|
</div>
|
|
265
|
-
`}initialize(t,i){var a,s,o;this.options=i,this.root=t.querySelector('[data-panel="library"]'),this.slotsContainer=(a=this.root)==null?void 0:a.querySelector("[data-library-slots]");let n=(s=this.root)==null?void 0:s.querySelector("[data-create-ai]");n==null||n.addEventListener("click",()=>{this.handleCreateWithAI()});let r=(o=this.root)==null?void 0:o.querySelector("[data-refresh-library]");r==null||r.addEventListener("click",()=>{r.classList.add("pulse-anim"),this.refresh(),setTimeout(()=>r.classList.remove("pulse-anim"),500)}),this.loadAssetRegistry()}reRender(){console.log("[LIBRARY] Re-rendering slots..."),this.loadAssetRegistry()}async refresh(){console.log("[LIBRARY] Force refreshing asset registry...");try{let t=window.getEditableAssets,i=typeof t=="function"?t():null,n=await fetch(`/raw/assetRegistry.json?t=${Date.now()}`);if(n.ok){let r=await n.json(),a=this.mergeRegistries(i,r);window.getEditableAssets=()=>a,console.log("[LIBRARY] \u2705 Registry re-fetched successfully")}}catch(t){console.warn("[LIBRARY] Failed to re-fetch registry:",t)}this.loadAssetRegistry()}loadAssetRegistry(t=0){let i=window.getEditableAssets;if(typeof i=="function"){let n=i();if(n!=null&&n.slots&&Array.isArray(n.slots)&&n.slots.length>0){this.registry=n,console.log("[LIBRARY] Loaded slot-based registry:",this.registry.slots.length,"slots"),this.renderSlots();return}}t<15?(console.log(`[LIBRARY] Waiting for asset registry... (attempt ${t+1}/15)`),setTimeout(()=>this.loadAssetRegistry(t+1),200)):(console.warn("[LIBRARY] Failed to load asset registry"),this.slotsContainer&&(this.slotsContainer.innerHTML='<div class="library-info">No editable assets available</div>'))}renderSlots(){if(!this.slotsContainer||!this.registry)return;let t={};for(let n of this.registry.slots)t[n.category]||(t[n.category]=[]),t[n.category].push(n);let i=Date.now();this.slotsContainer.innerHTML="";for(let n of this.registry.categories){let r=t[n]||[];if(r.length===0)continue;let a=document.createElement("div");a.className="library-category";let s=document.createElement("div");s.className="library-category-header",s.textContent=this.formatCategoryName(n),a.appendChild(s);let o=document.createElement("div");o.className="library-category-slots";for(let l of r){let c=this.createSlotElement(l,i);o.appendChild(c)}a.appendChild(o),this.slotsContainer.appendChild(a)}}createSlotElement(t,i){let n=this.expandedSlot===t.slotId,r=document.createElement("div");r.className=`library-slot ${n?"expanded":""}`,r.dataset.slotId=t.slotId;let a=document.createElement("div");a.className="slot-header";let s=document.createElement("div");s.className="slot-current";let o=document.createElement("img");o.src=`/raw/${t.currentAsset}?t=${i}`,o.alt=t.displayName,o.className="slot-thumbnail",o.onerror=()=>{o.style.display="none"},s.appendChild(o),a.appendChild(s);let l=document.createElement("div");l.className="slot-info";let c=document.createElement("div");c.className="slot-name",c.textContent=t.displayName;let d=document.createElement("div");d.className="slot-asset",d.textContent=t.currentAsset,l.appendChild(c),l.appendChild(d),a.appendChild(l);let u=document.createElement("div");u.className="slot-actions";let p=document.createElement("button");p.className="slot-ai-edit",p.title="Edit with AI",p.textContent="\u2728 AI",p.addEventListener("click",async h=>{h.stopPropagation(),await this.handleAIEdit(t)}),u.appendChild(p);let f=document.createElement("button");f.className="slot-reset",f.title="Reset to default",f.textContent="\u21BA",f.addEventListener("click",async h=>{h.stopPropagation(),await this.handleReset(t)}),u.appendChild(f);let m=document.createElement("span");if(m.className="slot-expand-icon",m.textContent=n?"\u25BC":"\u25B6",u.appendChild(m),a.appendChild(u),a.addEventListener("click",()=>{this.expandedSlot=this.expandedSlot===t.slotId?null:t.slotId,this.renderSlots()}),r.appendChild(a),n){let h=this.createLibraryElement(t,i);r.appendChild(h)}return r}createLibraryElement(t,i){var a;let n=document.createElement("div");n.className="slot-library";let r=((a=this.registry)==null?void 0:a.libraryAssets[t.libraryFolder])||[];return this.fetchFolderAssets(t.libraryFolder,i).then(s=>{let o=new Map;for(let c of r)o.set(c.filename,c);for(let c of s)o.has(c.filename)||o.set(c.filename,c);let l=Array.from(o.values());if(l.length===0){n.innerHTML='<div class="library-empty">No alternative assets</div>';return}n.innerHTML="";for(let c of l){let d=document.createElement("div");d.className="library-item";let u=document.createElement("img");u.src=`/raw/library/${t.libraryFolder}/${c.filename}?t=${i}`,u.alt=c.displayName,u.className="library-thumbnail",u.onerror=()=>{u.style.opacity="0.3"},d.appendChild(u);let p=document.createElement("div");p.className="library-label",p.textContent=c.displayName,d.appendChild(p),d.addEventListener("click",async()=>{await this.handleApply(t,c.filename)}),n.appendChild(d)}}),n.innerHTML='<div class="library-loading">Loading assets...</div>',n}async fetchFolderAssets(t,i){try{let n=await fetch(`/raw/library/${t}/?t=${i}`);if(!n.ok)return[];let r=await n.text(),a=[],s=/href="([^"]+\.(png|jpg|jpeg))"/gi,o;for(;(o=s.exec(r))!==null;){let l=o[1];if(!l.startsWith("/")&&!l.startsWith("..")){let c=l.replace(/\.(png|jpg|jpeg)$/i,"").replace(/_/g," ");a.push({filename:l,displayName:c})}}return a}catch{return console.log("[LIBRARY] Could not fetch folder listing, using registry only"),[]}}async handleApply(t,i){var n;console.log("[LIBRARY] Applying asset:",i,"to slot:",t.slotId);try{await((n=this.options)==null?void 0:n.onApply(t.objectId,i,t.category)),t.currentAsset=i,this.renderSlots()}catch(r){console.error("[LIBRARY] Failed to apply asset:",r)}}async handleReset(t){var i;console.log("[LIBRARY] Resetting slot:",t.slotId,"to default:",t.defaultAsset);try{await((i=this.options)==null?void 0:i.onReset(t.objectId,t.defaultAsset,t.category)),t.currentAsset=t.defaultAsset,this.renderSlots()}catch(n){console.error("[LIBRARY] Failed to reset slot:",n)}}formatCategoryName(t){return t.replace(/_/g," ").split(" ").map(i=>i.charAt(0).toUpperCase()+i.slice(1)).join(" ")}async handleAIEdit(t){console.log("[Library] Opening AI Edit for slot:",t);let i=window.__openAiEditor;if(typeof i=="function"){let n=t.slotId||t.objectId,r="render.texture";t.category==="ui"&&(r="ui.image"),t.category==="audio"&&(r="audio.src"),i(n,`Edit ${t.displayName} with AI`,t.currentAsset,{objectId:t.objectId,path:r})}else console.warn("[Library] AI Editor not available"),alert("AI Editor is not available. Please ensure the Settings panel is loaded.")}handleCreateWithAI(){console.log("[Library] Opening AI Create modal");let t=window.__openAiEditor;typeof t=="function"?t("new_asset","Create new asset with AI"):(console.warn("[Library] AI Editor not available"),alert("AI Editor is not available. Please ensure the Settings panel is loaded."))}highlightSlot(t,i){if(!this.registry||!this.slotsContainer)return;let n=t.startsWith("json.")?t.replace("json.",""):t,r=this.registry.slots.find(a=>(a.objectId===n||a.slotId===n)&&(!i||a.category===i));r?(console.log("[LIBRARY] Highlighting slot:",r.slotId),this.expandedSlot=r.slotId,this.renderSlots(),setTimeout(()=>{var s;let a=(s=this.slotsContainer)==null?void 0:s.querySelector(`[data-slot-id="${r.slotId}"]`);a&&(a.scrollIntoView({behavior:"smooth",block:"center"}),a.classList.add("highlight-pulse"),setTimeout(()=>a.classList.remove("highlight-pulse"),3e3))},100)):console.warn("[LIBRARY] No slot found for highlight:",t,i)}};var
|
|
268
|
+
`}initialize(t,i){var a,s,o;this.options=i,this.root=t.querySelector('[data-panel="library"]'),this.slotsContainer=(a=this.root)==null?void 0:a.querySelector("[data-library-slots]");let n=(s=this.root)==null?void 0:s.querySelector("[data-create-ai]");n==null||n.addEventListener("click",()=>{this.handleCreateWithAI()});let r=(o=this.root)==null?void 0:o.querySelector("[data-refresh-library]");r==null||r.addEventListener("click",()=>{r.classList.add("pulse-anim"),this.refresh(),setTimeout(()=>r.classList.remove("pulse-anim"),500)}),this.loadAssetRegistry()}reRender(){console.log("[LIBRARY] Re-rendering slots..."),this.loadAssetRegistry()}async refresh(){console.log("[LIBRARY] Force refreshing asset registry...");try{let t=window.getEditableAssets,i=typeof t=="function"?t():null,n=await fetch(`/raw/assetRegistry.json?t=${Date.now()}`);if(n.ok){let r=await n.json(),a=this.mergeRegistries(i,r);window.getEditableAssets=()=>a,console.log("[LIBRARY] \u2705 Registry re-fetched successfully")}}catch(t){console.warn("[LIBRARY] Failed to re-fetch registry:",t)}this.loadAssetRegistry()}loadAssetRegistry(t=0){let i=window.getEditableAssets;if(typeof i=="function"){let n=i();if(n!=null&&n.slots&&Array.isArray(n.slots)&&n.slots.length>0){this.registry=n,console.log("[LIBRARY] Loaded slot-based registry:",this.registry.slots.length,"slots"),this.renderSlots();return}}t<15?(console.log(`[LIBRARY] Waiting for asset registry... (attempt ${t+1}/15)`),setTimeout(()=>this.loadAssetRegistry(t+1),200)):(console.warn("[LIBRARY] Failed to load asset registry"),this.slotsContainer&&(this.slotsContainer.innerHTML='<div class="library-info">No editable assets available</div>'))}renderSlots(){if(!this.slotsContainer||!this.registry)return;let t={};for(let n of this.registry.slots)t[n.category]||(t[n.category]=[]),t[n.category].push(n);let i=Date.now();this.slotsContainer.innerHTML="";for(let n of this.registry.categories){let r=t[n]||[];if(r.length===0)continue;let a=document.createElement("div");a.className="library-category";let s=document.createElement("div");s.className="library-category-header",s.textContent=this.formatCategoryName(n),a.appendChild(s);let o=document.createElement("div");o.className="library-category-slots";for(let l of r){let c=this.createSlotElement(l,i);o.appendChild(c)}a.appendChild(o),this.slotsContainer.appendChild(a)}}createSlotElement(t,i){let n=this.expandedSlot===t.slotId,r=document.createElement("div");r.className=`library-slot ${n?"expanded":""}`,r.dataset.slotId=t.slotId;let a=document.createElement("div");a.className="slot-header";let s=document.createElement("div");s.className="slot-current";let o=document.createElement("img");o.src=`/raw/${t.currentAsset}?t=${i}`,o.alt=t.displayName,o.className="slot-thumbnail",o.onerror=()=>{o.style.display="none"},s.appendChild(o),a.appendChild(s);let l=document.createElement("div");l.className="slot-info";let c=document.createElement("div");c.className="slot-name",c.textContent=t.displayName;let d=document.createElement("div");d.className="slot-asset",d.textContent=t.currentAsset,l.appendChild(c),l.appendChild(d),a.appendChild(l);let u=document.createElement("div");u.className="slot-actions";let p=document.createElement("button");p.className="slot-ai-edit",p.title="Edit with AI",p.textContent="\u2728 AI",p.addEventListener("click",async h=>{h.stopPropagation(),await this.handleAIEdit(t)}),u.appendChild(p);let f=document.createElement("button");f.className="slot-reset",f.title="Reset to default",f.textContent="\u21BA",f.addEventListener("click",async h=>{h.stopPropagation(),await this.handleReset(t)}),u.appendChild(f);let m=document.createElement("span");if(m.className="slot-expand-icon",m.textContent=n?"\u25BC":"\u25B6",u.appendChild(m),a.appendChild(u),a.addEventListener("click",()=>{this.expandedSlot=this.expandedSlot===t.slotId?null:t.slotId,this.renderSlots()}),r.appendChild(a),n){let h=this.createLibraryElement(t,i);r.appendChild(h)}return r}createLibraryElement(t,i){var a;let n=document.createElement("div");n.className="slot-library";let r=((a=this.registry)==null?void 0:a.libraryAssets[t.libraryFolder])||[];return this.fetchFolderAssets(t.libraryFolder,i).then(s=>{let o=new Map;for(let c of r)o.set(c.filename,c);for(let c of s)o.has(c.filename)||o.set(c.filename,c);let l=Array.from(o.values());if(l.length===0){n.innerHTML='<div class="library-empty">No alternative assets</div>';return}n.innerHTML="";for(let c of l){let d=document.createElement("div");d.className="library-item";let u=document.createElement("img");u.src=`/raw/library/${t.libraryFolder}/${c.filename}?t=${i}`,u.alt=c.displayName,u.className="library-thumbnail",u.onerror=()=>{u.style.opacity="0.3"},d.appendChild(u);let p=document.createElement("div");p.className="library-label",p.textContent=c.displayName,d.appendChild(p),d.addEventListener("click",async()=>{await this.handleApply(t,c.filename)}),n.appendChild(d)}}),n.innerHTML='<div class="library-loading">Loading assets...</div>',n}async fetchFolderAssets(t,i){try{let n=await fetch(`/raw/library/${t}/?t=${i}`);if(!n.ok)return[];let r=await n.text(),a=[],s=/href="([^"]+\.(png|jpg|jpeg))"/gi,o;for(;(o=s.exec(r))!==null;){let l=o[1];if(!l.startsWith("/")&&!l.startsWith("..")){let c=l.replace(/\.(png|jpg|jpeg)$/i,"").replace(/_/g," ");a.push({filename:l,displayName:c})}}return a}catch{return console.log("[LIBRARY] Could not fetch folder listing, using registry only"),[]}}async handleApply(t,i){var n;console.log("[LIBRARY] Applying asset:",i,"to slot:",t.slotId);try{await((n=this.options)==null?void 0:n.onApply(t.objectId,i,t.category)),t.currentAsset=i,this.renderSlots()}catch(r){console.error("[LIBRARY] Failed to apply asset:",r)}}async handleReset(t){var i;console.log("[LIBRARY] Resetting slot:",t.slotId,"to default:",t.defaultAsset);try{await((i=this.options)==null?void 0:i.onReset(t.objectId,t.defaultAsset,t.category)),t.currentAsset=t.defaultAsset,this.renderSlots()}catch(n){console.error("[LIBRARY] Failed to reset slot:",n)}}formatCategoryName(t){return t.replace(/_/g," ").split(" ").map(i=>i.charAt(0).toUpperCase()+i.slice(1)).join(" ")}async handleAIEdit(t){console.log("[Library] Opening AI Edit for slot:",t);let i=window.__openAiEditor;if(typeof i=="function"){let n=t.slotId||t.objectId,r="render.texture";t.category==="ui"&&(r="ui.image"),t.category==="audio"&&(r="audio.src"),i(n,`Edit ${t.displayName} with AI`,t.currentAsset,{objectId:t.objectId,path:r})}else console.warn("[Library] AI Editor not available"),alert("AI Editor is not available. Please ensure the Settings panel is loaded.")}handleCreateWithAI(){console.log("[Library] Opening AI Create modal");let t=window.__openAiEditor;typeof t=="function"?t("new_asset","Create new asset with AI"):(console.warn("[Library] AI Editor not available"),alert("AI Editor is not available. Please ensure the Settings panel is loaded."))}highlightSlot(t,i){if(!this.registry||!this.slotsContainer)return;let n=t.startsWith("json.")?t.replace("json.",""):t,r=this.registry.slots.find(a=>(a.objectId===n||a.slotId===n)&&(!i||a.category===i));r?(console.log("[LIBRARY] Highlighting slot:",r.slotId),this.expandedSlot=r.slotId,this.renderSlots(),setTimeout(()=>{var s;let a=(s=this.slotsContainer)==null?void 0:s.querySelector(`[data-slot-id="${r.slotId}"]`);a&&(a.scrollIntoView({behavior:"smooth",block:"center"}),a.classList.add("highlight-pulse"),setTimeout(()=>a.classList.remove("highlight-pulse"),3e3))},100)):console.warn("[LIBRARY] No slot found for highlight:",t,i)}};var Br=class{detectType(t,i,n){let r=t.toLowerCase();return typeof i=="string"&&i.match(/\.(png|jpg|jpeg|gif|webp)$/i)?"image":r.includes("color")||r.includes("tint")?"color":typeof i=="boolean"?"boolean":typeof i=="number"?"number":Array.isArray(i)?"array":typeof i=="object"&&i!==null?"object":"text"}isHexColor(t){return/^#[0-9a-fA-F]{6}$/i.test(t)}isImagePath(t){return/\.(png|jpg|jpeg|gif|svg)$/i.test(t)}};var Fr=class{render(t,i,n,r){let a=n&&n.trim(),s=a?`/raw/${n}`:"";return`
|
|
266
269
|
<div class="inspector-property inspector-property-image">
|
|
267
270
|
<div class="property-header">
|
|
268
271
|
<label class="inspector-property-label">${this.formatLabel(i)}</label>
|
|
@@ -312,7 +315,7 @@
|
|
|
312
315
|
</div>
|
|
313
316
|
</div>
|
|
314
317
|
</div>
|
|
315
|
-
`}formatLabel(t){return t.replace(/_/g," ").replace(/([a-z])([A-Z])/g,"$1 $2").replace(/\b\w/g,i=>i.toUpperCase())}};var
|
|
318
|
+
`}formatLabel(t){return t.replace(/_/g," ").replace(/([a-z])([A-Z])/g,"$1 $2").replace(/\b\w/g,i=>i.toUpperCase())}};var Hr=class{render(t,i,n,r){let a=n||"#000000";return`
|
|
316
319
|
<div class="inspector-property inspector-property-color">
|
|
317
320
|
<label class="inspector-property-label">${this.formatLabel(i)}</label>
|
|
318
321
|
<div class="inspector-color-group">
|
|
@@ -328,7 +331,7 @@
|
|
|
328
331
|
data-object-id="${t}" />
|
|
329
332
|
</div>
|
|
330
333
|
</div>
|
|
331
|
-
`}formatLabel(t){return t.replace(/_/g," ").replace(/([a-z])([A-Z])/g,"$1 $2").replace(/\b\w/g,i=>i.toUpperCase())}};var
|
|
334
|
+
`}formatLabel(t){return t.replace(/_/g," ").replace(/([a-z])([A-Z])/g,"$1 $2").replace(/\b\w/g,i=>i.toUpperCase())}};var $r=class{render(t,i,n,r){return`
|
|
332
335
|
<div class="inspector-property inspector-property-number">
|
|
333
336
|
<label class="inspector-property-label">${this.formatLabel(i)}</label>
|
|
334
337
|
<input type="number"
|
|
@@ -386,7 +389,7 @@
|
|
|
386
389
|
${a.join("")}
|
|
387
390
|
</div>
|
|
388
391
|
</div>
|
|
389
|
-
`}formatLabel(t){return t.replace(/_/g," ").replace(/([a-z])([A-Z])/g,"$1 $2").replace(/\b\w/g,i=>i.toUpperCase())}};var Yr=class{constructor(){this.typeDetector=new
|
|
392
|
+
`}formatLabel(t){return t.replace(/_/g," ").replace(/([a-z])([A-Z])/g,"$1 $2").replace(/\b\w/g,i=>i.toUpperCase())}};var Yr=class{constructor(){this.typeDetector=new Br,this.imageRenderer=new Fr,this.colorRenderer=new Hr,this.numberRenderer=new $r,this.textRenderer=new Ur,this.booleanRenderer=new qr,this.arrayRenderer=new Gr,this.objectRenderer=new Wr(this)}renderProperty(t,i,n,r){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);default:return this.textRenderer.render(t,i,n,r)}}getTypeDetector(){return this.typeDetector}};ke();var hi=class{async updateProperty(t,i,n,r={}){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}this.setNestedProperty(s,i,n),fe({objectId:t,path:i,value:n},{persist:!0});let o=window.applyEditableObjectConfig;typeof o=="function"?(await o(t,s),console.log("[PropertyUpdateManager] Applied config successfully")):console.warn("[PropertyUpdateManager] applyEditableObjectConfig not available"),this.triggerRefresh(t),r.refreshInspector&&window.dispatchEvent(new CustomEvent("inspector:refresh"))}setNestedProperty(t,i,n){let r=i.split("."),a=t;for(let o=0;o<r.length-1;o++){let l=r[o];a[l]||(a[l]={}),a=a[l]}let s=r[r.length-1];a[s]=n}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 Vr=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 Mm(e,t){let i;return function(...r){let a=()=>{clearTimeout(i),e(...r)};clearTimeout(i),i=setTimeout(a,t)}}var Kr=class{constructor(){this.root=null;this.contentContainer=null;this.selectedObjectId=null;this.options=null;this.showAdvanced=!1;this.rendererRegistry=new Yr,this.updateManager=new hi,this.quickActions=new Vr,window.addEventListener("inspector:refresh",()=>{this.selectedObjectId&&this.loadObject(this.selectedObjectId)}),window.addEventListener("config:changed",()=>{})}render(){return`
|
|
390
393
|
<div class="scene-panel inspector-panel panel-accent-violet" data-panel="inspector" style="right:16px; top:72px;">
|
|
391
394
|
<div class="scene-panel-header" data-panel-handle>
|
|
392
395
|
<div class="panel-title">
|
|
@@ -447,7 +450,7 @@
|
|
|
447
450
|
${a.join("")}
|
|
448
451
|
</div>
|
|
449
452
|
</div>
|
|
450
|
-
`}attachEventListeners(){var c,d,u,p;if(!this.contentContainer)return;let t=this.contentContainer.querySelectorAll("[data-property-path]"),i=
|
|
453
|
+
`}attachEventListeners(){var c,d,u,p;if(!this.contentContainer)return;let t=this.contentContainer.querySelectorAll("[data-property-path]"),i=Mm((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=`
|
|
451
454
|
<div class="inspector-empty">
|
|
452
455
|
<span class="inspector-empty-icon">\u26A0\uFE0F</span>
|
|
453
456
|
<span class="inspector-empty-text">${t}</span>
|
|
@@ -457,7 +460,7 @@
|
|
|
457
460
|
<span class="inspector-empty-icon">\u{1F3AF}</span>
|
|
458
461
|
<span class="inspector-empty-text">Select an object to inspect</span>
|
|
459
462
|
</div>
|
|
460
|
-
`)}};var
|
|
463
|
+
`)}};var Gh=li(Oh(),1);function Ml(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 Ih(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 Ph(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 Ha(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 Ml(r),s=await Ph(a),o=Ih(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 Lt(e){var t,i;try{let n=await Ml(e),r=await Ph(n),a=Ih(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 Rh(e){return Ml(e).then(t=>t).catch(()=>null)}function jl(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 Mh(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 ut(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ce(e){return typeof e=="string"?e:void 0}function jh(e){return e.toLowerCase().endsWith(".png")?e.slice(0,-4):e}function hw(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?jh((a=i.split("/").pop())!=null?a:i):void 0}function gw(e,t,i){var n,r,a;if(typeof t=="string")return{id:e,file:t,role:i};if(ut(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 Dl(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=jh((i=s.split("/").pop())!=null?i:s);a.push({id:o,file:s,role:t});continue}if(ut(s)){let o=hw(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(ut(e)){let a=[];for(let[s,o]of Object.entries(e)){let l=gw(s,o,t);l&&a.push(l)}return a}return[]}function mw(e){var t,i;return(i=(t=ce(e.brand_name))!=null?t:ce(e.brandName))!=null?i:ce(e.name)}function bw(e){if(ut(e.brand_dna)&&ut(e.brand_dna.colors))return e.brand_dna;if(ut(e.colors)){let t={colors:e.colors};return typeof e.style=="string"&&(t.style=e.style),ut(e.fonts)&&(t.fonts=e.fonts),t}}function yw(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 zl(e,t={}){var s,o,l;let i=e.filter(ut),n=(o=(s=i.map(mw).find(Boolean))!=null?s:t.defaultBrandName)!=null?o:"Imported Brand",r=(l=i.map(bw).find(Boolean))!=null?l:{colors:{}},a=[];for(let c of i)"layers"in c&&a.push(...Dl(c.layers,"visual element")),"assets"in c&&a.push(...Dl(c.assets,"visual element")),ut(c.endgame)&&"assets"in c.endgame&&a.push(...Dl(c.endgame.assets,"endgame"));return{version:"1.0",brand_name:n,brand_dna:r,assets:yw(a)}}var Dh=require("@google/genai");async function $a(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 Dh.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 zh=require("@google/genai");async function Ui(e,t,i=[],n={}){try{console.info("[GEMINI-REAL-SDK] Initializing GoogleGenAI...");let r=new zh.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 Nh(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(`
|
|
461
464
|
`)||"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(`
|
|
462
465
|
`),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=`
|
|
463
466
|
BRAND CONTENT:
|
|
@@ -521,7 +524,7 @@ OUTPUT ONLY VALID JSON (no markdown, no explanation):
|
|
|
521
524
|
}
|
|
522
525
|
]
|
|
523
526
|
}
|
|
524
|
-
`.trim()}function
|
|
527
|
+
`.trim()}function Bh(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`
|
|
525
528
|
TASK: ${e.prompt}
|
|
526
529
|
|
|
527
530
|
BRAND STYLE:
|
|
@@ -542,7 +545,7 @@ OUTPUT CONSTRAINTS (MUST FOLLOW):
|
|
|
542
545
|
|
|
543
546
|
OUTPUT:
|
|
544
547
|
Generate the requested asset matching the brand style.${e.needsTransparency?" Background MUST be solid magenta (#FF00FF).":""}
|
|
545
|
-
`.trim()}function
|
|
548
|
+
`.trim()}function Fh(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 Hh(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 $h(e){var s,o;let t=Fh(e.gameObjects),i={gamePrompt:e.gamePrompt,gameObjects:t,brandAssets:e.manifest.assets,brandDna:e.manifest.brand_dna,brandName:e.manifest.brand_name},n=Nh(i),r=[];if(e.flatDesignDataUrl)try{let l=Uh(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 $a(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 vw(a,e.gameObjects)}function vw(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 Nl(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 xw(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 xw(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 Lt(l);c&&i.push({base64:c.base64,mimeType:c.mimeType})}}}if(e.flatDesignDataUrl){let o=Uh(e.flatDesignDataUrl);o&&i.push(o)}let n=Hh(t.game_object),r={prompt:t.generation_prompt,hasReference:i.length>0,brandDna:e.manifest.brand_dna,needsTransparency:n},a=Bh(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 Uh(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 Lt(a);s&&(r.dataUrl=s.dataUrl)}}}var Ua=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`
|
|
546
549
|
<div class="scene-panel brand-vision-panel panel-accent-violet" data-panel="brand-vision">
|
|
547
550
|
<div class="scene-panel-header" data-panel-handle>
|
|
548
551
|
<div class="panel-title">
|
|
@@ -658,15 +661,15 @@ Generate the requested asset matching the brand style.${e.needsTransparency?" Ba
|
|
|
658
661
|
</div>
|
|
659
662
|
<div class="panel-resize-handle" data-panel-resize></div>
|
|
660
663
|
</div>
|
|
661
|
-
`}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]"),
|
|
664
|
+
`}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 Gh.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=zl(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
|
|
662
665
|
\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}
|
|
663
666
|
`:l.brand_dna||l.colors?r+=`\u2705 Brand: ${s.name}
|
|
664
667
|
`:r+=`\u2705 Loaded: ${s.name}
|
|
665
668
|
`}catch{r+=`\u274C Error in ${s.name}
|
|
666
|
-
`}try{this.normalizedManifest=
|
|
669
|
+
`}try{this.normalizedManifest=zl(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+=`
|
|
667
670
|
\u{1F4E6} Normalized manifest: ${s} assets`,r+=`
|
|
668
671
|
\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+=`
|
|
669
|
-
\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 Lt(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
|
|
672
|
+
\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 Lt(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 $h(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 Nl(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?`
|
|
670
673
|
<div class="vision-raw-block">
|
|
671
674
|
<div class="inspector-text-sm" style="white-space: pre-wrap;">
|
|
672
675
|
\u26A0\uFE0F AI response was not valid JSON (${this.analysisParseError||"unknown error"}).
|
|
@@ -676,7 +679,7 @@ Generate the requested asset matching the brand style.${e.needsTransparency?" Ba
|
|
|
676
679
|
</div>
|
|
677
680
|
`:"";t.innerHTML=`
|
|
678
681
|
${s}
|
|
679
|
-
${this.mappingResult.mappings.map(l=>{var b;let c=n[l.game_object]||"",d=l.brand_asset||"",u=(b=i==null?void 0:i.assets)==null?void 0:b.find(
|
|
682
|
+
${this.mappingResult.mappings.map(l=>{var b;let c=n[l.game_object]||"",d=l.brand_asset||"",u=(b=i==null?void 0:i.assets)==null?void 0:b.find(y=>y.id===d),p=(u==null?void 0:u.dataUrl)||"",f=l.output_dataUrl||"",m=l.action==="GENERATE"?f:l.action==="APPLY"?p:"",h=!!m,g=`
|
|
680
683
|
<select class="inspector-input" data-mapping-brand-asset style="flex:1; padding:6px 8px;">
|
|
681
684
|
<option value="">Select brand asset\u2026</option>
|
|
682
685
|
${a.replace(`value="${d}"`,`value="${d}" selected`)}
|
|
@@ -728,8 +731,8 @@ Generate the requested asset matching the brand style.${e.needsTransparency?" Ba
|
|
|
728
731
|
</div>
|
|
729
732
|
</div>
|
|
730
733
|
`}).join("")}
|
|
731
|
-
`}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
|
|
732
|
-
`)}var
|
|
734
|
+
`}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 Nl(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(()=>(ke(),Lr));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 Wh(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(`
|
|
735
|
+
`)}var ww=["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"],_w=["cta_hint","cta_label_end"],Yh=[{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"}],Ew=["brand.primary","brand.heading","brand.body","brand.warning"],qa=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`
|
|
733
736
|
<div class="scene-panel customize-panel panel-accent-blue" data-panel="customize-settings">
|
|
734
737
|
<div class="scene-panel-header" data-panel-handle>
|
|
735
738
|
<div class="panel-title">
|
|
@@ -797,7 +800,7 @@ Generate the requested asset matching the brand style.${e.needsTransparency?" Ba
|
|
|
797
800
|
<path d="M12 3l4 4h-3v6h-2V7H8l4-4z" />
|
|
798
801
|
<path d="M5 14v4h14v-4h2v6H3v-6h2z" />
|
|
799
802
|
</svg>
|
|
800
|
-
`;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="",
|
|
803
|
+
`;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="",ww.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="",Ew.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="",_w.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)}),Yh.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=Yh.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 Ha(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=`
|
|
801
804
|
<div class="ai-modal-card">
|
|
802
805
|
<div class="ai-modal-header">
|
|
803
806
|
<div>
|
|
@@ -868,7 +871,7 @@ Generate the requested asset matching the brand style.${e.needsTransparency?" Ba
|
|
|
868
871
|
</div>
|
|
869
872
|
</div>
|
|
870
873
|
</div>
|
|
871
|
-
`;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 v,y;let b=(y=(v=this.aiStrengthInput)==null?void 0:v.value)!=null?y:"5";this.aiStrengthValue&&(this.aiStrengthValue.textContent=b)}),(d=this.aiBgToleranceInput)==null||d.addEventListener("input",()=>{var v,y;let b=(y=(v=this.aiBgToleranceInput)==null?void 0:v.value)!=null?y:"30";this.aiBgToleranceValue&&(this.aiBgToleranceValue.textContent=b),this.refreshAiOutputFromRaw()}),(u=this.aiReferenceInput)==null||u.addEventListener("change",()=>{var v,y,x;let b=(x=(y=(v=this.aiReferenceInput)==null?void 0:v.files)==null?void 0:y[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,v,y,x,w,S,A,E,k,O,_,T,R;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=(y=(v=this.aiRemoveBgToggle)==null?void 0:v.checked)!=null?y:!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 B=null,M=(E=this.getSelectedAssetKey())!=null?E:"unknown",L=(k=this.aiUseOutputToggle)!=null&&k.checked&&this.aiOutputDataUrl?"ai-output":"asset-value";if((O=this.aiUseOutputToggle)!=null&&O.checked&&this.aiOutputDataUrl){let je=Rl(this.aiOutputDataUrl,"ai-output.png");if(je){let De=await Lt(je);De&&(B={input:{base64:De.base64,mimeType:De.mimeType},dataUrl:De.dataUrl,width:De.width,height:De.height})}}if(B||(B=await this.getImageDataFromAsset(c)),!B){this.setAiStatus("Unable to load the base image.");return}let P=[B.input],F=!1;if(this.aiReferenceFile){let je=await Lt(this.aiReferenceFile);je?(P.push({base64:je.base64,mimeType:je.mimeType}),F=!0,this.setAiStatus(`Generating with reference: ${this.aiReferenceFile.name}`)):this.setAiStatus("Reference image failed to load, generating without reference.")}let re=Nh(n,{includeReference:F,includeMagenta:a,changeLevel:o}),j=(T=(_=this.aiReferenceFile)==null?void 0:_.name)!=null?T:"none";console.info("[AI] Final prompt:",re),console.info("[AI] Image sources:",{assetKey:M,base:L,reference:j});let J=Th(B.width,B.height);console.info("[AI] CRITICAL: Calling generateImageWithGemini25Flash NOW...");let ae=await qi(t,re,P,{aspectRatio:J,model:i});console.info("[AI] CRITICAL: generateImageWithGemini25Flash returned! Length:",ae==null?void 0:ae.length),this.aiRawOutputDataUrl=ae,await this.refreshAiOutputFromRaw()}catch(B){console.error("[CustomizePanel] AI Generate Error:",B),this.setAiStatus("Generation failed. Check console.")}finally{this.setAiLoading(!1),((R=this.aiStatusEl)==null?void 0:R.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 Ui(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=Rl(this.aiOutputDataUrl,"ai-output.png");if(!r)return;let a=await this.showManualCropModal(r,n,i);if(!a)return;let s=await Ch(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=`
|
|
874
|
+
`;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,C,_,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())||((C=this.aiBaseValue)==null?void 0:C.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 je=jl(this.aiOutputDataUrl,"ai-output.png");if(je){let De=await Lt(je);De&&(D={input:{base64:De.base64,mimeType:De.mimeType},dataUrl:De.dataUrl,width:De.width,height:De.height})}}if(D||(D=await this.getImageDataFromAsset(c)),!D){this.setAiStatus("Unable to load the base image.");return}let M=[D.input],A=!1;if(this.aiReferenceFile){let je=await Lt(this.aiReferenceFile);je?(M.push({base64:je.base64,mimeType:je.mimeType}),A=!0,this.setAiStatus(`Generating with reference: ${this.aiReferenceFile.name}`)):this.setAiStatus("Reference image failed to load, generating without reference.")}let I=Wh(n,{includeReference:A,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=Mh(D.width,D.height);console.info("[AI] CRITICAL: Calling generateImageWithGemini25Flash NOW...");let se=await Ui(t,I,M,{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=jl(this.aiOutputDataUrl,"ai-output.png");if(!r)return;let a=await this.showManualCropModal(r,n,i);if(!a)return;let s=await Rh(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=`
|
|
872
875
|
<div class="asset-preview-card">
|
|
873
876
|
<div class="asset-preview-header">
|
|
874
877
|
<div class="asset-preview-title">${t}</div>
|
|
@@ -914,10 +917,76 @@ Generate the requested asset matching the brand style.${e.needsTransparency?" Ba
|
|
|
914
917
|
<button class="asset-crop-apply" type="button">Apply Crop</button>
|
|
915
918
|
</div>
|
|
916
919
|
</div>
|
|
917
|
-
`;let v=c.querySelector(".asset-crop-canvas"),y=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"),E=c.querySelector(".asset-crop-apply"),k=c.querySelector(".asset-crop-reset");if(!v||!y||!x||!w){l(null);return}let O=v.getContext("2d"),_=y.getContext("2d");if(!O||!_){l(null);return}let T=s.naturalWidth,R=s.naturalHeight,B=Math.max(v.width/T,v.height/R),M=1,L=0,P=0,F=!1,re=0,j=0,J=0,ae=0,je=()=>{let $=B*M,Rt=Math.max(0,(T*$-v.width)/2),si=Math.max(0,(R*$-v.height)/2);L=Math.min(Rt,Math.max(-Rt,L)),P=Math.min(si,Math.max(-si,P))},De=()=>{let $=B*M;O.clearRect(0,0,v.width,v.height);let Rt=v.width/2-T*$/2+L,si=v.height/2-R*$/2+P;if(O.drawImage(s,Rt,si,T*$,R*$),_.clearRect(0,0,y.width,y.height),o!=null&&o.naturalWidth&&(o!=null&&o.naturalHeight)){let li=Math.max(y.width/o.naturalWidth,y.height/o.naturalHeight),ds=y.width/2-o.naturalWidth*li/2,nn=y.height/2-o.naturalHeight*li/2;_.drawImage(o,ds,nn,o.naturalWidth*li,o.naturalHeight*li)}else _.fillStyle="rgba(255, 255, 255, 0.04)",_.fillRect(0,0,y.width,y.height),_.strokeStyle="rgba(255, 255, 255, 0.08)",_.strokeRect(4,4,y.width-8,y.height-8);let tn=y.width/v.width*(B*M),oi=L*(y.width/v.width),or=P*(y.height/v.height),ls=y.width/2-T*tn/2+oi,cs=y.height/2-R*tn/2+or;_.save(),_.globalAlpha=.7,_.drawImage(s,ls,cs,T*tn,R*tn),_.restore()},_c=()=>{L=0,P=0,je(),De()};x.addEventListener("input",()=>{M=Number(x.value),w.textContent=`${M.toFixed(2)}\xD7`,je(),De()}),v.addEventListener("pointerdown",$=>{F=!0,re=$.clientX,j=$.clientY,J=L,ae=P,v.setPointerCapture($.pointerId)}),v.addEventListener("pointermove",$=>{F&&(L=J+($.clientX-re),P=ae+($.clientY-j),je(),De())}),v.addEventListener("pointerup",$=>{F=!1,v.releasePointerCapture($.pointerId)}),v.addEventListener("pointerleave",()=>{F=!1});let ss=()=>{c.remove()},os=()=>{ss(),l(null)},Ig=async()=>{let $=document.createElement("canvas");$.width=i.width,$.height=i.height;let Rt=$.getContext("2d");if(!Rt){ss(),l(null);return}let si=M,oi=Math.max($.width/T,$.height/R)*si,or=$.width/v.width,ls=L*or,cs=P*or,li=$.width/2-T*oi/2+ls,ds=$.height/2-R*oi/2+cs;Rt.drawImage(s,li,ds,T*oi,R*oi);let nn=await new Promise(Og=>{$.toBlob(Pg=>Og(Pg),t.type||"image/png")});if(ss(),!nn){l(null);return}l(new File([nn],t.name,{type:nn.type}))};S==null||S.addEventListener("click",os),A==null||A.addEventListener("click",os),k==null||k.addEventListener("click",_c),E==null||E.addEventListener("click",()=>{Ig()}),c.addEventListener("click",$=>{$.target===c&&os()}),document.body.appendChild(c),_c()})}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 Yn=require("pixi.js");fi();ke();async function $h(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 Yn.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)Be[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 Hh(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 Yn.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)Be[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 v=((r=b.getDisplayObject)==null?void 0:r.call(b))||b.pixiObject||b;v!=null&&v.texture&&(v.texture=u,console.log("[LIBRARY] \u2705 Reset display object:",g))}}}catch(a){console.error("[LIBRARY] Error resetting asset:",a)}}async function Uh(e,t,i,n){var r,a,s,o,l,c,d,u,p,f,m,h,g,b,v;console.log("[LIBRARY] applySlotAsset:",{objectId:t,assetFilename:i,category:n});try{let y=t.startsWith("json.")?t.replace("json.",""):t;console.log("[LIBRARY] Asset key:",y);let x=Date.now(),w=`/raw/library/${n}/${i}?t=${x}`;console.log("[LIBRARY] Loading texture from:",w);let S=await Yn.Assets.load(w);if(!S){console.error("[LIBRARY] Failed to load texture:",w);return}console.log("[LIBRARY] \u2705 Texture loaded"),Be[y]=S,console.log("[LIBRARY] \u2705 Updated AssetTextures."+y);let A=window.CustomAssets;A!=null&&A[y]&&(A[y].texture=S,console.log("[LIBRARY] \u2705 Updated legacy CustomAssets."+y));let E=window.gameObjectManager;if(console.log("[LIBRARY] gameObjectManager exists?",!!E),E){let O=Array.from(((r=E.keys)==null?void 0:r.call(E))||[]).slice(0,10);console.log("[LIBRARY] Available gameObject keys (first 10):",O);let _=E.get(y);if(console.log("[LIBRARY] gameObject for "+y+"?",!!_),_){let T=((a=_.getDisplayObject)==null?void 0:a.call(_))||_.pixiObject||_.pixi||_,R=(s=T==null?void 0:T.constructor)==null?void 0:s.name;if(console.log("[LIBRARY] displayObject:",T),console.log("[LIBRARY] displayObject type:",R),console.log("[LIBRARY] has texture?",!!(T!=null&&T.texture)),T!=null&&T.texture)T.texture=S,console.log("[LIBRARY] \u2705 Applied to display object:",y);else if(R==="Text"){console.log("[LIBRARY] \u{1F504} Converting Text to Sprite...");let{Sprite:B}=await import("pixi.js"),M=T.parent,L=(l=(o=M==null?void 0:M.getChildIndex)==null?void 0:o.call(M,T))!=null?l:0,P={x:T.x,y:T.y},F={x:(d=(c=T.anchor)==null?void 0:c.x)!=null?d:.5,y:(p=(u=T.anchor)==null?void 0:u.y)!=null?p:.5},re={x:(m=(f=T.scale)==null?void 0:f.x)!=null?m:1,y:(g=(h=T.scale)==null?void 0:h.y)!=null?g:1},j=(b=T.alpha)!=null?b:1,J=(v=T.visible)!=null?v:!0,ae=new B(S);ae.anchor.set(F.x,F.y),ae.position.set(P.x,P.y),ae.scale.set(re.x,re.y),ae.alpha=j,ae.visible=J,M&&(M.removeChild(T),M.addChildAt(ae,L),console.log("[LIBRARY] \u2705 Replaced Text with Sprite in parent")),_.pixiObject&&(_.pixiObject=ae),_.pixi&&(_.pixi=ae),console.log("[LIBRARY] \u2705 Text \u2192 Sprite conversion complete")}else if(T!=null&&T.children){let B=T.children.find(M=>M.texture);B?(B.texture=S,console.log("[LIBRARY] \u2705 Applied to child sprite")):console.warn("[LIBRARY] \u26A0\uFE0F No texture found in displayObject or children")}}}let k=`raw/library/${n}/${i}`;xe({objectId:y,path:"render.asset.path",value:k}),console.log("[LIBRARY] \u2705 Staged config override for:",y,"path:",k)}catch(y){console.error("[LIBRARY] Error applying slot asset:",y)}}async function qh(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 Yn.Assets.load(o);if(!l){console.error("[LIBRARY] Failed to load default texture:",o);return}Be[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))}}xe({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 Xn=require("pixi.js");var zl=require("pixi.js"),It=()=>window.debugConfig||{},Gh=()=>window.resolveAnchorVec2||(e=>({x:.5,y:.5})),Wh=()=>window.resolveScreenAnchorPoint||(()=>new zl.Point),Yh=()=>window.resolveScreenRatioPoint||(()=>new zl.Point);function Vh(e){Ga(e)&&(e.objectDebugRaf||(e.objectDebugRaf=window.requestAnimationFrame(()=>Wa(e))))}function Kh(e){e.objectDebugRaf&&(window.cancelAnimationFrame(e.objectDebugRaf),e.objectDebugRaf=null),Kn(e)}function Ga(e){return e.isDebugOpen}function Wa(e){var a,s,o;if(!Ga(e)){e.objectDebugRaf=null;return}e.objectDebugRaf=window.requestAnimationFrame(()=>Wa(e));let t=Bl(e);if(!t){Vn(e,null),Kn(e);return}let i=Nl(e,t);if(!i){Vn(e,null),Kn(e);return}let n=new Xn.Point;(a=i.getGlobalPosition)==null||a.call(i,n);let r=Fl(e,i);Vn(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?ql(e,i):Wl(e),e.highlightAnchor&&r?Gl(e,r):Yl(e)}function Bl(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 Nl(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 Zn(e){let t=e.selectedObjectId;if(!t)return null;let i=window.getEditableObjectConfig;return typeof i!="function"?null:i(t)}function Fl(e,t){var s,o;let i=Zn(e);if(!i)return null;let n=(s=i.transform)!=null?s:{},r=$l(e);if(!r)return null;if(n.position_ratio!=null)return Yh()(r.width,r.height,n.position_ratio);let a=(o=n.anchor)!=null?o:"center";return Wh()(r.width,r.height,a)}function $l(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 Hl(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 Xn.Graphics,e.objectBoundsGfx.zIndex=999999,t.stage.addChild(e.objectBoundsGfx)),e.objectBoundsGfx):null}function Ul(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 Xn.Graphics,e.objectAnchorGfx.zIndex=1e6,t.stage.addChild(e.objectAnchorGfx)),e.objectAnchorGfx):null}function ql(e,t){var r;let i=Hl(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 Gl(e,t){let i=Ul(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 Wl(e){e.objectBoundsGfx&&e.objectBoundsGfx.clear()}function Yl(e){e.objectAnchorGfx&&e.objectAnchorGfx.clear()}function Kn(e){e.objectBoundsGfx&&(e.objectBoundsGfx.destroy(),e.objectBoundsGfx=null),e.objectAnchorGfx&&(e.objectAnchorGfx.destroy(),e.objectAnchorGfx=null)}function Vn(e,t){e.sceneToolsPanel.updateInfo(t?{instanceId:t.instanceId,worldX:t.worldX,worldY:t.worldY,anchorX:t.configX,anchorY:t.configY}:null)}function Xh(e,t){return t.split(".").reduce((i,n)=>i?i[n]:void 0,e)}function Zh(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 Vl(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 Va(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 Jh(e){window.location.reload()}function Ka(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 Qh(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(()=>(Mr(),dd)),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),Ya(e,p),(n=e.configViewer)==null||n.style.setProperty("display","block");return}console.log("[PREVIEW] Loaded object config",t,s),Ya(e,s),(r=e.configViewer)==null||r.style.setProperty("display","block");return}catch(a){console.error("[DEBUG] Failed to load object config:",a)}}function Ya(e,t){var u,p,f,m,h,g,b,v,y,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=Vl(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=(y=(b=t.transform)==null?void 0:b.anchor)!=null?y:(v=t.render)==null?void 0:v.anchor)!=null?x:{x:.5,y:.5},d=Gh()(c);a&&(a.value=String(d.x)),s&&(s.value=String(d.y))}function eg(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}:
|
|
920
|
+
`;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"),C=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,M=0,A=!1,I=0,j=0,Q=0,se=0,je=()=>{let $=D*B,Rt=Math.max(0,(L*$-y.width)/2),ai=Math.max(0,(z*$-y.height)/2);O=Math.min(Rt,Math.max(-Rt,O)),M=Math.min(ai,Math.max(-ai,M))},De=()=>{let $=D*B;R.clearRect(0,0,y.width,y.height);let Rt=y.width/2-L*$/2+O,ai=y.height/2-z*$/2+M;if(R.drawImage(s,Rt,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),us=v.width/2-o.naturalWidth*oi/2,tn=v.height/2-o.naturalHeight*oi/2;E.drawImage(o,us,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),cr=M*(v.height/y.height),cs=v.width/2-L*en/2+si,ds=v.height/2-z*en/2+cr;E.save(),E.globalAlpha=.7,E.drawImage(s,cs,ds,L*en,z*en),E.restore()},Ac=()=>{O=0,M=0,je(),De()};x.addEventListener("input",()=>{B=Number(x.value),w.textContent=`${B.toFixed(2)}\xD7`,je(),De()}),y.addEventListener("pointerdown",$=>{A=!0,I=$.clientX,j=$.clientY,Q=O,se=M,y.setPointerCapture($.pointerId)}),y.addEventListener("pointermove",$=>{A&&(O=Q+($.clientX-I),M=se+($.clientY-j),je(),De())}),y.addEventListener("pointerup",$=>{A=!1,y.releasePointerCapture($.pointerId)}),y.addEventListener("pointerleave",()=>{A=!1});let os=()=>{c.remove()},ls=()=>{os(),l(null)},Dg=async()=>{let $=document.createElement("canvas");$.width=i.width,$.height=i.height;let Rt=$.getContext("2d");if(!Rt){os(),l(null);return}let ai=B,si=Math.max($.width/L,$.height/z)*ai,cr=$.width/y.width,cs=O*cr,ds=M*cr,oi=$.width/2-L*si/2+cs,us=$.height/2-z*si/2+ds;Rt.drawImage(s,oi,us,L*si,z*si);let tn=await new Promise(zg=>{$.toBlob(Ng=>zg(Ng),t.type||"image/png")});if(os(),!tn){l(null);return}l(new File([tn],t.name,{type:tn.type}))};S==null||S.addEventListener("click",ls),C==null||C.addEventListener("click",ls),T==null||T.addEventListener("click",Ac),_==null||_.addEventListener("click",()=>{Dg()}),c.addEventListener("click",$=>{$.target===c&&ls()}),document.body.appendChild(c),Ac()})}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 Ga=class{constructor(){this.root=null;this.options=null}render(){return`
|
|
921
|
+
<div class="scene-panel loading-screen-panel panel-accent-purple" data-panel="loading-screen">
|
|
922
|
+
<div class="scene-panel-header" data-panel-handle>
|
|
923
|
+
<div class="panel-title">
|
|
924
|
+
<span class="panel-pill">Loading</span>
|
|
925
|
+
<span class="panel-title-text">Loading Screen</span>
|
|
926
|
+
</div>
|
|
927
|
+
<button class="scene-panel-toggle" type="button" data-panel-toggle>\u25BE</button>
|
|
928
|
+
</div>
|
|
929
|
+
<div class="scene-panel-body">
|
|
930
|
+
<div class="debug-section">
|
|
931
|
+
<div class="debug-section-title">Display Mode</div>
|
|
932
|
+
<div class="debug-field">
|
|
933
|
+
<label>Type</label>
|
|
934
|
+
<select id="loading-screen-type">
|
|
935
|
+
<option value="color">Solid Color</option>
|
|
936
|
+
<option value="image">PNG Image</option>
|
|
937
|
+
</select>
|
|
938
|
+
</div>
|
|
939
|
+
<div class="debug-field" id="loading-color-field">
|
|
940
|
+
<label>Background Color</label>
|
|
941
|
+
<input type="color" id="loading-background-color" value="#160a17">
|
|
942
|
+
</div>
|
|
943
|
+
<div class="debug-field" id="loading-alpha-field">
|
|
944
|
+
<label>Overlay Alpha</label>
|
|
945
|
+
<input type="range" id="loading-overlay-alpha" min="0" max="1" step="0.05" value="1">
|
|
946
|
+
<span class="debug-value-display" id="loading-overlay-alpha-value">1.00</span>
|
|
947
|
+
</div>
|
|
948
|
+
</div>
|
|
949
|
+
|
|
950
|
+
<div class="debug-section">
|
|
951
|
+
<div class="debug-section-title">Loading Text</div>
|
|
952
|
+
<div class="debug-field">
|
|
953
|
+
<label>Text</label>
|
|
954
|
+
<input type="text" id="loading-text" placeholder="Loading...">
|
|
955
|
+
</div>
|
|
956
|
+
<div class="debug-field">
|
|
957
|
+
<label>Text Scale</label>
|
|
958
|
+
<input type="range" id="loading-text-scale" min="0.2" max="1.5" step="0.05" value="0.6">
|
|
959
|
+
<span class="debug-value-display" id="loading-text-scale-value">0.60</span>
|
|
960
|
+
</div>
|
|
961
|
+
</div>
|
|
962
|
+
|
|
963
|
+
<div class="debug-section">
|
|
964
|
+
<div class="debug-section-title">Settings</div>
|
|
965
|
+
<div class="debug-field checkbox-field">
|
|
966
|
+
<input type="checkbox" id="loading-enabled" checked>
|
|
967
|
+
<label>Enabled</label>
|
|
968
|
+
</div>
|
|
969
|
+
<div class="debug-field checkbox-field">
|
|
970
|
+
<input type="checkbox" id="loading-blur-enabled" checked>
|
|
971
|
+
<label>Enable Blur</label>
|
|
972
|
+
</div>
|
|
973
|
+
<div class="debug-field">
|
|
974
|
+
<label>Blur Strength</label>
|
|
975
|
+
<input type="range" id="loading-blur-strength" min="0" max="20" step="1" value="8">
|
|
976
|
+
<span class="debug-value-display" id="loading-blur-strength-value">8</span>
|
|
977
|
+
</div>
|
|
978
|
+
</div>
|
|
979
|
+
|
|
980
|
+
<div class="debug-btn-group">
|
|
981
|
+
<button class="debug-btn" id="loading-show-btn">Show Loading Screen</button>
|
|
982
|
+
<button class="debug-btn" id="loading-hide-btn">Hide</button>
|
|
983
|
+
</div>
|
|
984
|
+
</div>
|
|
985
|
+
</div>
|
|
986
|
+
`}initialize(t,i){var y,v,x,w,S,C,_,T,R,E,L,z,D,B,O,M;this.options=i,this.root=t.querySelector('[data-panel="loading-screen"]');let r=(()=>{var I;let A=window.getEditableEngineConfig;if(typeof A=="function"){let j=A();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 A,I;(I=(A=this.options)==null?void 0:A.onUpdateLoading)==null||I.call(A,{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 A,I;(I=(A=this.options)==null?void 0:A.onUpdateLoading)==null||I.call(A,{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 A=Number(o.value);l&&(l.textContent=A.toFixed(2)),(j=(I=this.options)==null?void 0:I.onUpdateLoading)==null||j.call(I,{overlay_alpha:A})}));let c=(C=this.root)==null?void 0:C.querySelector("#loading-text");c&&(c.value=r.text||"",c.addEventListener("input",()=>{var A,I;(I=(A=this.options)==null?void 0:A.onUpdateLoading)==null||I.call(A,{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 A=Number(d.value);u&&(u.textContent=A.toFixed(2)),(j=(I=this.options)==null?void 0:I.onUpdateLoading)==null||j.call(I,{text_scale:A})}));let p=(E=this.root)==null?void 0:E.querySelector("#loading-enabled");p&&(p.checked=r.enabled!==!1,p.addEventListener("change",()=>{var A,I;(I=(A=this.options)==null?void 0:A.onUpdateLoading)==null||I.call(A,{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 A,I;(I=(A=this.options)==null?void 0:A.onUpdateLoading)==null||I.call(A,{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 A,I;h&&(h.textContent=m.value),(I=(A=this.options)==null?void 0:A.onUpdateLoading)==null||I.call(A,{blur_strength:Number(m.value)})}));let g=(O=this.root)==null?void 0:O.querySelector("#loading-show-btn"),b=(M=this.root)==null?void 0:M.querySelector("#loading-hide-btn");g==null||g.addEventListener("click",()=>{var A,I;(I=(A=this.options)==null?void 0:A.onShowLoadingScreen)==null||I.call(A)}),b==null||b.addEventListener("click",()=>{var A,I;(I=(A=this.options)==null?void 0:A.onHideLoadingScreen)==null||I.call(A)}),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 Kn=require("pixi.js");pi();ke();async function Vh(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 Kn.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)Ne[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 Kh(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 Kn.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)Ne[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 Xh(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 Kn.Assets.load(w);if(!S){console.error("[LIBRARY] Failed to load texture:",w);return}console.log("[LIBRARY] \u2705 Texture loaded"),Ne[v]=S,console.log("[LIBRARY] \u2705 Updated AssetTextures."+v);let C=window.CustomAssets;C!=null&&C[v]&&(C[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,M={x:L.x,y:L.y},A={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(A.x,A.y),se.position.set(M.x,M.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}`;fe({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 Zh(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 Kn.Assets.load(o);if(!l){console.error("[LIBRARY] Failed to load default texture:",o);return}Ne[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))}}fe({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 Jn=require("pixi.js");var Bl=require("pixi.js"),Ot=()=>window.debugConfig||{},Jh=()=>window.resolveAnchorVec2||(e=>({x:.5,y:.5})),Qh=()=>window.resolveScreenAnchorPoint||(()=>new Bl.Point),eg=()=>window.resolveScreenRatioPoint||(()=>new Bl.Point);function tg(e){Wa(e)&&(e.objectDebugRaf||(e.objectDebugRaf=window.requestAnimationFrame(()=>Ya(e))))}function ig(e){e.objectDebugRaf&&(window.cancelAnimationFrame(e.objectDebugRaf),e.objectDebugRaf=null),Zn(e)}function Wa(e){return e.isDebugOpen}function Ya(e){var a,s,o;if(!Wa(e)){e.objectDebugRaf=null;return}e.objectDebugRaf=window.requestAnimationFrame(()=>Ya(e));let t=Fl(e);if(!t){Xn(e,null),Zn(e);return}let i=Hl(e,t);if(!i){Xn(e,null),Zn(e);return}let n=new Jn.Point;(a=i.getGlobalPosition)==null||a.call(i,n);let r=$l(e,i);Xn(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?Wl(e,i):Vl(e),e.highlightAnchor&&r?Yl(e,r):Kl(e)}function Fl(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 Hl(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 Qn(e){let t=e.selectedObjectId;if(!t)return null;let i=window.getEditableObjectConfig;return typeof i!="function"?null:i(t)}function $l(e,t){var s,o;let i=Qn(e);if(!i)return null;let n=(s=i.transform)!=null?s:{},r=Ul(e);if(!r)return null;if(n.position_ratio!=null)return eg()(r.width,r.height,n.position_ratio);let a=(o=n.anchor)!=null?o:"center";return Qh()(r.width,r.height,a)}function Ul(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 ql(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 Jn.Graphics,e.objectBoundsGfx.zIndex=999999,t.stage.addChild(e.objectBoundsGfx)),e.objectBoundsGfx):null}function Gl(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 Jn.Graphics,e.objectAnchorGfx.zIndex=1e6,t.stage.addChild(e.objectAnchorGfx)),e.objectAnchorGfx):null}function Wl(e,t){var r;let i=ql(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 Yl(e,t){let i=Gl(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 Vl(e){e.objectBoundsGfx&&e.objectBoundsGfx.clear()}function Kl(e){e.objectAnchorGfx&&e.objectAnchorGfx.clear()}function Zn(e){e.objectBoundsGfx&&(e.objectBoundsGfx.destroy(),e.objectBoundsGfx=null),e.objectAnchorGfx&&(e.objectAnchorGfx.destroy(),e.objectAnchorGfx=null)}function Xn(e,t){e.sceneToolsPanel.updateInfo(t?{instanceId:t.instanceId,worldX:t.worldX,worldY:t.worldY,anchorX:t.configX,anchorY:t.configY}:null)}function ng(e,t){return t.split(".").reduce((i,n)=>i?i[n]:void 0,e)}function rg(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 Xl(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 Ka(e){let t=Ot();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 ag(e){window.location.reload()}function Xa(e){let t=JSON.stringify(Ot(),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 sg(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(()=>(Mr(),bd)),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),Va(e,p),(n=e.configViewer)==null||n.style.setProperty("display","block");return}console.log("[PREVIEW] Loaded object config",t,s),Va(e,s),(r=e.configViewer)==null||r.style.setProperty("display","block");return}catch(a){console.error("[DEBUG] Failed to load object config:",a)}}function Va(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=Xl(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=Jh()(c);a&&(a.value=String(d.x)),s&&(s.value=String(d.y))}function og(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}:
|
|
918
987
|
position: (${i}, ${n})
|
|
919
988
|
scale: ${r}
|
|
920
|
-
anchor: (${a}, ${s})`;navigator.clipboard.writeText(o).then(()=>console.log("[DEBUG] Config values copied to clipboard")).catch(v=>console.error("[DEBUG] Failed to copy config values:",v))}async function Kl(e,t){var u,p,f,m,h,g,b,v,y,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((v=(b=e.container.querySelector("#config-anchor-x"))==null?void 0:b.value)!=null?v:.5),o=Number((x=(y=e.container.querySelector("#config-anchor-y"))==null?void 0:y.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(()=>(ke(),Lr));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=Zn(e);Vl(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 tg(e,t,i){let{applyConfigOverride:n}=await Promise.resolve().then(()=>(ke(),Lr));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 ig(e){e.selectedObjectId&&(e.objectAutoApplyTimer&&window.clearTimeout(e.objectAutoApplyTimer),e.objectAutoApplyTimer=window.setTimeout(()=>{e.objectAutoApplyTimer=null,Kl(e,{silent:!0})},150))}var mw=3e3;function ng(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,v=m.height;s=Math.min(s,b-h),o=Math.min(o,v-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(++mw);let y=e.getBoundingClientRect();(y.left<0||y.top<0||y.right>window.innerWidth||y.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 rg(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 Xl(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 ni(e){if(!e.container)return;let t=e.container.querySelector("#debug-workbench");if(!t)return;Xl(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 Xa(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"),Xl(e,n))})}catch(t){console.warn("[PREVIEW] Failed to load workbench state",t)}}function ag(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",Xl(e,t),ni(e))}function sg(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",()=>Va(e)),(s=t.querySelector("#debug-export"))==null||s.addEventListener("click",()=>Ka(e)),t.querySelectorAll(".workbench-tab").forEach(o=>{o.addEventListener("click",()=>{let l=o.dataset.tab;e.activeTab=l,Zl(e),ni(e)})}),Ql(e,t),Jl(e,t)}function Zl(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 Jl(e,t){Ce(e,t,"debug-scene-scale","engine.scale","#debug-scene-scale-value"),Ce(e,t,"debug-layout-scale","layout.scale_multiplier","#debug-layout-scale-value"),Ce(e,t,"debug-layout-offset-x","layout.position_offset.x","#debug-layout-offset-x-value"),Ce(e,t,"debug-layout-offset-y","layout.position_offset.y","#debug-layout-offset-y-value"),Ce(e,t,"debug-rect-thickness","layout.debug_rect_thickness","#debug-rect-thickness-value"),Ce(e,t,"debug-engine-scale","engine.scale","#debug-engine-scale-value"),Ce(e,t,"debug-background-scale","engine.background_scale","#debug-background-scale-value"),Ce(e,t,"debug-label-pulse-speed","engine.label_pulse_speed","#debug-label-pulse-speed-value"),Ce(e,t,"debug-label-pulse-intensity","engine.label_pulse_intensity","#debug-label-pulse-intensity-value"),Ce(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 og(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"),ng(t,i,e.debugOverlay),i.addEventListener("pointerup",()=>{setTimeout(()=>{ni(e),ag(e,t)},10)})),t&&n&&rg(t,n,()=>ni(e)),Xa(e)}function Ql(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 Ce(e,t,i,n,r){let a=t.querySelector(`#${i}`),s=t.querySelector(r);if(!a||!s)return;let o=Xh(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),Zh(It(),n,l)})}ke();var Za=class{constructor(){this.container=null}initialize(t){this.container=t,window.addEventListener("config:changed",()=>{this.refreshPanel()}),this.refreshPanel()}render(){let t=Cr(),{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`
|
|
989
|
+
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 Zl(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(()=>(ke(),Lr));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=Qn(e);Xl(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 lg(e,t,i){let{applyConfigOverride:n}=await Promise.resolve().then(()=>(ke(),Lr));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 cg(e){e.selectedObjectId&&(e.objectAutoApplyTimer&&window.clearTimeout(e.objectAutoApplyTimer),e.objectAutoApplyTimer=window.setTimeout(()=>{e.objectAutoApplyTimer=null,Zl(e,{silent:!0})},150))}var Sw=3e3;function dg(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(++Sw);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 ug(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 Jl(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;Jl(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 Za(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"),Jl(e,n))})}catch(t){console.warn("[PREVIEW] Failed to load workbench state",t)}}function pg(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",Jl(e,t),ii(e))}function fg(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",()=>Ka(e)),(s=t.querySelector("#debug-export"))==null||s.addEventListener("click",()=>Xa(e)),t.querySelectorAll(".workbench-tab").forEach(o=>{o.addEventListener("click",()=>{let l=o.dataset.tab;e.activeTab=l,Ql(e),ii(e)})}),tc(e,t),ec(e,t)}function Ql(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 ec(e,t){Ce(e,t,"debug-scene-scale","engine.scale","#debug-scene-scale-value"),Ce(e,t,"debug-layout-scale","layout.scale_multiplier","#debug-layout-scale-value"),Ce(e,t,"debug-layout-offset-x","layout.position_offset.x","#debug-layout-offset-x-value"),Ce(e,t,"debug-layout-offset-y","layout.position_offset.y","#debug-layout-offset-y-value"),Ce(e,t,"debug-rect-thickness","layout.debug_rect_thickness","#debug-rect-thickness-value"),Ce(e,t,"debug-engine-scale","engine.scale","#debug-engine-scale-value"),Ce(e,t,"debug-background-scale","engine.background_scale","#debug-background-scale-value"),Ce(e,t,"debug-label-pulse-speed","engine.label_pulse_speed","#debug-label-pulse-speed-value"),Ce(e,t,"debug-label-pulse-intensity","engine.label_pulse_intensity","#debug-label-pulse-intensity-value"),Ce(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=Ot();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=Ot();s.layout&&(s.layout.debug_rect_color=Number.isFinite(a)?a:16711680)})}function hg(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"),dg(t,i,e.debugOverlay),i.addEventListener("pointerup",()=>{setTimeout(()=>{ii(e),pg(e,t)},10)})),t&&n&&ug(t,n,()=>ii(e)),Za(e)}function tc(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 Ce(e,t,i,n,r){let a=t.querySelector(`#${i}`),s=t.querySelector(r);if(!a||!s)return;let o=ng(Ot(),n);typeof o=="number"&&(a.value=String(o),s.textContent=String(o)),a.addEventListener("input",()=>{let l=Number(a.value);s.textContent=String(l),rg(Ot(),n,l)})}ke();var Ja=class{constructor(){this.container=null}initialize(t){this.container=t,window.addEventListener("config:changed",()=>{this.refreshPanel()}),this.refreshPanel()}render(){let t=Cr(),{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`
|
|
921
990
|
<div class="config-persistence-panel">
|
|
922
991
|
<div class="persistence-status-bar ${i?"has-changes":"no-changes"}">
|
|
923
992
|
${i?`
|
|
@@ -996,13 +1065,13 @@ Generate the requested asset matching the brand style.${e.needsTransparency?" Ba
|
|
|
996
1065
|
<p><strong>Apply to Project</strong> writes the current preview state to your local .json files in /configs/ folder. This state will be used for the dashboard build.</p>
|
|
997
1066
|
</div>
|
|
998
1067
|
</div>
|
|
999
|
-
`}formatValue(t){return t===null?"null":typeof t=="string"?t.length>25?t.substring(0,22)+"...":t:typeof t=="object"?"{...}":String(t)}setupEventListeners(){if(!this.container)return;let t=this.container.querySelector("#apply-to-project-btn");t==null||t.addEventListener("click",async()=>{if(!(t.getAttribute("disabled")!==null||!confirm("This will permanently update your project configuration files on disk. Are you sure?")))try{t.textContent="\u23F3 Writing to disk...",t.setAttribute("disabled","true"),await Tr(),this.showSuccessNotification(),this.refreshPanel()}catch(
|
|
1068
|
+
`}formatValue(t){return t===null?"null":typeof t=="string"?t.length>25?t.substring(0,22)+"...":t:typeof t=="object"?"{...}":String(t)}setupEventListeners(){if(!this.container)return;let t=this.container.querySelector("#apply-to-project-btn");t==null||t.addEventListener("click",async()=>{var o;if(!(t.getAttribute("disabled")!==null||!confirm("This will permanently update your project configuration files on disk. Are you sure?")))try{let l=localStorage.getItem("handler_last_version_name")||"",d=((o=prompt("Version name for this Apply (e.g. v1, ab_red_cta, 2026-01-17a):",l))!=null?o:"").trim();if(!d){alert("Version name is required to Apply. (No changes were written.)");return}localStorage.setItem("handler_last_version_name",d),t.textContent="\u23F3 Writing to disk...",t.setAttribute("disabled","true"),await Tr(d),this.showSuccessNotification(),this.refreshPanel()}catch(l){console.error("[ConfigPersistence] Apply failed:",l),alert(`\u274C Apply failed: ${l.message}`),t.textContent="\u{1F4BE} APPLY ALL CHANGES TO PROJECT",t.removeAttribute("disabled")}}),this.container.querySelectorAll(".item-remove").forEach(s=>{s.addEventListener("click",()=>{let o=s.dataset.removePath,l=s.dataset.removeId;Ar(l||void 0,o)})});let n=this.container.querySelector("#clear-all-overrides");n==null||n.addEventListener("click",()=>{confirm("Discard all staged changes?")&&un()});let r=this.container.querySelector("#reset-to-applied-btn");r==null||r.addEventListener("click",()=>{confirm("Discard changes and reload last applied state?")&&un()});let a=this.container.querySelector("#reset-to-original-btn");a==null||a.addEventListener("click",async()=>{await kr()})}showSuccessNotification(){let t=document.createElement("div");t.className="persistence-notification success",t.innerHTML=`
|
|
1000
1069
|
<div class="notify-icon">\u2705</div>
|
|
1001
1070
|
<div class="notify-content">
|
|
1002
1071
|
<strong>Changes Applied!</strong>
|
|
1003
1072
|
<span>Project files updated.</span>
|
|
1004
1073
|
</div>
|
|
1005
|
-
`,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
|
|
1074
|
+
`,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 er=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 Dr;this.sceneToolsPanel=new zr;this.inspectorPanel=new Kr;this.libraryPanel=new Nr;this.brandVisionPanel=new Ua;this.customizeSettingsPanel=new qa;this.configPersistencePanel=new Ja;this.loadingScreenPanel=new Ga}applyAssetChange(t,i){return Vh(this,t,i)}resetAsset(t){return Kh(this,t)}applySlotAsset(t,i,n){return Xh(this,t,i,n)}resetSlotAsset(t,i,n){return Zh(this,t,i,n)}startObjectVisuals(){return tg(this)}stopObjectVisuals(){return ig(this)}shouldRunObjectVisuals(){return Wa(this)}updateObjectVisuals(){return Ya(this)}getSelectedInstanceId(){return Fl(this)}getDisplayObjectById(t){return Hl(this,t)}getSelectedObjectConfig(){return Qn(this)}getConfigAnchorWorldPoint(t){return $l(this,t)}getScreenSize(){return Ul(this)}ensureBoundsGfx(){return ql(this)}ensureAnchorGfx(){return Gl(this)}drawBounds(t){return Wl(this,t)}drawAnchor(t){return Yl(this,t)}clearBounds(){return Vl(this)}clearAnchor(){return Kl(this)}clearObjectVisuals(){return Zn(this)}updateObjectInfo(t){return Xn(this,t)}resetDebugConfig(){return Ka(this)}applyDebugConfig(){return ag(this)}exportDebugConfig(){return Xa(this)}loadObjectConfig(t){return sg(this,t)}fillConfigViewer(t){return Va(this,t)}copyConfigValues(){return og(this)}applyObjectConfig(t){return Zl(this,t)}applyCustomizeSettings(t,i){return lg(this,t,i)}scheduleObjectAutoApply(){return cg(this)}setupDebugEventListeners(){return fg(this)}setupDebugInputListeners(t){return ec(this,t)}setupPanelLayout(){return hg(this)}setupCollapsiblePanels(t){return tc(this,t)}setupRangeInput(t,i,n,r){return Ce(this,t,i,n,r)}updateWorkbenchTabs(){return Ql(this)}saveWorkbenchState(){return ii(this)}loadWorkbenchState(){return Za(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`
|
|
1006
1075
|
<div class="debug-overlay hidden" id="debug-overlay">
|
|
1007
1076
|
<div class="debug-workbench" id="debug-workbench">
|
|
1008
1077
|
<div class="workbench-header" id="workbench-handle">
|
|
@@ -1019,6 +1088,7 @@ Generate the requested asset matching the brand style.${e.needsTransparency?" Ba
|
|
|
1019
1088
|
<button class="workbench-tab ${this.activeTab==="inspector"?"active":""}" data-tab="inspector">Inspector</button>
|
|
1020
1089
|
<button class="workbench-tab ${this.activeTab==="library"?"active":""}" data-tab="library">Library</button>
|
|
1021
1090
|
<button class="workbench-tab ${this.activeTab==="ai"?"active":""}" data-tab="ai">\u2728 AI Suite</button>
|
|
1091
|
+
<button class="workbench-tab ${this.activeTab==="loading"?"active":""}" data-tab="loading">\u23F3 Loading</button>
|
|
1022
1092
|
<button class="workbench-tab ${this.activeTab==="changes"?"active":""}" data-tab="changes">\u{1F4BE} Changes</button>
|
|
1023
1093
|
</div>
|
|
1024
1094
|
<div class="workbench-content">
|
|
@@ -1036,6 +1106,9 @@ Generate the requested asset matching the brand style.${e.needsTransparency?" Ba
|
|
|
1036
1106
|
${this.brandVisionPanel.render()}
|
|
1037
1107
|
${this.customizeSettingsPanel.render()}
|
|
1038
1108
|
</div>
|
|
1109
|
+
<div class="workbench-tab-panel ${this.activeTab==="loading"?"active":""}" data-tab-panel="loading">
|
|
1110
|
+
${this.loadingScreenPanel.render()}
|
|
1111
|
+
</div>
|
|
1039
1112
|
<div class="workbench-tab-panel ${this.activeTab==="changes"?"active":""}" data-tab-panel="changes">
|
|
1040
1113
|
${this.configPersistencePanel.render()}
|
|
1041
1114
|
</div>
|
|
@@ -1043,7 +1116,7 @@ Generate the requested asset matching the brand style.${e.needsTransparency?" Ba
|
|
|
1043
1116
|
<div class="workbench-resize-handle" id="workbench-resize"></div>
|
|
1044
1117
|
</div>
|
|
1045
1118
|
</div>
|
|
1046
|
-
`}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,v
|
|
1119
|
+
`}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 Aw(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 Cw(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 Tw(e){return`
|
|
1047
1120
|
Analyze these screenshots of a brand or game and extract its "Brand DNA".
|
|
1048
1121
|
|
|
1049
1122
|
Provide a concise summary (2-3 sentences) covering:
|
|
@@ -1060,9 +1133,9 @@ Palette: [#RRGGBB, #RRGGBB, ...]
|
|
|
1060
1133
|
${e?`
|
|
1061
1134
|
ADDITIONAL RULES/NOTES:
|
|
1062
1135
|
${e}`:""}
|
|
1063
|
-
`.trim()}function
|
|
1136
|
+
`.trim()}function gg(){let e=[],t="",i=null;return{async addSources(n){let r=[];for(let a of n){let s=await Aw(a),o=Cw(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=Tw(r),o=e.map(p=>({base64:p.base64,mimeType:p.mimeType})),l=await $a(n,s,o,{model:a}),c=t,d=[],u=l.split(`
|
|
1064
1137
|
`);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(`
|
|
1065
|
-
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
|
|
1138
|
+
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}}},ic=()=>qi.getKey("gemini"),nc=(e,t)=>qi.setKey("gemini",e,t),kw=()=>qi.hasKey("gemini");window.ApiKeyStorage=qi;window.getGeminiApiKey=ic;window.setGeminiApiKey=nc;window.hasGeminiApiKey=kw;var ac=class{constructor(){this.modal=null;this.options=null;this.analyzer=gg();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=`
|
|
1066
1139
|
<div class="ai-modal-card">
|
|
1067
1140
|
<div class="ai-modal-header">
|
|
1068
1141
|
<div class="ai-modal-actions">
|
|
@@ -1143,12 +1216,12 @@ Palette:`)[0].replace(/^Summary:\s*/i,"").trim()),i={summary:c,palette:d.slice(0
|
|
|
1143
1216
|
</div>
|
|
1144
1217
|
`,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}
|
|
1145
1218
|
|
|
1146
|
-
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
|
|
1219
|
+
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 Ha(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)=>`
|
|
1147
1220
|
<div class="ai-gallery-item ${n===this.selectedImageIndex?"active":""}" data-index="${n}">
|
|
1148
1221
|
<img class="ai-gallery-thumb" src="${i}" alt="Generated ${n+1}" />
|
|
1149
1222
|
<div class="ai-gallery-label">#${n+1}</div>
|
|
1150
1223
|
</div>
|
|
1151
|
-
`).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=
|
|
1224
|
+
`).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=ic();if(t)return t;try{let i=this.analyzer.getResult();if(i&&i.apiKey)return nc(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}},rc=null;window.__openAiEditor=function(e,t,i,n){rc||(rc=new ac),rc.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"))}})};oc();var lc=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=`
|
|
1152
1225
|
<div class="asset-preview-card">
|
|
1153
1226
|
<div class="asset-preview-header">
|
|
1154
1227
|
<div class="asset-preview-title">${r}</div>
|
|
@@ -1175,7 +1248,7 @@ Style guidelines: ${n.summary}`;this.promptInput.value=r,this.currentPrompt=r}}c
|
|
|
1175
1248
|
<source src="${r}" type="audio/wav">
|
|
1176
1249
|
Your browser does not support the audio element.
|
|
1177
1250
|
</audio>
|
|
1178
|
-
`;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(()=>(
|
|
1251
|
+
`;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(()=>(oc(),mg)).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 lc().open(e)};var cc=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=`
|
|
1179
1252
|
<div class="asset-crop-card">
|
|
1180
1253
|
<div class="asset-crop-header">
|
|
1181
1254
|
<div>
|
|
@@ -1226,7 +1299,7 @@ Style guidelines: ${n.summary}`;this.promptInput.value=r,this.currentPrompt=r}}c
|
|
|
1226
1299
|
<button class="asset-crop-apply primary" data-action="apply">Apply Crop</button>
|
|
1227
1300
|
</div>
|
|
1228
1301
|
</div>
|
|
1229
|
-
`,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 oc().open(e)};var Ja=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||jr.id),this.debugPanel=new Jn,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=`
|
|
1302
|
+
`,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 cc().open(e)};var Qa=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||jr.id),this.debugPanel=new er,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=`
|
|
1230
1303
|
<div class="preview-toolbar">
|
|
1231
1304
|
<div class="preview-toolbar-left">
|
|
1232
1305
|
<span class="preview-logo">PREVIEWER</span>
|
|
@@ -1235,7 +1308,7 @@ Style guidelines: ${n.summary}`;this.promptInput.value=r,this.currentPrompt=r}}c
|
|
|
1235
1308
|
<div class="preview-toolbar-center">
|
|
1236
1309
|
<div class="device-selector-wrapper">
|
|
1237
1310
|
<select class="device-dropdown" id="device-select">
|
|
1238
|
-
${
|
|
1311
|
+
${Us.map(n=>`
|
|
1239
1312
|
<optgroup label="${n.label}">
|
|
1240
1313
|
${n.devices.map(r=>`
|
|
1241
1314
|
<option value="${r.id}" ${r.id===this.currentPreset.id?"selected":""}>
|
|
@@ -1341,7 +1414,7 @@ Style guidelines: ${n.summary}`;this.promptInput.value=r,this.currentPrompt=r}}c
|
|
|
1341
1414
|
<div class="console-messages" id="console-messages"></div>
|
|
1342
1415
|
</div>
|
|
1343
1416
|
</div>
|
|
1344
|
-
`,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 lc(e={}){let t=new Ja(e);return typeof window!="undefined"&&(window.__previewShell=t),t.mount(),t}ke();function dg(e){try{if(e&&typeof e.keys=="function")return Array.from(e.keys())}catch{}return[]}function ug(e){var t;return e?((t=e.getDisplayObject)==null?void 0:t.call(e))||e.pixiObject||e:null}function ww(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 pg(e,t){var a,s,o,l,c;if(!e||!t)return;let i=t.transform||{};ww(e,t);let n=i.offset||i.position;n&&typeof n.x=="number"&&typeof n.y=="number"&&((a=e.position)!=null&&a.set?e.position.set(n.x,n.y):(typeof e.x=="number"&&(e.x=n.x),typeof e.y=="number"&&(e.y=n.y))),typeof i.scale=="number"&&((s=e.scale)!=null&&s.set?e.scale.set(i.scale):e.scale&&(e.scale.x=i.scale,e.scale.y=i.scale));let r=(l=i.anchor)!=null?l:(o=t.render)==null?void 0:o.anchor;r&&((c=e.anchor)!=null&&c.set)&&typeof r.x=="number"&&typeof r.y=="number"&&e.anchor.set(r.x,r.y)}function fg(e){if(typeof window=="undefined")return;let t=e==null?void 0:e.objects,i=dg(t);window.__editableObjectConfigs=t;let n=new Map;i.forEach(r=>n.set(r,[r])),window.__editableObjectInstances=n,window.refreshEditableConfigIndex=()=>fg(window.__editableConfig),window.getEditableObjectList=()=>{var r;return dg((r=window.__editableConfig)==null?void 0:r.objects)},window.getEditableObjectConfig=r=>{var a,s,o,l;return(l=(o=(s=(a=window.__editableConfig)==null?void 0:a.objects)==null?void 0:s.get)==null?void 0:o.call(s,r))!=null?l:null},window.getEditableEngineConfig=()=>{let r=window.__editableConfig;if(console.log("[BRIDGE] getEditableEngineConfig called, cfg present:",!!r),!r)return null;if(r.engine&&r.objects instanceof Map){console.log("[BRIDGE] Detected ObjectCentricConfig, flattening...");let a={...r.engine,objects:r.objects,scene:r.scene};return console.log("[BRIDGE] Returned assets:",Object.keys(a.assets||{})),a}return r}}function _w(){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(()=>(fi(),Zc))]),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(v=>v==null?void 0:v.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=fe();Array.isArray(n)&&n.length&&(window.__editableConfig=i,Bt(n,{silent:!0,persist:!1}))}catch{}},window.applyEngineOverrides=i=>{try{let n=fe();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){if(i.runtime)for(let[r,a]of Object.entries(i.runtime))xe({path:`runtime.${r}`,value:a},{silent:!0,persist:!0});if(i.assets)for(let[r,a]of Object.entries(i.assets))xe({path:`assets.${r}`,value:a},{silent:!0,persist:!0}),typeof a=="string"&&t(r,a);if(i.splash)for(let[r,a]of Object.entries(i.splash))xe({path:`splash.${r}`,value:a},{silent:!0,persist:!0});i.runtime&&Object.assign(n.engine.runtime,i.runtime),i.assets&&Object.assign(n.engine.assets,i.assets),i.splash&&Object.assign(n.engine.splash,i.splash)}}}function Qa(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 mt.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"&&(_w(),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=ug(u);pg(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=ug(l);pg(p,s)}let c=[a];n==null||n(a,s,c)},rebuildIndexes(){let a=t();typeof window!="undefined"&&(window.__editableConfig=a,fg(a))}};return r.rebuildIndexes(),r}ke();var mg=ci(require("lottie-web"),1);bs(gs);typeof window!="undefined"&&!window.lottie&&(window.lottie=mg.default);var Wi=null,Ew=async()=>{if(!Wi){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]);Wi=JSON.parse(n)}else Wi=JSON.parse(t);return Wi}catch(n){console.warn("[CONFIG] Failed to parse inline handler.config.json:",n)}Wi=await(await fetch("./handler.config.json")).json()}return Wi},pc,er,bg,Yi,dc,uc;function Sw(e){pc=e.initGame,er=e.CustomAssets,bg=e.updateScreenState,Yi=e.globalResponsiveMultipliers,dc=e.layout,uc=e.clearResponsiveElements}var es="web_embed",Qn="https://example.com",hg={profile_id:es},Ot=null,We=null,cc={width:0,height:0},Aw=!0,Cw=async()=>{var l,c,d,u;document.title="Handler Pixi Game";let e=await Ew();hg={...e.ids||{},profile_id:es},Qn=e.destination_url||((c=(l=e.export_profiles)==null?void 0:l[es])==null?void 0:c.destination_url)||Qn,Mt.init({ids:hg,profile:es,destinationUrl:Qn});let t=Mt.getRoot();if(typeof __PREVIEW_SHELL__!="undefined"&&__PREVIEW_SHELL__){console.log("[BOOTSTRAP] Initializing Preview Shell..."),We=lc({onDeviceChange:f=>{console.log(`[PREVIEW] Device switched to ${f.width}x${f.height}, restarting game...`),gg()},onRefresh:gg});let p=We.getGameContainer();p&&(t=p),window.addEventListener("handler-preview:screen",f=>{var v,y,x,w,S,A,E,k,O,_,T;let m=window.gameApp,h=window.gameObjectManager,{width:g,height:b}=f.detail;if(cc.width=g,cc.height=b,bg(g,b),!(!m||!m.renderer)){h&&s(m,h);try{m.renderer.resize(g,b);let R=m.view;R&&(R.style.width="100%",R.style.height="100%",R.style.display="block")}catch(R){console.warn("[SCREEN] Error resizing renderer:",R);return}if(i&&h&&dc)try{let R=(v=window.__mainContainer)!=null?v:m.stage,B=(E=(A=(w=window.__tutorialLabel)!=null?w:(x=(y=h.get("label_1"))==null?void 0:y.getDisplayObject)==null?void 0:x.call(y))!=null?A:(S=h.get("label_1"))==null?void 0:S.pixiObject)!=null?E:h.get("label_1"),M=h.get("background_1"),L=(T=(_=(O=window.__background)!=null?O:(k=M==null?void 0:M.getDisplayObject)==null?void 0:k.call(M))!=null?_:M==null?void 0:M.pixiObject)!=null?T:M;if(R){let P=R===m.stage;dc({mainContainer:R,label:B,background:L,backgroundTexture:(L==null?void 0:L.texture)||null,app:m},i,0,cc,h,{skipMainContainerTransform:P})}}catch(R){console.warn("[SCREEN] Error in layout:",R)}}})}let i=await et("scene.main");window.__editableConfig=i,window.__editableConfigBaseline||(window.__editableConfigBaseline=ue(i),console.log("[BOOTSTRAP] Frozen config baseline for persistence")),(u=(d=i.engine.runtime)==null?void 0:d.layout)!=null&&u.design_width_portrait||(console.warn("[BOOTSTRAP] Config layout missing, retrying..."),await new Promise(p=>setTimeout(p,100)),i=await et("scene.main"));let n=await pc(t,i,Qn,We);Ot=n.app;let r=n.gameObjectManager;window.gameApp=Ot,window.gameObjectManager=r;try{window.__liveEditBridge=Qa({getConfig:()=>window.__editableConfig,gameObjectManager:r,assets:er})}catch(p){console.warn("[BOOTSTRAP] Failed to initialize live-edit bridge",p)}We&&We.notifyGameLoaded();let a=window.__debugScale;a&&typeof a=="number"&&(Yi.scale=a,console.log(`[DEBUG] Applied persisted debug scale: ${a}`)),s(Ot,r);function s(p,f){if(Aw){console.log("[RESPONSIVE] Skipping global scaling; using config-driven layout");return}if(console.log("[RESPONSIVE] ===== APPLYING GLOBAL RESPONSIVE SCALING ====="),console.log(`[RESPONSIVE] Scale multiplier: ${Yi.scale.toFixed(3)}`),p.stage){let h=function(g,b=0){if(!g||!g.children)return;let v=" ".repeat(b);g.children.forEach((y,x)=>{if(y&&y.zIndex===9999){console.log(`${v}[RESPONSIVE] Skipping debug border (zIndex 9999)`);return}if(y&&y.scale){let w=y.scale.x||1,S=y.scale.y||1;y.__originalScale||(y.__originalScale={x:w,y:S},console.log(`${v}[RESPONSIVE] Stored original scale for child[${x}]: ${w.toFixed(3)}, ${S.toFixed(3)}`));let A=y.__originalScale.x*Yi.scale,E=y.__originalScale.y*Yi.scale;typeof y.scale.set=="function"?y.scale.set(A,E):(y.scale.x=A,y.scale.y=E),console.log(`${v}[RESPONSIVE] Child[${x}] scale: ${w.toFixed(3)}\u2192${y.scale.x.toFixed(3)} (type: ${y.constructor.name})`),h(y,b+1)}else y&&console.log(`${v}[RESPONSIVE] Child[${x}] has no scale (type: ${y.constructor.name})`)})};var m=h;console.log("[RESPONSIVE] Applying scale to PIXI stage children"),h(p.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 o(p){if(p!==void 0){Yi.scale=p,console.log(`[RESPONSIVE] Updated global scale multiplier to: ${p.toFixed(3)}`);let f=window.gameApp,m=window.gameObjectManager;f&&m?(s(f,m),f.renderer&&(f.renderer.render(f.stage),console.log("[RESPONSIVE] Forced PIXI renderer update"))):console.warn(`[RESPONSIVE] No gameApp (${!!f}) or gameObjectManager (${!!m}) found in window for live update`)}}window.updateGlobalResponsiveMultipliers=o,Mt.start()},gg=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(We){We.notifyGameDestroyed();try{uc&&uc()}catch(a){console.warn("Failed to clear responsive elements",a)}setTimeout(()=>{console.log("[PREVIEW] Executing restart...");let a=We.getGameContainer(),s=window.gameObjectManager;if(s&&typeof s.clear=="function"&&(console.log("[PREVIEW] Clearing old GameObjectManager tickers..."),s.clear()),Ot){try{Ot.destroy(!0,{children:!0,texture:!1})}catch(o){console.warn("[PREVIEW] Destroy warning:",o)}Ot=null}window.gameApp=null,window.gameObjectManager=null,a&&(a.innerHTML="");try{typeof er.resetScene=="function"&&er.resetScene()}catch(o){console.warn("Asset reset failed",o)}setTimeout(()=>{et("scene.main").then(o=>{window.__editableConfig=o,window.__editableConfigBaseline||(window.__editableConfigBaseline=ue(o)),pc(a,o,Qn).then(l=>{Ot=l.app,window.gameApp=Ot,window.gameObjectManager=l.gameObjectManager;try{window.__liveEditBridge=Qa({getConfig:()=>window.__editableConfig,gameObjectManager:window.gameObjectManager,assets:er})}catch(c){console.warn("[BOOTSTRAP] Failed to re-initialize live-edit bridge",c)}We&&We.notifyGameLoaded(),console.log("[PREVIEW] Game restarted successfully");try{Mt.start()}catch{}})})},100)},1e3)}};Mr();ke();var fc="0.3.1",Tw=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"]),Sg={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"},Ag=Math.random().toString(36).slice(2),Xi=null,Vi={...Sg},Cg="web_embed",bc={},ir,hc=!1,tr=!1,rr=!1,Tg=!1,wc=1,is=0,as=!1,pt=!1,Ki="",Zi=Math.floor(window.innerWidth),Ji=Math.floor(window.innerHeight),vc=Zi>Ji,ft=!1,nr=!1,vg=!1,yg=!1,gc=!1,ns=null,ai=null,yc=!1,xc=!1,ts=new Map;function kg(){if(!ai)return null;let e=Date.now()-ai;return!Number.isFinite(e)||e<0?null:e}function mc(e){if(yc)return;let t=kg();t!==null&&(yc=!0,I("session_time",{duration_ms:t,reason:e}))}function xg(){if(Xi)return Xi;let e=document.createElement("div");return e.id="handler-root",e.setAttribute("data-handler-root","true"),document.body.appendChild(e),Xi=e,e}function rs(e){switch(e){case"interaction":return"engagement";case"finish":return"complete";case"install":return"cta_click";default:return e}}function Lg(e,t){return{event_name:e,ts:Date.now(),session_id:Ag,deployment_id:Vi.deployment_id,variant_id:Vi.variant_id,export_profile_id:Vi.profile_id,instance_id:Vi.instance_id||"default",env:Cg==="mraid"?"mraid":"web",attribution:ir,payload:t}}function I(e,t){let i=rs(e),n=Lg(i,t);ps(n,!!bc.analytics),dr(i,n),i!==e&&dr(e,n)}function ar(){ns&&(ns(Zi,Ji),ns=null)}function Qi(e){wc=e,I("volume",e)}function en(e){e&&(Tg=!0),!rr&&(rr=!0,I("pause"),Qi(0))}function sr(e){!e&&Tg||rr&&(rr=!1,I("resume"),Qi(wc))}function Pt(e,t){Zi=Math.floor(e||window.innerWidth),Ji=Math.floor(t||window.innerHeight),vc=Zi>Ji,I("resize",{width:Zi,height:Ji})}function kw(){if(Nc())try{let e=mraid.getMaxSize();Pt(e.width,e.height);let t=()=>{mraid.isViewable()&&mraid.getState()!=="hidden"?sr():en()};if(mraid.addEventListener("viewableChange",t),mraid.addEventListener("stateChange",t),mraid.addEventListener("sizeChange",()=>{let i=mraid.getMaxSize();Pt(i.width,i.height)}),mraid.getAudioVolume){let i=mraid.getAudioVolume();Qi(i?1:0)}if(mraid.addEventListener("audioVolumeChange",i=>{i!==null&&Qi(i>0?1:0)}),mraid.addEventListener("error",(i,n)=>{console.warn("mraid error:",i,"action:",n)}),as=!0,mraid.isViewable()&&mraid.getState()!=="hidden")ft=!0,I("boot"),I("view"),I("ready"),pt=!0,ar();else{let i=()=>{ft=!0,I("boot"),I("view"),I("ready"),pt=!0,ar()};mraid.addEventListener("ready",i)}}catch(e){console.warn("MRAID hook skipped",e)}}function Lw(){if(Fc())try{let e=dapi.getScreenSize();Pt(e.width,e.height),dapi.addEventListener("viewableChange",i=>{i.isViewable?sr():en()}),dapi.addEventListener("adResized",i=>{let n=dapi.getScreenSize();Pt(i.width||n.width,i.height||n.height)});let t=dapi.getAudioVolume();if(Qi(t?1:0),dapi.addEventListener("audioVolumeChange",i=>Qi(i?1:0)),as=!0,dapi.isViewable())ft=!0,I("boot"),I("view"),I("ready"),pt=!0,ar();else{let i=()=>{ft=!0,I("boot"),I("view"),I("ready"),pt=!0,ar()};dapi.addEventListener("ready",i)}}catch(e){console.warn("DAPI hook skipped",e)}}function wg(){let e=()=>{ft||document.visibilityState==="visible"&&(document.readyState==="complete"||document.readyState==="interactive")&&(ft=!0,I("boot"),I("view"),I("ready"),pt=!0,ar(),nr&&(nr=!1,Me.start()))};window.addEventListener("resize",()=>Pt()),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"?(sr(),e()):en()}),document.readyState==="complete"||document.readyState==="interactive"?e():window.addEventListener("load",e),as=!0}function Iw(){let e=t=>{typeof TouchEvent!="undefined"&&t instanceof TouchEvent&&(vg=!0),!(vg&&t instanceof MouseEvent)&&(is+=1,xc||(xc=!0,I("first_interaction",{count:is})),I("interaction",is))};document.addEventListener("mousedown",e),document.addEventListener("touchstart",e)}function _g(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(pi())(a=(r=window.TJ_API)==null?void 0:r.click)==null||a.call(r);else if($c())(o=(s=window.FbPlayableAd)==null?void 0:s.onCTAClick)==null||o.call(s);else if(Gc())(c=(l=window.ScPlayableAd)==null?void 0:l.onCTAClick)==null||c.call(l);else if(qc())try{(u=(d=window.smxTracking)==null?void 0:d.redirect)==null||u.call(d)}catch(h){console.warn("Smadex redirect failed",h)}else if(Hc()){let h=window.ExitApi;h&&typeof h.exit=="function"?h.exit(e||Ki||""):e&&window.open(e)}else ui()?(p=window.install)==null||p.call(window):Uc()?(f=window.openAppStore)==null||f.call(window):fs()?(m=parent==null?void 0:parent.postMessage)==null||m.call(parent,"download","*"):e&&window.open(e)}function Ow(){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),cr("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 Pw(){if(!pi())return;let e=window.TJ_API;e&&e.setPlayableAPI&&e.setPlayableAPI({skipAd:()=>{try{Me.finish()}catch(t){console.warn("Tapjoy skip failed",t)}}})}function Eg(){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 Rw(){ui()&&(window.mintGameStart=()=>{sr(!0),Pt()},window.mintGameClose=()=>{en(!0)})}function Mw(){if(!hs())return;let e=window.NUC;!e||!e.trigger||(Me.on("cta_click",()=>{var t,i;return(i=(t=e.trigger).convert)==null?void 0:i.call(t,Ki)}),Me.on("complete",()=>{var t,i;return(i=(t=e.trigger).tryAgain)==null?void 0:i.call(t)}))}var Me={init(e={},t){var i;if(Cg=e.profile||"web_embed",bc=e.consent||{},Vi={...Sg,...e.ids||{}},Xi=e.rootEl||Xi,ir=void 0,Cc((i=e.telemetry)!=null&&i.endpoint?e.telemetry:null),ai=null,yc=!1,xc=!1,ts.clear(),Ki=e.destinationUrl||(/android/i.test(navigator.userAgent)?"https://play.google.com/store":"https://www.apple.com/app-store/"),t&&(ns=t),I("init"),document.body.oncontextmenu=()=>!1,xg(),Dw(Xi),Wc(),kw(),Lw(),!as){if(document.readyState==="complete")wg();else if(!yg){yg=!0;let n=()=>{wg(),window.removeEventListener("load",n),document.removeEventListener("DOMContentLoaded",n)};window.addEventListener("load",n),document.addEventListener("DOMContentLoaded",n)}}Iw(),Ow(),Pw(),Rw(),Mw(),console.log(`%c @handler/playable-sdk %c v${fc} `,"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;"),ft&&!pt&&(I("boot"),I("view"),I("ready"),nr&&(nr=!1,Me.start()),pt=!0),pt=ft},getRoot(){return xg()},get version(){return fc},get maxWidth(){return Zi},get maxHeight(){return Ji},get isLandscape(){return vc},get isReady(){return pt},get isStarted(){return hc},get isPaused(){return rr},get isFinished(){return tr},get volume(){return wc},get interactions(){return is},on(e,t){cr(rs(e),t)},off(e,t){us(rs(e),t)},start(){var e,t;if(!hc){if(!ft){nr=!0;return}if(hc=!0,ai||(ai=Date.now()),I("start"),Pt(),ui())en(),(e=window.gameReady)==null||e.call(window);else if(pi()){let i=window.TJ_API;(t=i==null?void 0:i.setPlayableBuild)==null||t.call(i,{orientation:vc?"landscape":"portrait",buildID:fc})}}},finish(){var e,t;tr||(tr=!0,I("complete"),mc("complete"),ui()?(e=window.gameEnd)==null||e.call(window):fs()?(t=parent==null?void 0:parent.postMessage)==null||t.call(parent,"complete","*"):pi()&&Eg())},install(e){if(!tr){tr=!0,pi()?(Eg(),setTimeout(()=>Me.install(e),300)):(I("complete"),setTimeout(()=>Me.install(e),0));return}gc||(gc=!0,setTimeout(()=>gc=!1,500),I("cta_click"),I("conversion"),mc("cta"),_g(e||Ki))},emit(e,t){let i=rs(e);if(!Tw.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=Lg(i,t);ps(n,!!bc.analytics),dr(i,n)},gameStart(){Me.start()},gameEnd(){Me.finish()},ctaClick(e,t){I("cta_click",{url:e||Ki,manual:!0}),(t==null?void 0:t.open)!==!1&&_g(e||Ki)},ctaShow(e){I("cta_show",e)},ctaDismiss(e){I("cta_dismiss",e)},getGameTimeMs(){return kg()},endSession(e="manual"){mc(e)},setAttribution(e){ir=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(jw(`${Ag}:${e}`))%t.length,n=t[i];return ir={...ir||{},experiment_id:e},Vi.variant_id=n,I("ab_assign",{experiment_id:e,variant_id:n}),n},levelStart(e,t){ai||(ai=Date.now()),I("level_start",{level_id:e,...t})},levelComplete(e,t){I("level_complete",{level_id:e,...t})},levelFail(e,t){I("level_fail",{level_id:e,...t})},checkpoint(e,t){I("checkpoint",{checkpoint_id:e,...t})},reward(e,t){I("reward",{reward_id:e,...t})},tutorialStart(e,t){I("tutorial_start",{step_id:e,...t})},tutorialComplete(e,t){I("tutorial_complete",{step_id:e,...t})},tutorialSkip(e,t){I("tutorial_skip",{step_id:e,...t})},timerStart(e){e&&ts.set(e,Date.now())},timerEnd(e,t="custom",i){if(!e)return;let n=ts.get(e);if(!n)return;ts.delete(e);let r=Date.now()-n;if(!(!Number.isFinite(r)||r<0)){if(t==="custom"){I("engagement",{action:"timer",key:e,duration_ms:r,...i});return}I(t,{key:e,duration_ms:r,...i})}},fps(e,t){I("fps",{value:e,...t})},memory(e,t){I("memory",{bytes:e,...t})},assetLoadStart(e,t){I("asset_load_start",{asset_id:e,...t})},assetLoadComplete(e,t){I("asset_load_complete",{asset_id:e,...t})},reportError(e,t,i){I("error",{code:e,message:t,...i})},retry(){var e,t,i;if(ui())(e=window.gameRetry)==null||e.call(window);else if(hs()){let n=window.NUC;(i=(t=n==null?void 0:n.trigger)==null?void 0:t.tryAgain)==null||i.call(t)}I("engagement",{action:"retry"})},pause(){en(!0)},resume(){sr(!0)},resize(e,t){Pt(e,t)}},Mt=Me;function jw(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 Dw(e){let t=document.createElement("script");t.type="text/javascript",t.textContent=`
|
|
1417
|
+
`,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 dc(e={}){let t=new Qa(e);return typeof window!="undefined"&&(window.__previewShell=t),t.mount(),t}ke();function uc(e){try{if(e&&typeof e.keys=="function")return Array.from(e.keys())}catch{}return[]}function bg(e){var t;return e?((t=e.getDisplayObject)==null?void 0:t.call(e))||e.pixiObject||e:null}function Lw(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 yg(e,t){var l,c,d,u,p;if(!e||!t)return;let i=t.transform||{};Lw(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 vg(e){if(typeof window=="undefined")return;let t=e==null?void 0:e.objects,i=uc(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=()=>vg(window.__editableConfig),window.getEditableObjectList=()=>{var a;return n(uc((a=window.__editableConfig)==null?void 0:a.objects))},window.getEditableObjectListAll=()=>{var a;return uc((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 Ow(){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(),ed))]),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,Nt(n,{silent:!0,persist:!1}))}catch{}},window.applyEngineOverrides=i=>{try{let n=de();Array.isArray(n)&&n.length&&(window.__editableConfig=i,Nt(n,{silent:!0,persist:!1}))}catch{}},window.applyEditableEngineConfig=i=>{var r,a,s,o;let n=window.__editableConfig;if(n!=null&&n.engine){if(i.runtime)for(let[l,c]of Object.entries(i.runtime))fe({path:`runtime.${l}`,value:c},{silent:!0,persist:!0});if(i.assets)for(let[l,c]of Object.entries(i.assets))fe({path:`assets.${l}`,value:c},{silent:!0,persist:!0}),typeof c=="string"&&t(l,c);if(i.splash)for(let[l,c]of Object.entries(i.splash))fe({path:`splash.${l}`,value:c},{silent:!0,persist:!0});if(i.loading)for(let[l,c]of Object.entries(i.loading))fe({path:`loading.${l}`,value:c},{silent:!0,persist:!0});if(i.start)for(let[l,c]of Object.entries(i.start))fe({path:`start.${l}`,value:c},{silent:!0,persist:!0});i.runtime&&Object.assign(n.engine.runtime,i.runtime),i.assets&&Object.assign(n.engine.assets,i.assets),i.splash&&Object.assign(n.engine.splash,i.splash),i.loading&&Object.assign((a=(r=n.engine).loading)!=null?a:r.loading={},i.loading),i.start&&Object.assign((o=(s=n.engine).start)!=null?o:s.start={},i.start)}}}function es(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 mt.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"&&(Ow(),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=bg(u);yg(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=bg(l);yg(p,s)}let c=[a];n==null||n(a,s,c)},rebuildIndexes(){let a=t();typeof window!="undefined"&&(window.__editableConfig=a,vg(a))}};return r.rebuildIndexes(),r}ke();var _g=li(require("lottie-web"),1);ys(ms);typeof window!="undefined"&&!window.lottie&&(window.lottie=_g.default);var Gi=null,Iw=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},gc,ir,Eg,Wi,fc,hc;function Pw(e){gc=e.initGame,ir=e.CustomAssets,Eg=e.updateScreenState,Wi=e.globalResponsiveMultipliers,fc=e.layout,hc=e.clearResponsiveElements}var ts="web_embed",tr="https://example.com",xg={profile_id:ts},It=null,We=null,pc={width:0,height:0},Rw=!0,Mw=async()=>{var c,d,u,p;document.title="Handler Pixi Game";let e=await Iw();xg={...e.ids||{},profile_id:ts},tr=e.destination_url||((d=(c=e.export_profiles)==null?void 0:c[ts])==null?void 0:d.destination_url)||tr,Mt.init({ids:xg,profile:ts,destinationUrl:tr});let t=Mt.getRoot();if(typeof __PREVIEW_SHELL__!="undefined"&&__PREVIEW_SHELL__){console.log("[BOOTSTRAP] Initializing Preview Shell..."),We=dc({onDeviceChange:m=>{console.log(`[PREVIEW] Device switched to ${m.width}x${m.height}, restarting game...`),wg()},onRefresh:wg});let f=We.getGameContainer();f&&(t=f),window.addEventListener("handler-preview:screen",m=>{var v,x,w,S,C,_,T,R,E,L,z;let h=window.gameApp,g=window.gameObjectManager,{width:b,height:y}=m.detail;if(pc.width=b,pc.height=y,Eg(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&&fc)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?_:(C=g.get("label_1"))==null?void 0:C.pixiObject)!=null?T:g.get("label_1"),O=g.get("background_1"),M=(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 A=D===h.stage;fc({mainContainer:D,label:B,background:M,backgroundTexture:(M==null?void 0:M.texture)||null,app:h},i,0,pc,g,{skipMainContainerTransform:A})}}catch(D){console.warn("[SCREEN] Error in layout:",D)}}})}let i=await et("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 et("scene.main"));let n=await gc(t,i,tr,We);It=n.app;let r=n.gameObjectManager;window.gameApp=It,window.gameObjectManager=r;try{window.__liveEditBridge=es({getConfig:()=>window.__editableConfig,gameObjectManager:r,assets:ir})}catch(f){console.warn("[BOOTSTRAP] Failed to initialize live-edit bridge",f)}We&&We.notifyGameLoaded();let a=window.__debugScale;a&&typeof a=="number"&&(Wi.scale=a,console.log(`[DEBUG] Applied persisted debug scale: ${a}`)),o(It,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 C=S.map(_=>_==null?void 0:_.instance_id).filter(_=>typeof _=="string");g[y]=C;for(let _ of C)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(Rw){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,C=x.scale.y||1;x.__originalScale||(x.__originalScale={x:S,y:C},console.log(`${v}[RESPONSIVE] Stored original scale for child[${w}]: ${S.toFixed(3)}, ${C.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,Mt.start()},wg=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(We){We.notifyGameDestroyed();try{hc&&hc()}catch(a){console.warn("Failed to clear responsive elements",a)}setTimeout(()=>{console.log("[PREVIEW] Executing restart...");let a=We.getGameContainer(),s=window.gameObjectManager;if(s&&typeof s.clear=="function"&&(console.log("[PREVIEW] Clearing old GameObjectManager tickers..."),s.clear()),It){try{It.destroy(!0,{children:!0,texture:!1})}catch(o){console.warn("[PREVIEW] Destroy warning:",o)}It=null}window.gameApp=null,window.gameObjectManager=null,a&&(a.innerHTML="");try{typeof ir.resetScene=="function"&&ir.resetScene()}catch(o){console.warn("Asset reset failed",o)}setTimeout(()=>{et("scene.main").then(o=>{window.__editableConfig=o,window.__editableConfigBaseline||(window.__editableConfigBaseline=ne(o)),gc(a,o,tr).then(l=>{It=l.app,window.gameApp=It,window.gameObjectManager=l.gameObjectManager;try{window.__liveEditBridge=es({getConfig:()=>window.__editableConfig,gameObjectManager:window.gameObjectManager,assets:ir})}catch(c){console.warn("[BOOTSTRAP] Failed to re-initialize live-edit bridge",c)}We&&We.notifyGameLoaded(),console.log("[PREVIEW] Game restarted successfully");try{Mt.start()}catch{}})})},100)},1e3)}};Mr();ke();var mc="0.3.1",jw=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"]),Og={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"},Ig=Math.random().toString(36).slice(2),Ki=null,Yi={...Og},Pg="web_embed",xc={},rr,bc=!1,nr=!1,sr=!1,Rg=!1,Sc=1,ns=0,ss=!1,pt=!1,Vi="",Xi=Math.floor(window.innerWidth),Zi=Math.floor(window.innerHeight),wc=Xi>Zi,ft=!1,ar=!1,Sg=!1,Ag=!1,yc=!1,rs=null,ri=null,_c=!1,Ec=!1,is=new Map;function Mg(){if(!ri)return null;let e=Date.now()-ri;return!Number.isFinite(e)||e<0?null:e}function vc(e){if(_c)return;let t=Mg();t!==null&&(_c=!0,P("session_time",{duration_ms:t,reason:e}))}function Cg(){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 as(e){switch(e){case"interaction":return"engagement";case"finish":return"complete";case"install":return"cta_click";default:return e}}function jg(e,t){return{event_name:e,ts:Date.now(),session_id:Ig,deployment_id:Yi.deployment_id,variant_id:Yi.variant_id,export_profile_id:Yi.profile_id,instance_id:Yi.instance_id||"default",env:Pg==="mraid"?"mraid":"web",attribution:rr,payload:t}}function P(e,t){let i=as(e),n=jg(i,t);fs(n,!!xc.analytics),pr(i,n),i!==e&&pr(e,n)}function or(){rs&&(rs(Xi,Zi),rs=null)}function Ji(e){Sc=e,P("volume",e)}function Qi(e){e&&(Rg=!0),!sr&&(sr=!0,P("pause"),Ji(0))}function lr(e){!e&&Rg||sr&&(sr=!1,P("resume"),Ji(Sc))}function Pt(e,t){Xi=Math.floor(e||window.innerWidth),Zi=Math.floor(t||window.innerHeight),wc=Xi>Zi,P("resize",{width:Xi,height:Zi})}function Dw(){if($c())try{let e=mraid.getMaxSize();Pt(e.width,e.height);let t=()=>{mraid.isViewable()&&mraid.getState()!=="hidden"?lr():Qi()};if(mraid.addEventListener("viewableChange",t),mraid.addEventListener("stateChange",t),mraid.addEventListener("sizeChange",()=>{let i=mraid.getMaxSize();Pt(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)}),ss=!0,mraid.isViewable()&&mraid.getState()!=="hidden")ft=!0,P("boot"),P("view"),P("ready"),pt=!0,or();else{let i=()=>{ft=!0,P("boot"),P("view"),P("ready"),pt=!0,or()};mraid.addEventListener("ready",i)}}catch(e){console.warn("MRAID hook skipped",e)}}function zw(){if(Uc())try{let e=dapi.getScreenSize();Pt(e.width,e.height),dapi.addEventListener("viewableChange",i=>{i.isViewable?lr():Qi()}),dapi.addEventListener("adResized",i=>{let n=dapi.getScreenSize();Pt(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)),ss=!0,dapi.isViewable())ft=!0,P("boot"),P("view"),P("ready"),pt=!0,or();else{let i=()=>{ft=!0,P("boot"),P("view"),P("ready"),pt=!0,or()};dapi.addEventListener("ready",i)}}catch(e){console.warn("DAPI hook skipped",e)}}function Tg(){let e=()=>{ft||document.visibilityState==="visible"&&(document.readyState==="complete"||document.readyState==="interactive")&&(ft=!0,P("boot"),P("view"),P("ready"),pt=!0,or(),ar&&(ar=!1,Me.start()))};window.addEventListener("resize",()=>Pt()),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"?(lr(),e()):Qi()}),document.readyState==="complete"||document.readyState==="interactive"?e():window.addEventListener("load",e),ss=!0}function Nw(){let e=t=>{typeof TouchEvent!="undefined"&&t instanceof TouchEvent&&(Sg=!0),!(Sg&&t instanceof MouseEvent)&&(ns+=1,Ec||(Ec=!0,P("first_interaction",{count:ns})),P("interaction",ns))};document.addEventListener("mousedown",e),document.addEventListener("touchstart",e)}function kg(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(Vc())(c=(l=window.ScPlayableAd)==null?void 0:l.onCTAClick)==null||c.call(l);else if(Yc())try{(u=(d=window.smxTracking)==null?void 0:d.redirect)==null||u.call(d)}catch(h){console.warn("Smadex redirect failed",h)}else if(Gc()){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):Wc()?(f=window.openAppStore)==null||f.call(window):hs()?(m=parent==null?void 0:parent.postMessage)==null||m.call(parent,"download","*"):e&&window.open(e)}function Bw(){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;ye("view",()=>t(i.mraid_viewable)),ye("start",()=>t(i.game_viewable)),ye("engagement",()=>t(i.engagement));let n=()=>t(i.complete);ye("complete",n),ur("engagement",r=>{var a;((a=r==null?void 0:r.payload)==null?void 0:a.count)>3&&n()}),ye("cta_click",()=>t(i.click))}else if(e==="inmobi"){let i=window.INMOBI_DSPMACROS;if(!i)return;ye("view",()=>t(i.Ad_Load_Start)),ye("start",()=>t(i.Ad_Viewable)),ye("engagement",()=>t(i.First_Engagement)),ye("complete",()=>t(i.Gameplay_Complete)),ye("cta_click",()=>t(i.DSP_Click)),ye("start",()=>{[5,10,15,20,25,30].forEach(n=>setTimeout(()=>t(i[`Spent_${n}_Seconds`]),n*1e3))})}}function Fw(){if(!ui())return;let e=window.TJ_API;e&&e.setPlayableAPI&&e.setPlayableAPI({skipAd:()=>{try{Me.finish()}catch(t){console.warn("Tapjoy skip failed",t)}}})}function Lg(){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 Hw(){di()&&(window.mintGameStart=()=>{lr(!0),Pt()},window.mintGameClose=()=>{Qi(!0)})}function $w(){if(!gs())return;let e=window.NUC;!e||!e.trigger||(Me.on("cta_click",()=>{var t,i;return(i=(t=e.trigger).convert)==null?void 0:i.call(t,Vi)}),Me.on("complete",()=>{var t,i;return(i=(t=e.trigger).tryAgain)==null?void 0:i.call(t)}))}var Me={init(e={},t){var i;if(Pg=e.profile||"web_embed",xc=e.consent||{},Yi={...Og,...e.ids||{}},Ki=e.rootEl||Ki,rr=void 0,Lc((i=e.telemetry)!=null&&i.endpoint?e.telemetry:null),ri=null,_c=!1,Ec=!1,is.clear(),Vi=e.destinationUrl||(/android/i.test(navigator.userAgent)?"https://play.google.com/store":"https://www.apple.com/app-store/"),t&&(rs=t),P("init"),document.body.oncontextmenu=()=>!1,Cg(),qw(Ki),Kc(),Dw(),zw(),!ss){if(document.readyState==="complete")Tg();else if(!Ag){Ag=!0;let n=()=>{Tg(),window.removeEventListener("load",n),document.removeEventListener("DOMContentLoaded",n)};window.addEventListener("load",n),document.addEventListener("DOMContentLoaded",n)}}Nw(),Bw(),Fw(),Hw(),$w(),console.log(`%c @handler/playable-sdk %c v${mc} `,"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;"),ft&&!pt&&(P("boot"),P("view"),P("ready"),ar&&(ar=!1,Me.start()),pt=!0),pt=ft},getRoot(){return Cg()},get version(){return mc},get maxWidth(){return Xi},get maxHeight(){return Zi},get isLandscape(){return wc},get isReady(){return pt},get isStarted(){return bc},get isPaused(){return sr},get isFinished(){return nr},get volume(){return Sc},get interactions(){return ns},on(e,t){ur(as(e),t)},off(e,t){ps(as(e),t)},start(){var e,t;if(!bc){if(!ft){ar=!0;return}if(bc=!0,ri||(ri=Date.now()),P("start"),Pt(),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:wc?"landscape":"portrait",buildID:mc})}}},finish(){var e,t;nr||(nr=!0,P("complete"),vc("complete"),di()?(e=window.gameEnd)==null||e.call(window):hs()?(t=parent==null?void 0:parent.postMessage)==null||t.call(parent,"complete","*"):ui()&&Lg())},install(e){if(!nr){nr=!0,ui()?(Lg(),setTimeout(()=>Me.install(e),300)):(P("complete"),setTimeout(()=>Me.install(e),0));return}yc||(yc=!0,setTimeout(()=>yc=!1,500),P("cta_click"),P("conversion"),vc("cta"),kg(e||Vi))},emit(e,t){let i=as(e);if(!jw.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=jg(i,t);fs(n,!!xc.analytics),pr(i,n)},gameStart(){Me.start()},gameEnd(){Me.finish()},ctaClick(e,t){P("cta_click",{url:e||Vi,manual:!0}),(t==null?void 0:t.open)!==!1&&kg(e||Vi)},ctaShow(e){P("cta_show",e)},ctaDismiss(e){P("cta_dismiss",e)},getGameTimeMs(){return Mg()},endSession(e="manual"){vc(e)},setAttribution(e){rr=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(Uw(`${Ig}:${e}`))%t.length,n=t[i];return rr={...rr||{},experiment_id:e},Yi.variant_id=n,P("ab_assign",{experiment_id:e,variant_id:n}),n},levelStart(e,t){ri||(ri=Date.now()),P("level_start",{level_id:e,...t})},levelComplete(e,t){P("level_complete",{level_id:e,...t})},levelFail(e,t){P("level_fail",{level_id:e,...t})},checkpoint(e,t){P("checkpoint",{checkpoint_id:e,...t})},reward(e,t){P("reward",{reward_id:e,...t})},tutorialStart(e,t){P("tutorial_start",{step_id:e,...t})},tutorialComplete(e,t){P("tutorial_complete",{step_id:e,...t})},tutorialSkip(e,t){P("tutorial_skip",{step_id:e,...t})},timerStart(e){e&&is.set(e,Date.now())},timerEnd(e,t="custom",i){if(!e)return;let n=is.get(e);if(!n)return;is.delete(e);let r=Date.now()-n;if(!(!Number.isFinite(r)||r<0)){if(t==="custom"){P("engagement",{action:"timer",key:e,duration_ms:r,...i});return}P(t,{key:e,duration_ms:r,...i})}},fps(e,t){P("fps",{value:e,...t})},memory(e,t){P("memory",{bytes:e,...t})},assetLoadStart(e,t){P("asset_load_start",{asset_id:e,...t})},assetLoadComplete(e,t){P("asset_load_complete",{asset_id:e,...t})},reportError(e,t,i){P("error",{code:e,message:t,...i})},retry(){var e,t,i;if(di())(e=window.gameRetry)==null||e.call(window);else if(gs()){let n=window.NUC;(i=(t=n==null?void 0:n.trigger)==null?void 0:t.tryAgain)==null||i.call(t)}P("engagement",{action:"retry"})},pause(){Qi(!0)},resume(){lr(!0)},resize(e,t){Pt(e,t)}},Mt=Me;function Uw(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 qw(e){let t=document.createElement("script");t.type="text/javascript",t.textContent=`
|
|
1345
1418
|
(function(){
|
|
1346
1419
|
var events = ['touchstart','touchend','mousedown','keydown'];
|
|
1347
1420
|
function unlock(){
|