@miris-inc/core 0.0.8-29b85ce → 0.0.8-2b6311a

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/core.js CHANGED
@@ -1,4 +1,4 @@
1
- //#region packages/core/attributeCache.ts
1
+ // packages/core/attributeCache.ts
2
2
  var AttributeCache = class {
3
3
  static #cache = /* @__PURE__ */ new Map();
4
4
  static #nextId = 1;
@@ -55,12 +55,11 @@ var AttributeCache = class {
55
55
  }
56
56
  }
57
57
  };
58
- //#endregion
59
- //#region \0emscripten-lazy:AquaApi
58
+ // \0emscripten-lazy:AquaApi
60
59
  var _factoryPromise;
61
60
  var _wasmPromise;
62
61
  var _wasmUrl = ((u) => u.includes("/.vite/") ? u.replace(/\.vite\/[^?#]*/, () => "@miris-inc/core/dist/AquaApi.wasm") : u)(new URL("AquaApi.wasm", import.meta.url).href);
63
- var _glueSource = "async function cc($t={}){var Ye,l=$t,Sr=typeof window==\"object\",ge=typeof WorkerGlobalScope<\"u\",Dt=typeof process==\"object\"&&process.versions?.node&&process.type!=\"renderer\",uc=!Sr&&!Dt&&!ge,Rt=[],kr=\"./this.program\",Er=(e,r)=>{throw r},It=import.meta.url,Je=\"\";function Mt(e){return l.locateFile?l.locateFile(e,Je):Je+e}var Qe,Fe;if(Sr||ge){try{Je=new URL(\".\",It).href}catch{}ge&&(Fe=e=>{var r=new XMLHttpRequest;return r.open(\"GET\",e,!1),r.responseType=\"arraybuffer\",r.send(null),new Uint8Array(r.response)}),Qe=async e=>{var r=await fetch(e,{credentials:\"same-origin\"});if(r.ok)return r.arrayBuffer();throw new Error(r.status+\" : \"+r.url)}}var we=console.log.bind(console),ee=console.error.bind(console),be,Pe=!1,Ae;function lc(e,r){e||ce(r)}var fc=e=>e.startsWith(\"file://\"),Cr,Tr,$e,G,B,A,ve,C,m,De,Re,W,Fr,Pr=!1;function Ar(){var e=$e.buffer;l.HEAP8=G=new Int8Array(e),A=new Int16Array(e),l.HEAPU8=B=new Uint8Array(e),ve=new Uint16Array(e),l.HEAP32=C=new Int32Array(e),l.HEAPU32=m=new Uint32Array(e),l.HEAPF32=De=new Float32Array(e),l.HEAPF64=Re=new Float64Array(e),W=new BigInt64Array(e),Fr=new BigUint64Array(e)}function jt(){if(l.preRun)for(typeof l.preRun==\"function\"&&(l.preRun=[l.preRun]);l.preRun.length;)Ht(l.preRun.shift());Dr(Ir)}function Ot(){Pr=!0,!l.noFSInit&&!o.initialized&&o.init(),ae.init(),de.__wasm_call_ctors(),o.ignorePermissions=!1}function xt(){if(l.postRun)for(typeof l.postRun==\"function\"&&(l.postRun=[l.postRun]);l.postRun.length;)zt(l.postRun.shift());Dr(Rr)}function ce(e){l.onAbort?.(e),e=\"Aborted(\"+e+\")\",ee(e),Pe=!0,e+=\". Build with -sASSERTIONS for more info.\";var r=new WebAssembly.RuntimeError(e);throw Tr?.(r),r}var er;function Gt(){return l.locateFile?Mt(\"AquaApi.wasm\"):new URL(\"AquaApi.wasm\",import.meta.url).href}function Nt(e){if(e==er&&be)return new Uint8Array(be);if(Fe)return Fe(e);throw\"both async and sync fetching of the wasm failed\"}async function Bt(e){if(!be)try{var r=await Qe(e);return new Uint8Array(r)}catch{}return Nt(e)}async function Lt(e,r){try{var t=await Bt(e),n=await WebAssembly.instantiate(t,r);return n}catch(i){ee(`failed to asynchronously prepare wasm: ${i}`),ce(i)}}async function Wt(e,r,t){if(!e)try{var n=fetch(r,{credentials:\"same-origin\"}),i=await WebAssembly.instantiateStreaming(n,t);return i}catch(a){ee(`wasm streaming compile failed: ${a}`),ee(\"falling back to ArrayBuffer instantiation\")}return Lt(r,t)}function Ut(){return{env:At,wasi_snapshot_preview1:At}}async function Vt(){function e(a,s){return de=a.exports,$e=de.memory,Ar(),Yr=de.__indirect_function_table,as(de),de}function r(a){return e(a.instance)}var t=Ut();if(l.instantiateWasm)return new Promise((a,s)=>{l.instantiateWasm(t,(c,u)=>{a(e(c,u))})});er??=Gt();var n=await Wt(be,er,t),i=r(n);return i}class $r{name=\"ExitStatus\";constructor(r){this.message=`Program terminated with exit(${r})`,this.status=r}}var Dr=e=>{for(;e.length>0;)e.shift()(l)},Rr=[],zt=e=>Rr.push(e),Ir=[],Ht=e=>Ir.push(e);function dc(e,r=\"i8\"){switch(r.endsWith(\"*\")&&(r=\"*\"),r){case\"i1\":return G[e];case\"i8\":return G[e];case\"i16\":return A[e>>1];case\"i32\":return C[e>>2];case\"i64\":return W[e>>3];case\"float\":return De[e>>2];case\"double\":return Re[e>>3];case\"*\":return m[e>>2];default:ce(`invalid type for getValue: ${r}`)}}var rr=!0;function vc(e,r,t=\"i8\"){switch(t.endsWith(\"*\")&&(t=\"*\"),t){case\"i1\":G[e]=r;break;case\"i8\":G[e]=r;break;case\"i16\":A[e>>1]=r;break;case\"i32\":C[e>>2]=r;break;case\"i64\":W[e>>3]=BigInt(r);break;case\"float\":De[e>>2]=r;break;case\"double\":Re[e>>3]=r;break;case\"*\":m[e>>2]=r;break;default:ce(`invalid type for setValue: ${t}`)}}var w=e=>St(e),b=()=>Et(),Ie=[],Me=0,qt=e=>{var r=new tr(e);return r.get_caught()||(r.set_caught(!0),Me--),r.set_rethrown(!1),Ie.push(r),Tt(e),Pt(e)},re=0,Xt=()=>{g(0,0);var e=Ie.pop();Ct(e.excPtr),re=0};class tr{constructor(r){this.excPtr=r,this.ptr=r-24}set_type(r){m[this.ptr+4>>2]=r}get_type(){return m[this.ptr+4>>2]}set_destructor(r){m[this.ptr+8>>2]=r}get_destructor(){return m[this.ptr+8>>2]}set_caught(r){r=r?1:0,G[this.ptr+12]=r}get_caught(){return G[this.ptr+12]!=0}set_rethrown(r){r=r?1:0,G[this.ptr+13]=r}get_rethrown(){return G[this.ptr+13]!=0}init(r,t){this.set_adjusted_ptr(0),this.set_type(r),this.set_destructor(t)}set_adjusted_ptr(r){m[this.ptr+16>>2]=r}get_adjusted_ptr(){return m[this.ptr+16>>2]}}var je=e=>bt(e),nr=e=>{var r=re;if(!r)return je(0),0;var t=new tr(r);t.set_adjusted_ptr(r);var n=t.get_type();if(!n)return je(0),r;for(var i of e){if(i===0||i===n)break;var a=t.ptr+16;if(Ft(i,n,a))return je(i),r}return je(n),r},Zt=()=>nr([]),Kt=e=>nr([e]),Yt=(e,r)=>nr([e,r]),Jt=()=>{var e=Ie.pop();e||ce(\"no exception to throw\");var r=e.excPtr;throw e.get_rethrown()||(Ie.push(e),e.set_rethrown(!0),e.set_caught(!1),Me++),re=r,re},Qt=(e,r,t)=>{var n=new tr(e);throw n.init(r,t),re=e,Me++,re},en=()=>Me,rn=e=>{throw re||(re=e),re},Oe=()=>{var e=C[+R.varargs>>2];return R.varargs+=4,e},_e=Oe,D={isAbs:e=>e.charAt(0)===\"/\",splitPath:e=>{var r=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return r.exec(e).slice(1)},normalizeArray:(e,r)=>{for(var t=0,n=e.length-1;n>=0;n--){var i=e[n];i===\".\"?e.splice(n,1):i===\"..\"?(e.splice(n,1),t++):t&&(e.splice(n,1),t--)}if(r)for(;t;t--)e.unshift(\"..\");return e},normalize:e=>{var r=D.isAbs(e),t=e.slice(-1)===\"/\";return e=D.normalizeArray(e.split(\"/\").filter(n=>!!n),!r).join(\"/\"),!e&&!r&&(e=\".\"),e&&t&&(e+=\"/\"),(r?\"/\":\"\")+e},dirname:e=>{var r=D.splitPath(e),t=r[0],n=r[1];return!t&&!n?\".\":(n&&(n=n.slice(0,-1)),t+n)},basename:e=>e&&e.match(/([^\\/]+|\\/)\\/*$/)[1],join:(...e)=>D.normalize(e.join(\"/\")),join2:(e,r)=>D.normalize(e+\"/\"+r)},tn=()=>e=>crypto.getRandomValues(e),ir=e=>{(ir=tn())(e)},he={resolve:(...e)=>{for(var r=\"\",t=!1,n=e.length-1;n>=-1&&!t;n--){var i=n>=0?e[n]:o.cwd();if(typeof i!=\"string\")throw new TypeError(\"Arguments to path.resolve must be strings\");if(!i)return\"\";r=i+\"/\"+r,t=D.isAbs(i)}return r=D.normalizeArray(r.split(\"/\").filter(a=>!!a),!t).join(\"/\"),(t?\"/\":\"\")+r||\".\"},relative:(e,r)=>{e=he.resolve(e).slice(1),r=he.resolve(r).slice(1);function t(f){for(var d=0;d<f.length&&f[d]===\"\";d++);for(var _=f.length-1;_>=0&&f[_]===\"\";_--);return d>_?[]:f.slice(d,_-d+1)}for(var n=t(e.split(\"/\")),i=t(r.split(\"/\")),a=Math.min(n.length,i.length),s=a,c=0;c<a;c++)if(n[c]!==i[c]){s=c;break}for(var u=[],c=s;c<n.length;c++)u.push(\"..\");return u=u.concat(i.slice(s)),u.join(\"/\")}},Mr=typeof TextDecoder<\"u\"?new TextDecoder:void 0,jr=(e,r,t,n)=>{var i=r+t;if(n)return i;for(;e[r]&&!(r>=i);)++r;return r},me=(e,r=0,t,n)=>{var i=jr(e,r,t,n);if(i-r>16&&e.buffer&&Mr)return Mr.decode(e.subarray(r,i));for(var a=\"\";r<i;){var s=e[r++];if(!(s&128)){a+=String.fromCharCode(s);continue}var c=e[r++]&63;if((s&224)==192){a+=String.fromCharCode((s&31)<<6|c);continue}var u=e[r++]&63;if((s&240)==224?s=(s&15)<<12|c<<6|u:s=(s&7)<<18|c<<12|u<<6|e[r++]&63,s<65536)a+=String.fromCharCode(s);else{var f=s-65536;a+=String.fromCharCode(55296|f>>10,56320|f&1023)}}return a},ar=[],Y=e=>{for(var r=0,t=0;t<e.length;++t){var n=e.charCodeAt(t);n<=127?r++:n<=2047?r+=2:n>=55296&&n<=57343?(r+=4,++t):r+=3}return r},Or=(e,r,t,n)=>{if(!(n>0))return 0;for(var i=t,a=t+n-1,s=0;s<e.length;++s){var c=e.codePointAt(s);if(c<=127){if(t>=a)break;r[t++]=c}else if(c<=2047){if(t+1>=a)break;r[t++]=192|c>>6,r[t++]=128|c&63}else if(c<=65535){if(t+2>=a)break;r[t++]=224|c>>12,r[t++]=128|c>>6&63,r[t++]=128|c&63}else{if(t+3>=a)break;r[t++]=240|c>>18,r[t++]=128|c>>12&63,r[t++]=128|c>>6&63,r[t++]=128|c&63,s++}}return r[t]=0,t-i},or=(e,r,t)=>{var n=t>0?t:Y(e)+1,i=new Array(n),a=Or(e,i,0,i.length);return r&&(i.length=a),i},nn=()=>{if(!ar.length){var e=null;if(typeof window<\"u\"&&typeof window.prompt==\"function\"&&(e=window.prompt(\"Input: \"),e!==null&&(e+=`\n`)),!e)return null;ar=or(e,!0)}return ar.shift()},ae={ttys:[],init(){},shutdown(){},register(e,r){ae.ttys[e]={input:[],output:[],ops:r},o.registerDevice(e,ae.stream_ops)},stream_ops:{open(e){var r=ae.ttys[e.node.rdev];if(!r)throw new o.ErrnoError(43);e.tty=r,e.seekable=!1},close(e){e.tty.ops.fsync(e.tty)},fsync(e){e.tty.ops.fsync(e.tty)},read(e,r,t,n,i){if(!e.tty||!e.tty.ops.get_char)throw new o.ErrnoError(60);for(var a=0,s=0;s<n;s++){var c;try{c=e.tty.ops.get_char(e.tty)}catch{throw new o.ErrnoError(29)}if(c===void 0&&a===0)throw new o.ErrnoError(6);if(c==null)break;a++,r[t+s]=c}return a&&(e.node.atime=Date.now()),a},write(e,r,t,n,i){if(!e.tty||!e.tty.ops.put_char)throw new o.ErrnoError(60);try{for(var a=0;a<n;a++)e.tty.ops.put_char(e.tty,r[t+a])}catch{throw new o.ErrnoError(29)}return n&&(e.node.mtime=e.node.ctime=Date.now()),a}},default_tty_ops:{get_char(e){return nn()},put_char(e,r){r===null||r===10?(we(me(e.output)),e.output=[]):r!=0&&e.output.push(r)},fsync(e){e.output?.length>0&&(we(me(e.output)),e.output=[])},ioctl_tcgets(e){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(e,r,t){return 0},ioctl_tiocgwinsz(e){return[24,80]}},default_tty1_ops:{put_char(e,r){r===null||r===10?(ee(me(e.output)),e.output=[]):r!=0&&e.output.push(r)},fsync(e){e.output?.length>0&&(ee(me(e.output)),e.output=[])}}},xr=e=>{ce()},E={ops_table:null,mount(e){return E.createNode(null,\"/\",16895,0)},createNode(e,r,t,n){if(o.isBlkdev(t)||o.isFIFO(t))throw new o.ErrnoError(63);E.ops_table||={dir:{node:{getattr:E.node_ops.getattr,setattr:E.node_ops.setattr,lookup:E.node_ops.lookup,mknod:E.node_ops.mknod,rename:E.node_ops.rename,unlink:E.node_ops.unlink,rmdir:E.node_ops.rmdir,readdir:E.node_ops.readdir,symlink:E.node_ops.symlink},stream:{llseek:E.stream_ops.llseek}},file:{node:{getattr:E.node_ops.getattr,setattr:E.node_ops.setattr},stream:{llseek:E.stream_ops.llseek,read:E.stream_ops.read,write:E.stream_ops.write,mmap:E.stream_ops.mmap,msync:E.stream_ops.msync}},link:{node:{getattr:E.node_ops.getattr,setattr:E.node_ops.setattr,readlink:E.node_ops.readlink},stream:{}},chrdev:{node:{getattr:E.node_ops.getattr,setattr:E.node_ops.setattr},stream:o.chrdev_stream_ops}};var i=o.createNode(e,r,t,n);return o.isDir(i.mode)?(i.node_ops=E.ops_table.dir.node,i.stream_ops=E.ops_table.dir.stream,i.contents={}):o.isFile(i.mode)?(i.node_ops=E.ops_table.file.node,i.stream_ops=E.ops_table.file.stream,i.usedBytes=0,i.contents=null):o.isLink(i.mode)?(i.node_ops=E.ops_table.link.node,i.stream_ops=E.ops_table.link.stream):o.isChrdev(i.mode)&&(i.node_ops=E.ops_table.chrdev.node,i.stream_ops=E.ops_table.chrdev.stream),i.atime=i.mtime=i.ctime=Date.now(),e&&(e.contents[r]=i,e.atime=e.mtime=e.ctime=i.atime),i},getFileDataAsTypedArray(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage(e,r){var t=e.contents?e.contents.length:0;if(!(t>=r)){var n=1024*1024;r=Math.max(r,t*(t<n?2:1.125)>>>0),t!=0&&(r=Math.max(r,256));var i=e.contents;e.contents=new Uint8Array(r),e.usedBytes>0&&e.contents.set(i.subarray(0,e.usedBytes),0)}},resizeFileStorage(e,r){if(e.usedBytes!=r)if(r==0)e.contents=null,e.usedBytes=0;else{var t=e.contents;e.contents=new Uint8Array(r),t&&e.contents.set(t.subarray(0,Math.min(r,e.usedBytes))),e.usedBytes=r}},node_ops:{getattr(e){var r={};return r.dev=o.isChrdev(e.mode)?e.id:1,r.ino=e.id,r.mode=e.mode,r.nlink=1,r.uid=0,r.gid=0,r.rdev=e.rdev,o.isDir(e.mode)?r.size=4096:o.isFile(e.mode)?r.size=e.usedBytes:o.isLink(e.mode)?r.size=e.link.length:r.size=0,r.atime=new Date(e.atime),r.mtime=new Date(e.mtime),r.ctime=new Date(e.ctime),r.blksize=4096,r.blocks=Math.ceil(r.size/r.blksize),r},setattr(e,r){for(const t of[\"mode\",\"atime\",\"mtime\",\"ctime\"])r[t]!=null&&(e[t]=r[t]);r.size!==void 0&&E.resizeFileStorage(e,r.size)},lookup(e,r){throw E.doesNotExistError||(E.doesNotExistError=new o.ErrnoError(44),E.doesNotExistError.stack=\"<generic error, no stack>\"),E.doesNotExistError},mknod(e,r,t,n){return E.createNode(e,r,t,n)},rename(e,r,t){var n;try{n=o.lookupNode(r,t)}catch{}if(n){if(o.isDir(e.mode))for(var i in n.contents)throw new o.ErrnoError(55);o.hashRemoveNode(n)}delete e.parent.contents[e.name],r.contents[t]=e,e.name=t,r.ctime=r.mtime=e.parent.ctime=e.parent.mtime=Date.now()},unlink(e,r){delete e.contents[r],e.ctime=e.mtime=Date.now()},rmdir(e,r){var t=o.lookupNode(e,r);for(var n in t.contents)throw new o.ErrnoError(55);delete e.contents[r],e.ctime=e.mtime=Date.now()},readdir(e){return[\".\",\"..\",...Object.keys(e.contents)]},symlink(e,r,t){var n=E.createNode(e,r,41471,0);return n.link=t,n},readlink(e){if(!o.isLink(e.mode))throw new o.ErrnoError(28);return e.link}},stream_ops:{read(e,r,t,n,i){var a=e.node.contents;if(i>=e.node.usedBytes)return 0;var s=Math.min(e.node.usedBytes-i,n);if(s>8&&a.subarray)r.set(a.subarray(i,i+s),t);else for(var c=0;c<s;c++)r[t+c]=a[i+c];return s},write(e,r,t,n,i,a){if(r.buffer===G.buffer&&(a=!1),!n)return 0;var s=e.node;if(s.mtime=s.ctime=Date.now(),r.subarray&&(!s.contents||s.contents.subarray)){if(a)return s.contents=r.subarray(t,t+n),s.usedBytes=n,n;if(s.usedBytes===0&&i===0)return s.contents=r.slice(t,t+n),s.usedBytes=n,n;if(i+n<=s.usedBytes)return s.contents.set(r.subarray(t,t+n),i),n}if(E.expandFileStorage(s,i+n),s.contents.subarray&&r.subarray)s.contents.set(r.subarray(t,t+n),i);else for(var c=0;c<n;c++)s.contents[i+c]=r[t+c];return s.usedBytes=Math.max(s.usedBytes,i+n),n},llseek(e,r,t){var n=r;if(t===1?n+=e.position:t===2&&o.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new o.ErrnoError(28);return n},mmap(e,r,t,n,i){if(!o.isFile(e.node.mode))throw new o.ErrnoError(43);var a,s,c=e.node.contents;if(!(i&2)&&c&&c.buffer===G.buffer)s=!1,a=c.byteOffset;else{if(s=!0,a=xr(r),!a)throw new o.ErrnoError(48);c&&((t>0||t+r<c.length)&&(c.subarray?c=c.subarray(t,t+r):c=Array.prototype.slice.call(c,t,t+r)),G.set(c,a))}return{ptr:a,allocated:s}},msync(e,r,t,n,i){return E.stream_ops.write(e,r,0,n,t,!1),0}}},an=e=>{var r={r:0,\"r+\":2,w:577,\"w+\":578,a:1089,\"a+\":1090},t=r[e];if(typeof t>\"u\")throw new Error(`Unknown file open mode: ${e}`);return t},sr=(e,r)=>{var t=0;return e&&(t|=365),r&&(t|=146),t},on=async e=>{var r=await Qe(e);return new Uint8Array(r)},sn=(...e)=>o.createDataFile(...e),cn=e=>e,ue=0,Se=null,Gr=e=>{if(ue--,l.monitorRunDependencies?.(ue),ue==0&&Se){var r=Se;Se=null,r()}},Nr=e=>{ue++,l.monitorRunDependencies?.(ue)},Br=[],un=async(e,r)=>{typeof Browser<\"u\"&&Browser.init();for(var t of Br)if(t.canHandle(r))return t.handle(e,r);return e},Lr=async(e,r,t,n,i,a,s,c)=>{var u=r?he.resolve(D.join2(e,r)):e,f=cn(`cp ${u}`);Nr(f);try{var d=t;typeof t==\"string\"&&(d=await on(t)),d=await un(d,u),c?.(),a||sn(e,r,d,n,i,s)}finally{Gr(f)}},ln=(e,r,t,n,i,a,s,c,u,f)=>{Lr(e,r,t,n,i,c,u,f).then(a).catch(s)},o={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:\"/\",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name=\"ErrnoError\";constructor(e){this.errno=e}},FSStream:class{shared={};get object(){return this.node}set object(e){this.node=e}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(e){this.shared.flags=e}get position(){return this.shared.position}set position(e){this.shared.position=e}},FSNode:class{node_ops={};stream_ops={};readMode=365;writeMode=146;mounted=null;constructor(e,r,t,n){e||(e=this),this.parent=e,this.mount=e.mount,this.id=o.nextInode++,this.name=r,this.mode=t,this.rdev=n,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(e){e?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(e){e?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return o.isDir(this.mode)}get isDevice(){return o.isChrdev(this.mode)}},lookupPath(e,r={}){if(!e)throw new o.ErrnoError(44);r.follow_mount??=!0,D.isAbs(e)||(e=o.cwd()+\"/\"+e);e:for(var t=0;t<40;t++){for(var n=e.split(\"/\").filter(f=>!!f),i=o.root,a=\"/\",s=0;s<n.length;s++){var c=s===n.length-1;if(c&&r.parent)break;if(n[s]!==\".\"){if(n[s]===\"..\"){if(a=D.dirname(a),o.isRoot(i)){e=a+\"/\"+n.slice(s+1).join(\"/\"),t--;continue e}else i=i.parent;continue}a=D.join2(a,n[s]);try{i=o.lookupNode(i,n[s])}catch(f){if(f?.errno===44&&c&&r.noent_okay)return{path:a};throw f}if(o.isMountpoint(i)&&(!c||r.follow_mount)&&(i=i.mounted.root),o.isLink(i.mode)&&(!c||r.follow)){if(!i.node_ops.readlink)throw new o.ErrnoError(52);var u=i.node_ops.readlink(i);D.isAbs(u)||(u=D.dirname(a)+\"/\"+u),e=u+\"/\"+n.slice(s+1).join(\"/\");continue e}}}return{path:a,node:i}}throw new o.ErrnoError(32)},getPath(e){for(var r;;){if(o.isRoot(e)){var t=e.mount.mountpoint;return r?t[t.length-1]!==\"/\"?`${t}/${r}`:t+r:t}r=r?`${e.name}/${r}`:e.name,e=e.parent}},hashName(e,r){for(var t=0,n=0;n<r.length;n++)t=(t<<5)-t+r.charCodeAt(n)|0;return(e+t>>>0)%o.nameTable.length},hashAddNode(e){var r=o.hashName(e.parent.id,e.name);e.name_next=o.nameTable[r],o.nameTable[r]=e},hashRemoveNode(e){var r=o.hashName(e.parent.id,e.name);if(o.nameTable[r]===e)o.nameTable[r]=e.name_next;else for(var t=o.nameTable[r];t;){if(t.name_next===e){t.name_next=e.name_next;break}t=t.name_next}},lookupNode(e,r){var t=o.mayLookup(e);if(t)throw new o.ErrnoError(t);for(var n=o.hashName(e.id,r),i=o.nameTable[n];i;i=i.name_next){var a=i.name;if(i.parent.id===e.id&&a===r)return i}return o.lookup(e,r)},createNode(e,r,t,n){var i=new o.FSNode(e,r,t,n);return o.hashAddNode(i),i},destroyNode(e){o.hashRemoveNode(e)},isRoot(e){return e===e.parent},isMountpoint(e){return!!e.mounted},isFile(e){return(e&61440)===32768},isDir(e){return(e&61440)===16384},isLink(e){return(e&61440)===40960},isChrdev(e){return(e&61440)===8192},isBlkdev(e){return(e&61440)===24576},isFIFO(e){return(e&61440)===4096},isSocket(e){return(e&49152)===49152},flagsToPermissionString(e){var r=[\"r\",\"w\",\"rw\"][e&3];return e&512&&(r+=\"w\"),r},nodePermissions(e,r){return o.ignorePermissions?0:r.includes(\"r\")&&!(e.mode&292)||r.includes(\"w\")&&!(e.mode&146)||r.includes(\"x\")&&!(e.mode&73)?2:0},mayLookup(e){if(!o.isDir(e.mode))return 54;var r=o.nodePermissions(e,\"x\");return r||(e.node_ops.lookup?0:2)},mayCreate(e,r){if(!o.isDir(e.mode))return 54;try{var t=o.lookupNode(e,r);return 20}catch{}return o.nodePermissions(e,\"wx\")},mayDelete(e,r,t){var n;try{n=o.lookupNode(e,r)}catch(a){return a.errno}var i=o.nodePermissions(e,\"wx\");if(i)return i;if(t){if(!o.isDir(n.mode))return 54;if(o.isRoot(n)||o.getPath(n)===o.cwd())return 10}else if(o.isDir(n.mode))return 31;return 0},mayOpen(e,r){return e?o.isLink(e.mode)?32:o.isDir(e.mode)&&(o.flagsToPermissionString(r)!==\"r\"||r&576)?31:o.nodePermissions(e,o.flagsToPermissionString(r)):44},checkOpExists(e,r){if(!e)throw new o.ErrnoError(r);return e},MAX_OPEN_FDS:4096,nextfd(){for(var e=0;e<=o.MAX_OPEN_FDS;e++)if(!o.streams[e])return e;throw new o.ErrnoError(33)},getStreamChecked(e){var r=o.getStream(e);if(!r)throw new o.ErrnoError(8);return r},getStream:e=>o.streams[e],createStream(e,r=-1){return e=Object.assign(new o.FSStream,e),r==-1&&(r=o.nextfd()),e.fd=r,o.streams[r]=e,e},closeStream(e){o.streams[e]=null},dupStream(e,r=-1){var t=o.createStream(e,r);return t.stream_ops?.dup?.(t),t},doSetAttr(e,r,t){var n=e?.stream_ops.setattr,i=n?e:r;n??=r.node_ops.setattr,o.checkOpExists(n,63),n(i,t)},chrdev_stream_ops:{open(e){var r=o.getDevice(e.node.rdev);e.stream_ops=r.stream_ops,e.stream_ops.open?.(e)},llseek(){throw new o.ErrnoError(70)}},major:e=>e>>8,minor:e=>e&255,makedev:(e,r)=>e<<8|r,registerDevice(e,r){o.devices[e]={stream_ops:r}},getDevice:e=>o.devices[e],getMounts(e){for(var r=[],t=[e];t.length;){var n=t.pop();r.push(n),t.push(...n.mounts)}return r},syncfs(e,r){typeof e==\"function\"&&(r=e,e=!1),o.syncFSRequests++,o.syncFSRequests>1&&ee(`warning: ${o.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var t=o.getMounts(o.root.mount),n=0;function i(s){return o.syncFSRequests--,r(s)}function a(s){if(s)return a.errored?void 0:(a.errored=!0,i(s));++n>=t.length&&i(null)}t.forEach(s=>{if(!s.type.syncfs)return a(null);s.type.syncfs(s,e,a)})},mount(e,r,t){var n=t===\"/\",i=!t,a;if(n&&o.root)throw new o.ErrnoError(10);if(!n&&!i){var s=o.lookupPath(t,{follow_mount:!1});if(t=s.path,a=s.node,o.isMountpoint(a))throw new o.ErrnoError(10);if(!o.isDir(a.mode))throw new o.ErrnoError(54)}var c={type:e,opts:r,mountpoint:t,mounts:[]},u=e.mount(c);return u.mount=c,c.root=u,n?o.root=u:a&&(a.mounted=c,a.mount&&a.mount.mounts.push(c)),u},unmount(e){var r=o.lookupPath(e,{follow_mount:!1});if(!o.isMountpoint(r.node))throw new o.ErrnoError(28);var t=r.node,n=t.mounted,i=o.getMounts(n);Object.keys(o.nameTable).forEach(s=>{for(var c=o.nameTable[s];c;){var u=c.name_next;i.includes(c.mount)&&o.destroyNode(c),c=u}}),t.mounted=null;var a=t.mount.mounts.indexOf(n);t.mount.mounts.splice(a,1)},lookup(e,r){return e.node_ops.lookup(e,r)},mknod(e,r,t){var n=o.lookupPath(e,{parent:!0}),i=n.node,a=D.basename(e);if(!a)throw new o.ErrnoError(28);if(a===\".\"||a===\"..\")throw new o.ErrnoError(20);var s=o.mayCreate(i,a);if(s)throw new o.ErrnoError(s);if(!i.node_ops.mknod)throw new o.ErrnoError(63);return i.node_ops.mknod(i,a,r,t)},statfs(e){return o.statfsNode(o.lookupPath(e,{follow:!0}).node)},statfsStream(e){return o.statfsNode(e.node)},statfsNode(e){var r={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:o.nextInode,ffree:o.nextInode-1,fsid:42,flags:2,namelen:255};return e.node_ops.statfs&&Object.assign(r,e.node_ops.statfs(e.mount.opts.root)),r},create(e,r=438){return r&=4095,r|=32768,o.mknod(e,r,0)},mkdir(e,r=511){return r&=1023,r|=16384,o.mknod(e,r,0)},mkdirTree(e,r){var t=e.split(\"/\"),n=\"\";for(var i of t)if(i){(n||D.isAbs(e))&&(n+=\"/\"),n+=i;try{o.mkdir(n,r)}catch(a){if(a.errno!=20)throw a}}},mkdev(e,r,t){return typeof t>\"u\"&&(t=r,r=438),r|=8192,o.mknod(e,r,t)},symlink(e,r){if(!he.resolve(e))throw new o.ErrnoError(44);var t=o.lookupPath(r,{parent:!0}),n=t.node;if(!n)throw new o.ErrnoError(44);var i=D.basename(r),a=o.mayCreate(n,i);if(a)throw new o.ErrnoError(a);if(!n.node_ops.symlink)throw new o.ErrnoError(63);return n.node_ops.symlink(n,i,e)},rename(e,r){var t=D.dirname(e),n=D.dirname(r),i=D.basename(e),a=D.basename(r),s,c,u;if(s=o.lookupPath(e,{parent:!0}),c=s.node,s=o.lookupPath(r,{parent:!0}),u=s.node,!c||!u)throw new o.ErrnoError(44);if(c.mount!==u.mount)throw new o.ErrnoError(75);var f=o.lookupNode(c,i),d=he.relative(e,n);if(d.charAt(0)!==\".\")throw new o.ErrnoError(28);if(d=he.relative(r,t),d.charAt(0)!==\".\")throw new o.ErrnoError(55);var _;try{_=o.lookupNode(u,a)}catch{}if(f!==_){var p=o.isDir(f.mode),v=o.mayDelete(c,i,p);if(v)throw new o.ErrnoError(v);if(v=_?o.mayDelete(u,a,p):o.mayCreate(u,a),v)throw new o.ErrnoError(v);if(!c.node_ops.rename)throw new o.ErrnoError(63);if(o.isMountpoint(f)||_&&o.isMountpoint(_))throw new o.ErrnoError(10);if(u!==c&&(v=o.nodePermissions(c,\"w\"),v))throw new o.ErrnoError(v);o.hashRemoveNode(f);try{c.node_ops.rename(f,u,a),f.parent=u}catch(h){throw h}finally{o.hashAddNode(f)}}},rmdir(e){var r=o.lookupPath(e,{parent:!0}),t=r.node,n=D.basename(e),i=o.lookupNode(t,n),a=o.mayDelete(t,n,!0);if(a)throw new o.ErrnoError(a);if(!t.node_ops.rmdir)throw new o.ErrnoError(63);if(o.isMountpoint(i))throw new o.ErrnoError(10);t.node_ops.rmdir(t,n),o.destroyNode(i)},readdir(e){var r=o.lookupPath(e,{follow:!0}),t=r.node,n=o.checkOpExists(t.node_ops.readdir,54);return n(t)},unlink(e){var r=o.lookupPath(e,{parent:!0}),t=r.node;if(!t)throw new o.ErrnoError(44);var n=D.basename(e),i=o.lookupNode(t,n),a=o.mayDelete(t,n,!1);if(a)throw new o.ErrnoError(a);if(!t.node_ops.unlink)throw new o.ErrnoError(63);if(o.isMountpoint(i))throw new o.ErrnoError(10);t.node_ops.unlink(t,n),o.destroyNode(i)},readlink(e){var r=o.lookupPath(e),t=r.node;if(!t)throw new o.ErrnoError(44);if(!t.node_ops.readlink)throw new o.ErrnoError(28);return t.node_ops.readlink(t)},stat(e,r){var t=o.lookupPath(e,{follow:!r}),n=t.node,i=o.checkOpExists(n.node_ops.getattr,63);return i(n)},fstat(e){var r=o.getStreamChecked(e),t=r.node,n=r.stream_ops.getattr,i=n?r:t;return n??=t.node_ops.getattr,o.checkOpExists(n,63),n(i)},lstat(e){return o.stat(e,!0)},doChmod(e,r,t,n){o.doSetAttr(e,r,{mode:t&4095|r.mode&-4096,ctime:Date.now(),dontFollow:n})},chmod(e,r,t){var n;if(typeof e==\"string\"){var i=o.lookupPath(e,{follow:!t});n=i.node}else n=e;o.doChmod(null,n,r,t)},lchmod(e,r){o.chmod(e,r,!0)},fchmod(e,r){var t=o.getStreamChecked(e);o.doChmod(t,t.node,r,!1)},doChown(e,r,t){o.doSetAttr(e,r,{timestamp:Date.now(),dontFollow:t})},chown(e,r,t,n){var i;if(typeof e==\"string\"){var a=o.lookupPath(e,{follow:!n});i=a.node}else i=e;o.doChown(null,i,n)},lchown(e,r,t){o.chown(e,r,t,!0)},fchown(e,r,t){var n=o.getStreamChecked(e);o.doChown(n,n.node,!1)},doTruncate(e,r,t){if(o.isDir(r.mode))throw new o.ErrnoError(31);if(!o.isFile(r.mode))throw new o.ErrnoError(28);var n=o.nodePermissions(r,\"w\");if(n)throw new o.ErrnoError(n);o.doSetAttr(e,r,{size:t,timestamp:Date.now()})},truncate(e,r){if(r<0)throw new o.ErrnoError(28);var t;if(typeof e==\"string\"){var n=o.lookupPath(e,{follow:!0});t=n.node}else t=e;o.doTruncate(null,t,r)},ftruncate(e,r){var t=o.getStreamChecked(e);if(r<0||(t.flags&2097155)===0)throw new o.ErrnoError(28);o.doTruncate(t,t.node,r)},utime(e,r,t){var n=o.lookupPath(e,{follow:!0}),i=n.node,a=o.checkOpExists(i.node_ops.setattr,63);a(i,{atime:r,mtime:t})},open(e,r,t=438){if(e===\"\")throw new o.ErrnoError(44);r=typeof r==\"string\"?an(r):r,r&64?t=t&4095|32768:t=0;var n,i;if(typeof e==\"object\")n=e;else{i=e.endsWith(\"/\");var a=o.lookupPath(e,{follow:!(r&131072),noent_okay:!0});n=a.node,e=a.path}var s=!1;if(r&64)if(n){if(r&128)throw new o.ErrnoError(20)}else{if(i)throw new o.ErrnoError(31);n=o.mknod(e,t|511,0),s=!0}if(!n)throw new o.ErrnoError(44);if(o.isChrdev(n.mode)&&(r&=-513),r&65536&&!o.isDir(n.mode))throw new o.ErrnoError(54);if(!s){var c=o.mayOpen(n,r);if(c)throw new o.ErrnoError(c)}r&512&&!s&&o.truncate(n,0),r&=-131713;var u=o.createStream({node:n,path:o.getPath(n),flags:r,seekable:!0,position:0,stream_ops:n.stream_ops,ungotten:[],error:!1});return u.stream_ops.open&&u.stream_ops.open(u),s&&o.chmod(n,t&511),l.logReadFiles&&!(r&1)&&(e in o.readFiles||(o.readFiles[e]=1)),u},close(e){if(o.isClosed(e))throw new o.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(r){throw r}finally{o.closeStream(e.fd)}e.fd=null},isClosed(e){return e.fd===null},llseek(e,r,t){if(o.isClosed(e))throw new o.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new o.ErrnoError(70);if(t!=0&&t!=1&&t!=2)throw new o.ErrnoError(28);return e.position=e.stream_ops.llseek(e,r,t),e.ungotten=[],e.position},read(e,r,t,n,i){if(n<0||i<0)throw new o.ErrnoError(28);if(o.isClosed(e))throw new o.ErrnoError(8);if((e.flags&2097155)===1)throw new o.ErrnoError(8);if(o.isDir(e.node.mode))throw new o.ErrnoError(31);if(!e.stream_ops.read)throw new o.ErrnoError(28);var a=typeof i<\"u\";if(!a)i=e.position;else if(!e.seekable)throw new o.ErrnoError(70);var s=e.stream_ops.read(e,r,t,n,i);return a||(e.position+=s),s},write(e,r,t,n,i,a){if(n<0||i<0)throw new o.ErrnoError(28);if(o.isClosed(e))throw new o.ErrnoError(8);if((e.flags&2097155)===0)throw new o.ErrnoError(8);if(o.isDir(e.node.mode))throw new o.ErrnoError(31);if(!e.stream_ops.write)throw new o.ErrnoError(28);e.seekable&&e.flags&1024&&o.llseek(e,0,2);var s=typeof i<\"u\";if(!s)i=e.position;else if(!e.seekable)throw new o.ErrnoError(70);var c=e.stream_ops.write(e,r,t,n,i,a);return s||(e.position+=c),c},mmap(e,r,t,n,i){if((n&2)!==0&&(i&2)===0&&(e.flags&2097155)!==2)throw new o.ErrnoError(2);if((e.flags&2097155)===1)throw new o.ErrnoError(2);if(!e.stream_ops.mmap)throw new o.ErrnoError(43);if(!r)throw new o.ErrnoError(28);return e.stream_ops.mmap(e,r,t,n,i)},msync(e,r,t,n,i){return e.stream_ops.msync?e.stream_ops.msync(e,r,t,n,i):0},ioctl(e,r,t){if(!e.stream_ops.ioctl)throw new o.ErrnoError(59);return e.stream_ops.ioctl(e,r,t)},readFile(e,r={}){if(r.flags=r.flags||0,r.encoding=r.encoding||\"binary\",r.encoding!==\"utf8\"&&r.encoding!==\"binary\")throw new Error(`Invalid encoding type \"${r.encoding}\"`);var t=o.open(e,r.flags),n=o.stat(e),i=n.size,a=new Uint8Array(i);return o.read(t,a,0,i,0),r.encoding===\"utf8\"&&(a=me(a)),o.close(t),a},writeFile(e,r,t={}){t.flags=t.flags||577;var n=o.open(e,t.flags,t.mode);if(typeof r==\"string\"&&(r=new Uint8Array(or(r,!0))),ArrayBuffer.isView(r))o.write(n,r,0,r.byteLength,void 0,t.canOwn);else throw new Error(\"Unsupported data type\");o.close(n)},cwd:()=>o.currentPath,chdir(e){var r=o.lookupPath(e,{follow:!0});if(r.node===null)throw new o.ErrnoError(44);if(!o.isDir(r.node.mode))throw new o.ErrnoError(54);var t=o.nodePermissions(r.node,\"x\");if(t)throw new o.ErrnoError(t);o.currentPath=r.path},createDefaultDirectories(){o.mkdir(\"/tmp\"),o.mkdir(\"/home\"),o.mkdir(\"/home/web_user\")},createDefaultDevices(){o.mkdir(\"/dev\"),o.registerDevice(o.makedev(1,3),{read:()=>0,write:(n,i,a,s,c)=>s,llseek:()=>0}),o.mkdev(\"/dev/null\",o.makedev(1,3)),ae.register(o.makedev(5,0),ae.default_tty_ops),ae.register(o.makedev(6,0),ae.default_tty1_ops),o.mkdev(\"/dev/tty\",o.makedev(5,0)),o.mkdev(\"/dev/tty1\",o.makedev(6,0));var e=new Uint8Array(1024),r=0,t=()=>(r===0&&(ir(e),r=e.byteLength),e[--r]);o.createDevice(\"/dev\",\"random\",t),o.createDevice(\"/dev\",\"urandom\",t),o.mkdir(\"/dev/shm\"),o.mkdir(\"/dev/shm/tmp\")},createSpecialDirectories(){o.mkdir(\"/proc\");var e=o.mkdir(\"/proc/self\");o.mkdir(\"/proc/self/fd\"),o.mount({mount(){var r=o.createNode(e,\"fd\",16895,73);return r.stream_ops={llseek:E.stream_ops.llseek},r.node_ops={lookup(t,n){var i=+n,a=o.getStreamChecked(i),s={parent:null,mount:{mountpoint:\"fake\"},node_ops:{readlink:()=>a.path},id:i+1};return s.parent=s,s},readdir(){return Array.from(o.streams.entries()).filter(([t,n])=>n).map(([t,n])=>t.toString())}},r}},{},\"/proc/self/fd\")},createStandardStreams(e,r,t){e?o.createDevice(\"/dev\",\"stdin\",e):o.symlink(\"/dev/tty\",\"/dev/stdin\"),r?o.createDevice(\"/dev\",\"stdout\",null,r):o.symlink(\"/dev/tty\",\"/dev/stdout\"),t?o.createDevice(\"/dev\",\"stderr\",null,t):o.symlink(\"/dev/tty1\",\"/dev/stderr\");var n=o.open(\"/dev/stdin\",0),i=o.open(\"/dev/stdout\",1),a=o.open(\"/dev/stderr\",1)},staticInit(){o.nameTable=new Array(4096),o.mount(E,{},\"/\"),o.createDefaultDirectories(),o.createDefaultDevices(),o.createSpecialDirectories(),o.filesystems={MEMFS:E}},init(e,r,t){o.initialized=!0,e??=l.stdin,r??=l.stdout,t??=l.stderr,o.createStandardStreams(e,r,t)},quit(){o.initialized=!1;for(var e of o.streams)e&&o.close(e)},findObject(e,r){var t=o.analyzePath(e,r);return t.exists?t.object:null},analyzePath(e,r){try{var t=o.lookupPath(e,{follow:!r});e=t.path}catch{}var n={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var t=o.lookupPath(e,{parent:!0});n.parentExists=!0,n.parentPath=t.path,n.parentObject=t.node,n.name=D.basename(e),t=o.lookupPath(e,{follow:!r}),n.exists=!0,n.path=t.path,n.object=t.node,n.name=t.node.name,n.isRoot=t.path===\"/\"}catch(i){n.error=i.errno}return n},createPath(e,r,t,n){e=typeof e==\"string\"?e:o.getPath(e);for(var i=r.split(\"/\").reverse();i.length;){var a=i.pop();if(a){var s=D.join2(e,a);try{o.mkdir(s)}catch(c){if(c.errno!=20)throw c}e=s}}return s},createFile(e,r,t,n,i){var a=D.join2(typeof e==\"string\"?e:o.getPath(e),r),s=sr(n,i);return o.create(a,s)},createDataFile(e,r,t,n,i,a){var s=r;e&&(e=typeof e==\"string\"?e:o.getPath(e),s=r?D.join2(e,r):e);var c=sr(n,i),u=o.create(s,c);if(t){if(typeof t==\"string\"){for(var f=new Array(t.length),d=0,_=t.length;d<_;++d)f[d]=t.charCodeAt(d);t=f}o.chmod(u,c|146);var p=o.open(u,577);o.write(p,t,0,t.length,0,a),o.close(p),o.chmod(u,c)}},createDevice(e,r,t,n){var i=D.join2(typeof e==\"string\"?e:o.getPath(e),r),a=sr(!!t,!!n);o.createDevice.major??=64;var s=o.makedev(o.createDevice.major++,0);return o.registerDevice(s,{open(c){c.seekable=!1},close(c){n?.buffer?.length&&n(10)},read(c,u,f,d,_){for(var p=0,v=0;v<d;v++){var h;try{h=t()}catch{throw new o.ErrnoError(29)}if(h===void 0&&p===0)throw new o.ErrnoError(6);if(h==null)break;p++,u[f+v]=h}return p&&(c.node.atime=Date.now()),p},write(c,u,f,d,_){for(var p=0;p<d;p++)try{n(u[f+p])}catch{throw new o.ErrnoError(29)}return d&&(c.node.mtime=c.node.ctime=Date.now()),p}}),o.mkdev(i,a,s)},forceLoadFile(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if(typeof XMLHttpRequest<\"u\")throw new Error(\"Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.\");try{e.contents=Fe(e.url)}catch{throw new o.ErrnoError(29)}},createLazyFile(e,r,t,n,i){class a{lengthKnown=!1;chunks=[];get(v){if(!(v>this.length-1||v<0)){var h=v%this.chunkSize,k=v/this.chunkSize|0;return this.getter(k)[h]}}setDataGetter(v){this.getter=v}cacheLength(){var v=new XMLHttpRequest;if(v.open(\"HEAD\",t,!1),v.send(null),!(v.status>=200&&v.status<300||v.status===304))throw new Error(\"Couldn't load \"+t+\". Status: \"+v.status);var h=Number(v.getResponseHeader(\"Content-length\")),k,$=(k=v.getResponseHeader(\"Accept-Ranges\"))&&k===\"bytes\",T=(k=v.getResponseHeader(\"Content-Encoding\"))&&k===\"gzip\",x=1024*1024;$||(x=h);var P=(z,S)=>{if(z>S)throw new Error(\"invalid range (\"+z+\", \"+S+\") or no bytes requested!\");if(S>h-1)throw new Error(\"only \"+h+\" bytes available! programmer error!\");var I=new XMLHttpRequest;if(I.open(\"GET\",t,!1),h!==x&&I.setRequestHeader(\"Range\",\"bytes=\"+z+\"-\"+S),I.responseType=\"arraybuffer\",I.overrideMimeType&&I.overrideMimeType(\"text/plain; charset=x-user-defined\"),I.send(null),!(I.status>=200&&I.status<300||I.status===304))throw new Error(\"Couldn't load \"+t+\". Status: \"+I.status);return I.response!==void 0?new Uint8Array(I.response||[]):or(I.responseText||\"\",!0)},K=this;K.setDataGetter(z=>{var S=z*x,I=(z+1)*x-1;if(I=Math.min(I,h-1),typeof K.chunks[z]>\"u\"&&(K.chunks[z]=P(S,I)),typeof K.chunks[z]>\"u\")throw new Error(\"doXHR failed!\");return K.chunks[z]}),(T||!h)&&(x=h=1,h=this.getter(0).length,x=h,we(\"LazyFiles on gzip forces download of the whole file when length is accessed\")),this._length=h,this._chunkSize=x,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(typeof XMLHttpRequest<\"u\"){if(!ge)throw\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";var s=new a,c={isDevice:!1,contents:s}}else var c={isDevice:!1,url:t};var u=o.createFile(e,r,c,n,i);c.contents?u.contents=c.contents:c.url&&(u.contents=null,u.url=c.url),Object.defineProperties(u,{usedBytes:{get:function(){return this.contents.length}}});var f={},d=Object.keys(u.stream_ops);d.forEach(p=>{var v=u.stream_ops[p];f[p]=(...h)=>(o.forceLoadFile(u),v(...h))});function _(p,v,h,k,$){var T=p.node.contents;if($>=T.length)return 0;var x=Math.min(T.length-$,k);if(T.slice)for(var P=0;P<x;P++)v[h+P]=T[$+P];else for(var P=0;P<x;P++)v[h+P]=T.get($+P);return x}return f.read=(p,v,h,k,$)=>(o.forceLoadFile(u),_(p,v,h,k,$)),f.mmap=(p,v,h,k,$)=>{o.forceLoadFile(u);var T=xr(v);if(!T)throw new o.ErrnoError(48);return _(p,G,T,v,h),{ptr:T,allocated:!0}},u.stream_ops=f,u}},M=(e,r,t)=>e?me(B,e,r,t):\"\",R={DEFAULT_POLLMASK:5,calculateAt(e,r,t){if(D.isAbs(r))return r;var n;if(e===-100)n=o.cwd();else{var i=R.getStreamFromFD(e);n=i.path}if(r.length==0){if(!t)throw new o.ErrnoError(44);return n}return n+\"/\"+r},writeStat(e,r){m[e>>2]=r.dev,m[e+4>>2]=r.mode,m[e+8>>2]=r.nlink,m[e+12>>2]=r.uid,m[e+16>>2]=r.gid,m[e+20>>2]=r.rdev,W[e+24>>3]=BigInt(r.size),C[e+32>>2]=4096,C[e+36>>2]=r.blocks;var t=r.atime.getTime(),n=r.mtime.getTime(),i=r.ctime.getTime();return W[e+40>>3]=BigInt(Math.floor(t/1e3)),m[e+48>>2]=t%1e3*1e3*1e3,W[e+56>>3]=BigInt(Math.floor(n/1e3)),m[e+64>>2]=n%1e3*1e3*1e3,W[e+72>>3]=BigInt(Math.floor(i/1e3)),m[e+80>>2]=i%1e3*1e3*1e3,W[e+88>>3]=BigInt(r.ino),0},writeStatFs(e,r){m[e+4>>2]=r.bsize,m[e+60>>2]=r.bsize,W[e+8>>3]=BigInt(r.blocks),W[e+16>>3]=BigInt(r.bfree),W[e+24>>3]=BigInt(r.bavail),W[e+32>>3]=BigInt(r.files),W[e+40>>3]=BigInt(r.ffree),m[e+48>>2]=r.fsid,m[e+64>>2]=r.flags,m[e+56>>2]=r.namelen},doMsync(e,r,t,n,i){if(!o.isFile(r.node.mode))throw new o.ErrnoError(43);if(n&2)return 0;var a=B.slice(e,e+t);o.msync(r,a,i,t,n)},getStreamFromFD(e){var r=o.getStreamChecked(e);return r},varargs:void 0,getStr(e){var r=M(e);return r}};function fn(e,r,t){R.varargs=t;try{var n=R.getStreamFromFD(e);switch(r){case 0:{var i=Oe();if(i<0)return-28;for(;o.streams[i];)i++;var a;return a=o.dupStream(n,i),a.fd}case 1:case 2:return 0;case 3:return n.flags;case 4:{var i=Oe();return n.flags|=i,0}case 12:{var i=_e(),s=0;return A[i+s>>1]=2,0}case 13:case 14:return 0}return-28}catch(c){if(typeof o>\"u\"||c.name!==\"ErrnoError\")throw c;return-c.errno}}function dn(e,r){try{return R.writeStat(r,o.fstat(e))}catch(t){if(typeof o>\"u\"||t.name!==\"ErrnoError\")throw t;return-t.errno}}function vn(e,r,t){R.varargs=t;try{var n=R.getStreamFromFD(e);switch(r){case 21509:return n.tty?0:-59;case 21505:{if(!n.tty)return-59;if(n.tty.ops.ioctl_tcgets){var i=n.tty.ops.ioctl_tcgets(n),a=_e();C[a>>2]=i.c_iflag||0,C[a+4>>2]=i.c_oflag||0,C[a+8>>2]=i.c_cflag||0,C[a+12>>2]=i.c_lflag||0;for(var s=0;s<32;s++)G[a+s+17]=i.c_cc[s]||0;return 0}return 0}case 21510:case 21511:case 21512:return n.tty?0:-59;case 21506:case 21507:case 21508:{if(!n.tty)return-59;if(n.tty.ops.ioctl_tcsets){for(var a=_e(),c=C[a>>2],u=C[a+4>>2],f=C[a+8>>2],d=C[a+12>>2],_=[],s=0;s<32;s++)_.push(G[a+s+17]);return n.tty.ops.ioctl_tcsets(n.tty,r,{c_iflag:c,c_oflag:u,c_cflag:f,c_lflag:d,c_cc:_})}return 0}case 21519:{if(!n.tty)return-59;var a=_e();return C[a>>2]=0,0}case 21520:return n.tty?-28:-59;case 21537:case 21531:{var a=_e();return o.ioctl(n,r,a)}case 21523:{if(!n.tty)return-59;if(n.tty.ops.ioctl_tiocgwinsz){var p=n.tty.ops.ioctl_tiocgwinsz(n.tty),a=_e();A[a>>1]=p[0],A[a+2>>1]=p[1]}return 0}case 21524:return n.tty?0:-59;case 21515:return n.tty?0:-59;default:return-28}}catch(v){if(typeof o>\"u\"||v.name!==\"ErrnoError\")throw v;return-v.errno}}function _n(e,r){try{return e=R.getStr(e),R.writeStat(r,o.lstat(e))}catch(t){if(typeof o>\"u\"||t.name!==\"ErrnoError\")throw t;return-t.errno}}function hn(e,r,t,n){try{r=R.getStr(r);var i=n&256,a=n&4096;return n=n&-6401,r=R.calculateAt(e,r,a),R.writeStat(t,i?o.lstat(r):o.stat(r))}catch(s){if(typeof o>\"u\"||s.name!==\"ErrnoError\")throw s;return-s.errno}}function mn(e,r,t,n){R.varargs=n;try{r=R.getStr(r),r=R.calculateAt(e,r);var i=n?Oe():0;return o.open(r,t,i).fd}catch(a){if(typeof o>\"u\"||a.name!==\"ErrnoError\")throw a;return-a.errno}}function pn(e){try{return e=R.getStr(e),o.rmdir(e),0}catch(r){if(typeof o>\"u\"||r.name!==\"ErrnoError\")throw r;return-r.errno}}function yn(e,r){try{return e=R.getStr(e),R.writeStat(r,o.stat(e))}catch(t){if(typeof o>\"u\"||t.name!==\"ErrnoError\")throw t;return-t.errno}}function gn(e,r,t){try{if(r=R.getStr(r),r=R.calculateAt(e,r),!t)o.unlink(r);else if(t===512)o.rmdir(r);else return-28;return 0}catch(n){if(typeof o>\"u\"||n.name!==\"ErrnoError\")throw n;return-n.errno}}var wn=()=>ce(\"\"),V=e=>{for(var r=\"\";;){var t=B[e++];if(!t)return r;r+=String.fromCharCode(t)}},pe={},le={},xe={},ke=class extends Error{constructor(r){super(r),this.name=\"BindingError\"}},F=e=>{throw new ke(e)};function bn(e,r,t={}){var n=r.name;if(e||F(`type \"${n}\" must have a positive integer typeid pointer`),le.hasOwnProperty(e)){if(t.ignoreDuplicateRegistrations)return;F(`Cannot register type '${n}' twice`)}if(le[e]=r,delete xe[e],pe.hasOwnProperty(e)){var i=pe[e];delete pe[e],i.forEach(a=>a())}}function q(e,r,t={}){return bn(e,r,t)}var Wr=(e,r,t)=>{switch(r){case 1:return t?n=>G[n]:n=>B[n];case 2:return t?n=>A[n>>1]:n=>ve[n>>1];case 4:return t?n=>C[n>>2]:n=>m[n>>2];case 8:return t?n=>W[n>>3]:n=>Fr[n>>3];default:throw new TypeError(`invalid integer width (${r}): ${e}`)}},Sn=(e,r,t,n,i)=>{r=V(r);const a=n===0n;let s=c=>c;if(a){const c=t*8;s=u=>BigInt.asUintN(c,u),i=s(i)}q(e,{name:r,fromWireType:s,toWireType:(c,u)=>(typeof u==\"number\"&&(u=BigInt(u)),u),readValueFromPointer:Wr(r,t,!a),destructorFunction:null})},kn=(e,r,t,n)=>{r=V(r),q(e,{name:r,fromWireType:function(i){return!!i},toWireType:function(i,a){return a?t:n},readValueFromPointer:function(i){return this.fromWireType(B[i])},destructorFunction:null})},En=e=>({count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}),cr=e=>{function r(t){return t.$$.ptrType.registeredClass.name}F(r(e)+\" instance already deleted\")},ur=!1,Ur=e=>{},Cn=e=>{e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)},Vr=e=>{e.count.value-=1;var r=e.count.value===0;r&&Cn(e)},Ee=e=>typeof FinalizationRegistry>\"u\"?(Ee=r=>r,e):(ur=new FinalizationRegistry(r=>{Vr(r.$$)}),Ee=r=>{var t=r.$$,n=!!t.smartPtr;if(n){var i={$$:t};ur.register(r,i,r)}return r},Ur=r=>ur.unregister(r),Ee(e)),Ge=[],Tn=()=>{for(;Ge.length;){var e=Ge.pop();e.$$.deleteScheduled=!1,e.delete()}},zr,Fn=()=>{let e=Ne.prototype;Object.assign(e,{isAliasOf(t){if(!(this instanceof Ne)||!(t instanceof Ne))return!1;var n=this.$$.ptrType.registeredClass,i=this.$$.ptr;t.$$=t.$$;for(var a=t.$$.ptrType.registeredClass,s=t.$$.ptr;n.baseClass;)i=n.upcast(i),n=n.baseClass;for(;a.baseClass;)s=a.upcast(s),a=a.baseClass;return n===a&&i===s},clone(){if(this.$$.ptr||cr(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var t=Ee(Object.create(Object.getPrototypeOf(this),{$$:{value:En(this.$$)}}));return t.$$.count.value+=1,t.$$.deleteScheduled=!1,t},delete(){this.$$.ptr||cr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&F(\"Object already scheduled for deletion\"),Ur(this),Vr(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||cr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&F(\"Object already scheduled for deletion\"),Ge.push(this),Ge.length===1&&zr&&zr(Tn),this.$$.deleteScheduled=!0,this}});const r=Symbol.dispose;r&&(e[r]=e.delete)};function Ne(){}var Be=(e,r)=>Object.defineProperty(r,\"name\",{value:e}),Hr={},qr=(e,r,t)=>{if(e[r].overloadTable===void 0){var n=e[r];e[r]=function(...i){return e[r].overloadTable.hasOwnProperty(i.length)||F(`Function '${t}' called with an invalid number of arguments (${i.length}) - expects one of (${e[r].overloadTable})!`),e[r].overloadTable[i.length].apply(this,i)},e[r].overloadTable=[],e[r].overloadTable[n.argCount]=n}},lr=(e,r,t)=>{l.hasOwnProperty(e)?((t===void 0||l[e].overloadTable!==void 0&&l[e].overloadTable[t]!==void 0)&&F(`Cannot register public name '${e}' twice`),qr(l,e,e),l[e].overloadTable.hasOwnProperty(t)&&F(`Cannot register multiple overloads of a function with the same number of arguments (${t})!`),l[e].overloadTable[t]=r):(l[e]=r,l[e].argCount=t)},Pn=48,An=57,$n=e=>{e=e.replace(/[^a-zA-Z0-9_]/g,\"$\");var r=e.charCodeAt(0);return r>=Pn&&r<=An?`_${e}`:e};function Dn(e,r,t,n,i,a,s,c){this.name=e,this.constructor=r,this.instancePrototype=t,this.rawDestructor=n,this.baseClass=i,this.getActualType=a,this.upcast=s,this.downcast=c,this.pureVirtualFunctions=[]}var Le=(e,r,t)=>{for(;r!==t;)r.upcast||F(`Expected null or instance of ${t.name}, got an instance of ${r.name}`),e=r.upcast(e),r=r.baseClass;return e},fr=e=>{if(e===null)return\"null\";var r=typeof e;return r===\"object\"||r===\"array\"||r===\"function\"?e.toString():\"\"+e};function Rn(e,r){if(r===null)return this.isReference&&F(`null is not a valid ${this.name}`),0;r.$$||F(`Cannot pass \"${fr(r)}\" as a ${this.name}`),r.$$.ptr||F(`Cannot pass deleted object as a pointer of type ${this.name}`);var t=r.$$.ptrType.registeredClass,n=Le(r.$$.ptr,t,this.registeredClass);return n}function In(e,r){var t;if(r===null)return this.isReference&&F(`null is not a valid ${this.name}`),this.isSmartPointer?(t=this.rawConstructor(),e!==null&&e.push(this.rawDestructor,t),t):0;(!r||!r.$$)&&F(`Cannot pass \"${fr(r)}\" as a ${this.name}`),r.$$.ptr||F(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&r.$$.ptrType.isConst&&F(`Cannot convert argument of type ${r.$$.smartPtrType?r.$$.smartPtrType.name:r.$$.ptrType.name} to parameter type ${this.name}`);var n=r.$$.ptrType.registeredClass;if(t=Le(r.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(r.$$.smartPtr===void 0&&F(\"Passing raw pointer to smart pointer is illegal\"),this.sharingPolicy){case 0:r.$$.smartPtrType===this?t=r.$$.smartPtr:F(`Cannot convert argument of type ${r.$$.smartPtrType?r.$$.smartPtrType.name:r.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:t=r.$$.smartPtr;break;case 2:if(r.$$.smartPtrType===this)t=r.$$.smartPtr;else{var i=r.clone();t=this.rawShare(t,L.toHandle(()=>i.delete())),e!==null&&e.push(this.rawDestructor,t)}break;default:F(\"Unsupporting sharing policy\")}return t}function Mn(e,r){if(r===null)return this.isReference&&F(`null is not a valid ${this.name}`),0;r.$$||F(`Cannot pass \"${fr(r)}\" as a ${this.name}`),r.$$.ptr||F(`Cannot pass deleted object as a pointer of type ${this.name}`),r.$$.ptrType.isConst&&F(`Cannot convert argument of type ${r.$$.ptrType.name} to parameter type ${this.name}`);var t=r.$$.ptrType.registeredClass,n=Le(r.$$.ptr,t,this.registeredClass);return n}function We(e){return this.fromWireType(m[e>>2])}var Xr=(e,r,t)=>{if(r===t)return e;if(t.baseClass===void 0)return null;var n=Xr(e,r,t.baseClass);return n===null?null:t.downcast(n)},jn={},On=(e,r)=>{for(r===void 0&&F(\"ptr should not be undefined\");e.baseClass;)r=e.upcast(r),e=e.baseClass;return r},xn=(e,r)=>(r=On(e,r),jn[r]),Gn=class extends Error{constructor(r){super(r),this.name=\"InternalError\"}},Ue=e=>{throw new Gn(e)},Ve=(e,r)=>{(!r.ptrType||!r.ptr)&&Ue(\"makeClassHandle requires ptr and ptrType\");var t=!!r.smartPtrType,n=!!r.smartPtr;return t!==n&&Ue(\"Both smartPtrType and smartPtr must be specified\"),r.count={value:1},Ee(Object.create(e,{$$:{value:r,writable:!0}}))};function Nn(e){var r=this.getPointee(e);if(!r)return this.destructor(e),null;var t=xn(this.registeredClass,r);if(t!==void 0){if(t.$$.count.value===0)return t.$$.ptr=r,t.$$.smartPtr=e,t.clone();var n=t.clone();return this.destructor(e),n}function i(){return this.isSmartPointer?Ve(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:r,smartPtrType:this,smartPtr:e}):Ve(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var a=this.registeredClass.getActualType(r),s=Hr[a];if(!s)return i.call(this);var c;this.isConst?c=s.constPointerType:c=s.pointerType;var u=Xr(r,this.registeredClass,c.registeredClass);return u===null?i.call(this):this.isSmartPointer?Ve(c.registeredClass.instancePrototype,{ptrType:c,ptr:u,smartPtrType:this,smartPtr:e}):Ve(c.registeredClass.instancePrototype,{ptrType:c,ptr:u})}var Bn=()=>{Object.assign(ze.prototype,{getPointee(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e},destructor(e){this.rawDestructor?.(e)},readValueFromPointer:We,fromWireType:Nn})};function ze(e,r,t,n,i,a,s,c,u,f,d){this.name=e,this.registeredClass=r,this.isReference=t,this.isConst=n,this.isSmartPointer=i,this.pointeeType=a,this.sharingPolicy=s,this.rawGetPointee=c,this.rawConstructor=u,this.rawShare=f,this.rawDestructor=d,!i&&r.baseClass===void 0?n?(this.toWireType=Rn,this.destructorFunction=null):(this.toWireType=Mn,this.destructorFunction=null):this.toWireType=In}var Zr=(e,r,t)=>{l.hasOwnProperty(e)||Ue(\"Replacing nonexistent public symbol\"),l[e].overloadTable!==void 0&&t!==void 0?l[e].overloadTable[t]=r:(l[e]=r,l[e].argCount=t)},Kr=[],Yr,y=e=>{var r=Kr[e];return r||(Kr[e]=r=Yr.get(e)),r},te=(e,r,t=!1)=>{e=V(e);function n(){var a=y(r);return a}var i=n();return typeof i!=\"function\"&&F(`unknown function pointer with signature ${e}: ${r}`),i};class Ln extends Error{}var Jr=e=>{var r=gt(e),t=V(r);return J(r),t},ye=(e,r)=>{var t=[],n={};function i(a){if(!n[a]&&!le[a]){if(xe[a]){xe[a].forEach(i);return}t.push(a),n[a]=!0}}throw r.forEach(i),new Ln(`${e}: `+t.map(Jr).join([\", \"]))},oe=(e,r,t)=>{e.forEach(c=>xe[c]=r);function n(c){var u=t(c);u.length!==e.length&&Ue(\"Mismatched type converter count\");for(var f=0;f<e.length;++f)q(e[f],u[f])}var i=new Array(r.length),a=[],s=0;r.forEach((c,u)=>{le.hasOwnProperty(c)?i[u]=le[c]:(a.push(c),pe.hasOwnProperty(c)||(pe[c]=[]),pe[c].push(()=>{i[u]=le[c],++s,s===a.length&&n(i)}))}),a.length===0&&n(i)},Wn=(e,r,t,n,i,a,s,c,u,f,d,_,p)=>{d=V(d),a=te(i,a),c&&=te(s,c),f&&=te(u,f),p=te(_,p);var v=$n(d);lr(v,function(){ye(`Cannot construct ${d} due to unbound types`,[n])}),oe([e,r,t],n?[n]:[],h=>{h=h[0];var k,$;n?(k=h.registeredClass,$=k.instancePrototype):$=Ne.prototype;var T=Be(d,function(...I){if(Object.getPrototypeOf(this)!==x)throw new ke(`Use 'new' to construct ${d}`);if(P.constructor_body===void 0)throw new ke(`${d} has no accessible constructor`);var se=P.constructor_body[I.length];if(se===void 0)throw new ke(`Tried to invoke ctor of ${d} with invalid number of parameters (${I.length}) - expected (${Object.keys(P.constructor_body).toString()}) parameters instead!`);return se.apply(this,I)}),x=Object.create($,{constructor:{value:T}});T.prototype=x;var P=new Dn(d,T,x,p,k,a,c,f);P.baseClass&&(P.baseClass.__derivedClasses??=[],P.baseClass.__derivedClasses.push(P));var K=new ze(d,P,!0,!1,!1),z=new ze(d+\"*\",P,!1,!1,!1),S=new ze(d+\" const*\",P,!1,!0,!1);return Hr[e]={pointerType:z,constPointerType:S},Zr(v,T),[K,z,S]})},dr=(e,r)=>{for(var t=[],n=0;n<e;n++)t.push(m[r+n*4>>2]);return t},vr=e=>{for(;e.length;){var r=e.pop(),t=e.pop();t(r)}};function Qr(e){for(var r=1;r<e.length;++r)if(e[r]!==null&&e[r].destructorFunction===void 0)return!0;return!1}function Un(e,r,t,n){var i=Qr(e),a=e.length-2,s=[],c=[\"fn\"];r&&c.push(\"thisWired\");for(var u=0;u<a;++u)s.push(`arg${u}`),c.push(`arg${u}Wired`);s=s.join(\",\"),c=c.join(\",\");var f=`return function (${s}) {\n`;i&&(f+=`var destructors = [];\n`);var d=i?\"destructors\":\"null\",_=[\"humanName\",\"throwBindingError\",\"invoker\",\"fn\",\"runDestructors\",\"fromRetWire\",\"toClassParamWire\"];r&&(f+=`var thisWired = toClassParamWire(${d}, this);\n`);for(var u=0;u<a;++u){var p=`toArg${u}Wire`;f+=`var arg${u}Wired = ${p}(${d}, arg${u});\n`,_.push(p)}f+=(t||n?\"var rv = \":\"\")+`invoker(${c});\n`;var v=t?\"rv\":\"\";if(i)f+=`runDestructors(destructors);\n`;else for(var u=r?1:2;u<e.length;++u){var h=u===1?\"thisWired\":\"arg\"+(u-2)+\"Wired\";e[u].destructorFunction!==null&&(f+=`${h}_dtor(${h});\n`,_.push(`${h}_dtor`))}return t&&(f+=`var ret = fromRetWire(rv);\nreturn ret;\n`),f+=`}\n`,new Function(_,f)}function _r(e,r,t,n,i,a){var s=r.length;s<2&&F(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");for(var c=r[1]!==null&&t!==null,u=Qr(r),f=!r[0].isVoid,d=s-2,_=r[0],p=r[1],v=[e,F,n,i,vr,_.fromWireType.bind(_),p?.toWireType.bind(p)],h=2;h<s;++h){var k=r[h];v.push(k.toWireType.bind(k))}if(!u)for(var h=c?1:2;h<r.length;++h)r[h].destructorFunction!==null&&v.push(r[h].destructorFunction);var T=Un(r,c,f,a)(...v);return Be(e,T)}var Vn=(e,r,t,n,i,a)=>{var s=dr(r,t);i=te(n,i);var c=[a],u=[];oe([],[e],f=>{f=f[0];var d=`constructor ${f.name}`;if(f.registeredClass.constructor_body===void 0&&(f.registeredClass.constructor_body=[]),f.registeredClass.constructor_body[r-1]!==void 0)throw new ke(`Cannot register multiple constructors with identical number of parameters (${r-1}) for class '${f.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return f.registeredClass.constructor_body[r-1]=()=>{ye(`Cannot construct ${f.name} due to unbound types`,s)},oe([],s,_=>(_.splice(1,0,null),f.registeredClass.constructor_body[r-1]=_r(d,_,null,i,a),[])),[]})},et=e=>{e=e.trim();const r=e.indexOf(\"(\");return r===-1?e:e.slice(0,r)},zn=(e,r,t,n,i,a,s,c,u,f)=>{var d=dr(t,n);r=V(r),r=et(r),a=te(i,a,u),oe([],[e],_=>{_=_[0];var p=`${_.name}.${r}`;r.startsWith(\"@@\")&&(r=Symbol[r.substring(2)]),c&&_.registeredClass.pureVirtualFunctions.push(r);function v(){ye(`Cannot call ${p} due to unbound types`,d)}var h=_.registeredClass.instancePrototype,k=h[r];return k===void 0||k.overloadTable===void 0&&k.className!==_.name&&k.argCount===t-2?(v.argCount=t-2,v.className=_.name,h[r]=v):(qr(h,r,p),h[r].overloadTable[t-2]=v),oe([],d,$=>{var T=_r(p,$,_,a,s,u);return h[r].overloadTable===void 0?(T.argCount=t-2,h[r]=T):h[r].overloadTable[t-2]=T,[]}),[]})},rt=(e,r,t)=>(e instanceof Object||F(`${t} with invalid \"this\": ${e}`),e instanceof r.registeredClass.constructor||F(`${t} incompatible with \"this\" of type ${e.constructor.name}`),e.$$.ptr||F(`cannot call emscripten binding method ${t} on deleted object`),Le(e.$$.ptr,e.$$.ptrType.registeredClass,r.registeredClass)),Hn=(e,r,t,n,i,a,s,c,u,f)=>{r=V(r),i=te(n,i),oe([],[e],d=>{d=d[0];var _=`${d.name}.${r}`,p={get(){ye(`Cannot access ${_} due to unbound types`,[t,s])},enumerable:!0,configurable:!0};return u?p.set=()=>ye(`Cannot access ${_} due to unbound types`,[t,s]):p.set=v=>F(_+\" is a read-only property\"),Object.defineProperty(d.registeredClass.instancePrototype,r,p),oe([],u?[t,s]:[t],v=>{var h=v[0],k={get(){var T=rt(this,d,_+\" getter\");return h.fromWireType(i(a,T))},enumerable:!0};if(u){u=te(c,u);var $=v[1];k.set=function(T){var x=rt(this,d,_+\" setter\"),P=[];u(f,x,$.toWireType(P,T)),vr(P)}}return Object.defineProperty(d.registeredClass.instancePrototype,r,k),[]}),[]})},tt=[],fe=[0,1,,1,null,1,!0,1,!1,1],hr=e=>{e>9&&--fe[e+1]===0&&(fe[e]=void 0,tt.push(e))},L={toValue:e=>(e||F(`Cannot use deleted val. handle = ${e}`),fe[e]),toHandle:e=>{switch(e){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{const r=tt.pop()||fe.length;return fe[r]=e,fe[r+1]=1,r}}}},nt={name:\"emscripten::val\",fromWireType:e=>{var r=L.toValue(e);return hr(e),r},toWireType:(e,r)=>L.toHandle(r),readValueFromPointer:We,destructorFunction:null},qn=e=>q(e,nt),Xn=(e,r,t)=>{switch(r){case 1:return t?function(n){return this.fromWireType(G[n])}:function(n){return this.fromWireType(B[n])};case 2:return t?function(n){return this.fromWireType(A[n>>1])}:function(n){return this.fromWireType(ve[n>>1])};case 4:return t?function(n){return this.fromWireType(C[n>>2])}:function(n){return this.fromWireType(m[n>>2])};default:throw new TypeError(`invalid integer width (${r}): ${e}`)}},Zn=(e,r,t,n)=>{r=V(r);function i(){}i.values={},q(e,{name:r,constructor:i,fromWireType:function(a){return this.constructor.values[a]},toWireType:(a,s)=>s.value,readValueFromPointer:Xn(r,t,n),destructorFunction:null}),lr(r,i)},it=(e,r)=>{var t=le[e];return t===void 0&&F(`${r} has unknown type ${Jr(e)}`),t},Kn=(e,r,t)=>{var n=it(e,\"enum\");r=V(r);var i=n.constructor,a=Object.create(n.constructor.prototype,{value:{value:t},constructor:{value:Be(`${n.name}_${r}`,function(){})}});i.values[t]=a,i[r]=a},Yn=(e,r)=>{switch(r){case 4:return function(t){return this.fromWireType(De[t>>2])};case 8:return function(t){return this.fromWireType(Re[t>>3])};default:throw new TypeError(`invalid float width (${r}): ${e}`)}},Jn=(e,r,t)=>{r=V(r),q(e,{name:r,fromWireType:n=>n,toWireType:(n,i)=>i,readValueFromPointer:Yn(r,t),destructorFunction:null})},Qn=(e,r,t,n,i,a,s,c)=>{var u=dr(r,t);e=V(e),e=et(e),i=te(n,i,s),lr(e,function(){ye(`Cannot call ${e} due to unbound types`,u)},r-1),oe([],u,f=>{var d=[f[0],null].concat(f.slice(1));return Zr(e,_r(e,d,null,i,a,s),r-1),[]})},ei=(e,r,t,n,i)=>{r=V(r);const a=n===0;let s=u=>u;if(a){var c=32-8*t;s=u=>u<<c>>>c,i=s(i)}q(e,{name:r,fromWireType:s,toWireType:(u,f)=>f,readValueFromPointer:Wr(r,t,n!==0),destructorFunction:null})},ri=(e,r,t)=>{var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array],i=n[r];function a(s){var c=m[s>>2],u=m[s+4>>2];return new i(G.buffer,u,c)}t=V(t),q(e,{name:t,fromWireType:a,readValueFromPointer:a},{ignoreDuplicateRegistrations:!0})},ti=Object.assign({optional:!0},nt),ni=(e,r)=>{q(e,ti)},O=(e,r,t)=>Or(e,B,r,t),ii=(e,r)=>{r=V(r);var t=!0;q(e,{name:r,fromWireType(n){var i=m[n>>2],a=n+4,s;if(t)s=M(a,i,!0);else{s=\"\";for(var c=0;c<i;++c)s+=String.fromCharCode(B[a+c])}return J(n),s},toWireType(n,i){i instanceof ArrayBuffer&&(i=new Uint8Array(i));var a,s=typeof i==\"string\";s||ArrayBuffer.isView(i)&&i.BYTES_PER_ELEMENT==1||F(\"Cannot pass non-string to std::string\"),t&&s?a=Y(i):a=i.length;var c=Z(4+a+1),u=c+4;if(m[c>>2]=a,s)if(t)O(i,u,a+1);else for(var f=0;f<a;++f){var d=i.charCodeAt(f);d>255&&(J(c),F(\"String has UTF-16 code units that do not fit in 8 bits\")),B[u+f]=d}else B.set(i,u);return n!==null&&n.push(J,c),c},readValueFromPointer:We,destructorFunction(n){J(n)}})},at=typeof TextDecoder<\"u\"?new TextDecoder(\"utf-16le\"):void 0,ai=(e,r,t)=>{var n=e>>1,i=jr(ve,n,r/2,t);if(i-n>16&&at)return at.decode(ve.subarray(n,i));for(var a=\"\",s=n;s<i;++s){var c=ve[s];a+=String.fromCharCode(c)}return a},oi=(e,r,t)=>{if(t??=2147483647,t<2)return 0;t-=2;for(var n=r,i=t<e.length*2?t/2:e.length,a=0;a<i;++a){var s=e.charCodeAt(a);A[r>>1]=s,r+=2}return A[r>>1]=0,r-n},si=e=>e.length*2,ci=(e,r,t)=>{for(var n=\"\",i=e>>2,a=0;!(a>=r/4);a++){var s=m[i+a];if(!s&&!t)break;n+=String.fromCodePoint(s)}return n},ui=(e,r,t)=>{if(t??=2147483647,t<4)return 0;for(var n=r,i=n+t-4,a=0;a<e.length;++a){var s=e.codePointAt(a);if(s>65535&&a++,C[r>>2]=s,r+=4,r+4>i)break}return C[r>>2]=0,r-n},li=e=>{for(var r=0,t=0;t<e.length;++t){var n=e.codePointAt(t);n>65535&&t++,r+=4}return r},fi=(e,r,t)=>{t=V(t);var n,i,a;r===2?(n=ai,i=oi,a=si):(n=ci,i=ui,a=li),q(e,{name:t,fromWireType:s=>{var c=m[s>>2],u=n(s+4,c*r,!0);return J(s),u},toWireType:(s,c)=>{typeof c!=\"string\"&&F(`Cannot pass non-string to C++ string type ${t}`);var u=a(c),f=Z(4+u+r);return m[f>>2]=u/r,i(c,f+4,u+r),s!==null&&s.push(J,f),f},readValueFromPointer:We,destructorFunction(s){J(s)}})},di=(e,r)=>{r=V(r),q(e,{isVoid:!0,name:r,fromWireType:()=>{},toWireType:(t,n)=>{}})},ot=0,vi=()=>{rr=!1,ot=0},mr=[],_i=e=>{var r=mr.length;return mr.push(e),r},hi=(e,r)=>{for(var t=new Array(e),n=0;n<e;++n)t[n]=it(m[r+n*4>>2],`parameter ${n}`);return t},mi=(e,r,t)=>{var n=[],i=e(n,t);return n.length&&(m[r>>2]=L.toHandle(n)),i},pi={},pr=e=>{var r=pi[e];return r===void 0?V(e):r},yi=(e,r,t)=>{var n=8,[i,...a]=hi(e,r),s=i.toWireType.bind(i),c=a.map(v=>v.readValueFromPointer.bind(v));e--;var u={toValue:L.toValue},f=c.map((v,h)=>{var k=`argFromPtr${h}`;return u[k]=v,`${k}(args${h?\"+\"+h*n:\"\"})`}),d;switch(t){case 0:d=\"toValue(handle)\";break;case 2:d=\"new (toValue(handle))\";break;case 3:d=\"\";break;case 1:u.getStringOrSymbol=pr,d=\"toValue(handle)[getStringOrSymbol(methodName)]\";break}d+=`(${f})`,i.isVoid||(u.toReturnWire=s,u.emval_returnValue=mi,d=`return emval_returnValue(toReturnWire, destructorsRef, ${d})`),d=`return function (handle, methodName, destructorsRef, args) {\n ${d}\n }`;var _=new Function(Object.keys(u),d)(...Object.values(u)),p=`methodCaller<(${a.map(v=>v.name)}) => ${i.name}>`;return _i(Be(p,_))},st=()=>globalThis,gi=e=>e===0?L.toHandle(st()):(e=pr(e),L.toHandle(st()[e])),wi=(e,r)=>(e=L.toValue(e),r=L.toValue(r),L.toHandle(e[r])),bi=e=>{e>9&&(fe[e+1]+=1)},Si=(e,r,t,n,i)=>mr[e](r,t,n,i),ki=()=>L.toHandle([]),Ei=e=>L.toHandle(pr(e)),Ci=e=>{var r=L.toValue(e);vr(r),hr(e)},Ti=(e,r,t)=>{e=L.toValue(e),r=L.toValue(r),t=L.toValue(t),e[r]=t},Fi=9007199254740992,Pi=-9007199254740992,He=e=>e<Pi||e>Fi?NaN:Number(e);function Ai(e,r){e=He(e);var t=new Date(e*1e3);C[r>>2]=t.getUTCSeconds(),C[r+4>>2]=t.getUTCMinutes(),C[r+8>>2]=t.getUTCHours(),C[r+12>>2]=t.getUTCDate(),C[r+16>>2]=t.getUTCMonth(),C[r+20>>2]=t.getUTCFullYear()-1900,C[r+24>>2]=t.getUTCDay();var n=Date.UTC(t.getUTCFullYear(),0,1,0,0,0,0),i=(t.getTime()-n)/(1e3*60*60*24)|0;C[r+28>>2]=i}var $i=e=>e%4===0&&(e%100!==0||e%400===0),Di=[0,31,60,91,121,152,182,213,244,274,305,335],Ri=[0,31,59,90,120,151,181,212,243,273,304,334],Ii=e=>{var r=$i(e.getFullYear()),t=r?Di:Ri,n=t[e.getMonth()]+e.getDate()-1;return n};function Mi(e,r){e=He(e);var t=new Date(e*1e3);C[r>>2]=t.getSeconds(),C[r+4>>2]=t.getMinutes(),C[r+8>>2]=t.getHours(),C[r+12>>2]=t.getDate(),C[r+16>>2]=t.getMonth(),C[r+20>>2]=t.getFullYear()-1900,C[r+24>>2]=t.getDay();var n=Ii(t)|0;C[r+28>>2]=n,C[r+36>>2]=-(t.getTimezoneOffset()*60);var i=new Date(t.getFullYear(),0,1),a=new Date(t.getFullYear(),6,1).getTimezoneOffset(),s=i.getTimezoneOffset(),c=(a!=s&&t.getTimezoneOffset()==Math.min(s,a))|0;C[r+32>>2]=c}var Ce={},ct=e=>{if(e instanceof $r||e==\"unwind\")return Ae;Er(1,e)},ut=()=>rr||ot>0,lt=e=>{Ae=e,ut()||(l.onExit?.(e),Pe=!0),Er(e,new $r(e))},ji=(e,r)=>{Ae=e,lt(e)},Oi=ji,xi=()=>{if(!ut())try{Oi(Ae)}catch(e){ct(e)}},ft=e=>{if(!Pe)try{e(),xi()}catch(r){ct(r)}},yr=()=>performance.now(),Gi=(e,r)=>{if(Ce[e]&&(clearTimeout(Ce[e].id),delete Ce[e]),!r)return 0;var t=setTimeout(()=>{delete Ce[e],ft(()=>wt(e,yr()))},r);return Ce[e]={id:t,timeout_ms:r},0},Ni=(e,r,t,n)=>{var i=new Date().getFullYear(),a=new Date(i,0,1),s=new Date(i,6,1),c=a.getTimezoneOffset(),u=s.getTimezoneOffset(),f=Math.max(c,u);m[e>>2]=f*60,C[r>>2]=+(c!=u);var d=v=>{var h=v>=0?\"-\":\"+\",k=Math.abs(v),$=String(Math.floor(k/60)).padStart(2,\"0\"),T=String(k%60).padStart(2,\"0\");return`UTC${h}${$}${T}`},_=d(c),p=d(u);u<c?(O(_,t,17),O(p,n,17)):(O(_,n,17),O(p,t,17))},dt=()=>Date.now(),Bi=1,Li=e=>e>=0&&e<=3;function Wi(e,r,t){if(r=He(r),!Li(e))return 28;var n;if(e===0)n=dt();else if(Bi)n=yr();else return 52;var i=Math.round(n*1e3*1e3);return W[t>>3]=BigInt(i),0}var Ui=e=>{console.warn(M(e))},Vi=(e,r)=>ee(M(e,r));function zi(e){if(U.xhrs.has(e)){var r=U.xhrs.get(e);U.xhrs.free(e),r.readyState>0&&r.readyState<4&&r.abort()}}var vt=()=>2147483648,Hi=()=>vt(),qi=()=>!ge,Xi=(e,r)=>we(M(e,r)),Zi=(e,r)=>Math.ceil(e/r)*r,Ki=e=>{var r=$e.buffer.byteLength,t=(e-r+65535)/65536|0;try{return $e.grow(t),Ar(),1}catch{}},Yi=e=>{var r=B.length;e>>>=0;var t=vt();if(e>t)return!1;for(var n=1;n<=4;n*=2){var i=r*(1+.2/n);i=Math.min(i,e+100663296);var a=Math.min(t,Zi(Math.max(e,i),65536)),s=Ki(a);if(s)return!0}return!1};class Ji{allocated=[void 0];freelist=[];get(r){return this.allocated[r]}has(r){return this.allocated[r]!==void 0}allocate(r){var t=this.freelist.pop()||this.allocated.length;return this.allocated[t]=r,t}free(r){this.allocated[r]=void 0,this.freelist.push(r)}}var U={async openDatabase(e,r){return new Promise((t,n)=>{try{var i=indexedDB.open(e,r)}catch(a){return n(a)}i.onupgradeneeded=a=>{var s=a.target.result;s.objectStoreNames.contains(\"FILES\")&&s.deleteObjectStore(\"FILES\"),s.createObjectStore(\"FILES\")},i.onsuccess=a=>t(a.target.result),i.onerror=n})},async init(){U.xhrs=new Ji,Nr(\"library_fetch_init\");try{var e=await U.openDatabase(\"emscripten_filesystem\",1);U.dbInstance=e}catch{U.dbInstance=!1}finally{Gr(\"library_fetch_init\")}}};function gr(e,r,t,n,i){var a=m[e+8>>2];if(!a){t(e,\"no url specified!\");return}var s=M(a),c=e+108,u=M(c+0);u||=\"GET\";var f=m[c+56>>2],d=m[c+68>>2],_=m[c+72>>2],p=m[c+76>>2],v=m[c+80>>2],h=m[c+84>>2],k=m[c+88>>2],$=m[c+52>>2],T=!!($&1),x=!!($&2),P=!!($&64),K=d?M(d):void 0,z=_?M(_):void 0,S=new XMLHttpRequest;if(S.withCredentials=!!B[c+60],S.open(u,s,!P,K,z),P||(S.timeout=f),S.url_=s,S.responseType=\"arraybuffer\",v){var I=M(v);S.overrideMimeType(I)}if(p)for(;;){var se=m[p>>2];if(!se)break;var Xe=m[p+4>>2];if(!Xe)break;p+=8;var N=M(se),ne=M(Xe);S.setRequestHeader(N,ne)}var Q=U.xhrs.allocate(S);m[e>>2]=Q;var br=h&&k?B.slice(h,h+k):null;function Ze(){var j=0,H=0;S.response&&T&&m[e+12>>2]===0&&(H=S.response.byteLength),H>0&&(j=Z(H),B.set(new Uint8Array(S.response),j)),m[e+12>>2]=j,X(e+16,H),X(e+24,0);var ie=S.response?S.response.byteLength:0;if(ie&&X(e+32,ie),A[e+40>>1]=S.readyState,A[e+42>>1]=S.status,S.statusText&&O(S.statusText,e+44,64),P){var Ke=_t(S.responseURL);m[e+200>>2]=Ke}}S.onload=j=>{U.xhrs.has(Q)&&(Ze(),S.status>=200&&S.status<300?r(e,S,j):t(e,j))},S.onerror=j=>{U.xhrs.has(Q)&&(Ze(),t(e,j))},S.ontimeout=j=>{U.xhrs.has(Q)&&t(e,j)},S.onprogress=j=>{if(U.xhrs.has(Q)){var H=T&&x&&S.response?S.response.byteLength:0,ie=0;H>0&&T&&x&&(ie=Z(H),B.set(new Uint8Array(S.response),ie)),m[e+12>>2]=ie,X(e+16,H),X(e+24,j.loaded-H),X(e+32,j.total),A[e+40>>1]=S.readyState;var Ke=S.status;S.readyState>=3&&S.status===0&&j.loaded>0&&(Ke=200),A[e+42>>1]=Ke,S.statusText&&O(S.statusText,e+44,64),n(e,j),J(ie)}},S.onreadystatechange=j=>{if(U.xhrs.has(Q)){if(A[e+40>>1]=S.readyState,S.readyState>=2&&(A[e+42>>1]=S.status),!P&&S.readyState===2&&S.responseURL.length>0){var H=_t(S.responseURL);m[e+200>>2]=H}i(e,j)}};try{S.send(br)}catch(j){t(e,j)}}var X=(e,r)=>{m[e>>2]=r;var t=m[e>>2];m[e+4>>2]=(r-t)/4294967296},_t=e=>{var r=Y(e)+1,t=Z(r);return t&&O(e,t,r),t};function ht(e,r,t,n,i){if(!e){i(r,0,\"IndexedDB not available!\");return}var a=r+108,s=m[a+64>>2];s||=m[r+8>>2];var c=M(s);try{var u=e.transaction([\"FILES\"],\"readwrite\"),f=u.objectStore(\"FILES\"),d=f.put(t,c);d.onsuccess=_=>{A[r+40>>1]=4,A[r+42>>1]=200,O(\"OK\",r+44,64),n(r,0,c)},d.onerror=_=>{A[r+40>>1]=4,A[r+42>>1]=413,O(\"Payload Too Large\",r+44,64),i(r,0,_)}}catch(_){i(r,0,_)}}function Qi(e,r,t,n){if(!e){n(r,0,\"IndexedDB not available!\");return}var i=r+108,a=m[i+64>>2];a||=m[r+8>>2];var s=M(a);try{var c=e.transaction([\"FILES\"],\"readonly\"),u=c.objectStore(\"FILES\"),f=u.get(s);f.onsuccess=d=>{if(d.target.result){var _=d.target.result,p=_.byteLength||_.length,v=Z(p);B.set(new Uint8Array(_),v),m[r+12>>2]=v,X(r+16,p),X(r+24,0),X(r+32,p),A[r+40>>1]=4,A[r+42>>1]=200,O(\"OK\",r+44,64),t(r,0,_)}else A[r+40>>1]=4,A[r+42>>1]=404,O(\"Not Found\",r+44,64),n(r,0,\"no data\")},f.onerror=d=>{A[r+40>>1]=4,A[r+42>>1]=404,O(\"Not Found\",r+44,64),n(r,0,d)}}catch(d){n(r,0,d)}}function ea(e,r,t,n){if(!e){n(r,0,\"IndexedDB not available!\");return}var i=r+108,a=m[i+64>>2];a||=m[r+8>>2];var s=M(a);try{var c=e.transaction([\"FILES\"],\"readwrite\"),u=c.objectStore(\"FILES\"),f=u.delete(s);f.onsuccess=d=>{var _=d.target.result;m[r+12>>2]=0,X(r+16,0),X(r+24,0),X(r+32,0),A[r+40>>1]=4,A[r+42>>1]=200,O(\"OK\",r+44,64),t(r,0,_)},f.onerror=d=>{A[r+40>>1]=4,A[r+42>>1]=404,O(\"Not Found\",r+44,64),n(r,0,d)}}catch(d){n(r,0,d)}}function ra(e,r,t,n,i){var a=e+108,s=m[a+36>>2],c=m[a+40>>2],u=m[a+44>>2],f=m[a+48>>2],d=m[a+52>>2],_=!!(d&64);function p(N){_?N():ft(N)}var v=(N,ne,Q)=>{p(()=>{s?y(s)(N):r?.(N)})},h=(N,ne)=>{p(()=>{u?y(u)(N):n?.(N)})},k=(N,ne)=>{p(()=>{c?y(c)(N):t?.(N)})},$=(N,ne)=>{p(()=>{f?y(f)(N):i?.(N)})},T=(N,ne,Q)=>{gr(N,v,k,h,$)},x=(N,ne,Q)=>{var br=(j,H,ie)=>{p(()=>{s?y(s)(j):r?.(j)})},Ze=(j,H,ie)=>{p(()=>{s?y(s)(j):r?.(j)})};ht(U.dbInstance,N,ne.response,br,Ze)},P=(N,ne,Q)=>{gr(N,x,k,h,$)},K=M(a+0),z=!!(d&16),S=!!(d&4),I=!!(d&32);if(K===\"EM_IDB_STORE\"){var se=m[a+84>>2],Xe=m[a+88>>2];ht(U.dbInstance,e,B.slice(se,se+Xe),v,k)}else if(K===\"EM_IDB_DELETE\")ea(U.dbInstance,e,v,k);else if(!z)Qi(U.dbInstance,e,v,I?k:S?P:T);else if(!I)gr(e,S?x:v,k,h,$);else return 0;return e}var qe={},ta=()=>kr||\"./this.program\",Te=()=>{if(!Te.strings){var e=(typeof navigator==\"object\"&&navigator.language||\"C\").replace(\"-\",\"_\")+\".UTF-8\",r={USER:\"web_user\",LOGNAME:\"web_user\",PATH:\"/\",PWD:\"/\",HOME:\"/home/web_user\",LANG:e,_:ta()};for(var t in qe)qe[t]===void 0?delete r[t]:r[t]=qe[t];var n=[];for(var t in r)n.push(`${t}=${r[t]}`);Te.strings=n}return Te.strings},na=(e,r)=>{var t=0,n=0;for(var i of Te()){var a=r+t;m[e+n>>2]=a,t+=O(i,a,1/0)+1,n+=4}return 0},ia=(e,r)=>{var t=Te();m[e>>2]=t.length;var n=0;for(var i of t)n+=Y(i)+1;return m[r>>2]=n,0};function aa(e){try{var r=R.getStreamFromFD(e);return o.close(r),0}catch(t){if(typeof o>\"u\"||t.name!==\"ErrnoError\")throw t;return t.errno}}function oa(e,r){try{var t=0,n=0,i=0,a=R.getStreamFromFD(e),s=a.tty?2:o.isDir(a.mode)?3:o.isLink(a.mode)?7:4;return G[r]=s,A[r+2>>1]=i,W[r+8>>3]=BigInt(t),W[r+16>>3]=BigInt(n),0}catch(c){if(typeof o>\"u\"||c.name!==\"ErrnoError\")throw c;return c.errno}}var sa=(e,r,t,n)=>{for(var i=0,a=0;a<t;a++){var s=m[r>>2],c=m[r+4>>2];r+=8;var u=o.read(e,G,s,c,n);if(u<0)return-1;if(i+=u,u<c)break;typeof n<\"u\"&&(n+=u)}return i};function ca(e,r,t,n){try{var i=R.getStreamFromFD(e),a=sa(i,r,t);return m[n>>2]=a,0}catch(s){if(typeof o>\"u\"||s.name!==\"ErrnoError\")throw s;return s.errno}}function ua(e,r,t,n){r=He(r);try{if(isNaN(r))return 61;var i=R.getStreamFromFD(e);return o.llseek(i,r,t),W[n>>3]=BigInt(i.position),i.getdents&&r===0&&t===0&&(i.getdents=null),0}catch(a){if(typeof o>\"u\"||a.name!==\"ErrnoError\")throw a;return a.errno}}var la=(e,r,t,n)=>{for(var i=0,a=0;a<t;a++){var s=m[r>>2],c=m[r+4>>2];r+=8;var u=o.write(e,G,s,c,n);if(u<0)return-1;if(i+=u,u<c)break;typeof n<\"u\"&&(n+=u)}return i};function fa(e,r,t,n){try{var i=R.getStreamFromFD(e),a=la(i,r,t);return m[n>>2]=a,0}catch(s){if(typeof o>\"u\"||s.name!==\"ErrnoError\")throw s;return s.errno}}var da=e=>e;function va(e,r){try{return ir(B.subarray(e,e+r)),0}catch(t){if(typeof o>\"u\"||t.name!==\"ErrnoError\")throw t;return t.errno}}var _c=e=>(e>>>=0,\"0x\"+e.toString(16).padStart(8,\"0\")),mt=e=>{var r=l[\"_\"+e];return r},_a=(e,r)=>{G.set(e,r)},pt=e=>kt(e),ha=e=>{var r=Y(e)+1,t=pt(r);return O(e,t,r),t},yt=(e,r,t,n,i)=>{var a={string:h=>{var k=0;return h!=null&&h!==0&&(k=ha(h)),k},array:h=>{var k=pt(h.length);return _a(h,k),k}};function s(h){return r===\"string\"?M(h):r===\"boolean\"?!!h:h}var c=mt(e),u=[],f=0;if(n)for(var d=0;d<n.length;d++){var _=a[t[d]];_?(f===0&&(f=b()),u[d]=_(n[d])):u[d]=n[d]}var p=c(...u);function v(h){return f!==0&&w(f),s(h)}return p=v(p),p},ma=(e,r,t,n)=>{var i=!t||t.every(s=>s===\"number\"||s===\"boolean\"),a=r!==\"string\";return a&&i&&!n?mt(e):(...s)=>yt(e,r,t,s,n)};if(o.createPreloadedFile=ln,o.preloadFile=Lr,o.staticInit(),Fn(),Bn(),U.init(),l.noExitRuntime&&(rr=l.noExitRuntime),l.preloadPlugins&&(Br=l.preloadPlugins),l.print&&(we=l.print),l.printErr&&(ee=l.printErr),l.wasmBinary&&(be=l.wasmBinary),l.arguments&&(Rt=l.arguments),l.thisProgram&&(kr=l.thisProgram),l.preInit)for(typeof l.preInit==\"function\"&&(l.preInit=[l.preInit]);l.preInit.length>0;)l.preInit.shift()();l.ENV=qe,l.ccall=yt,l.cwrap=ma,l.lengthBytesUTF8=Y,l.stringToUTF8=O;function pa(e){if(typeof l.locateFile==\"function\")try{const r=l.locateFile(M(e));if(r){const t=Y(r)+1,n=Z(t);if(n)return O(r,n,t),n}}catch(r){console.warn(\"Module.locateFile failed:\",r)}return 0}function ya(e){try{if(typeof l<\"u\"&&l.workerUrl){var r=l.workerUrl,t=Y(r)+1,n=Z(t);return O(r,n,t),n}}catch(i){console.warn(\"Failed to read Module.workerUrl:\",i)}if(e){var t=Y(M(e))+1,n=Z(t);return O(M(e),n,t),n}return 0}function ga(){return navigator.hardwareConcurrency||1}function wa(e){l._aquaLiveTransports||(l._aquaLiveTransports=new Set),l._aquaLiveTransports.add(e),queueMicrotask(function(){l._aquaLiveTransports&&l._aquaLiveTransports.has(e)&&l._aquaDrainDeferredCompletions(e)})}function ba(e){l._aquaLiveTransports&&l._aquaLiveTransports.delete(e)}function Sa(e,r){if(!l.createDeserializeWorker)return console.error(\"createDeserializeWorker not available - worker-bridge.ts not loaded\"),0;const t=M(e);return l.createDeserializeWorker(t,l,r)?1:0}function ka(e,r,t,n,i){if(!l.submitToWorker)return console.error(\"submitToWorker not available - worker-bridge.ts not loaded\"),0;try{const a=t,s=n,c=new ArrayBuffer(s);return new Uint8Array(c).set(l.HEAPU8.subarray(a,a+s)),l.submitToWorker(e,r,c,i)?1:0}catch(a){return console.error(\"submitToWorker failed:\",a),0}}function Ea(e,r){l.cancelRequest&&l.cancelRequest(e,r)}function hc(){return l.isWorkerReady&&l.isWorkerReady()?1:0}function Ca(){l.terminateWorker&&l.terminateWorker()}function Ta(e,r){typeof globalThis.Sentry<\"u\"&&typeof globalThis.Sentry.captureException==\"function\"&&globalThis.Sentry.captureException(new Error(M(e,r)))}function Fa(e){const r=M(e);try{const t=new URL(r)}catch{return 0}return 1}function Pa(e,r){const t=M(e);let n;try{n=new URL(t)}catch(c){return console.error(`Failed to parse URL ${t} due to error : ${c}`),0}function i(c){return c>>>0}function a(c){const u=Y(c)+1,f=Z(u);return O(c,f,u),i(f)}let s=i(r)>>2;return m[s]=a(n.origin),m[s+1]=a(n.pathname.substring(1)),m[s+2]=a(n.search.substring(1)),m[s+3]=a(n.hash.substring(1)),1}function Aa(e){const r=M(e),t=encodeURIComponent(r),n=Y(t)+1,i=Z(n);return O(t,i,n),i>>>0}function $a(e){l.__mirisPrivatePromiseTracker||(l.__mirisPrivatePromiseTracker=new Map);let r,t;const n=new Promise(function(i,a){r=i,t=a});return l.__mirisPrivatePromiseTracker.set(e,{resolve:r,reject:t}),L.toHandle(n)}function Da(e,r){const t=l.__mirisPrivatePromiseTracker;if(!t||!t.has(e)){console.error(\"[miris] No resolver for tracked promise ID:\",e);return}const{resolve:n}=t.get(e);if(!n){console.error(\"[miris] No resolver for tracked promise ID:\",e);return}t.delete(e),n(L.toValue(r))}function mc(e,r){const t=l.__mirisPrivatePromiseTracker;if(!t||!t.has(e)){console.error(\"[miris] No rejector for tracked promise ID:\",e);return}const{reject:n}=t.get(e);if(!n){console.error(\"[miris] No rejector for tracked promise ID:\",e);return}t.delete(e),n(L.toValue(r))}var gt,Ra,Ia,Ma,ja,Oa,xa,Ga,Na,Ba,La,Wa,Ua,Va,za,Ha,qa,Xa,Za,Ka,Ya,Ja,Qa,eo,ro,to,no,io,ao,oo,so,co,uo,lo,fo,vo,_o,ho,mo,po,yo,go,wo,bo,So,ko,Eo,Co,To,Fo,Po,Ao,$o,Do,Ro,Io,Mo,jo,Oo,xo,Go,No,Bo,Lo,Wo,Uo,Vo,zo,Ho,qo,Xo,Zo,Ko,Yo,Jo,Qo,es,rs,ts,Z,J,ns,is,wt,g,bt,St,kt,Et,Ct,Tt,Ft,Pt;function as(e){gt=e.__getTypeName,l._CreateAquaContext=Ra=e.CreateAquaContext,l._BeginFrame=Ia=e.BeginFrame,l._DestroyAquaContext=Ma=e.DestroyAquaContext,l._SetMaxRequestCacheSize=ja=e.SetMaxRequestCacheSize,l._TriggerTestError=Oa=e.TriggerTestError,l._CreateClientForContext=xa=e.CreateClientForContext,l._CreateClient=Ga=e.CreateClient,l._DestroyClient=Na=e.DestroyClient,l._ClearScene=Ba=e.ClearScene,l._WaitForSceneExecution=La=e.WaitForSceneExecution,l._SetPersistentDataDirectory=Wa=e.SetPersistentDataDirectory,l._SetClientSpatialFormat=Ua=e.SetClientSpatialFormat,l._SetAssetViewerKey=Va=e.SetAssetViewerKey,l._PrefetchContent=za=e.PrefetchContent,l._PrintSceneObjectHierarchy=Ha=e.PrintSceneObjectHierarchy,l._CancelAllSceneExecution=qa=e.CancelAllSceneExecution,l._AddStream=Xa=e.AddStream,l._AddStreamById=Za=e.AddStreamById,l._RemoveStream=Ka=e.RemoveStream,l._UpdateSceneExecution=Ya=e.UpdateSceneExecution,l._RecordFrameTime=Ja=e.RecordFrameTime,l._TakeRenderRequired=Qa=e.TakeRenderRequired,l._LockScene=eo=e.LockScene,l._UnlockScene=ro=e.UnlockScene,l._SetMainCameraTransform=to=e.SetMainCameraTransform,l._SetMainCameraViewFrustum=no=e.SetMainCameraViewFrustum,l._SetSceneObjectTransform=io=e.SetSceneObjectTransform,l._SetRuntimeSettings=ao=e.SetRuntimeSettings,l._SetOctreeSolverMode=oo=e.SetOctreeSolverMode,l._SetOctreeDepthFavor=so=e.SetOctreeDepthFavor,l._SetBudgetControllerType=co=e.SetBudgetControllerType,l._SetMaxCacheSize=uo=e.SetMaxCacheSize,l._SetPreferSharkEncodingProfiles=lo=e.SetPreferSharkEncodingProfiles,l._HasFeature=fo=e.HasFeature,l._GetFeatureVersion=vo=e.GetFeatureVersion,l._GetFeatureState=_o=e.GetFeatureState,l._GetAssetFormatVersion=ho=e.GetAssetFormatVersion,l._GetSceneChangesCounts=mo=e.GetSceneChangesCounts,l._GetSceneChanges=po=e.GetSceneChanges,l._GetSceneRootObjectId=yo=e.GetSceneRootObjectId,l._GetSceneObjectChildrenCount=go=e.GetSceneObjectChildrenCount,l._GetSceneObjectChildren=wo=e.GetSceneObjectChildren,l._GetSceneObjectType=bo=e.GetSceneObjectType,l._GetDrawnOctantMask=So=e.GetDrawnOctantMask,l._LogOctreeStats=ko=e.LogOctreeStats,l._GetSceneObjectParent=Eo=e.GetSceneObjectParent,l._IsSceneObjectAncestorOf=Co=e.IsSceneObjectAncestorOf,l._GetSceneObjectName=To=e.GetSceneObjectName,l._GetAttributeCount=Fo=e.GetAttributeCount,l._HasAttribute=Po=e.HasAttribute,l._GetMosaicDescriptors=Ao=e.GetMosaicDescriptors,l._GetEccLutData=$o=e.GetEccLutData,l._GetAttribute=Do=e.GetAttribute,l._TakeAttribute=Ro=e.TakeAttribute,l._GetBufferHash=Io=e.GetBufferHash,l._GetWorldBoundingBox=Mo=e.GetWorldBoundingBox,l._GetLocalBoundingBox=jo=e.GetLocalBoundingBox,l._MirisGetLocalTransform=Oo=e.MirisGetLocalTransform,l._MirisGetWorldTransform=xo=e.MirisGetWorldTransform,l._MirisGetTransformRelativeToAncestor=Go=e.MirisGetTransformRelativeToAncestor,l._GetBoundingBoxRelativeToAncestor=No=e.GetBoundingBoxRelativeToAncestor,l._GetMetadata=Bo=e.GetMetadata,l._GetLodIndex=Lo=e.GetLodIndex,l._GetLibAquaVersion=Wo=e.GetLibAquaVersion,l._GetLodMinMaxIndices=Uo=e.GetLodMinMaxIndices,l._GetCameraCount=Vo=e.GetCameraCount,l._GetCameraIds=zo=e.GetCameraIds,l._GetDefaultCameraId=Ho=e.GetDefaultCameraId,l._GetViewingVolumeId=qo=e.GetViewingVolumeId,l._GetSceneMetadata=Xo=e.GetSceneMetadata,l._GetSceneOperatorCount=Zo=e.GetSceneOperatorCount,l._SetVariantSelection=Ko=e.SetVariantSelection,l.__Z26GetSceneObjectNameAsStringP10AquaClienti=Yo=e._Z26GetSceneObjectNameAsStringP10AquaClienti,l.__Z14GetAssetsAsyncP10AquaClientRKNSt3__26vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEEiPN4aqua6v0_0_013ArrayCallbackINSE_9AssetInfoEEE=Jo=e._Z14GetAssetsAsyncP10AquaClientRKNSt3__26vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEEiPN4aqua6v0_0_013ArrayCallbackINSE_9AssetInfoEEE,l.__Z21GetAvailableTagsAsyncP10AquaClientPN4aqua6v0_0_013ArrayCallbackINSt3__212basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEEE=Qo=e._Z21GetAvailableTagsAsyncP10AquaClientPN4aqua6v0_0_013ArrayCallbackINSt3__212basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEEE,l.__Z33TakeEvictedClientSideAttributeIdsP10AquaClient=es=e._Z33TakeEvictedClientSideAttributeIdsP10AquaClient,l.__Z30GetActiveClientSideIdsCheckSumv=rs=e._Z30GetActiveClientSideIdsCheckSumv,ts=e.__cxa_free_exception,l._malloc=Z=e.malloc,l._free=J=e.free,l._aquaDrainDeferredCompletions=ns=e.aquaDrainDeferredCompletions,l._onWorkerResult=is=e.onWorkerResult,wt=e._emscripten_timeout,g=e.setThrew,bt=e._emscripten_tempret_set,St=e._emscripten_stack_restore,kt=e._emscripten_stack_alloc,Et=e.emscripten_stack_get_current,Ct=e.__cxa_decrement_exception_refcount,Tt=e.__cxa_increment_exception_refcount,Ft=e.__cxa_can_catch,Pt=e.__cxa_get_exception_ptr}var At={__cxa_begin_catch:qt,__cxa_end_catch:Xt,__cxa_find_matching_catch_2:Zt,__cxa_find_matching_catch_3:Kt,__cxa_find_matching_catch_4:Yt,__cxa_rethrow:Jt,__cxa_throw:Qt,__cxa_uncaught_exceptions:en,__resumeException:rn,__syscall_fcntl64:fn,__syscall_fstat64:dn,__syscall_ioctl:vn,__syscall_lstat64:_n,__syscall_newfstatat:hn,__syscall_openat:mn,__syscall_rmdir:pn,__syscall_stat64:yn,__syscall_unlinkat:gn,_abort_js:wn,_embind_register_bigint:Sn,_embind_register_bool:kn,_embind_register_class:Wn,_embind_register_class_constructor:Vn,_embind_register_class_function:zn,_embind_register_class_property:Hn,_embind_register_emval:qn,_embind_register_enum:Zn,_embind_register_enum_value:Kn,_embind_register_float:Jn,_embind_register_function:Qn,_embind_register_integer:ei,_embind_register_memory_view:ri,_embind_register_optional:ni,_embind_register_std_string:ii,_embind_register_std_wstring:fi,_embind_register_void:di,_emscripten_runtime_keepalive_clear:vi,_emval_create_invoker:yi,_emval_decref:hr,_emval_get_global:gi,_emval_get_property:wi,_emval_incref:bi,_emval_invoke:Si,_emval_new_array:ki,_emval_new_cstring:Ei,_emval_run_destructors:Ci,_emval_set_property:Ti,_gmtime_js:Ai,_localtime_js:Mi,_setitimer_js:Gi,_tzset_js:Ni,clock_time_get:Wi,emjsCreateTrackedPromise:$a,emjsEncodeUriComponent:Aa,emjsGetPartsFromUrl:Pa,emjsIsValidUrl:Fa,emjsResolveTrackedPromise:Da,emjsSentryCaptureException:Ta,emscripten_console_warn:Ui,emscripten_date_now:dt,emscripten_errn:Vi,emscripten_fetch_free:zi,emscripten_get_heap_max:Hi,emscripten_get_now:yr,emscripten_is_main_browser_thread:qi,emscripten_outn:Xi,emscripten_resize_heap:Yi,emscripten_start_fetch:ra,environ_get:na,environ_sizes_get:ia,fd_close:aa,fd_fdstat_get:oa,fd_read:ca,fd_seek:ua,fd_write:fa,getHardwareConcurrency:ga,getWorkerUrlFromModule:ya,impl_cancelRequest:Ea,impl_createDeserializeWorker:Sa,impl_submitToWorker:ka,impl_terminateWorker:Ca,invoke_diii:Qs,invoke_djj:Ls,invoke_fi:$s,invoke_fiii:Js,invoke_i:ms,invoke_ii:ss,invoke_iii:vs,invoke_iiii:Ss,invoke_iiiid:ec,invoke_iiiii:hs,invoke_iiiiid:Ks,invoke_iiiiii:ws,invoke_iiiiiii:zs,invoke_iiiiiiii:Ms,invoke_iiiiiiiii:Os,invoke_iiiiiiiiii:Ps,invoke_iiiiiiiiiii:ps,invoke_iiiiiiiiiiii:Fs,invoke_iiiiij:oc,invoke_iiiiijj:rc,invoke_iiiij:Gs,invoke_iiiijj:tc,invoke_iiij:ac,invoke_iij:gs,invoke_iiji:qs,invoke_iijiiii:bs,invoke_j:Rs,invoke_jii:ks,invoke_jiiii:Ys,invoke_v:_s,invoke_vi:cs,invoke_viddi:Ns,invoke_vif:Vs,invoke_vii:ls,invoke_viif:sc,invoke_viii:us,invoke_viiifi:Us,invoke_viiii:os,invoke_viiiiddi:Ws,invoke_viiiii:ds,invoke_viiiiii:fs,invoke_viiiiiii:Ts,invoke_viiiiiiii:Ds,invoke_viiiiiiiiii:nc,invoke_viiiiiiiiiii:ys,invoke_viiiiiiiiiiiiiii:ic,invoke_viiiij:xs,invoke_viiij:js,invoke_viij:Bs,invoke_viiji:Cs,invoke_viijii:As,invoke_viijiii:Hs,invoke_vij:Zs,invoke_viji:Xs,invoke_vijii:Is,invoke_vijiiii:Es,llvm_eh_typeid_for:da,proc_exit:lt,random_get:va,scheduleMicrotaskDrain:wa,tryLocateWorkerFile:pa,unregisterTransportInstance:ba};function os(e,r,t,n,i){var a=b();try{y(e)(r,t,n,i)}catch(s){if(w(a),s!==s+0)throw s;g(1,0)}}function ss(e,r){var t=b();try{return y(e)(r)}catch(n){if(w(t),n!==n+0)throw n;g(1,0)}}function cs(e,r){var t=b();try{y(e)(r)}catch(n){if(w(t),n!==n+0)throw n;g(1,0)}}function us(e,r,t,n){var i=b();try{y(e)(r,t,n)}catch(a){if(w(i),a!==a+0)throw a;g(1,0)}}function ls(e,r,t){var n=b();try{y(e)(r,t)}catch(i){if(w(n),i!==i+0)throw i;g(1,0)}}function fs(e,r,t,n,i,a,s){var c=b();try{y(e)(r,t,n,i,a,s)}catch(u){if(w(c),u!==u+0)throw u;g(1,0)}}function ds(e,r,t,n,i,a){var s=b();try{y(e)(r,t,n,i,a)}catch(c){if(w(s),c!==c+0)throw c;g(1,0)}}function vs(e,r,t){var n=b();try{return y(e)(r,t)}catch(i){if(w(n),i!==i+0)throw i;g(1,0)}}function _s(e){var r=b();try{y(e)()}catch(t){if(w(r),t!==t+0)throw t;g(1,0)}}function hs(e,r,t,n,i){var a=b();try{return y(e)(r,t,n,i)}catch(s){if(w(a),s!==s+0)throw s;g(1,0)}}function ms(e){var r=b();try{return y(e)()}catch(t){if(w(r),t!==t+0)throw t;g(1,0)}}function ps(e,r,t,n,i,a,s,c,u,f,d){var _=b();try{return y(e)(r,t,n,i,a,s,c,u,f,d)}catch(p){if(w(_),p!==p+0)throw p;g(1,0)}}function ys(e,r,t,n,i,a,s,c,u,f,d,_){var p=b();try{y(e)(r,t,n,i,a,s,c,u,f,d,_)}catch(v){if(w(p),v!==v+0)throw v;g(1,0)}}function gs(e,r,t){var n=b();try{return y(e)(r,t)}catch(i){if(w(n),i!==i+0)throw i;g(1,0)}}function ws(e,r,t,n,i,a){var s=b();try{return y(e)(r,t,n,i,a)}catch(c){if(w(s),c!==c+0)throw c;g(1,0)}}function bs(e,r,t,n,i,a,s){var c=b();try{return y(e)(r,t,n,i,a,s)}catch(u){if(w(c),u!==u+0)throw u;g(1,0)}}function Ss(e,r,t,n){var i=b();try{return y(e)(r,t,n)}catch(a){if(w(i),a!==a+0)throw a;g(1,0)}}function ks(e,r,t){var n=b();try{return y(e)(r,t)}catch(i){if(w(n),i!==i+0)throw i;return g(1,0),0n}}function Es(e,r,t,n,i,a,s){var c=b();try{y(e)(r,t,n,i,a,s)}catch(u){if(w(c),u!==u+0)throw u;g(1,0)}}function Cs(e,r,t,n,i){var a=b();try{y(e)(r,t,n,i)}catch(s){if(w(a),s!==s+0)throw s;g(1,0)}}function Ts(e,r,t,n,i,a,s,c){var u=b();try{y(e)(r,t,n,i,a,s,c)}catch(f){if(w(u),f!==f+0)throw f;g(1,0)}}function Fs(e,r,t,n,i,a,s,c,u,f,d,_){var p=b();try{return y(e)(r,t,n,i,a,s,c,u,f,d,_)}catch(v){if(w(p),v!==v+0)throw v;g(1,0)}}function Ps(e,r,t,n,i,a,s,c,u,f){var d=b();try{return y(e)(r,t,n,i,a,s,c,u,f)}catch(_){if(w(d),_!==_+0)throw _;g(1,0)}}function As(e,r,t,n,i,a){var s=b();try{y(e)(r,t,n,i,a)}catch(c){if(w(s),c!==c+0)throw c;g(1,0)}}function $s(e,r){var t=b();try{return y(e)(r)}catch(n){if(w(t),n!==n+0)throw n;g(1,0)}}function Ds(e,r,t,n,i,a,s,c,u){var f=b();try{y(e)(r,t,n,i,a,s,c,u)}catch(d){if(w(f),d!==d+0)throw d;g(1,0)}}function Rs(e){var r=b();try{return y(e)()}catch(t){if(w(r),t!==t+0)throw t;return g(1,0),0n}}function Is(e,r,t,n,i){var a=b();try{y(e)(r,t,n,i)}catch(s){if(w(a),s!==s+0)throw s;g(1,0)}}function Ms(e,r,t,n,i,a,s,c){var u=b();try{return y(e)(r,t,n,i,a,s,c)}catch(f){if(w(u),f!==f+0)throw f;g(1,0)}}function js(e,r,t,n,i){var a=b();try{y(e)(r,t,n,i)}catch(s){if(w(a),s!==s+0)throw s;g(1,0)}}function Os(e,r,t,n,i,a,s,c,u){var f=b();try{return y(e)(r,t,n,i,a,s,c,u)}catch(d){if(w(f),d!==d+0)throw d;g(1,0)}}function xs(e,r,t,n,i,a){var s=b();try{y(e)(r,t,n,i,a)}catch(c){if(w(s),c!==c+0)throw c;g(1,0)}}function Gs(e,r,t,n,i){var a=b();try{return y(e)(r,t,n,i)}catch(s){if(w(a),s!==s+0)throw s;g(1,0)}}function Ns(e,r,t,n,i){var a=b();try{y(e)(r,t,n,i)}catch(s){if(w(a),s!==s+0)throw s;g(1,0)}}function Bs(e,r,t,n){var i=b();try{y(e)(r,t,n)}catch(a){if(w(i),a!==a+0)throw a;g(1,0)}}function Ls(e,r,t){var n=b();try{return y(e)(r,t)}catch(i){if(w(n),i!==i+0)throw i;g(1,0)}}function Ws(e,r,t,n,i,a,s,c){var u=b();try{y(e)(r,t,n,i,a,s,c)}catch(f){if(w(u),f!==f+0)throw f;g(1,0)}}function Us(e,r,t,n,i,a){var s=b();try{y(e)(r,t,n,i,a)}catch(c){if(w(s),c!==c+0)throw c;g(1,0)}}function Vs(e,r,t){var n=b();try{y(e)(r,t)}catch(i){if(w(n),i!==i+0)throw i;g(1,0)}}function zs(e,r,t,n,i,a,s){var c=b();try{return y(e)(r,t,n,i,a,s)}catch(u){if(w(c),u!==u+0)throw u;g(1,0)}}function Hs(e,r,t,n,i,a,s){var c=b();try{y(e)(r,t,n,i,a,s)}catch(u){if(w(c),u!==u+0)throw u;g(1,0)}}function qs(e,r,t,n){var i=b();try{return y(e)(r,t,n)}catch(a){if(w(i),a!==a+0)throw a;g(1,0)}}function Xs(e,r,t,n){var i=b();try{y(e)(r,t,n)}catch(a){if(w(i),a!==a+0)throw a;g(1,0)}}function Zs(e,r,t){var n=b();try{y(e)(r,t)}catch(i){if(w(n),i!==i+0)throw i;g(1,0)}}function Ks(e,r,t,n,i,a){var s=b();try{return y(e)(r,t,n,i,a)}catch(c){if(w(s),c!==c+0)throw c;g(1,0)}}function Ys(e,r,t,n,i){var a=b();try{return y(e)(r,t,n,i)}catch(s){if(w(a),s!==s+0)throw s;return g(1,0),0n}}function Js(e,r,t,n){var i=b();try{return y(e)(r,t,n)}catch(a){if(w(i),a!==a+0)throw a;g(1,0)}}function Qs(e,r,t,n){var i=b();try{return y(e)(r,t,n)}catch(a){if(w(i),a!==a+0)throw a;g(1,0)}}function ec(e,r,t,n,i){var a=b();try{return y(e)(r,t,n,i)}catch(s){if(w(a),s!==s+0)throw s;g(1,0)}}function rc(e,r,t,n,i,a,s){var c=b();try{return y(e)(r,t,n,i,a,s)}catch(u){if(w(c),u!==u+0)throw u;g(1,0)}}function tc(e,r,t,n,i,a){var s=b();try{return y(e)(r,t,n,i,a)}catch(c){if(w(s),c!==c+0)throw c;g(1,0)}}function nc(e,r,t,n,i,a,s,c,u,f,d){var _=b();try{y(e)(r,t,n,i,a,s,c,u,f,d)}catch(p){if(w(_),p!==p+0)throw p;g(1,0)}}function ic(e,r,t,n,i,a,s,c,u,f,d,_,p,v,h,k){var $=b();try{y(e)(r,t,n,i,a,s,c,u,f,d,_,p,v,h,k)}catch(T){if(w($),T!==T+0)throw T;g(1,0)}}function ac(e,r,t,n){var i=b();try{return y(e)(r,t,n)}catch(a){if(w(i),a!==a+0)throw a;g(1,0)}}function oc(e,r,t,n,i,a){var s=b();try{return y(e)(r,t,n,i,a)}catch(c){if(w(s),c!==c+0)throw c;g(1,0)}}function sc(e,r,t,n){var i=b();try{y(e)(r,t,n)}catch(a){if(w(i),a!==a+0)throw a;g(1,0)}}function wr(){if(ue>0){Se=wr;return}if(jt(),ue>0){Se=wr;return}function e(){l.calledRun=!0,!Pe&&(Ot(),Cr?.(l),l.onRuntimeInitialized?.(),xt())}l.setStatus?(l.setStatus(\"Running...\"),setTimeout(()=>{setTimeout(()=>l.setStatus(\"\"),1),e()},1)):e()}var de;return de=await Vt(),wr(),Pr?Ye=l:Ye=new Promise((e,r)=>{Cr=e,Tr=r}),Ye}export default cc;\n\n";
62
+ var _glueSource = "async function Dl(vn={}){var or,v=vn,Qr=typeof window==\"object\",Ee=typeof WorkerGlobalScope<\"u\",mn=typeof process==\"object\"&&process.versions?.node&&process.type!=\"renderer\",Pl=!Qr&&!mn&&!Ee,pn=[],Zr=\"./this.program\",Xr=(e,r)=>{throw r},_n=import.meta.url,sr=\"\";function gn(e){return v.locateFile?v.locateFile(e,sr):sr+e}var ur,Re;if(Qr||Ee){try{sr=new URL(\".\",_n).href}catch{}Ee&&(Re=e=>{var r=new XMLHttpRequest;return r.open(\"GET\",e,!1),r.responseType=\"arraybuffer\",r.send(null),new Uint8Array(r.response)}),ur=async e=>{var r=await fetch(e,{credentials:\"same-origin\"});if(r.ok)return r.arrayBuffer();throw new Error(r.status+\" : \"+r.url)}}var Te=console.log.bind(console),ae=console.error.bind(console),Fe,$e=!1,Ge;function hn(e,r){e||ue(r)}var Il=e=>e.startsWith(\"file://\"),Yr,Kr,Me,W,L,D,me,T,l,se,ie,B,et,rt=!1;function tt(){var e=Me.buffer;v.HEAP8=W=new Int8Array(e),D=new Int16Array(e),v.HEAPU8=L=new Uint8Array(e),me=new Uint16Array(e),v.HEAP32=T=new Int32Array(e),v.HEAPU32=l=new Uint32Array(e),v.HEAPF32=se=new Float32Array(e),v.HEAPF64=ie=new Float64Array(e),B=new BigInt64Array(e),et=new BigUint64Array(e)}function yn(){if(v.preRun)for(typeof v.preRun==\"function\"&&(v.preRun=[v.preRun]);v.preRun.length;)jn(v.preRun.shift());at(ot)}function wn(){rt=!0,!v.noFSInit&&!s.initialized&&s.init(),de.init(),he.__wasm_call_ctors(),s.ignorePermissions=!1}function bn(){if(v.postRun)for(typeof v.postRun==\"function\"&&(v.postRun=[v.postRun]);v.postRun.length;)On(v.postRun.shift());at(it)}function ue(e){v.onAbort?.(e),e=\"Aborted(\"+e+\")\",ae(e),$e=!0,e+=\". Build with -sASSERTIONS for more info.\";var r=new WebAssembly.RuntimeError(e);throw Kr?.(r),r}var cr;function Sn(){return v.locateFile?gn(\"AquaApi.wasm\"):new URL(\"AquaApi.wasm\",import.meta.url).href}function Cn(e){if(e==cr&&Fe)return new Uint8Array(Fe);if(Re)return Re(e);throw\"both async and sync fetching of the wasm failed\"}async function kn(e){if(!Fe)try{var r=await ur(e);return new Uint8Array(r)}catch{}return Cn(e)}async function En(e,r){try{var t=await kn(e),n=await WebAssembly.instantiate(t,r);return n}catch(a){ae(`failed to asynchronously prepare wasm: ${a}`),ue(a)}}async function Tn(e,r,t){if(!e)try{var n=fetch(r,{credentials:\"same-origin\"}),a=await WebAssembly.instantiateStreaming(n,t);return a}catch(i){ae(`wasm streaming compile failed: ${i}`),ae(\"falling back to ArrayBuffer instantiation\")}return En(r,t)}function Fn(){return{env:dn,wasi_snapshot_preview1:dn}}async function xn(){function e(i,o){return he=i.exports,Me=he.memory,tt(),Et=he.__indirect_function_table,Ec(he),he}function r(i){return e(i.instance)}var t=Fn();if(v.instantiateWasm)return new Promise((i,o)=>{v.instantiateWasm(t,(u,c)=>{i(e(u,c))})});cr??=Sn();var n=await Tn(Fe,cr,t),a=r(n);return a}class nt{name=\"ExitStatus\";constructor(r){this.message=`Program terminated with exit(${r})`,this.status=r}}var at=e=>{for(;e.length>0;)e.shift()(v)},it=[],On=e=>it.push(e),ot=[],jn=e=>ot.push(e);function Bl(e,r=\"i8\"){switch(r.endsWith(\"*\")&&(r=\"*\"),r){case\"i1\":return W[e];case\"i8\":return W[e];case\"i16\":return D[e>>1];case\"i32\":return T[e>>2];case\"i64\":return B[e>>3];case\"float\":return se[e>>2];case\"double\":return ie[e>>3];case\"*\":return l[e>>2];default:ue(`invalid type for getValue: ${r}`)}}var lr=!0;function st(e,r,t=\"i8\"){switch(t.endsWith(\"*\")&&(t=\"*\"),t){case\"i1\":W[e]=r;break;case\"i8\":W[e]=r;break;case\"i16\":D[e>>1]=r;break;case\"i32\":T[e>>2]=r;break;case\"i64\":B[e>>3]=BigInt(r);break;case\"float\":se[e>>2]=r;break;case\"double\":ie[e>>3]=r;break;case\"*\":l[e>>2]=r;break;default:ue(`invalid type for setValue: ${t}`)}}var S=e=>an(e),b=()=>sn(),Le=[],We=0,An=e=>{var r=new fr(e);return r.get_caught()||(r.set_caught(!0),We--),r.set_rethrown(!1),Le.push(r),cn(e),fn(e)},ce=0,Dn=()=>{E(0,0);var e=Le.pop();un(e.excPtr),ce=0};class fr{constructor(r){this.excPtr=r,this.ptr=r-24}set_type(r){l[this.ptr+4>>2]=r}get_type(){return l[this.ptr+4>>2]}set_destructor(r){l[this.ptr+8>>2]=r}get_destructor(){return l[this.ptr+8>>2]}set_caught(r){r=r?1:0,W[this.ptr+12]=r}get_caught(){return W[this.ptr+12]!=0}set_rethrown(r){r=r?1:0,W[this.ptr+13]=r}get_rethrown(){return W[this.ptr+13]!=0}init(r,t){this.set_adjusted_ptr(0),this.set_type(r),this.set_destructor(t)}set_adjusted_ptr(r){l[this.ptr+16>>2]=r}get_adjusted_ptr(){return l[this.ptr+16>>2]}}var Ue=e=>nn(e),dr=e=>{var r=ce;if(!r)return Ue(0),0;var t=new fr(r);t.set_adjusted_ptr(r);var n=t.get_type();if(!n)return Ue(0),r;for(var a of e){if(a===0||a===n)break;var i=t.ptr+16;if(ln(a,n,i))return Ue(a),r}return Ue(n),r},Pn=()=>dr([]),In=e=>dr([e]),Bn=(e,r)=>dr([e,r]),Rn=()=>{var e=Le.pop();e||ue(\"no exception to throw\");var r=e.excPtr;throw e.get_rethrown()||(Le.push(e),e.set_rethrown(!0),e.set_caught(!1),We++),ce=r,ce},$n=(e,r,t)=>{var n=new fr(e);throw n.init(r,t),ce=e,We++,ce},Gn=()=>We,Mn=e=>{throw ce||(ce=e),ce},Ve=()=>{var e=T[+R.varargs>>2];return R.varargs+=4,e},ye=Ve,I={isAbs:e=>e.charAt(0)===\"/\",splitPath:e=>{var r=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return r.exec(e).slice(1)},normalizeArray:(e,r)=>{for(var t=0,n=e.length-1;n>=0;n--){var a=e[n];a===\".\"?e.splice(n,1):a===\"..\"?(e.splice(n,1),t++):t&&(e.splice(n,1),t--)}if(r)for(;t;t--)e.unshift(\"..\");return e},normalize:e=>{var r=I.isAbs(e),t=e.slice(-1)===\"/\";return e=I.normalizeArray(e.split(\"/\").filter(n=>!!n),!r).join(\"/\"),!e&&!r&&(e=\".\"),e&&t&&(e+=\"/\"),(r?\"/\":\"\")+e},dirname:e=>{var r=I.splitPath(e),t=r[0],n=r[1];return!t&&!n?\".\":(n&&(n=n.slice(0,-1)),t+n)},basename:e=>e&&e.match(/([^\\/]+|\\/)\\/*$/)[1],join:(...e)=>I.normalize(e.join(\"/\")),join2:(e,r)=>I.normalize(e+\"/\"+r)},Ln=()=>e=>crypto.getRandomValues(e),vr=e=>{(vr=Ln())(e)},we={resolve:(...e)=>{for(var r=\"\",t=!1,n=e.length-1;n>=-1&&!t;n--){var a=n>=0?e[n]:s.cwd();if(typeof a!=\"string\")throw new TypeError(\"Arguments to path.resolve must be strings\");if(!a)return\"\";r=a+\"/\"+r,t=I.isAbs(a)}return r=I.normalizeArray(r.split(\"/\").filter(i=>!!i),!t).join(\"/\"),(t?\"/\":\"\")+r||\".\"},relative:(e,r)=>{e=we.resolve(e).slice(1),r=we.resolve(r).slice(1);function t(d){for(var m=0;m<d.length&&d[m]===\"\";m++);for(var p=d.length-1;p>=0&&d[p]===\"\";p--);return m>p?[]:d.slice(m,p-m+1)}for(var n=t(e.split(\"/\")),a=t(r.split(\"/\")),i=Math.min(n.length,a.length),o=i,u=0;u<i;u++)if(n[u]!==a[u]){o=u;break}for(var c=[],u=o;u<n.length;u++)c.push(\"..\");return c=c.concat(a.slice(o)),c.join(\"/\")}},ut=typeof TextDecoder<\"u\"?new TextDecoder:void 0,ct=(e,r,t,n)=>{var a=r+t;if(n)return a;for(;e[r]&&!(r>=a);)++r;return r},be=(e,r=0,t,n)=>{var a=ct(e,r,t,n);if(a-r>16&&e.buffer&&ut)return ut.decode(e.subarray(r,a));for(var i=\"\";r<a;){var o=e[r++];if(!(o&128)){i+=String.fromCharCode(o);continue}var u=e[r++]&63;if((o&224)==192){i+=String.fromCharCode((o&31)<<6|u);continue}var c=e[r++]&63;if((o&240)==224?o=(o&15)<<12|u<<6|c:o=(o&7)<<18|u<<12|c<<6|e[r++]&63,o<65536)i+=String.fromCharCode(o);else{var d=o-65536;i+=String.fromCharCode(55296|d>>10,56320|d&1023)}}return i},mr=[],q=e=>{for(var r=0,t=0;t<e.length;++t){var n=e.charCodeAt(t);n<=127?r++:n<=2047?r+=2:n>=55296&&n<=57343?(r+=4,++t):r+=3}return r},lt=(e,r,t,n)=>{if(!(n>0))return 0;for(var a=t,i=t+n-1,o=0;o<e.length;++o){var u=e.codePointAt(o);if(u<=127){if(t>=i)break;r[t++]=u}else if(u<=2047){if(t+1>=i)break;r[t++]=192|u>>6,r[t++]=128|u&63}else if(u<=65535){if(t+2>=i)break;r[t++]=224|u>>12,r[t++]=128|u>>6&63,r[t++]=128|u&63}else{if(t+3>=i)break;r[t++]=240|u>>18,r[t++]=128|u>>12&63,r[t++]=128|u>>6&63,r[t++]=128|u&63,o++}}return r[t]=0,t-a},pr=(e,r,t)=>{var n=t>0?t:q(e)+1,a=new Array(n),i=lt(e,a,0,a.length);return r&&(a.length=i),a},Wn=()=>{if(!mr.length){var e=null;if(typeof window<\"u\"&&typeof window.prompt==\"function\"&&(e=window.prompt(\"Input: \"),e!==null&&(e+=`\n`)),!e)return null;mr=pr(e,!0)}return mr.shift()},de={ttys:[],init(){},shutdown(){},register(e,r){de.ttys[e]={input:[],output:[],ops:r},s.registerDevice(e,de.stream_ops)},stream_ops:{open(e){var r=de.ttys[e.node.rdev];if(!r)throw new s.ErrnoError(43);e.tty=r,e.seekable=!1},close(e){e.tty.ops.fsync(e.tty)},fsync(e){e.tty.ops.fsync(e.tty)},read(e,r,t,n,a){if(!e.tty||!e.tty.ops.get_char)throw new s.ErrnoError(60);for(var i=0,o=0;o<n;o++){var u;try{u=e.tty.ops.get_char(e.tty)}catch{throw new s.ErrnoError(29)}if(u===void 0&&i===0)throw new s.ErrnoError(6);if(u==null)break;i++,r[t+o]=u}return i&&(e.node.atime=Date.now()),i},write(e,r,t,n,a){if(!e.tty||!e.tty.ops.put_char)throw new s.ErrnoError(60);try{for(var i=0;i<n;i++)e.tty.ops.put_char(e.tty,r[t+i])}catch{throw new s.ErrnoError(29)}return n&&(e.node.mtime=e.node.ctime=Date.now()),i}},default_tty_ops:{get_char(e){return Wn()},put_char(e,r){r===null||r===10?(Te(be(e.output)),e.output=[]):r!=0&&e.output.push(r)},fsync(e){e.output?.length>0&&(Te(be(e.output)),e.output=[])},ioctl_tcgets(e){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(e,r,t){return 0},ioctl_tiocgwinsz(e){return[24,80]}},default_tty1_ops:{put_char(e,r){r===null||r===10?(ae(be(e.output)),e.output=[]):r!=0&&e.output.push(r)},fsync(e){e.output?.length>0&&(ae(be(e.output)),e.output=[])}}},ft=e=>{ue()},j={ops_table:null,mount(e){return j.createNode(null,\"/\",16895,0)},createNode(e,r,t,n){if(s.isBlkdev(t)||s.isFIFO(t))throw new s.ErrnoError(63);j.ops_table||={dir:{node:{getattr:j.node_ops.getattr,setattr:j.node_ops.setattr,lookup:j.node_ops.lookup,mknod:j.node_ops.mknod,rename:j.node_ops.rename,unlink:j.node_ops.unlink,rmdir:j.node_ops.rmdir,readdir:j.node_ops.readdir,symlink:j.node_ops.symlink},stream:{llseek:j.stream_ops.llseek}},file:{node:{getattr:j.node_ops.getattr,setattr:j.node_ops.setattr},stream:{llseek:j.stream_ops.llseek,read:j.stream_ops.read,write:j.stream_ops.write,mmap:j.stream_ops.mmap,msync:j.stream_ops.msync}},link:{node:{getattr:j.node_ops.getattr,setattr:j.node_ops.setattr,readlink:j.node_ops.readlink},stream:{}},chrdev:{node:{getattr:j.node_ops.getattr,setattr:j.node_ops.setattr},stream:s.chrdev_stream_ops}};var a=s.createNode(e,r,t,n);return s.isDir(a.mode)?(a.node_ops=j.ops_table.dir.node,a.stream_ops=j.ops_table.dir.stream,a.contents={}):s.isFile(a.mode)?(a.node_ops=j.ops_table.file.node,a.stream_ops=j.ops_table.file.stream,a.usedBytes=0,a.contents=null):s.isLink(a.mode)?(a.node_ops=j.ops_table.link.node,a.stream_ops=j.ops_table.link.stream):s.isChrdev(a.mode)&&(a.node_ops=j.ops_table.chrdev.node,a.stream_ops=j.ops_table.chrdev.stream),a.atime=a.mtime=a.ctime=Date.now(),e&&(e.contents[r]=a,e.atime=e.mtime=e.ctime=a.atime),a},getFileDataAsTypedArray(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0)},expandFileStorage(e,r){var t=e.contents?e.contents.length:0;if(!(t>=r)){var n=1024*1024;r=Math.max(r,t*(t<n?2:1.125)>>>0),t!=0&&(r=Math.max(r,256));var a=e.contents;e.contents=new Uint8Array(r),e.usedBytes>0&&e.contents.set(a.subarray(0,e.usedBytes),0)}},resizeFileStorage(e,r){if(e.usedBytes!=r)if(r==0)e.contents=null,e.usedBytes=0;else{var t=e.contents;e.contents=new Uint8Array(r),t&&e.contents.set(t.subarray(0,Math.min(r,e.usedBytes))),e.usedBytes=r}},node_ops:{getattr(e){var r={};return r.dev=s.isChrdev(e.mode)?e.id:1,r.ino=e.id,r.mode=e.mode,r.nlink=1,r.uid=0,r.gid=0,r.rdev=e.rdev,s.isDir(e.mode)?r.size=4096:s.isFile(e.mode)?r.size=e.usedBytes:s.isLink(e.mode)?r.size=e.link.length:r.size=0,r.atime=new Date(e.atime),r.mtime=new Date(e.mtime),r.ctime=new Date(e.ctime),r.blksize=4096,r.blocks=Math.ceil(r.size/r.blksize),r},setattr(e,r){for(const t of[\"mode\",\"atime\",\"mtime\",\"ctime\"])r[t]!=null&&(e[t]=r[t]);r.size!==void 0&&j.resizeFileStorage(e,r.size)},lookup(e,r){throw j.doesNotExistError||(j.doesNotExistError=new s.ErrnoError(44),j.doesNotExistError.stack=\"<generic error, no stack>\"),j.doesNotExistError},mknod(e,r,t,n){return j.createNode(e,r,t,n)},rename(e,r,t){var n;try{n=s.lookupNode(r,t)}catch{}if(n){if(s.isDir(e.mode))for(var a in n.contents)throw new s.ErrnoError(55);s.hashRemoveNode(n)}delete e.parent.contents[e.name],r.contents[t]=e,e.name=t,r.ctime=r.mtime=e.parent.ctime=e.parent.mtime=Date.now()},unlink(e,r){delete e.contents[r],e.ctime=e.mtime=Date.now()},rmdir(e,r){var t=s.lookupNode(e,r);for(var n in t.contents)throw new s.ErrnoError(55);delete e.contents[r],e.ctime=e.mtime=Date.now()},readdir(e){return[\".\",\"..\",...Object.keys(e.contents)]},symlink(e,r,t){var n=j.createNode(e,r,41471,0);return n.link=t,n},readlink(e){if(!s.isLink(e.mode))throw new s.ErrnoError(28);return e.link}},stream_ops:{read(e,r,t,n,a){var i=e.node.contents;if(a>=e.node.usedBytes)return 0;var o=Math.min(e.node.usedBytes-a,n);if(o>8&&i.subarray)r.set(i.subarray(a,a+o),t);else for(var u=0;u<o;u++)r[t+u]=i[a+u];return o},write(e,r,t,n,a,i){if(r.buffer===W.buffer&&(i=!1),!n)return 0;var o=e.node;if(o.mtime=o.ctime=Date.now(),r.subarray&&(!o.contents||o.contents.subarray)){if(i)return o.contents=r.subarray(t,t+n),o.usedBytes=n,n;if(o.usedBytes===0&&a===0)return o.contents=r.slice(t,t+n),o.usedBytes=n,n;if(a+n<=o.usedBytes)return o.contents.set(r.subarray(t,t+n),a),n}if(j.expandFileStorage(o,a+n),o.contents.subarray&&r.subarray)o.contents.set(r.subarray(t,t+n),a);else for(var u=0;u<n;u++)o.contents[a+u]=r[t+u];return o.usedBytes=Math.max(o.usedBytes,a+n),n},llseek(e,r,t){var n=r;if(t===1?n+=e.position:t===2&&s.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new s.ErrnoError(28);return n},mmap(e,r,t,n,a){if(!s.isFile(e.node.mode))throw new s.ErrnoError(43);var i,o,u=e.node.contents;if(!(a&2)&&u&&u.buffer===W.buffer)o=!1,i=u.byteOffset;else{if(o=!0,i=ft(r),!i)throw new s.ErrnoError(48);u&&((t>0||t+r<u.length)&&(u.subarray?u=u.subarray(t,t+r):u=Array.prototype.slice.call(u,t,t+r)),W.set(u,i))}return{ptr:i,allocated:o}},msync(e,r,t,n,a){return j.stream_ops.write(e,r,0,n,t,!1),0}}},Un=e=>{var r={r:0,\"r+\":2,w:577,\"w+\":578,a:1089,\"a+\":1090},t=r[e];if(typeof t>\"u\")throw new Error(`Unknown file open mode: ${e}`);return t},_r=(e,r)=>{var t=0;return e&&(t|=365),r&&(t|=146),t},Vn=async e=>{var r=await ur(e);return new Uint8Array(r)},Nn=(...e)=>s.createDataFile(...e),Jn=e=>e,pe=0,xe=null,dt=e=>{if(pe--,v.monitorRunDependencies?.(pe),pe==0&&xe){var r=xe;xe=null,r()}},vt=e=>{pe++,v.monitorRunDependencies?.(pe)},mt=[],zn=async(e,r)=>{typeof Browser<\"u\"&&Browser.init();for(var t of mt)if(t.canHandle(r))return t.handle(e,r);return e},pt=async(e,r,t,n,a,i,o,u)=>{var c=r?we.resolve(I.join2(e,r)):e,d=Jn(`cp ${c}`);vt(d);try{var m=t;typeof t==\"string\"&&(m=await Vn(t)),m=await zn(m,c),u?.(),i||Nn(e,r,m,n,a,o)}finally{dt(d)}},qn=(e,r,t,n,a,i,o,u,c,d)=>{pt(e,r,t,n,a,u,c,d).then(i).catch(o)},s={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:\"/\",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name=\"ErrnoError\";constructor(e){this.errno=e}},FSStream:class{shared={};get object(){return this.node}set object(e){this.node=e}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(e){this.shared.flags=e}get position(){return this.shared.position}set position(e){this.shared.position=e}},FSNode:class{node_ops={};stream_ops={};readMode=365;writeMode=146;mounted=null;constructor(e,r,t,n){e||(e=this),this.parent=e,this.mount=e.mount,this.id=s.nextInode++,this.name=r,this.mode=t,this.rdev=n,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(e){e?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(e){e?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return s.isDir(this.mode)}get isDevice(){return s.isChrdev(this.mode)}},lookupPath(e,r={}){if(!e)throw new s.ErrnoError(44);r.follow_mount??=!0,I.isAbs(e)||(e=s.cwd()+\"/\"+e);e:for(var t=0;t<40;t++){for(var n=e.split(\"/\").filter(d=>!!d),a=s.root,i=\"/\",o=0;o<n.length;o++){var u=o===n.length-1;if(u&&r.parent)break;if(n[o]!==\".\"){if(n[o]===\"..\"){if(i=I.dirname(i),s.isRoot(a)){e=i+\"/\"+n.slice(o+1).join(\"/\"),t--;continue e}else a=a.parent;continue}i=I.join2(i,n[o]);try{a=s.lookupNode(a,n[o])}catch(d){if(d?.errno===44&&u&&r.noent_okay)return{path:i};throw d}if(s.isMountpoint(a)&&(!u||r.follow_mount)&&(a=a.mounted.root),s.isLink(a.mode)&&(!u||r.follow)){if(!a.node_ops.readlink)throw new s.ErrnoError(52);var c=a.node_ops.readlink(a);I.isAbs(c)||(c=I.dirname(i)+\"/\"+c),e=c+\"/\"+n.slice(o+1).join(\"/\");continue e}}}return{path:i,node:a}}throw new s.ErrnoError(32)},getPath(e){for(var r;;){if(s.isRoot(e)){var t=e.mount.mountpoint;return r?t[t.length-1]!==\"/\"?`${t}/${r}`:t+r:t}r=r?`${e.name}/${r}`:e.name,e=e.parent}},hashName(e,r){for(var t=0,n=0;n<r.length;n++)t=(t<<5)-t+r.charCodeAt(n)|0;return(e+t>>>0)%s.nameTable.length},hashAddNode(e){var r=s.hashName(e.parent.id,e.name);e.name_next=s.nameTable[r],s.nameTable[r]=e},hashRemoveNode(e){var r=s.hashName(e.parent.id,e.name);if(s.nameTable[r]===e)s.nameTable[r]=e.name_next;else for(var t=s.nameTable[r];t;){if(t.name_next===e){t.name_next=e.name_next;break}t=t.name_next}},lookupNode(e,r){var t=s.mayLookup(e);if(t)throw new s.ErrnoError(t);for(var n=s.hashName(e.id,r),a=s.nameTable[n];a;a=a.name_next){var i=a.name;if(a.parent.id===e.id&&i===r)return a}return s.lookup(e,r)},createNode(e,r,t,n){var a=new s.FSNode(e,r,t,n);return s.hashAddNode(a),a},destroyNode(e){s.hashRemoveNode(e)},isRoot(e){return e===e.parent},isMountpoint(e){return!!e.mounted},isFile(e){return(e&61440)===32768},isDir(e){return(e&61440)===16384},isLink(e){return(e&61440)===40960},isChrdev(e){return(e&61440)===8192},isBlkdev(e){return(e&61440)===24576},isFIFO(e){return(e&61440)===4096},isSocket(e){return(e&49152)===49152},flagsToPermissionString(e){var r=[\"r\",\"w\",\"rw\"][e&3];return e&512&&(r+=\"w\"),r},nodePermissions(e,r){return s.ignorePermissions?0:r.includes(\"r\")&&!(e.mode&292)||r.includes(\"w\")&&!(e.mode&146)||r.includes(\"x\")&&!(e.mode&73)?2:0},mayLookup(e){if(!s.isDir(e.mode))return 54;var r=s.nodePermissions(e,\"x\");return r||(e.node_ops.lookup?0:2)},mayCreate(e,r){if(!s.isDir(e.mode))return 54;try{var t=s.lookupNode(e,r);return 20}catch{}return s.nodePermissions(e,\"wx\")},mayDelete(e,r,t){var n;try{n=s.lookupNode(e,r)}catch(i){return i.errno}var a=s.nodePermissions(e,\"wx\");if(a)return a;if(t){if(!s.isDir(n.mode))return 54;if(s.isRoot(n)||s.getPath(n)===s.cwd())return 10}else if(s.isDir(n.mode))return 31;return 0},mayOpen(e,r){return e?s.isLink(e.mode)?32:s.isDir(e.mode)&&(s.flagsToPermissionString(r)!==\"r\"||r&576)?31:s.nodePermissions(e,s.flagsToPermissionString(r)):44},checkOpExists(e,r){if(!e)throw new s.ErrnoError(r);return e},MAX_OPEN_FDS:4096,nextfd(){for(var e=0;e<=s.MAX_OPEN_FDS;e++)if(!s.streams[e])return e;throw new s.ErrnoError(33)},getStreamChecked(e){var r=s.getStream(e);if(!r)throw new s.ErrnoError(8);return r},getStream:e=>s.streams[e],createStream(e,r=-1){return e=Object.assign(new s.FSStream,e),r==-1&&(r=s.nextfd()),e.fd=r,s.streams[r]=e,e},closeStream(e){s.streams[e]=null},dupStream(e,r=-1){var t=s.createStream(e,r);return t.stream_ops?.dup?.(t),t},doSetAttr(e,r,t){var n=e?.stream_ops.setattr,a=n?e:r;n??=r.node_ops.setattr,s.checkOpExists(n,63),n(a,t)},chrdev_stream_ops:{open(e){var r=s.getDevice(e.node.rdev);e.stream_ops=r.stream_ops,e.stream_ops.open?.(e)},llseek(){throw new s.ErrnoError(70)}},major:e=>e>>8,minor:e=>e&255,makedev:(e,r)=>e<<8|r,registerDevice(e,r){s.devices[e]={stream_ops:r}},getDevice:e=>s.devices[e],getMounts(e){for(var r=[],t=[e];t.length;){var n=t.pop();r.push(n),t.push(...n.mounts)}return r},syncfs(e,r){typeof e==\"function\"&&(r=e,e=!1),s.syncFSRequests++,s.syncFSRequests>1&&ae(`warning: ${s.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var t=s.getMounts(s.root.mount),n=0;function a(o){return s.syncFSRequests--,r(o)}function i(o){if(o)return i.errored?void 0:(i.errored=!0,a(o));++n>=t.length&&a(null)}t.forEach(o=>{if(!o.type.syncfs)return i(null);o.type.syncfs(o,e,i)})},mount(e,r,t){var n=t===\"/\",a=!t,i;if(n&&s.root)throw new s.ErrnoError(10);if(!n&&!a){var o=s.lookupPath(t,{follow_mount:!1});if(t=o.path,i=o.node,s.isMountpoint(i))throw new s.ErrnoError(10);if(!s.isDir(i.mode))throw new s.ErrnoError(54)}var u={type:e,opts:r,mountpoint:t,mounts:[]},c=e.mount(u);return c.mount=u,u.root=c,n?s.root=c:i&&(i.mounted=u,i.mount&&i.mount.mounts.push(u)),c},unmount(e){var r=s.lookupPath(e,{follow_mount:!1});if(!s.isMountpoint(r.node))throw new s.ErrnoError(28);var t=r.node,n=t.mounted,a=s.getMounts(n);Object.keys(s.nameTable).forEach(o=>{for(var u=s.nameTable[o];u;){var c=u.name_next;a.includes(u.mount)&&s.destroyNode(u),u=c}}),t.mounted=null;var i=t.mount.mounts.indexOf(n);t.mount.mounts.splice(i,1)},lookup(e,r){return e.node_ops.lookup(e,r)},mknod(e,r,t){var n=s.lookupPath(e,{parent:!0}),a=n.node,i=I.basename(e);if(!i)throw new s.ErrnoError(28);if(i===\".\"||i===\"..\")throw new s.ErrnoError(20);var o=s.mayCreate(a,i);if(o)throw new s.ErrnoError(o);if(!a.node_ops.mknod)throw new s.ErrnoError(63);return a.node_ops.mknod(a,i,r,t)},statfs(e){return s.statfsNode(s.lookupPath(e,{follow:!0}).node)},statfsStream(e){return s.statfsNode(e.node)},statfsNode(e){var r={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:s.nextInode,ffree:s.nextInode-1,fsid:42,flags:2,namelen:255};return e.node_ops.statfs&&Object.assign(r,e.node_ops.statfs(e.mount.opts.root)),r},create(e,r=438){return r&=4095,r|=32768,s.mknod(e,r,0)},mkdir(e,r=511){return r&=1023,r|=16384,s.mknod(e,r,0)},mkdirTree(e,r){var t=e.split(\"/\"),n=\"\";for(var a of t)if(a){(n||I.isAbs(e))&&(n+=\"/\"),n+=a;try{s.mkdir(n,r)}catch(i){if(i.errno!=20)throw i}}},mkdev(e,r,t){return typeof t>\"u\"&&(t=r,r=438),r|=8192,s.mknod(e,r,t)},symlink(e,r){if(!we.resolve(e))throw new s.ErrnoError(44);var t=s.lookupPath(r,{parent:!0}),n=t.node;if(!n)throw new s.ErrnoError(44);var a=I.basename(r),i=s.mayCreate(n,a);if(i)throw new s.ErrnoError(i);if(!n.node_ops.symlink)throw new s.ErrnoError(63);return n.node_ops.symlink(n,a,e)},rename(e,r){var t=I.dirname(e),n=I.dirname(r),a=I.basename(e),i=I.basename(r),o,u,c;if(o=s.lookupPath(e,{parent:!0}),u=o.node,o=s.lookupPath(r,{parent:!0}),c=o.node,!u||!c)throw new s.ErrnoError(44);if(u.mount!==c.mount)throw new s.ErrnoError(75);var d=s.lookupNode(u,a),m=we.relative(e,n);if(m.charAt(0)!==\".\")throw new s.ErrnoError(28);if(m=we.relative(r,t),m.charAt(0)!==\".\")throw new s.ErrnoError(55);var p;try{p=s.lookupNode(c,i)}catch{}if(d!==p){var h=s.isDir(d.mode),y=s.mayDelete(u,a,h);if(y)throw new s.ErrnoError(y);if(y=p?s.mayDelete(c,i,h):s.mayCreate(c,i),y)throw new s.ErrnoError(y);if(!u.node_ops.rename)throw new s.ErrnoError(63);if(s.isMountpoint(d)||p&&s.isMountpoint(p))throw new s.ErrnoError(10);if(c!==u&&(y=s.nodePermissions(u,\"w\"),y))throw new s.ErrnoError(y);s.hashRemoveNode(d);try{u.node_ops.rename(d,c,i),d.parent=c}catch(_){throw _}finally{s.hashAddNode(d)}}},rmdir(e){var r=s.lookupPath(e,{parent:!0}),t=r.node,n=I.basename(e),a=s.lookupNode(t,n),i=s.mayDelete(t,n,!0);if(i)throw new s.ErrnoError(i);if(!t.node_ops.rmdir)throw new s.ErrnoError(63);if(s.isMountpoint(a))throw new s.ErrnoError(10);t.node_ops.rmdir(t,n),s.destroyNode(a)},readdir(e){var r=s.lookupPath(e,{follow:!0}),t=r.node,n=s.checkOpExists(t.node_ops.readdir,54);return n(t)},unlink(e){var r=s.lookupPath(e,{parent:!0}),t=r.node;if(!t)throw new s.ErrnoError(44);var n=I.basename(e),a=s.lookupNode(t,n),i=s.mayDelete(t,n,!1);if(i)throw new s.ErrnoError(i);if(!t.node_ops.unlink)throw new s.ErrnoError(63);if(s.isMountpoint(a))throw new s.ErrnoError(10);t.node_ops.unlink(t,n),s.destroyNode(a)},readlink(e){var r=s.lookupPath(e),t=r.node;if(!t)throw new s.ErrnoError(44);if(!t.node_ops.readlink)throw new s.ErrnoError(28);return t.node_ops.readlink(t)},stat(e,r){var t=s.lookupPath(e,{follow:!r}),n=t.node,a=s.checkOpExists(n.node_ops.getattr,63);return a(n)},fstat(e){var r=s.getStreamChecked(e),t=r.node,n=r.stream_ops.getattr,a=n?r:t;return n??=t.node_ops.getattr,s.checkOpExists(n,63),n(a)},lstat(e){return s.stat(e,!0)},doChmod(e,r,t,n){s.doSetAttr(e,r,{mode:t&4095|r.mode&-4096,ctime:Date.now(),dontFollow:n})},chmod(e,r,t){var n;if(typeof e==\"string\"){var a=s.lookupPath(e,{follow:!t});n=a.node}else n=e;s.doChmod(null,n,r,t)},lchmod(e,r){s.chmod(e,r,!0)},fchmod(e,r){var t=s.getStreamChecked(e);s.doChmod(t,t.node,r,!1)},doChown(e,r,t){s.doSetAttr(e,r,{timestamp:Date.now(),dontFollow:t})},chown(e,r,t,n){var a;if(typeof e==\"string\"){var i=s.lookupPath(e,{follow:!n});a=i.node}else a=e;s.doChown(null,a,n)},lchown(e,r,t){s.chown(e,r,t,!0)},fchown(e,r,t){var n=s.getStreamChecked(e);s.doChown(n,n.node,!1)},doTruncate(e,r,t){if(s.isDir(r.mode))throw new s.ErrnoError(31);if(!s.isFile(r.mode))throw new s.ErrnoError(28);var n=s.nodePermissions(r,\"w\");if(n)throw new s.ErrnoError(n);s.doSetAttr(e,r,{size:t,timestamp:Date.now()})},truncate(e,r){if(r<0)throw new s.ErrnoError(28);var t;if(typeof e==\"string\"){var n=s.lookupPath(e,{follow:!0});t=n.node}else t=e;s.doTruncate(null,t,r)},ftruncate(e,r){var t=s.getStreamChecked(e);if(r<0||(t.flags&2097155)===0)throw new s.ErrnoError(28);s.doTruncate(t,t.node,r)},utime(e,r,t){var n=s.lookupPath(e,{follow:!0}),a=n.node,i=s.checkOpExists(a.node_ops.setattr,63);i(a,{atime:r,mtime:t})},open(e,r,t=438){if(e===\"\")throw new s.ErrnoError(44);r=typeof r==\"string\"?Un(r):r,r&64?t=t&4095|32768:t=0;var n,a;if(typeof e==\"object\")n=e;else{a=e.endsWith(\"/\");var i=s.lookupPath(e,{follow:!(r&131072),noent_okay:!0});n=i.node,e=i.path}var o=!1;if(r&64)if(n){if(r&128)throw new s.ErrnoError(20)}else{if(a)throw new s.ErrnoError(31);n=s.mknod(e,t|511,0),o=!0}if(!n)throw new s.ErrnoError(44);if(s.isChrdev(n.mode)&&(r&=-513),r&65536&&!s.isDir(n.mode))throw new s.ErrnoError(54);if(!o){var u=s.mayOpen(n,r);if(u)throw new s.ErrnoError(u)}r&512&&!o&&s.truncate(n,0),r&=-131713;var c=s.createStream({node:n,path:s.getPath(n),flags:r,seekable:!0,position:0,stream_ops:n.stream_ops,ungotten:[],error:!1});return c.stream_ops.open&&c.stream_ops.open(c),o&&s.chmod(n,t&511),v.logReadFiles&&!(r&1)&&(e in s.readFiles||(s.readFiles[e]=1)),c},close(e){if(s.isClosed(e))throw new s.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(r){throw r}finally{s.closeStream(e.fd)}e.fd=null},isClosed(e){return e.fd===null},llseek(e,r,t){if(s.isClosed(e))throw new s.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new s.ErrnoError(70);if(t!=0&&t!=1&&t!=2)throw new s.ErrnoError(28);return e.position=e.stream_ops.llseek(e,r,t),e.ungotten=[],e.position},read(e,r,t,n,a){if(n<0||a<0)throw new s.ErrnoError(28);if(s.isClosed(e))throw new s.ErrnoError(8);if((e.flags&2097155)===1)throw new s.ErrnoError(8);if(s.isDir(e.node.mode))throw new s.ErrnoError(31);if(!e.stream_ops.read)throw new s.ErrnoError(28);var i=typeof a<\"u\";if(!i)a=e.position;else if(!e.seekable)throw new s.ErrnoError(70);var o=e.stream_ops.read(e,r,t,n,a);return i||(e.position+=o),o},write(e,r,t,n,a,i){if(n<0||a<0)throw new s.ErrnoError(28);if(s.isClosed(e))throw new s.ErrnoError(8);if((e.flags&2097155)===0)throw new s.ErrnoError(8);if(s.isDir(e.node.mode))throw new s.ErrnoError(31);if(!e.stream_ops.write)throw new s.ErrnoError(28);e.seekable&&e.flags&1024&&s.llseek(e,0,2);var o=typeof a<\"u\";if(!o)a=e.position;else if(!e.seekable)throw new s.ErrnoError(70);var u=e.stream_ops.write(e,r,t,n,a,i);return o||(e.position+=u),u},mmap(e,r,t,n,a){if((n&2)!==0&&(a&2)===0&&(e.flags&2097155)!==2)throw new s.ErrnoError(2);if((e.flags&2097155)===1)throw new s.ErrnoError(2);if(!e.stream_ops.mmap)throw new s.ErrnoError(43);if(!r)throw new s.ErrnoError(28);return e.stream_ops.mmap(e,r,t,n,a)},msync(e,r,t,n,a){return e.stream_ops.msync?e.stream_ops.msync(e,r,t,n,a):0},ioctl(e,r,t){if(!e.stream_ops.ioctl)throw new s.ErrnoError(59);return e.stream_ops.ioctl(e,r,t)},readFile(e,r={}){if(r.flags=r.flags||0,r.encoding=r.encoding||\"binary\",r.encoding!==\"utf8\"&&r.encoding!==\"binary\")throw new Error(`Invalid encoding type \"${r.encoding}\"`);var t=s.open(e,r.flags),n=s.stat(e),a=n.size,i=new Uint8Array(a);return s.read(t,i,0,a,0),r.encoding===\"utf8\"&&(i=be(i)),s.close(t),i},writeFile(e,r,t={}){t.flags=t.flags||577;var n=s.open(e,t.flags,t.mode);if(typeof r==\"string\"&&(r=new Uint8Array(pr(r,!0))),ArrayBuffer.isView(r))s.write(n,r,0,r.byteLength,void 0,t.canOwn);else throw new Error(\"Unsupported data type\");s.close(n)},cwd:()=>s.currentPath,chdir(e){var r=s.lookupPath(e,{follow:!0});if(r.node===null)throw new s.ErrnoError(44);if(!s.isDir(r.node.mode))throw new s.ErrnoError(54);var t=s.nodePermissions(r.node,\"x\");if(t)throw new s.ErrnoError(t);s.currentPath=r.path},createDefaultDirectories(){s.mkdir(\"/tmp\"),s.mkdir(\"/home\"),s.mkdir(\"/home/web_user\")},createDefaultDevices(){s.mkdir(\"/dev\"),s.registerDevice(s.makedev(1,3),{read:()=>0,write:(n,a,i,o,u)=>o,llseek:()=>0}),s.mkdev(\"/dev/null\",s.makedev(1,3)),de.register(s.makedev(5,0),de.default_tty_ops),de.register(s.makedev(6,0),de.default_tty1_ops),s.mkdev(\"/dev/tty\",s.makedev(5,0)),s.mkdev(\"/dev/tty1\",s.makedev(6,0));var e=new Uint8Array(1024),r=0,t=()=>(r===0&&(vr(e),r=e.byteLength),e[--r]);s.createDevice(\"/dev\",\"random\",t),s.createDevice(\"/dev\",\"urandom\",t),s.mkdir(\"/dev/shm\"),s.mkdir(\"/dev/shm/tmp\")},createSpecialDirectories(){s.mkdir(\"/proc\");var e=s.mkdir(\"/proc/self\");s.mkdir(\"/proc/self/fd\"),s.mount({mount(){var r=s.createNode(e,\"fd\",16895,73);return r.stream_ops={llseek:j.stream_ops.llseek},r.node_ops={lookup(t,n){var a=+n,i=s.getStreamChecked(a),o={parent:null,mount:{mountpoint:\"fake\"},node_ops:{readlink:()=>i.path},id:a+1};return o.parent=o,o},readdir(){return Array.from(s.streams.entries()).filter(([t,n])=>n).map(([t,n])=>t.toString())}},r}},{},\"/proc/self/fd\")},createStandardStreams(e,r,t){e?s.createDevice(\"/dev\",\"stdin\",e):s.symlink(\"/dev/tty\",\"/dev/stdin\"),r?s.createDevice(\"/dev\",\"stdout\",null,r):s.symlink(\"/dev/tty\",\"/dev/stdout\"),t?s.createDevice(\"/dev\",\"stderr\",null,t):s.symlink(\"/dev/tty1\",\"/dev/stderr\");var n=s.open(\"/dev/stdin\",0),a=s.open(\"/dev/stdout\",1),i=s.open(\"/dev/stderr\",1)},staticInit(){s.nameTable=new Array(4096),s.mount(j,{},\"/\"),s.createDefaultDirectories(),s.createDefaultDevices(),s.createSpecialDirectories(),s.filesystems={MEMFS:j}},init(e,r,t){s.initialized=!0,e??=v.stdin,r??=v.stdout,t??=v.stderr,s.createStandardStreams(e,r,t)},quit(){s.initialized=!1;for(var e of s.streams)e&&s.close(e)},findObject(e,r){var t=s.analyzePath(e,r);return t.exists?t.object:null},analyzePath(e,r){try{var t=s.lookupPath(e,{follow:!r});e=t.path}catch{}var n={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var t=s.lookupPath(e,{parent:!0});n.parentExists=!0,n.parentPath=t.path,n.parentObject=t.node,n.name=I.basename(e),t=s.lookupPath(e,{follow:!r}),n.exists=!0,n.path=t.path,n.object=t.node,n.name=t.node.name,n.isRoot=t.path===\"/\"}catch(a){n.error=a.errno}return n},createPath(e,r,t,n){e=typeof e==\"string\"?e:s.getPath(e);for(var a=r.split(\"/\").reverse();a.length;){var i=a.pop();if(i){var o=I.join2(e,i);try{s.mkdir(o)}catch(u){if(u.errno!=20)throw u}e=o}}return o},createFile(e,r,t,n,a){var i=I.join2(typeof e==\"string\"?e:s.getPath(e),r),o=_r(n,a);return s.create(i,o)},createDataFile(e,r,t,n,a,i){var o=r;e&&(e=typeof e==\"string\"?e:s.getPath(e),o=r?I.join2(e,r):e);var u=_r(n,a),c=s.create(o,u);if(t){if(typeof t==\"string\"){for(var d=new Array(t.length),m=0,p=t.length;m<p;++m)d[m]=t.charCodeAt(m);t=d}s.chmod(c,u|146);var h=s.open(c,577);s.write(h,t,0,t.length,0,i),s.close(h),s.chmod(c,u)}},createDevice(e,r,t,n){var a=I.join2(typeof e==\"string\"?e:s.getPath(e),r),i=_r(!!t,!!n);s.createDevice.major??=64;var o=s.makedev(s.createDevice.major++,0);return s.registerDevice(o,{open(u){u.seekable=!1},close(u){n?.buffer?.length&&n(10)},read(u,c,d,m,p){for(var h=0,y=0;y<m;y++){var _;try{_=t()}catch{throw new s.ErrnoError(29)}if(_===void 0&&h===0)throw new s.ErrnoError(6);if(_==null)break;h++,c[d+y]=_}return h&&(u.node.atime=Date.now()),h},write(u,c,d,m,p){for(var h=0;h<m;h++)try{n(c[d+h])}catch{throw new s.ErrnoError(29)}return m&&(u.node.mtime=u.node.ctime=Date.now()),h}}),s.mkdev(a,i,o)},forceLoadFile(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if(typeof XMLHttpRequest<\"u\")throw new Error(\"Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.\");try{e.contents=Re(e.url)}catch{throw new s.ErrnoError(29)}},createLazyFile(e,r,t,n,a){class i{lengthKnown=!1;chunks=[];get(y){if(!(y>this.length-1||y<0)){var _=y%this.chunkSize,w=y/this.chunkSize|0;return this.getter(w)[_]}}setDataGetter(y){this.getter=y}cacheLength(){var y=new XMLHttpRequest;if(y.open(\"HEAD\",t,!1),y.send(null),!(y.status>=200&&y.status<300||y.status===304))throw new Error(\"Couldn't load \"+t+\". Status: \"+y.status);var _=Number(y.getResponseHeader(\"Content-length\")),w,g=(w=y.getResponseHeader(\"Accept-Ranges\"))&&w===\"bytes\",k=(w=y.getResponseHeader(\"Content-Encoding\"))&&w===\"gzip\",x=1024*1024;g||(x=_);var O=(Q,F)=>{if(Q>F)throw new Error(\"invalid range (\"+Q+\", \"+F+\") or no bytes requested!\");if(F>_-1)throw new Error(\"only \"+_+\" bytes available! programmer error!\");var $=new XMLHttpRequest;if($.open(\"GET\",t,!1),_!==x&&$.setRequestHeader(\"Range\",\"bytes=\"+Q+\"-\"+F),$.responseType=\"arraybuffer\",$.overrideMimeType&&$.overrideMimeType(\"text/plain; charset=x-user-defined\"),$.send(null),!($.status>=200&&$.status<300||$.status===304))throw new Error(\"Couldn't load \"+t+\". Status: \"+$.status);return $.response!==void 0?new Uint8Array($.response||[]):pr($.responseText||\"\",!0)},N=this;N.setDataGetter(Q=>{var F=Q*x,$=(Q+1)*x-1;if($=Math.min($,_-1),typeof N.chunks[Q]>\"u\"&&(N.chunks[Q]=O(F,$)),typeof N.chunks[Q]>\"u\")throw new Error(\"doXHR failed!\");return N.chunks[Q]}),(k||!_)&&(x=_=1,_=this.getter(0).length,x=_,Te(\"LazyFiles on gzip forces download of the whole file when length is accessed\")),this._length=_,this._chunkSize=x,this.lengthKnown=!0}get length(){return this.lengthKnown||this.cacheLength(),this._length}get chunkSize(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}if(typeof XMLHttpRequest<\"u\"){if(!Ee)throw\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";var o=new i,u={isDevice:!1,contents:o}}else var u={isDevice:!1,url:t};var c=s.createFile(e,r,u,n,a);u.contents?c.contents=u.contents:u.url&&(c.contents=null,c.url=u.url),Object.defineProperties(c,{usedBytes:{get:function(){return this.contents.length}}});var d={},m=Object.keys(c.stream_ops);m.forEach(h=>{var y=c.stream_ops[h];d[h]=(..._)=>(s.forceLoadFile(c),y(..._))});function p(h,y,_,w,g){var k=h.node.contents;if(g>=k.length)return 0;var x=Math.min(k.length-g,w);if(k.slice)for(var O=0;O<x;O++)y[_+O]=k[g+O];else for(var O=0;O<x;O++)y[_+O]=k.get(g+O);return x}return d.read=(h,y,_,w,g)=>(s.forceLoadFile(c),p(h,y,_,w,g)),d.mmap=(h,y,_,w,g)=>{s.forceLoadFile(c);var k=ft(y);if(!k)throw new s.ErrnoError(48);return p(h,W,k,y,_),{ptr:k,allocated:!0}},c.stream_ops=d,c}},P=(e,r,t)=>e?be(L,e,r,t):\"\",R={DEFAULT_POLLMASK:5,calculateAt(e,r,t){if(I.isAbs(r))return r;var n;if(e===-100)n=s.cwd();else{var a=R.getStreamFromFD(e);n=a.path}if(r.length==0){if(!t)throw new s.ErrnoError(44);return n}return n+\"/\"+r},writeStat(e,r){l[e>>2]=r.dev,l[e+4>>2]=r.mode,l[e+8>>2]=r.nlink,l[e+12>>2]=r.uid,l[e+16>>2]=r.gid,l[e+20>>2]=r.rdev,B[e+24>>3]=BigInt(r.size),T[e+32>>2]=4096,T[e+36>>2]=r.blocks;var t=r.atime.getTime(),n=r.mtime.getTime(),a=r.ctime.getTime();return B[e+40>>3]=BigInt(Math.floor(t/1e3)),l[e+48>>2]=t%1e3*1e3*1e3,B[e+56>>3]=BigInt(Math.floor(n/1e3)),l[e+64>>2]=n%1e3*1e3*1e3,B[e+72>>3]=BigInt(Math.floor(a/1e3)),l[e+80>>2]=a%1e3*1e3*1e3,B[e+88>>3]=BigInt(r.ino),0},writeStatFs(e,r){l[e+4>>2]=r.bsize,l[e+60>>2]=r.bsize,B[e+8>>3]=BigInt(r.blocks),B[e+16>>3]=BigInt(r.bfree),B[e+24>>3]=BigInt(r.bavail),B[e+32>>3]=BigInt(r.files),B[e+40>>3]=BigInt(r.ffree),l[e+48>>2]=r.fsid,l[e+64>>2]=r.flags,l[e+56>>2]=r.namelen},doMsync(e,r,t,n,a){if(!s.isFile(r.node.mode))throw new s.ErrnoError(43);if(n&2)return 0;var i=L.slice(e,e+t);s.msync(r,i,a,t,n)},getStreamFromFD(e){var r=s.getStreamChecked(e);return r},varargs:void 0,getStr(e){var r=P(e);return r}};function Hn(e,r,t){R.varargs=t;try{var n=R.getStreamFromFD(e);switch(r){case 0:{var a=Ve();if(a<0)return-28;for(;s.streams[a];)a++;var i;return i=s.dupStream(n,a),i.fd}case 1:case 2:return 0;case 3:return n.flags;case 4:{var a=Ve();return n.flags|=a,0}case 12:{var a=ye(),o=0;return D[a+o>>1]=2,0}case 13:case 14:return 0}return-28}catch(u){if(typeof s>\"u\"||u.name!==\"ErrnoError\")throw u;return-u.errno}}function Qn(e,r){try{return R.writeStat(r,s.fstat(e))}catch(t){if(typeof s>\"u\"||t.name!==\"ErrnoError\")throw t;return-t.errno}}function Zn(e,r,t){R.varargs=t;try{var n=R.getStreamFromFD(e);switch(r){case 21509:return n.tty?0:-59;case 21505:{if(!n.tty)return-59;if(n.tty.ops.ioctl_tcgets){var a=n.tty.ops.ioctl_tcgets(n),i=ye();T[i>>2]=a.c_iflag||0,T[i+4>>2]=a.c_oflag||0,T[i+8>>2]=a.c_cflag||0,T[i+12>>2]=a.c_lflag||0;for(var o=0;o<32;o++)W[i+o+17]=a.c_cc[o]||0;return 0}return 0}case 21510:case 21511:case 21512:return n.tty?0:-59;case 21506:case 21507:case 21508:{if(!n.tty)return-59;if(n.tty.ops.ioctl_tcsets){for(var i=ye(),u=T[i>>2],c=T[i+4>>2],d=T[i+8>>2],m=T[i+12>>2],p=[],o=0;o<32;o++)p.push(W[i+o+17]);return n.tty.ops.ioctl_tcsets(n.tty,r,{c_iflag:u,c_oflag:c,c_cflag:d,c_lflag:m,c_cc:p})}return 0}case 21519:{if(!n.tty)return-59;var i=ye();return T[i>>2]=0,0}case 21520:return n.tty?-28:-59;case 21537:case 21531:{var i=ye();return s.ioctl(n,r,i)}case 21523:{if(!n.tty)return-59;if(n.tty.ops.ioctl_tiocgwinsz){var h=n.tty.ops.ioctl_tiocgwinsz(n.tty),i=ye();D[i>>1]=h[0],D[i+2>>1]=h[1]}return 0}case 21524:return n.tty?0:-59;case 21515:return n.tty?0:-59;default:return-28}}catch(y){if(typeof s>\"u\"||y.name!==\"ErrnoError\")throw y;return-y.errno}}function Xn(e,r){try{return e=R.getStr(e),R.writeStat(r,s.lstat(e))}catch(t){if(typeof s>\"u\"||t.name!==\"ErrnoError\")throw t;return-t.errno}}function Yn(e,r,t,n){try{r=R.getStr(r);var a=n&256,i=n&4096;return n=n&-6401,r=R.calculateAt(e,r,i),R.writeStat(t,a?s.lstat(r):s.stat(r))}catch(o){if(typeof s>\"u\"||o.name!==\"ErrnoError\")throw o;return-o.errno}}function Kn(e,r,t,n){R.varargs=n;try{r=R.getStr(r),r=R.calculateAt(e,r);var a=n?Ve():0;return s.open(r,t,a).fd}catch(i){if(typeof s>\"u\"||i.name!==\"ErrnoError\")throw i;return-i.errno}}function ea(e){try{return e=R.getStr(e),s.rmdir(e),0}catch(r){if(typeof s>\"u\"||r.name!==\"ErrnoError\")throw r;return-r.errno}}function ra(e,r){try{return e=R.getStr(e),R.writeStat(r,s.stat(e))}catch(t){if(typeof s>\"u\"||t.name!==\"ErrnoError\")throw t;return-t.errno}}function ta(e,r,t){try{if(r=R.getStr(r),r=R.calculateAt(e,r),!t)s.unlink(r);else if(t===512)s.rmdir(r);else return-28;return 0}catch(n){if(typeof s>\"u\"||n.name!==\"ErrnoError\")throw n;return-n.errno}}var na=()=>ue(\"\"),Ne={},Oe=e=>{for(;e.length;){var r=e.pop(),t=e.pop();t(r)}};function Se(e){return this.fromWireType(l[e>>2])}var Ce={},_e={},Je={},aa=class extends Error{constructor(r){super(r),this.name=\"InternalError\"}},ze=e=>{throw new aa(e)},re=(e,r,t)=>{e.forEach(u=>Je[u]=r);function n(u){var c=t(u);c.length!==e.length&&ze(\"Mismatched type converter count\");for(var d=0;d<e.length;++d)K(e[d],c[d])}var a=new Array(r.length),i=[],o=0;r.forEach((u,c)=>{_e.hasOwnProperty(u)?a[c]=_e[u]:(i.push(u),Ce.hasOwnProperty(u)||(Ce[u]=[]),Ce[u].push(()=>{a[c]=_e[u],++o,o===i.length&&n(a)}))}),i.length===0&&n(a)},ia=e=>{var r=Ne[e];delete Ne[e];var t=r.elements,n=t.length,a=t.map(u=>u.getterReturnType).concat(t.map(u=>u.setterArgumentType)),i=r.rawConstructor,o=r.rawDestructor;re([e],a,u=>(t.forEach((c,d)=>{var m=u[d],p=c.getter,h=c.getterContext,y=u[d+n],_=c.setter,w=c.setterContext;c.read=g=>m.fromWireType(p(h,g)),c.write=(g,k)=>{var x=[];_(w,g,y.toWireType(x,k)),Oe(x)}}),[{name:r.name,fromWireType:c=>{for(var d=new Array(n),m=0;m<n;++m)d[m]=t[m].read(c);return o(c),d},toWireType:(c,d)=>{if(n!==d.length)throw new TypeError(`Incorrect number of tuple elements for ${r.name}: expected=${n}, actual=${d.length}`);for(var m=i(),p=0;p<n;++p)t[p].write(m,d[p]);return c!==null&&c.push(o,m),m},readValueFromPointer:Se,destructorFunction:o}]))},qe={},oa=e=>{var r=qe[e];delete qe[e];var t=r.rawConstructor,n=r.rawDestructor,a=r.fields,i=a.map(o=>o.getterReturnType).concat(a.map(o=>o.setterArgumentType));re([e],i,o=>{var u={};return a.forEach((c,d)=>{var m=c.fieldName,p=o[d],h=o[d].optional,y=c.getter,_=c.getterContext,w=o[d+a.length],g=c.setter,k=c.setterContext;u[m]={read:x=>p.fromWireType(y(_,x)),write:(x,O)=>{var N=[];g(k,x,w.toWireType(N,O)),Oe(N)},optional:h}}),[{name:r.name,fromWireType:c=>{var d={};for(var m in u)d[m]=u[m].read(c);return n(c),d},toWireType:(c,d)=>{for(var m in u)if(!(m in d)&&!u[m].optional)throw new TypeError(`Missing field: \"${m}\"`);var p=t();for(m in u)u[m].write(p,d[m]);return c!==null&&c.push(n,p),p},readValueFromPointer:Se,destructorFunction:n}]})},V=e=>{for(var r=\"\";;){var t=L[e++];if(!t)return r;r+=String.fromCharCode(t)}},je=class extends Error{constructor(r){super(r),this.name=\"BindingError\"}},A=e=>{throw new je(e)};function sa(e,r,t={}){var n=r.name;if(e||A(`type \"${n}\" must have a positive integer typeid pointer`),_e.hasOwnProperty(e)){if(t.ignoreDuplicateRegistrations)return;A(`Cannot register type '${n}' twice`)}if(_e[e]=r,delete Je[e],Ce.hasOwnProperty(e)){var a=Ce[e];delete Ce[e],a.forEach(i=>i())}}function K(e,r,t={}){return sa(e,r,t)}var _t=(e,r,t)=>{switch(r){case 1:return t?n=>W[n]:n=>L[n];case 2:return t?n=>D[n>>1]:n=>me[n>>1];case 4:return t?n=>T[n>>2]:n=>l[n>>2];case 8:return t?n=>B[n>>3]:n=>et[n>>3];default:throw new TypeError(`invalid integer width (${r}): ${e}`)}},ua=(e,r,t,n,a)=>{r=V(r);const i=n===0n;let o=u=>u;if(i){const u=t*8;o=c=>BigInt.asUintN(u,c),a=o(a)}K(e,{name:r,fromWireType:o,toWireType:(u,c)=>(typeof c==\"number\"&&(c=BigInt(c)),c),readValueFromPointer:_t(r,t,!i),destructorFunction:null})},ca=(e,r,t,n)=>{r=V(r),K(e,{name:r,fromWireType:function(a){return!!a},toWireType:function(a,i){return i?t:n},readValueFromPointer:function(a){return this.fromWireType(L[a])},destructorFunction:null})},la=e=>({count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}),gr=e=>{function r(t){return t.$$.ptrType.registeredClass.name}A(r(e)+\" instance already deleted\")},hr=!1,gt=e=>{},fa=e=>{e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)},ht=e=>{e.count.value-=1;var r=e.count.value===0;r&&fa(e)},Ae=e=>typeof FinalizationRegistry>\"u\"?(Ae=r=>r,e):(hr=new FinalizationRegistry(r=>{ht(r.$$)}),Ae=r=>{var t=r.$$,n=!!t.smartPtr;if(n){var a={$$:t};hr.register(r,a,r)}return r},gt=r=>hr.unregister(r),Ae(e)),He=[],da=()=>{for(;He.length;){var e=He.pop();e.$$.deleteScheduled=!1,e.delete()}},yt,va=()=>{let e=Qe.prototype;Object.assign(e,{isAliasOf(t){if(!(this instanceof Qe)||!(t instanceof Qe))return!1;var n=this.$$.ptrType.registeredClass,a=this.$$.ptr;t.$$=t.$$;for(var i=t.$$.ptrType.registeredClass,o=t.$$.ptr;n.baseClass;)a=n.upcast(a),n=n.baseClass;for(;i.baseClass;)o=i.upcast(o),i=i.baseClass;return n===i&&a===o},clone(){if(this.$$.ptr||gr(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var t=Ae(Object.create(Object.getPrototypeOf(this),{$$:{value:la(this.$$)}}));return t.$$.count.value+=1,t.$$.deleteScheduled=!1,t},delete(){this.$$.ptr||gr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&A(\"Object already scheduled for deletion\"),gt(this),ht(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||gr(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&A(\"Object already scheduled for deletion\"),He.push(this),He.length===1&&yt&&yt(da),this.$$.deleteScheduled=!0,this}});const r=Symbol.dispose;r&&(e[r]=e.delete)};function Qe(){}var Ze=(e,r)=>Object.defineProperty(r,\"name\",{value:e}),wt={},bt=(e,r,t)=>{if(e[r].overloadTable===void 0){var n=e[r];e[r]=function(...a){return e[r].overloadTable.hasOwnProperty(a.length)||A(`Function '${t}' called with an invalid number of arguments (${a.length}) - expects one of (${e[r].overloadTable})!`),e[r].overloadTable[a.length].apply(this,a)},e[r].overloadTable=[],e[r].overloadTable[n.argCount]=n}},yr=(e,r,t)=>{v.hasOwnProperty(e)?((t===void 0||v[e].overloadTable!==void 0&&v[e].overloadTable[t]!==void 0)&&A(`Cannot register public name '${e}' twice`),bt(v,e,e),v[e].overloadTable.hasOwnProperty(t)&&A(`Cannot register multiple overloads of a function with the same number of arguments (${t})!`),v[e].overloadTable[t]=r):(v[e]=r,v[e].argCount=t)},ma=48,pa=57,_a=e=>{e=e.replace(/[^a-zA-Z0-9_]/g,\"$\");var r=e.charCodeAt(0);return r>=ma&&r<=pa?`_${e}`:e};function ga(e,r,t,n,a,i,o,u){this.name=e,this.constructor=r,this.instancePrototype=t,this.rawDestructor=n,this.baseClass=a,this.getActualType=i,this.upcast=o,this.downcast=u,this.pureVirtualFunctions=[]}var Xe=(e,r,t)=>{for(;r!==t;)r.upcast||A(`Expected null or instance of ${t.name}, got an instance of ${r.name}`),e=r.upcast(e),r=r.baseClass;return e},wr=e=>{if(e===null)return\"null\";var r=typeof e;return r===\"object\"||r===\"array\"||r===\"function\"?e.toString():\"\"+e};function ha(e,r){if(r===null)return this.isReference&&A(`null is not a valid ${this.name}`),0;r.$$||A(`Cannot pass \"${wr(r)}\" as a ${this.name}`),r.$$.ptr||A(`Cannot pass deleted object as a pointer of type ${this.name}`);var t=r.$$.ptrType.registeredClass,n=Xe(r.$$.ptr,t,this.registeredClass);return n}function ya(e,r){var t;if(r===null)return this.isReference&&A(`null is not a valid ${this.name}`),this.isSmartPointer?(t=this.rawConstructor(),e!==null&&e.push(this.rawDestructor,t),t):0;(!r||!r.$$)&&A(`Cannot pass \"${wr(r)}\" as a ${this.name}`),r.$$.ptr||A(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&r.$$.ptrType.isConst&&A(`Cannot convert argument of type ${r.$$.smartPtrType?r.$$.smartPtrType.name:r.$$.ptrType.name} to parameter type ${this.name}`);var n=r.$$.ptrType.registeredClass;if(t=Xe(r.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(r.$$.smartPtr===void 0&&A(\"Passing raw pointer to smart pointer is illegal\"),this.sharingPolicy){case 0:r.$$.smartPtrType===this?t=r.$$.smartPtr:A(`Cannot convert argument of type ${r.$$.smartPtrType?r.$$.smartPtrType.name:r.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:t=r.$$.smartPtr;break;case 2:if(r.$$.smartPtrType===this)t=r.$$.smartPtr;else{var a=r.clone();t=this.rawShare(t,J.toHandle(()=>a.delete())),e!==null&&e.push(this.rawDestructor,t)}break;default:A(\"Unsupporting sharing policy\")}return t}function wa(e,r){if(r===null)return this.isReference&&A(`null is not a valid ${this.name}`),0;r.$$||A(`Cannot pass \"${wr(r)}\" as a ${this.name}`),r.$$.ptr||A(`Cannot pass deleted object as a pointer of type ${this.name}`),r.$$.ptrType.isConst&&A(`Cannot convert argument of type ${r.$$.ptrType.name} to parameter type ${this.name}`);var t=r.$$.ptrType.registeredClass,n=Xe(r.$$.ptr,t,this.registeredClass);return n}var St=(e,r,t)=>{if(r===t)return e;if(t.baseClass===void 0)return null;var n=St(e,r,t.baseClass);return n===null?null:t.downcast(n)},ba={},Sa=(e,r)=>{for(r===void 0&&A(\"ptr should not be undefined\");e.baseClass;)r=e.upcast(r),e=e.baseClass;return r},Ca=(e,r)=>(r=Sa(e,r),ba[r]),Ye=(e,r)=>{(!r.ptrType||!r.ptr)&&ze(\"makeClassHandle requires ptr and ptrType\");var t=!!r.smartPtrType,n=!!r.smartPtr;return t!==n&&ze(\"Both smartPtrType and smartPtr must be specified\"),r.count={value:1},Ae(Object.create(e,{$$:{value:r,writable:!0}}))};function ka(e){var r=this.getPointee(e);if(!r)return this.destructor(e),null;var t=Ca(this.registeredClass,r);if(t!==void 0){if(t.$$.count.value===0)return t.$$.ptr=r,t.$$.smartPtr=e,t.clone();var n=t.clone();return this.destructor(e),n}function a(){return this.isSmartPointer?Ye(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:r,smartPtrType:this,smartPtr:e}):Ye(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var i=this.registeredClass.getActualType(r),o=wt[i];if(!o)return a.call(this);var u;this.isConst?u=o.constPointerType:u=o.pointerType;var c=St(r,this.registeredClass,u.registeredClass);return c===null?a.call(this):this.isSmartPointer?Ye(u.registeredClass.instancePrototype,{ptrType:u,ptr:c,smartPtrType:this,smartPtr:e}):Ye(u.registeredClass.instancePrototype,{ptrType:u,ptr:c})}var Ea=()=>{Object.assign(Ke.prototype,{getPointee(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e},destructor(e){this.rawDestructor?.(e)},readValueFromPointer:Se,fromWireType:ka})};function Ke(e,r,t,n,a,i,o,u,c,d,m){this.name=e,this.registeredClass=r,this.isReference=t,this.isConst=n,this.isSmartPointer=a,this.pointeeType=i,this.sharingPolicy=o,this.rawGetPointee=u,this.rawConstructor=c,this.rawShare=d,this.rawDestructor=m,!a&&r.baseClass===void 0?n?(this.toWireType=ha,this.destructorFunction=null):(this.toWireType=wa,this.destructorFunction=null):this.toWireType=ya}var Ct=(e,r,t)=>{v.hasOwnProperty(e)||ze(\"Replacing nonexistent public symbol\"),v[e].overloadTable!==void 0&&t!==void 0?v[e].overloadTable[t]=r:(v[e]=r,v[e].argCount=t)},kt=[],Et,C=e=>{var r=kt[e];return r||(kt[e]=r=Et.get(e)),r},H=(e,r,t=!1)=>{e=V(e);function n(){var i=C(r);return i}var a=n();return typeof a!=\"function\"&&A(`unknown function pointer with signature ${e}: ${r}`),a};class Ta extends Error{}var Tt=e=>{var r=zt(e),t=V(r);return ne(r),t},ke=(e,r)=>{var t=[],n={};function a(i){if(!n[i]&&!_e[i]){if(Je[i]){Je[i].forEach(a);return}t.push(i),n[i]=!0}}throw r.forEach(a),new Ta(`${e}: `+t.map(Tt).join([\", \"]))},Fa=(e,r,t,n,a,i,o,u,c,d,m,p,h)=>{m=V(m),i=H(a,i),u&&=H(o,u),d&&=H(c,d),h=H(p,h);var y=_a(m);yr(y,function(){ke(`Cannot construct ${m} due to unbound types`,[n])}),re([e,r,t],n?[n]:[],_=>{_=_[0];var w,g;n?(w=_.registeredClass,g=w.instancePrototype):g=Qe.prototype;var k=Ze(m,function(...$){if(Object.getPrototypeOf(this)!==x)throw new je(`Use 'new' to construct ${m}`);if(O.constructor_body===void 0)throw new je(`${m} has no accessible constructor`);var ve=O.constructor_body[$.length];if(ve===void 0)throw new je(`Tried to invoke ctor of ${m} with invalid number of parameters (${$.length}) - expected (${Object.keys(O.constructor_body).toString()}) parameters instead!`);return ve.apply(this,$)}),x=Object.create(g,{constructor:{value:k}});k.prototype=x;var O=new ga(m,k,x,h,w,i,u,d);O.baseClass&&(O.baseClass.__derivedClasses??=[],O.baseClass.__derivedClasses.push(O));var N=new Ke(m,O,!0,!1,!1),Q=new Ke(m+\"*\",O,!1,!1,!1),F=new Ke(m+\" const*\",O,!1,!0,!1);return wt[e]={pointerType:Q,constPointerType:F},Ct(y,k),[N,Q,F]})},br=(e,r)=>{for(var t=[],n=0;n<e;n++)t.push(l[r+n*4>>2]);return t};function Ft(e){for(var r=1;r<e.length;++r)if(e[r]!==null&&e[r].destructorFunction===void 0)return!0;return!1}function xa(e,r,t,n){var a=Ft(e),i=e.length-2,o=[],u=[\"fn\"];r&&u.push(\"thisWired\");for(var c=0;c<i;++c)o.push(`arg${c}`),u.push(`arg${c}Wired`);o=o.join(\",\"),u=u.join(\",\");var d=`return function (${o}) {\n`;a&&(d+=`var destructors = [];\n`);var m=a?\"destructors\":\"null\",p=[\"humanName\",\"throwBindingError\",\"invoker\",\"fn\",\"runDestructors\",\"fromRetWire\",\"toClassParamWire\"];r&&(d+=`var thisWired = toClassParamWire(${m}, this);\n`);for(var c=0;c<i;++c){var h=`toArg${c}Wire`;d+=`var arg${c}Wired = ${h}(${m}, arg${c});\n`,p.push(h)}d+=(t||n?\"var rv = \":\"\")+`invoker(${u});\n`;var y=t?\"rv\":\"\";if(a)d+=`runDestructors(destructors);\n`;else for(var c=r?1:2;c<e.length;++c){var _=c===1?\"thisWired\":\"arg\"+(c-2)+\"Wired\";e[c].destructorFunction!==null&&(d+=`${_}_dtor(${_});\n`,p.push(`${_}_dtor`))}return t&&(d+=`var ret = fromRetWire(rv);\nreturn ret;\n`),d+=`}\n`,new Function(p,d)}function Sr(e,r,t,n,a,i){var o=r.length;o<2&&A(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");for(var u=r[1]!==null&&t!==null,c=Ft(r),d=!r[0].isVoid,m=o-2,p=r[0],h=r[1],y=[e,A,n,a,Oe,p.fromWireType.bind(p),h?.toWireType.bind(h)],_=2;_<o;++_){var w=r[_];y.push(w.toWireType.bind(w))}if(!c)for(var _=u?1:2;_<r.length;++_)r[_].destructorFunction!==null&&y.push(r[_].destructorFunction);var k=xa(r,u,d,i)(...y);return Ze(e,k)}var Oa=(e,r,t,n,a,i)=>{var o=br(r,t);a=H(n,a);var u=[i],c=[];re([],[e],d=>{d=d[0];var m=`constructor ${d.name}`;if(d.registeredClass.constructor_body===void 0&&(d.registeredClass.constructor_body=[]),d.registeredClass.constructor_body[r-1]!==void 0)throw new je(`Cannot register multiple constructors with identical number of parameters (${r-1}) for class '${d.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return d.registeredClass.constructor_body[r-1]=()=>{ke(`Cannot construct ${d.name} due to unbound types`,o)},re([],o,p=>(p.splice(1,0,null),d.registeredClass.constructor_body[r-1]=Sr(m,p,null,a,i),[])),[]})},xt=e=>{e=e.trim();const r=e.indexOf(\"(\");return r===-1?e:e.slice(0,r)},ja=(e,r,t,n,a,i,o,u,c,d)=>{var m=br(t,n);r=V(r),r=xt(r),i=H(a,i,c),re([],[e],p=>{p=p[0];var h=`${p.name}.${r}`;r.startsWith(\"@@\")&&(r=Symbol[r.substring(2)]),u&&p.registeredClass.pureVirtualFunctions.push(r);function y(){ke(`Cannot call ${h} due to unbound types`,m)}var _=p.registeredClass.instancePrototype,w=_[r];return w===void 0||w.overloadTable===void 0&&w.className!==p.name&&w.argCount===t-2?(y.argCount=t-2,y.className=p.name,_[r]=y):(bt(_,r,h),_[r].overloadTable[t-2]=y),re([],m,g=>{var k=Sr(h,g,p,i,o,c);return _[r].overloadTable===void 0?(k.argCount=t-2,_[r]=k):_[r].overloadTable[t-2]=k,[]}),[]})},Ot=(e,r,t)=>(e instanceof Object||A(`${t} with invalid \"this\": ${e}`),e instanceof r.registeredClass.constructor||A(`${t} incompatible with \"this\" of type ${e.constructor.name}`),e.$$.ptr||A(`cannot call emscripten binding method ${t} on deleted object`),Xe(e.$$.ptr,e.$$.ptrType.registeredClass,r.registeredClass)),Aa=(e,r,t,n,a,i,o,u,c,d)=>{r=V(r),a=H(n,a),re([],[e],m=>{m=m[0];var p=`${m.name}.${r}`,h={get(){ke(`Cannot access ${p} due to unbound types`,[t,o])},enumerable:!0,configurable:!0};return c?h.set=()=>ke(`Cannot access ${p} due to unbound types`,[t,o]):h.set=y=>A(p+\" is a read-only property\"),Object.defineProperty(m.registeredClass.instancePrototype,r,h),re([],c?[t,o]:[t],y=>{var _=y[0],w={get(){var k=Ot(this,m,p+\" getter\");return _.fromWireType(a(i,k))},enumerable:!0};if(c){c=H(u,c);var g=y[1];w.set=function(k){var x=Ot(this,m,p+\" setter\"),O=[];c(d,x,g.toWireType(O,k)),Oe(O)}}return Object.defineProperty(m.registeredClass.instancePrototype,r,w),[]}),[]})},Da=(e,r,t)=>{e=V(e),re([],[r],n=>(n=n[0],v[e]=n.fromWireType(t),[]))},jt=[],ge=[0,1,,1,null,1,!0,1,!1,1],Cr=e=>{e>9&&--ge[e+1]===0&&(ge[e]=void 0,jt.push(e))},J={toValue:e=>(e||A(`Cannot use deleted val. handle = ${e}`),ge[e]),toHandle:e=>{switch(e){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{const r=jt.pop()||ge.length;return ge[r]=e,ge[r+1]=1,r}}}},At={name:\"emscripten::val\",fromWireType:e=>{var r=J.toValue(e);return Cr(e),r},toWireType:(e,r)=>J.toHandle(r),readValueFromPointer:Se,destructorFunction:null},Pa=e=>K(e,At),Ia=(e,r,t)=>{switch(r){case 1:return t?function(n){return this.fromWireType(W[n])}:function(n){return this.fromWireType(L[n])};case 2:return t?function(n){return this.fromWireType(D[n>>1])}:function(n){return this.fromWireType(me[n>>1])};case 4:return t?function(n){return this.fromWireType(T[n>>2])}:function(n){return this.fromWireType(l[n>>2])};default:throw new TypeError(`invalid integer width (${r}): ${e}`)}},Ba=(e,r,t,n)=>{r=V(r);function a(){}a.values={},K(e,{name:r,constructor:a,fromWireType:function(i){return this.constructor.values[i]},toWireType:(i,o)=>o.value,readValueFromPointer:Ia(r,t,n),destructorFunction:null}),yr(r,a)},Dt=(e,r)=>{var t=_e[e];return t===void 0&&A(`${r} has unknown type ${Tt(e)}`),t},Ra=(e,r,t)=>{var n=Dt(e,\"enum\");r=V(r);var a=n.constructor,i=Object.create(n.constructor.prototype,{value:{value:t},constructor:{value:Ze(`${n.name}_${r}`,function(){})}});a.values[t]=i,a[r]=i},$a=(e,r)=>{switch(r){case 4:return function(t){return this.fromWireType(se[t>>2])};case 8:return function(t){return this.fromWireType(ie[t>>3])};default:throw new TypeError(`invalid float width (${r}): ${e}`)}},Ga=(e,r,t)=>{r=V(r),K(e,{name:r,fromWireType:n=>n,toWireType:(n,a)=>a,readValueFromPointer:$a(r,t),destructorFunction:null})},Ma=(e,r,t,n,a,i,o,u)=>{var c=br(r,t);e=V(e),e=xt(e),a=H(n,a,o),yr(e,function(){ke(`Cannot call ${e} due to unbound types`,c)},r-1),re([],c,d=>{var m=[d[0],null].concat(d.slice(1));return Ct(e,Sr(e,m,null,a,i,o),r-1),[]})},La=(e,r,t,n,a)=>{r=V(r);const i=n===0;let o=c=>c;if(i){var u=32-8*t;o=c=>c<<u>>>u,a=o(a)}K(e,{name:r,fromWireType:o,toWireType:(c,d)=>d,readValueFromPointer:_t(r,t,n!==0),destructorFunction:null})},Wa=(e,r,t)=>{var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array],a=n[r];function i(o){var u=l[o>>2],c=l[o+4>>2];return new a(W.buffer,c,u)}t=V(t),K(e,{name:t,fromWireType:i,readValueFromPointer:i},{ignoreDuplicateRegistrations:!0})},Ua=Object.assign({optional:!0},At),Va=(e,r)=>{K(e,Ua)},G=(e,r,t)=>lt(e,L,r,t),Na=(e,r)=>{r=V(r);var t=!0;K(e,{name:r,fromWireType(n){var a=l[n>>2],i=n+4,o;if(t)o=P(i,a,!0);else{o=\"\";for(var u=0;u<a;++u)o+=String.fromCharCode(L[i+u])}return ne(n),o},toWireType(n,a){a instanceof ArrayBuffer&&(a=new Uint8Array(a));var i,o=typeof a==\"string\";o||ArrayBuffer.isView(a)&&a.BYTES_PER_ELEMENT==1||A(\"Cannot pass non-string to std::string\"),t&&o?i=q(a):i=a.length;var u=X(4+i+1),c=u+4;if(l[u>>2]=i,o)if(t)G(a,c,i+1);else for(var d=0;d<i;++d){var m=a.charCodeAt(d);m>255&&(ne(u),A(\"String has UTF-16 code units that do not fit in 8 bits\")),L[c+d]=m}else L.set(a,c);return n!==null&&n.push(ne,u),u},readValueFromPointer:Se,destructorFunction(n){ne(n)}})},Pt=typeof TextDecoder<\"u\"?new TextDecoder(\"utf-16le\"):void 0,Ja=(e,r,t)=>{var n=e>>1,a=ct(me,n,r/2,t);if(a-n>16&&Pt)return Pt.decode(me.subarray(n,a));for(var i=\"\",o=n;o<a;++o){var u=me[o];i+=String.fromCharCode(u)}return i},za=(e,r,t)=>{if(t??=2147483647,t<2)return 0;t-=2;for(var n=r,a=t<e.length*2?t/2:e.length,i=0;i<a;++i){var o=e.charCodeAt(i);D[r>>1]=o,r+=2}return D[r>>1]=0,r-n},qa=e=>e.length*2,Ha=(e,r,t)=>{for(var n=\"\",a=e>>2,i=0;!(i>=r/4);i++){var o=l[a+i];if(!o&&!t)break;n+=String.fromCodePoint(o)}return n},Qa=(e,r,t)=>{if(t??=2147483647,t<4)return 0;for(var n=r,a=n+t-4,i=0;i<e.length;++i){var o=e.codePointAt(i);if(o>65535&&i++,T[r>>2]=o,r+=4,r+4>a)break}return T[r>>2]=0,r-n},Za=e=>{for(var r=0,t=0;t<e.length;++t){var n=e.codePointAt(t);n>65535&&t++,r+=4}return r},Xa=(e,r,t)=>{t=V(t);var n,a,i;r===2?(n=Ja,a=za,i=qa):(n=Ha,a=Qa,i=Za),K(e,{name:t,fromWireType:o=>{var u=l[o>>2],c=n(o+4,u*r,!0);return ne(o),c},toWireType:(o,u)=>{typeof u!=\"string\"&&A(`Cannot pass non-string to C++ string type ${t}`);var c=i(u),d=X(4+c+r);return l[d>>2]=c/r,a(u,d+4,c+r),o!==null&&o.push(ne,d),d},readValueFromPointer:Se,destructorFunction(o){ne(o)}})},Ya=(e,r,t,n,a,i)=>{Ne[e]={name:V(r),rawConstructor:H(t,n),rawDestructor:H(a,i),elements:[]}},Ka=(e,r,t,n,a,i,o,u,c)=>{Ne[e].elements.push({getterReturnType:r,getter:H(t,n),getterContext:a,setterArgumentType:i,setter:H(o,u),setterContext:c})},ei=(e,r,t,n,a,i)=>{qe[e]={name:V(r),rawConstructor:H(t,n),rawDestructor:H(a,i),fields:[]}},ri=(e,r,t,n,a,i,o,u,c,d)=>{qe[e].fields.push({fieldName:V(r),getterReturnType:t,getter:H(n,a),getterContext:i,setterArgumentType:o,setter:H(u,c),setterContext:d})},ti=(e,r)=>{r=V(r),K(e,{isVoid:!0,name:r,fromWireType:()=>{},toWireType:(t,n)=>{}})};function ni(e,r,t){var n=z.xhrs.get(e).getAllResponseHeaders();return G(n,r,t)+1}function ai(e){return q(z.xhrs.get(e).getAllResponseHeaders())}var It=0,ii=()=>{lr=!1,It=0},kr=[],oi=e=>{var r=kr.length;return kr.push(e),r},si=(e,r)=>{for(var t=new Array(e),n=0;n<e;++n)t[n]=Dt(l[r+n*4>>2],`parameter ${n}`);return t},ui=(e,r,t)=>{var n=[],a=e(n,t);return n.length&&(l[r>>2]=J.toHandle(n)),a},ci={},Er=e=>{var r=ci[e];return r===void 0?V(e):r},li=(e,r,t)=>{var n=8,[a,...i]=si(e,r),o=a.toWireType.bind(a),u=i.map(y=>y.readValueFromPointer.bind(y));e--;var c={toValue:J.toValue},d=u.map((y,_)=>{var w=`argFromPtr${_}`;return c[w]=y,`${w}(args${_?\"+\"+_*n:\"\"})`}),m;switch(t){case 0:m=\"toValue(handle)\";break;case 2:m=\"new (toValue(handle))\";break;case 3:m=\"\";break;case 1:c.getStringOrSymbol=Er,m=\"toValue(handle)[getStringOrSymbol(methodName)]\";break}m+=`(${d})`,a.isVoid||(c.toReturnWire=o,c.emval_returnValue=ui,m=`return emval_returnValue(toReturnWire, destructorsRef, ${m})`),m=`return function (handle, methodName, destructorsRef, args) {\n ${m}\n }`;var p=new Function(Object.keys(c),m)(...Object.values(c)),h=`methodCaller<(${i.map(y=>y.name)}) => ${a.name}>`;return oi(Ze(h,p))},Bt=()=>globalThis,fi=e=>e===0?J.toHandle(Bt()):(e=Er(e),J.toHandle(Bt()[e])),di=(e,r)=>(e=J.toValue(e),r=J.toValue(r),J.toHandle(e[r])),vi=e=>{e>9&&(ge[e+1]+=1)},mi=(e,r,t,n,a)=>kr[e](r,t,n,a),pi=()=>J.toHandle([]),_i=e=>J.toHandle(Er(e)),gi=()=>J.toHandle({}),hi=e=>{var r=J.toValue(e);Oe(r),Cr(e)},yi=(e,r,t)=>{e=J.toValue(e),r=J.toValue(r),t=J.toValue(t),e[r]=t},wi=9007199254740992,bi=-9007199254740992,Z=e=>e<bi||e>wi?NaN:Number(e);function Si(e,r){e=Z(e);var t=new Date(e*1e3);T[r>>2]=t.getUTCSeconds(),T[r+4>>2]=t.getUTCMinutes(),T[r+8>>2]=t.getUTCHours(),T[r+12>>2]=t.getUTCDate(),T[r+16>>2]=t.getUTCMonth(),T[r+20>>2]=t.getUTCFullYear()-1900,T[r+24>>2]=t.getUTCDay();var n=Date.UTC(t.getUTCFullYear(),0,1,0,0,0,0),a=(t.getTime()-n)/(1e3*60*60*24)|0;T[r+28>>2]=a}var Ci=e=>e%4===0&&(e%100!==0||e%400===0),ki=[0,31,60,91,121,152,182,213,244,274,305,335],Ei=[0,31,59,90,120,151,181,212,243,273,304,334],Ti=e=>{var r=Ci(e.getFullYear()),t=r?ki:Ei,n=t[e.getMonth()]+e.getDate()-1;return n};function Fi(e,r){e=Z(e);var t=new Date(e*1e3);T[r>>2]=t.getSeconds(),T[r+4>>2]=t.getMinutes(),T[r+8>>2]=t.getHours(),T[r+12>>2]=t.getDate(),T[r+16>>2]=t.getMonth(),T[r+20>>2]=t.getFullYear()-1900,T[r+24>>2]=t.getDay();var n=Ti(t)|0;T[r+28>>2]=n,T[r+36>>2]=-(t.getTimezoneOffset()*60);var a=new Date(t.getFullYear(),0,1),i=new Date(t.getFullYear(),6,1).getTimezoneOffset(),o=a.getTimezoneOffset(),u=(i!=o&&t.getTimezoneOffset()==Math.min(o,i))|0;T[r+32>>2]=u}var De={},Rt=e=>{if(e instanceof nt||e==\"unwind\")return Ge;Xr(1,e)},$t=()=>lr||It>0,Gt=e=>{Ge=e,$t()||(v.onExit?.(e),$e=!0),Xr(e,new nt(e))},xi=(e,r)=>{Ge=e,Gt(e)},Oi=xi,ji=()=>{if(!$t())try{Oi(Ge)}catch(e){Rt(e)}},Mt=e=>{if(!$e)try{e(),ji()}catch(r){Rt(r)}},Tr=()=>performance.now(),Ai=(e,r)=>{if(De[e]&&(clearTimeout(De[e].id),delete De[e]),!r)return 0;var t=setTimeout(()=>{delete De[e],Mt(()=>rn(e,Tr()))},r);return De[e]={id:t,timeout_ms:r},0},Di=(e,r,t,n)=>{var a=new Date().getFullYear(),i=new Date(a,0,1),o=new Date(a,6,1),u=i.getTimezoneOffset(),c=o.getTimezoneOffset(),d=Math.max(u,c);l[e>>2]=d*60,T[r>>2]=+(u!=c);var m=y=>{var _=y>=0?\"-\":\"+\",w=Math.abs(y),g=String(Math.floor(w/60)).padStart(2,\"0\"),k=String(w%60).padStart(2,\"0\");return`UTC${_}${g}${k}`},p=m(u),h=m(c);c<u?(G(p,t,17),G(h,n,17)):(G(p,n,17),G(h,t,17))},Lt=()=>Date.now(),Pi=1,Ii=e=>e>=0&&e<=3;function Bi(e,r,t){if(r=Z(r),!Ii(e))return 28;var n;if(e===0)n=Lt();else if(Pi)n=Tr();else return 52;var a=Math.round(n*1e3*1e3);return B[t>>3]=BigInt(a),0}var Fr=[],Ri=(e,r)=>{Fr.length=0;for(var t;t=L[e++];){var n=t!=105;n&=t!=112,r+=n&&r%8?4:0,Fr.push(t==112?l[r>>2]:t==106?B[r>>3]:t==105?T[r>>2]:ie[r>>3]),r+=n?8:4}return Fr},$i=(e,r,t)=>{var n=Ri(r,t);return As[e](...n)},Gi=(e,r,t)=>$i(e,r,t),Mi=e=>{console.warn(P(e))},Li=(e,r)=>ae(P(e,r));function Wi(e){if(z.xhrs.has(e)){var r=z.xhrs.get(e);z.xhrs.free(e),r.readyState>0&&r.readyState<4&&r.abort()}}var Wt=()=>2147483648,Ui=()=>Wt(),Vi=()=>0,Ni=()=>!Ee,Ji=(e,r)=>Te(P(e,r)),zi=(e,r)=>Math.ceil(e/r)*r,qi=e=>{var r=Me.buffer.byteLength,t=(e-r+65535)/65536|0;try{return Me.grow(t),tt(),1}catch{}},Hi=e=>{var r=L.length;e>>>=0;var t=Wt();if(e>t)return!1;for(var n=1;n<=4;n*=2){var a=r*(1+.2/n);a=Math.min(a,e+100663296);var i=Math.min(t,zi(Math.max(e,a),65536)),o=qi(i);if(o)return!0}return!1},Qi=()=>{throw\"Please compile your program with async support in order to use asynchronous operations like emscripten_sleep\"};class Zi{allocated=[void 0];freelist=[];get(r){return this.allocated[r]}has(r){return this.allocated[r]!==void 0}allocate(r){var t=this.freelist.pop()||this.allocated.length;return this.allocated[t]=r,t}free(r){this.allocated[r]=void 0,this.freelist.push(r)}}var z={async openDatabase(e,r){return new Promise((t,n)=>{try{var a=indexedDB.open(e,r)}catch(i){return n(i)}a.onupgradeneeded=i=>{var o=i.target.result;o.objectStoreNames.contains(\"FILES\")&&o.deleteObjectStore(\"FILES\"),o.createObjectStore(\"FILES\")},a.onsuccess=i=>t(i.target.result),a.onerror=n})},async init(){z.xhrs=new Zi,vt(\"library_fetch_init\");try{var e=await z.openDatabase(\"emscripten_filesystem\",1);z.dbInstance=e}catch{z.dbInstance=!1}finally{dt(\"library_fetch_init\")}}};function xr(e,r,t,n,a){var i=l[e+8>>2];if(!i){t(e,\"no url specified!\");return}var o=P(i),u=e+108,c=P(u+0);c||=\"GET\";var d=l[u+56>>2],m=l[u+68>>2],p=l[u+72>>2],h=l[u+76>>2],y=l[u+80>>2],_=l[u+84>>2],w=l[u+88>>2],g=l[u+52>>2],k=!!(g&1),x=!!(g&2),O=!!(g&64),N=m?P(m):void 0,Q=p?P(p):void 0,F=new XMLHttpRequest;if(F.withCredentials=!!L[u+60],F.open(c,o,!O,N,Q),O||(F.timeout=d),F.url_=o,F.responseType=\"arraybuffer\",y){var $=P(y);F.overrideMimeType($)}if(h)for(;;){var ve=l[h>>2];if(!ve)break;var nr=l[h+4>>2];if(!nr)break;h+=8;var U=P(ve),le=P(nr);F.setRequestHeader(U,le)}var oe=z.xhrs.allocate(F);l[e>>2]=oe;var Hr=_&&w?L.slice(_,_+w):null;function ar(){var M=0,Y=0;F.response&&k&&l[e+12>>2]===0&&(Y=F.response.byteLength),Y>0&&(M=X(Y),L.set(new Uint8Array(F.response),M)),l[e+12>>2]=M,ee(e+16,Y),ee(e+24,0);var fe=F.response?F.response.byteLength:0;if(fe&&ee(e+32,fe),D[e+40>>1]=F.readyState,D[e+42>>1]=F.status,F.statusText&&G(F.statusText,e+44,64),O){var ir=Or(F.responseURL);l[e+200>>2]=ir}}F.onload=M=>{z.xhrs.has(oe)&&(ar(),F.status>=200&&F.status<300?r(e,F,M):t(e,M))},F.onerror=M=>{z.xhrs.has(oe)&&(ar(),t(e,M))},F.ontimeout=M=>{z.xhrs.has(oe)&&t(e,M)},F.onprogress=M=>{if(z.xhrs.has(oe)){var Y=k&&x&&F.response?F.response.byteLength:0,fe=0;Y>0&&k&&x&&(fe=X(Y),L.set(new Uint8Array(F.response),fe)),l[e+12>>2]=fe,ee(e+16,Y),ee(e+24,M.loaded-Y),ee(e+32,M.total),D[e+40>>1]=F.readyState;var ir=F.status;F.readyState>=3&&F.status===0&&M.loaded>0&&(ir=200),D[e+42>>1]=ir,F.statusText&&G(F.statusText,e+44,64),n(e,M),ne(fe)}},F.onreadystatechange=M=>{if(z.xhrs.has(oe)){if(D[e+40>>1]=F.readyState,F.readyState>=2&&(D[e+42>>1]=F.status),!O&&F.readyState===2&&F.responseURL.length>0){var Y=Or(F.responseURL);l[e+200>>2]=Y}a(e,M)}};try{F.send(Hr)}catch(M){t(e,M)}}var ee=(e,r)=>{l[e>>2]=r;var t=l[e>>2];l[e+4>>2]=(r-t)/4294967296},Or=e=>{var r=q(e)+1,t=X(r);return t&&G(e,t,r),t};function Ut(e,r,t,n,a){if(!e){a(r,0,\"IndexedDB not available!\");return}var i=r+108,o=l[i+64>>2];o||=l[r+8>>2];var u=P(o);try{var c=e.transaction([\"FILES\"],\"readwrite\"),d=c.objectStore(\"FILES\"),m=d.put(t,u);m.onsuccess=p=>{D[r+40>>1]=4,D[r+42>>1]=200,G(\"OK\",r+44,64),n(r,0,u)},m.onerror=p=>{D[r+40>>1]=4,D[r+42>>1]=413,G(\"Payload Too Large\",r+44,64),a(r,0,p)}}catch(p){a(r,0,p)}}function Xi(e,r,t,n){if(!e){n(r,0,\"IndexedDB not available!\");return}var a=r+108,i=l[a+64>>2];i||=l[r+8>>2];var o=P(i);try{var u=e.transaction([\"FILES\"],\"readonly\"),c=u.objectStore(\"FILES\"),d=c.get(o);d.onsuccess=m=>{if(m.target.result){var p=m.target.result,h=p.byteLength||p.length,y=X(h);L.set(new Uint8Array(p),y),l[r+12>>2]=y,ee(r+16,h),ee(r+24,0),ee(r+32,h),D[r+40>>1]=4,D[r+42>>1]=200,G(\"OK\",r+44,64),t(r,0,p)}else D[r+40>>1]=4,D[r+42>>1]=404,G(\"Not Found\",r+44,64),n(r,0,\"no data\")},d.onerror=m=>{D[r+40>>1]=4,D[r+42>>1]=404,G(\"Not Found\",r+44,64),n(r,0,m)}}catch(m){n(r,0,m)}}function Yi(e,r,t,n){if(!e){n(r,0,\"IndexedDB not available!\");return}var a=r+108,i=l[a+64>>2];i||=l[r+8>>2];var o=P(i);try{var u=e.transaction([\"FILES\"],\"readwrite\"),c=u.objectStore(\"FILES\"),d=c.delete(o);d.onsuccess=m=>{var p=m.target.result;l[r+12>>2]=0,ee(r+16,0),ee(r+24,0),ee(r+32,0),D[r+40>>1]=4,D[r+42>>1]=200,G(\"OK\",r+44,64),t(r,0,p)},d.onerror=m=>{D[r+40>>1]=4,D[r+42>>1]=404,G(\"Not Found\",r+44,64),n(r,0,m)}}catch(m){n(r,0,m)}}function Ki(e,r,t,n,a){var i=e+108,o=l[i+36>>2],u=l[i+40>>2],c=l[i+44>>2],d=l[i+48>>2],m=l[i+52>>2],p=!!(m&64);function h(U){p?U():Mt(U)}var y=(U,le,oe)=>{h(()=>{o?C(o)(U):r?.(U)})},_=(U,le)=>{h(()=>{c?C(c)(U):n?.(U)})},w=(U,le)=>{h(()=>{u?C(u)(U):t?.(U)})},g=(U,le)=>{h(()=>{d?C(d)(U):a?.(U)})},k=(U,le,oe)=>{xr(U,y,w,_,g)},x=(U,le,oe)=>{var Hr=(M,Y,fe)=>{h(()=>{o?C(o)(M):r?.(M)})},ar=(M,Y,fe)=>{h(()=>{o?C(o)(M):r?.(M)})};Ut(z.dbInstance,U,le.response,Hr,ar)},O=(U,le,oe)=>{xr(U,x,w,_,g)},N=P(i+0),Q=!!(m&16),F=!!(m&4),$=!!(m&32);if(N===\"EM_IDB_STORE\"){var ve=l[i+84>>2],nr=l[i+88>>2];Ut(z.dbInstance,e,L.slice(ve,ve+nr),y,w)}else if(N===\"EM_IDB_DELETE\")Yi(z.dbInstance,e,y,w);else if(!Q)Xi(z.dbInstance,e,y,$?w:F?O:k);else if(!$)xr(e,F?x:y,w,_,g);else return 0;return e}var Vt=e=>on(e),te=e=>{var r=q(e)+1,t=Vt(r);return G(e,t,r),t},f={Internals:{jsObjects:[],jsObjectInsert:(e,r)=>{f.Internals.jsObjects[e>>>=0]=r},bufferOnUnmaps:[],futures:[],futureInsert:(e,r)=>{}},getJsObject:e=>{if(e){var r=e>>>=0;return f.Internals.jsObjects[r]}},importJsAdapter:(e,r=0)=>{var t=Qt(r);return f.Internals.jsObjects[t]=e,t},importJsBindGroup:(e,r=0)=>{var t=jr(r);return f.Internals.jsObjects[t]=e,t},importJsBindGroupLayout:(e,r=0)=>{var t=Ie(r);return f.Internals.jsObjects[t]=e,t},importJsBuffer:(e,r=0)=>{hn(e.mapState!=\"pending\");var t=e.mapState==\"mapped\"?3:1,n=Zt(r,t);return f.Internals.jsObjectInsert(n,e),e.mapState==\"mapped\"&&(f.Internals.bufferOnUnmaps[n]=[]),n},importJsCommandBuffer:(e,r=0)=>{var t=Ar(r);return f.Internals.jsObjects[t]=e,t},importJsCommandEncoder:(e,r=0)=>{var t=Dr(r);return f.Internals.jsObjects[t]=e,t},importJsComputePassEncoder:(e,r=0)=>{var t=Pr(r);return f.Internals.jsObjects[t]=e,t},importJsComputePipeline:(e,r=0)=>{var t=Ir(r);return f.Internals.jsObjects[t]=e,t},importJsDevice:(e,r=0)=>{var t=Ur(r),n=Xt(r,t);return f.Internals.jsObjectInsert(t,e.queue),f.Internals.jsObjectInsert(n,e),n},importJsPipelineLayout:(e,r=0)=>{var t=Br(r);return f.Internals.jsObjects[t]=e,t},importJsQuerySet:(e,r=0)=>{var t=Rr(r);return f.Internals.jsObjects[t]=e,t},importJsQueue:(e,r=0)=>{var t=Ur(r);return f.Internals.jsObjects[t]=e,t},importJsRenderBundle:(e,r=0)=>{var t=qt(r);return f.Internals.jsObjects[t]=e,t},importJsRenderBundleEncoder:(e,r=0)=>{var t=Ht(r);return f.Internals.jsObjects[t]=e,t},importJsRenderPassEncoder:(e,r=0)=>{var t=$r(r);return f.Internals.jsObjects[t]=e,t},importJsRenderPipeline:(e,r=0)=>{var t=Gr(r);return f.Internals.jsObjects[t]=e,t},importJsSampler:(e,r=0)=>{var t=Mr(r);return f.Internals.jsObjects[t]=e,t},importJsShaderModule:(e,r=0)=>{var t=Yt(r);return f.Internals.jsObjects[t]=e,t},importJsSurface:(e,r=0)=>{var t=Lr(r);return f.Internals.jsObjects[t]=e,t},importJsTexture:(e,r=0)=>{var t=tr(r);return f.Internals.jsObjects[t]=e,t},importJsTextureView:(e,r=0)=>{var t=Wr(r);return f.Internals.jsObjects[t]=e,t},errorCallback:(e,r,t,n)=>{var a=b(),i=te(t);C(e)(r,i,n),S(a)},setStringView:(e,r,t)=>{l[e>>2]=r,l[e+4>>2]=t},makeStringFromStringView:e=>{var r=l[e>>2],t=l[e+4>>2];return P(r,t)},makeStringFromOptionalStringView:e=>{var r=l[e>>2],t=l[e+4>>2];return r?P(r,t):t===0?\"\":void 0},makeColor:e=>({r:ie[e>>3],g:ie[e+8>>3],b:ie[e+16>>3],a:ie[e+24>>3]}),makeExtent3D:e=>({width:l[e>>2],height:l[e+4>>2],depthOrArrayLayers:l[e+8>>2]}),makeOrigin3D:e=>({x:l[e>>2],y:l[e+4>>2],z:l[e+8>>2]}),makeTexelCopyTextureInfo:e=>({texture:f.getJsObject(l[e>>2]),mipLevel:l[e+4>>2],origin:f.makeOrigin3D(e+8),aspect:f.TextureAspect[l[e+20>>2]]}),makeTexelCopyBufferLayout:e=>{var r=l[e+8>>2],t=l[e+12>>2];return{offset:l[e+4>>2]*4294967296+l[e>>2],bytesPerRow:r===4294967295?void 0:r,rowsPerImage:t===4294967295?void 0:t}},makeTexelCopyBufferInfo:e=>{var r=e+0,t=f.makeTexelCopyBufferLayout(r);return t.buffer=f.getJsObject(l[e+16>>2]),t},makePassTimestampWrites:e=>{if(e!==0)return{querySet:f.getJsObject(l[e+4>>2]),beginningOfPassWriteIndex:l[e+8>>2],endOfPassWriteIndex:l[e+12>>2]}},makePipelineConstants:(e,r)=>{if(e){for(var t={},n=0;n<e;++n){var a=r+24*n,i=f.makeStringFromStringView(a+4);t[i]=ie[a+16>>3]}return t}},makePipelineLayout:e=>e?f.getJsObject(e):\"auto\",makeComputeState:e=>{if(e){var r={module:f.getJsObject(l[e+4>>2]),constants:f.makePipelineConstants(l[e+16>>2],l[e+20>>2]),entryPoint:f.makeStringFromOptionalStringView(e+8)};return r}},makeComputePipelineDesc:e=>{var r={label:f.makeStringFromOptionalStringView(e+4),layout:f.makePipelineLayout(l[e+12>>2]),compute:f.makeComputeState(e+16)};return r},makeRenderPipelineDesc:e=>{function r(g){if(g)return{topology:f.PrimitiveTopology[l[g+4>>2]],stripIndexFormat:f.IndexFormat[l[g+8>>2]],frontFace:f.FrontFace[l[g+12>>2]],cullMode:f.CullMode[l[g+16>>2]],unclippedDepth:!!l[g+20>>2]}}function t(g){if(g)return{operation:f.BlendOperation[l[g>>2]],srcFactor:f.BlendFactor[l[g+4>>2]],dstFactor:f.BlendFactor[l[g+8>>2]]}}function n(g){if(g)return{alpha:t(g+12),color:t(g+0)}}function a(g){var k=l[g+4>>2];return k===0?void 0:{format:f.TextureFormat[k],blend:n(l[g+8>>2]),writeMask:l[g+16>>2]}}function i(g,k){for(var x=[],O=0;O<g;++O)x.push(a(k+24*O));return x}function o(g){return{compare:f.CompareFunction[l[g>>2]],failOp:f.StencilOperation[l[g+4>>2]],depthFailOp:f.StencilOperation[l[g+8>>2]],passOp:f.StencilOperation[l[g+12>>2]]}}function u(g){if(g)return{format:f.TextureFormat[l[g+4>>2]],depthWriteEnabled:!!l[g+8>>2],depthCompare:f.CompareFunction[l[g+12>>2]],stencilFront:o(g+16),stencilBack:o(g+32),stencilReadMask:l[g+48>>2],stencilWriteMask:l[g+52>>2],depthBias:T[g+56>>2],depthBiasSlopeScale:se[g+60>>2],depthBiasClamp:se[g+64>>2]}}function c(g){return{format:f.VertexFormat[l[g+4>>2]],offset:l[g+4+8>>2]*4294967296+l[g+8>>2],shaderLocation:l[g+16>>2]}}function d(g,k){for(var x=[],O=0;O<g;++O)x.push(c(k+O*24));return x}function m(g){if(g){var k=l[g+4>>2],x=l[g+16>>2];return k===0&&x===0?null:{arrayStride:l[g+4+8>>2]*4294967296+l[g+8>>2],stepMode:f.VertexStepMode[k],attributes:d(x,l[g+20>>2])}}}function p(g,k){if(g){for(var x=[],O=0;O<g;++O)x.push(m(k+O*24));return x}}function h(g){if(g){var k={module:f.getJsObject(l[g+4>>2]),constants:f.makePipelineConstants(l[g+16>>2],l[g+20>>2]),buffers:p(l[g+24>>2],l[g+28>>2]),entryPoint:f.makeStringFromOptionalStringView(g+8)};return k}}function y(g){if(g)return{count:l[g+4>>2],mask:l[g+8>>2],alphaToCoverageEnabled:!!l[g+12>>2]}}function _(g){if(g){var k={module:f.getJsObject(l[g+4>>2]),constants:f.makePipelineConstants(l[g+16>>2],l[g+20>>2]),targets:i(l[g+24>>2],l[g+28>>2]),entryPoint:f.makeStringFromOptionalStringView(g+8)};return k}}var w={label:f.makeStringFromOptionalStringView(e+4),layout:f.makePipelineLayout(l[e+12>>2]),vertex:h(e+16),primitive:r(e+48),depthStencil:u(l[e+72>>2]),multisample:y(e+76),fragment:_(l[e+92>>2])};return w},fillLimitStruct:(e,r)=>{function t(a,i){var o=e[a];T[r+i>>2]=o}function n(a,i){var o=e[a];B[r+i>>3]=BigInt(o)}t(\"maxTextureDimension1D\",4),t(\"maxTextureDimension2D\",8),t(\"maxTextureDimension3D\",12),t(\"maxTextureArrayLayers\",16),t(\"maxBindGroups\",20),t(\"maxBindGroupsPlusVertexBuffers\",24),t(\"maxBindingsPerBindGroup\",28),t(\"maxDynamicUniformBuffersPerPipelineLayout\",32),t(\"maxDynamicStorageBuffersPerPipelineLayout\",36),t(\"maxSampledTexturesPerShaderStage\",40),t(\"maxSamplersPerShaderStage\",44),t(\"maxStorageBuffersPerShaderStage\",48),t(\"maxStorageTexturesPerShaderStage\",52),t(\"maxUniformBuffersPerShaderStage\",56),t(\"minUniformBufferOffsetAlignment\",80),t(\"minStorageBufferOffsetAlignment\",84),n(\"maxUniformBufferBindingSize\",64),n(\"maxStorageBufferBindingSize\",72),t(\"maxVertexBuffers\",88),n(\"maxBufferSize\",96),t(\"maxVertexAttributes\",104),t(\"maxVertexBufferArrayStride\",108),t(\"maxInterStageShaderVariables\",112),t(\"maxColorAttachments\",116),t(\"maxColorAttachmentBytesPerSample\",120),t(\"maxComputeWorkgroupStorageSize\",124),t(\"maxComputeInvocationsPerWorkgroup\",128),t(\"maxComputeWorkgroupSizeX\",132),t(\"maxComputeWorkgroupSizeY\",136),t(\"maxComputeWorkgroupSizeZ\",140),t(\"maxComputeWorkgroupsPerDimension\",144),e.maxImmediateSize!==void 0&&t(\"maxImmediateSize\",148)},fillAdapterInfoStruct:(e,r)=>{T[r+52>>2]=e.subgroupMinSize,T[r+56>>2]=e.subgroupMaxSize;var t=e.vendor+e.architecture+e.device+e.description,n=Or(t),a=q(e.vendor);f.setStringView(r+4,n,a),n+=a;var i=q(e.architecture);f.setStringView(r+12,n,i),n+=i;var o=q(e.device);f.setStringView(r+20,n,o),n+=o;var u=q(e.description);f.setStringView(r+28,n,u),n+=u,T[r+36>>2]=2;var c=e.isFallbackAdapter?3:4;T[r+40>>2]=c,T[r+44>>2]=0,T[r+48>>2]=0},AddressMode:[,\"clamp-to-edge\",\"repeat\",\"mirror-repeat\"],BlendFactor:[,\"zero\",\"one\",\"src\",\"one-minus-src\",\"src-alpha\",\"one-minus-src-alpha\",\"dst\",\"one-minus-dst\",\"dst-alpha\",\"one-minus-dst-alpha\",\"src-alpha-saturated\",\"constant\",\"one-minus-constant\",\"src1\",\"one-minus-src1\",\"src1alpha\",\"one-minus-src1alpha\"],BlendOperation:[,\"add\",\"subtract\",\"reverse-subtract\",\"min\",\"max\"],BufferBindingType:[\"binding-not-used\",,\"uniform\",\"storage\",\"read-only-storage\"],BufferMapState:[,\"unmapped\",\"pending\",\"mapped\"],CompareFunction:[,\"never\",\"less\",\"equal\",\"less-equal\",\"greater\",\"not-equal\",\"greater-equal\",\"always\"],CompilationInfoRequestStatus:[,\"success\",\"callback-cancelled\"],CompositeAlphaMode:[,\"opaque\",\"premultiplied\",\"unpremultiplied\",\"inherit\"],CullMode:[,\"none\",\"front\",\"back\"],ErrorFilter:[,\"validation\",\"out-of-memory\",\"internal\"],FeatureLevel:[,\"compatibility\",\"core\"],FeatureName:{1:\"core-features-and-limits\",2:\"depth-clip-control\",3:\"depth32float-stencil8\",4:\"texture-compression-bc\",5:\"texture-compression-bc-sliced-3d\",6:\"texture-compression-etc2\",7:\"texture-compression-astc\",8:\"texture-compression-astc-sliced-3d\",9:\"timestamp-query\",10:\"indirect-first-instance\",11:\"shader-f16\",12:\"rg11b10ufloat-renderable\",13:\"bgra8unorm-storage\",14:\"float32-filterable\",15:\"float32-blendable\",16:\"clip-distances\",17:\"dual-source-blending\",18:\"subgroups\",19:\"texture-formats-tier1\",20:\"texture-formats-tier2\",327692:\"chromium-experimental-unorm16-texture-formats\",327693:\"chromium-experimental-snorm16-texture-formats\",327732:\"chromium-experimental-multi-draw-indirect\"},FilterMode:[,\"nearest\",\"linear\"],FrontFace:[,\"ccw\",\"cw\"],IndexFormat:[,\"uint16\",\"uint32\"],InstanceFeatureName:[,\"timed-wait-any\",\"shader-source-spirv\",\"multiple-devices-per-adapter\"],LoadOp:[,\"load\",\"clear\"],MipmapFilterMode:[,\"nearest\",\"linear\"],OptionalBool:[\"false\",\"true\"],PowerPreference:[,\"low-power\",\"high-performance\"],PredefinedColorSpace:[,\"srgb\",\"display-p3\"],PrimitiveTopology:[,\"point-list\",\"line-list\",\"line-strip\",\"triangle-list\",\"triangle-strip\"],QueryType:[,\"occlusion\",\"timestamp\"],SamplerBindingType:[\"binding-not-used\",,\"filtering\",\"non-filtering\",\"comparison\"],Status:[,\"success\",\"error\"],StencilOperation:[,\"keep\",\"zero\",\"replace\",\"invert\",\"increment-clamp\",\"decrement-clamp\",\"increment-wrap\",\"decrement-wrap\"],StorageTextureAccess:[\"binding-not-used\",,\"write-only\",\"read-only\",\"read-write\"],StoreOp:[,\"store\",\"discard\"],SurfaceGetCurrentTextureStatus:[,\"success-optimal\",\"success-suboptimal\",\"timeout\",\"outdated\",\"lost\",\"error\"],TextureAspect:[,\"all\",\"stencil-only\",\"depth-only\"],TextureDimension:[,\"1d\",\"2d\",\"3d\"],TextureFormat:[,\"r8unorm\",\"r8snorm\",\"r8uint\",\"r8sint\",\"r16unorm\",\"r16snorm\",\"r16uint\",\"r16sint\",\"r16float\",\"rg8unorm\",\"rg8snorm\",\"rg8uint\",\"rg8sint\",\"r32float\",\"r32uint\",\"r32sint\",\"rg16unorm\",\"rg16snorm\",\"rg16uint\",\"rg16sint\",\"rg16float\",\"rgba8unorm\",\"rgba8unorm-srgb\",\"rgba8snorm\",\"rgba8uint\",\"rgba8sint\",\"bgra8unorm\",\"bgra8unorm-srgb\",\"rgb10a2uint\",\"rgb10a2unorm\",\"rg11b10ufloat\",\"rgb9e5ufloat\",\"rg32float\",\"rg32uint\",\"rg32sint\",\"rgba16unorm\",\"rgba16snorm\",\"rgba16uint\",\"rgba16sint\",\"rgba16float\",\"rgba32float\",\"rgba32uint\",\"rgba32sint\",\"stencil8\",\"depth16unorm\",\"depth24plus\",\"depth24plus-stencil8\",\"depth32float\",\"depth32float-stencil8\",\"bc1-rgba-unorm\",\"bc1-rgba-unorm-srgb\",\"bc2-rgba-unorm\",\"bc2-rgba-unorm-srgb\",\"bc3-rgba-unorm\",\"bc3-rgba-unorm-srgb\",\"bc4-r-unorm\",\"bc4-r-snorm\",\"bc5-rg-unorm\",\"bc5-rg-snorm\",\"bc6h-rgb-ufloat\",\"bc6h-rgb-float\",\"bc7-rgba-unorm\",\"bc7-rgba-unorm-srgb\",\"etc2-rgb8unorm\",\"etc2-rgb8unorm-srgb\",\"etc2-rgb8a1unorm\",\"etc2-rgb8a1unorm-srgb\",\"etc2-rgba8unorm\",\"etc2-rgba8unorm-srgb\",\"eac-r11unorm\",\"eac-r11snorm\",\"eac-rg11unorm\",\"eac-rg11snorm\",\"astc-4x4-unorm\",\"astc-4x4-unorm-srgb\",\"astc-5x4-unorm\",\"astc-5x4-unorm-srgb\",\"astc-5x5-unorm\",\"astc-5x5-unorm-srgb\",\"astc-6x5-unorm\",\"astc-6x5-unorm-srgb\",\"astc-6x6-unorm\",\"astc-6x6-unorm-srgb\",\"astc-8x5-unorm\",\"astc-8x5-unorm-srgb\",\"astc-8x6-unorm\",\"astc-8x6-unorm-srgb\",\"astc-8x8-unorm\",\"astc-8x8-unorm-srgb\",\"astc-10x5-unorm\",\"astc-10x5-unorm-srgb\",\"astc-10x6-unorm\",\"astc-10x6-unorm-srgb\",\"astc-10x8-unorm\",\"astc-10x8-unorm-srgb\",\"astc-10x10-unorm\",\"astc-10x10-unorm-srgb\",\"astc-12x10-unorm\",\"astc-12x10-unorm-srgb\",\"astc-12x12-unorm\",\"astc-12x12-unorm-srgb\"],TextureSampleType:[\"binding-not-used\",,\"float\",\"unfilterable-float\",\"depth\",\"sint\",\"uint\"],TextureViewDimension:[,\"1d\",\"2d\",\"2d-array\",\"cube\",\"cube-array\",\"3d\"],ToneMappingMode:[,\"standard\",\"extended\"],VertexFormat:[,\"uint8\",\"uint8x2\",\"uint8x4\",\"sint8\",\"sint8x2\",\"sint8x4\",\"unorm8\",\"unorm8x2\",\"unorm8x4\",\"snorm8\",\"snorm8x2\",\"snorm8x4\",\"uint16\",\"uint16x2\",\"uint16x4\",\"sint16\",\"sint16x2\",\"sint16x4\",\"unorm16\",\"unorm16x2\",\"unorm16x4\",\"snorm16\",\"snorm16x2\",\"snorm16x4\",\"float16\",\"float16x2\",\"float16x4\",\"float32\",\"float32x2\",\"float32x3\",\"float32x4\",\"uint32\",\"uint32x2\",\"uint32x3\",\"uint32x4\",\"sint32\",\"sint32x2\",\"sint32x3\",\"sint32x4\",\"unorm10-10-10-2\",\"unorm8x4-bgra\"],VertexStepMode:[,\"vertex\",\"instance\"],WGSLLanguageFeatureName:[,\"readonly_and_readwrite_storage_textures\",\"packed_4x8_integer_dot_product\",\"unrestricted_pointer_parameters\",\"pointer_composite_access\"]},eo={undefined:1,unknown:1,destroyed:2};function ro(e,r,t,n,a,i){r=Z(r),t=Z(t);var o=f.getJsObject(e),u={};if(i){var c=l[i+12>>2];if(c){var d=l[i+16>>2];u.requiredFeatures=Array.from(l.subarray(d>>2,d+c*4>>2),_=>f.FeatureName[_])}var m=l[i+20>>2];if(m){let _=function(g,k,x=!1){var O=m+k,N=l[O>>2];N!=4294967295&&(!x||N!=0)&&(p[g]=N)},w=function(g,k){var x=m+k,O=l[x>>2],N=l[x+4>>2];(O!=4294967295||N!=4294967295)&&(p[g]=l[x+4>>2]*4294967296+l[x>>2])};var p={};_(\"maxTextureDimension1D\",4),_(\"maxTextureDimension2D\",8),_(\"maxTextureDimension3D\",12),_(\"maxTextureArrayLayers\",16),_(\"maxBindGroups\",20),_(\"maxBindGroupsPlusVertexBuffers\",24),_(\"maxDynamicUniformBuffersPerPipelineLayout\",32),_(\"maxDynamicStorageBuffersPerPipelineLayout\",36),_(\"maxSampledTexturesPerShaderStage\",40),_(\"maxSamplersPerShaderStage\",44),_(\"maxStorageBuffersPerShaderStage\",48),_(\"maxStorageTexturesPerShaderStage\",52),_(\"maxUniformBuffersPerShaderStage\",56),_(\"minUniformBufferOffsetAlignment\",80),_(\"minStorageBufferOffsetAlignment\",84),w(\"maxUniformBufferBindingSize\",64),w(\"maxStorageBufferBindingSize\",72),_(\"maxVertexBuffers\",88),w(\"maxBufferSize\",96),_(\"maxVertexAttributes\",104),_(\"maxVertexBufferArrayStride\",108),_(\"maxInterStageShaderVariables\",112),_(\"maxColorAttachments\",116),_(\"maxColorAttachmentBytesPerSample\",120),_(\"maxComputeWorkgroupStorageSize\",124),_(\"maxComputeInvocationsPerWorkgroup\",128),_(\"maxComputeWorkgroupSizeX\",132),_(\"maxComputeWorkgroupSizeY\",136),_(\"maxComputeWorkgroupSizeZ\",140),_(\"maxComputeWorkgroupsPerDimension\",144),_(\"maxImmediateSize\",148,!0),u.requiredLimits=p}var h=l[i+24>>2];if(h){var y={label:f.makeStringFromOptionalStringView(h+4)};u.defaultQueue=y}u.label=f.makeStringFromOptionalStringView(i+4)}f.Internals.futureInsert(r,o.requestDevice(u).then(_=>{f.Internals.jsObjectInsert(a,_.queue),f.Internals.jsObjectInsert(n,_),t&&f.Internals.futureInsert(t,_.lost.then(w=>{_.onuncapturederror=x=>{};var g=b(),k=te(w.message);Vr(t,eo[w.reason],k),S(g)})),_.onuncapturederror=w=>{var g=5;w.error instanceof GPUValidationError?g=2:w.error instanceof GPUOutOfMemoryError?g=3:w.error instanceof GPUInternalError&&(g=4);var k=b(),x=te(w.error.message);en(n,g,x),S(k)},zr(r,1,n,0)},_=>{var w=b(),g=te(_.message);zr(r,3,n,g),t&&Vr(t,4,g),S(w)}))}var to=e=>{var r=f.getJsObject(e),t=f.Internals.bufferOnUnmaps[e];if(t){for(var n=0;n<t.length;++n)t[n]();delete f.Internals.bufferOnUnmaps[e]}r.destroy()},er=e=>{er.shown||={},er.shown[e]||(er.shown[e]=1,ae(e))},no=(e,r,t)=>{var n=f.getJsObject(e);t===0&&er(\"getMappedRange size=0 no longer means WGPU_WHOLE_MAP_SIZE\"),t==-1&&(t=void 0);var a;try{a=n.getMappedRange(r,t)}catch{return 0}var i=tn(16,a.byteLength);return L.set(new Uint8Array(a),i),f.Internals.bufferOnUnmaps[e].push(()=>ne(i)),i},ao=function(e,r,t,n,a){r=Z(r),t=Z(t);var i=f.getJsObject(e);f.Internals.bufferOnUnmaps[e]=[],a==-1&&(a=void 0),f.Internals.futureInsert(r,i.mapAsync(t,n,a).then(()=>{Nr(r,1,0)},o=>{var u=b(),c=te(o.message),d=o.name===\"AbortError\"?4:o.name===\"OperationError\"?3:0;Nr(r,d,c),delete f.Internals.bufferOnUnmaps[e]}))},io=e=>{var r=f.getJsObject(e),t=f.Internals.bufferOnUnmaps[e];if(t){for(var n=0;n<t.length;++n)t[n]();delete f.Internals.bufferOnUnmaps[e],r.unmap()}},oo=e=>{delete f.Internals.jsObjects[e]},so=(e,r,t)=>{var n=!!l[r+32>>2],a={label:f.makeStringFromOptionalStringView(r+4),usage:l[r+16>>2],size:l[r+4+24>>2]*4294967296+l[r+24>>2],mappedAtCreation:n},i=f.getJsObject(e),o;try{o=i.createBuffer(a)}catch{return!1}return f.Internals.jsObjectInsert(t,o),n&&(f.Internals.bufferOnUnmaps[t]=[]),!0},uo=(e,r,t)=>{var n=l[r>>2],a=l[n+4>>2],i={label:f.makeStringFromOptionalStringView(r+4),code:\"\"};switch(a){case 2:{i.code=f.makeStringFromStringView(n+8);break}}var o=f.getJsObject(e);f.Internals.jsObjectInsert(t,o.createShaderModule(i))},co=e=>{const r=f.getJsObject(e);r.onuncapturederror=null,r.destroy()},lo=function(e,r){r=Z(r);var t=f.getJsObject(e);f.Internals.futureInsert(r,t.popErrorScope().then(n=>{var a=5;n?n instanceof GPUValidationError?a=2:n instanceof GPUOutOfMemoryError?a=3:n instanceof GPUInternalError&&(a=4):a=1;var i=b(),o=n?te(n.message):0;Jr(r,1,a,o),S(i)},n=>{var a=b(),i=te(n.message);Jr(r,1,5,i),S(a)}))},fo={rgba8unorm:22,bgra8unorm:27},vo=()=>{var e=navigator.gpu.getPreferredCanvasFormat();return fo[e]};function mo(e,r,t,n){r=Z(r);var a;if(t){var i=l[t+4>>2];a={featureLevel:f.FeatureLevel[i],powerPreference:f.PowerPreference[l[t+8>>2]],forceFallbackAdapter:!!l[t+12>>2]};var o=l[t>>2];if(o!==0){var u=l[o+4>>2],c=o;a.xrCompatible=!!l[c+8>>2]}}if(!(\"gpu\"in navigator)){var d=b(),m=te(\"WebGPU not available on this browser (navigator.gpu is not available)\");Be(r,3,n,m),S(d);return}f.Internals.futureInsert(r,navigator.gpu.requestAdapter(a).then(p=>{if(p)f.Internals.jsObjectInsert(n,p),Be(r,1,n,0);else{var h=b(),y=te(\"WebGPU not available on this browser (requestAdapter returned null)\");Be(r,3,n,y),S(h)}},p=>{var h=b(),y=te(p.message);Be(r,4,n,y),S(h)}))}var po={error:1,warning:2,info:3},_o=function(e,r,t){r=Z(r);var n=f.getJsObject(e);f.Internals.futureInsert(r,n.getCompilationInfo().then(a=>{const i=a.messages.length;if(l[t+4>>2]=i,i){for(var o=1,u=[],c=0;c<i;++c){var d=q(a.messages[c].message);o+=d,u.push(d)}var m=X(o),p=X(48*i);l[t+8>>2]=p;for(var h=X(32*i),c=0;c<i;++c){var y=a.messages[c],_=p+48*c,w=h+32*c;f.setStringView(_+4,m,u[c]),l[_>>2]=w,T[_+12>>2]=po[y.type],B[_+16>>3]=BigInt(y.lineNum),B[_+24>>3]=BigInt(y.linePos),B[_+32>>3]=BigInt(y.offset),B[_+40>>3]=BigInt(y.length),l[w>>2]=0,T[w+4>>2]=327743,B[w+8>>3]=BigInt(y.linePos),B[w+16>>3]=BigInt(y.offset),B[w+24>>3]=BigInt(y.length),G(y.message,m,u[c]+1),m+=u[c]}}Kt(r,1,t)},()=>{ue(\"Unexpected failure in GPUShaderModule.getCompilationInfo().\")}))},go=()=>{ue(\"TODO: Implement asyncify-free WaitAny for timeout=0\")},rr={},ho=()=>Zr||\"./this.program\",Pe=()=>{if(!Pe.strings){var e=(typeof navigator==\"object\"&&navigator.language||\"C\").replace(\"-\",\"_\")+\".UTF-8\",r={USER:\"web_user\",LOGNAME:\"web_user\",PATH:\"/\",PWD:\"/\",HOME:\"/home/web_user\",LANG:e,_:ho()};for(var t in rr)rr[t]===void 0?delete r[t]:r[t]=rr[t];var n=[];for(var t in r)n.push(`${t}=${r[t]}`);Pe.strings=n}return Pe.strings},yo=(e,r)=>{var t=0,n=0;for(var a of Pe()){var i=r+t;l[e+n>>2]=i,t+=G(a,i,1/0)+1,n+=4}return 0},wo=(e,r)=>{var t=Pe();l[e>>2]=t.length;var n=0;for(var a of t)n+=q(a)+1;return l[r>>2]=n,0};function bo(e){try{var r=R.getStreamFromFD(e);return s.close(r),0}catch(t){if(typeof s>\"u\"||t.name!==\"ErrnoError\")throw t;return t.errno}}function So(e,r){try{var t=0,n=0,a=0,i=R.getStreamFromFD(e),o=i.tty?2:s.isDir(i.mode)?3:s.isLink(i.mode)?7:4;return W[r]=o,D[r+2>>1]=a,B[r+8>>3]=BigInt(t),B[r+16>>3]=BigInt(n),0}catch(u){if(typeof s>\"u\"||u.name!==\"ErrnoError\")throw u;return u.errno}}var Co=(e,r,t,n)=>{for(var a=0,i=0;i<t;i++){var o=l[r>>2],u=l[r+4>>2];r+=8;var c=s.read(e,W,o,u,n);if(c<0)return-1;if(a+=c,c<u)break;typeof n<\"u\"&&(n+=c)}return a};function ko(e,r,t,n){try{var a=R.getStreamFromFD(e),i=Co(a,r,t);return l[n>>2]=i,0}catch(o){if(typeof s>\"u\"||o.name!==\"ErrnoError\")throw o;return o.errno}}function Eo(e,r,t,n){r=Z(r);try{if(isNaN(r))return 61;var a=R.getStreamFromFD(e);return s.llseek(a,r,t),B[n>>3]=BigInt(a.position),a.getdents&&r===0&&t===0&&(a.getdents=null),0}catch(i){if(typeof s>\"u\"||i.name!==\"ErrnoError\")throw i;return i.errno}}var To=(e,r,t,n)=>{for(var a=0,i=0;i<t;i++){var o=l[r>>2],u=l[r+4>>2];r+=8;var c=s.write(e,W,o,u,n);if(c<0)return-1;if(a+=c,c<u)break;typeof n<\"u\"&&(n+=c)}return a};function Fo(e,r,t,n){try{var a=R.getStreamFromFD(e),i=To(a,r,t);return l[n>>2]=i,0}catch(o){if(typeof s>\"u\"||o.name!==\"ErrnoError\")throw o;return o.errno}}var xo=e=>e;function Oo(e,r){try{return vr(L.subarray(e,e+r)),0}catch(t){if(typeof s>\"u\"||t.name!==\"ErrnoError\")throw t;return t.errno}}var jo=(e,r)=>{var t=f.getJsObject(e);return f.fillAdapterInfoStruct(t.info,r),1},Ao=(e,r)=>{var t=f.getJsObject(e);return f.fillLimitStruct(t.limits,r),1},Do=(e,r)=>{var t=f.getJsObject(e);return t.features.has(f.FeatureName[r])},Po=function(e){var r=(()=>{var t=f.getJsObject(e);return t.size})();return BigInt(r)},Io=function(e){var r=(()=>{var t=f.getJsObject(e);return t.usage})();return BigInt(r)},Bo=(e,r)=>{var t;r&&(t={label:f.makeStringFromOptionalStringView(r+4),timestampWrites:f.makePassTimestampWrites(l[r+12>>2])});var n=f.getJsObject(e),a=Pr(0);return f.Internals.jsObjectInsert(a,n.beginComputePass(t)),a},Ro=(e,r)=>{function t(d){var m=l[d+4>>2];if(m!==0){var p=T[d+8>>2];p==-1&&(p=void 0);var h=l[d+16>>2],y=l[d+20>>2],_=f.makeColor(d+24);return{view:f.getJsObject(m),depthSlice:p,resolveTarget:f.getJsObject(l[d+12>>2]),clearValue:_,loadOp:f.LoadOp[h],storeOp:f.StoreOp[y]}}}function n(d,m){for(var p=[],h=0;h<d;++h)p.push(t(m+56*h));return p}function a(d){if(d!==0)return{view:f.getJsObject(l[d+4>>2]),depthClearValue:se[d+16>>2],depthLoadOp:f.LoadOp[l[d+8>>2]],depthStoreOp:f.StoreOp[l[d+12>>2]],depthReadOnly:!!l[d+20>>2],stencilClearValue:l[d+32>>2],stencilLoadOp:f.LoadOp[l[d+24>>2]],stencilStoreOp:f.StoreOp[l[d+28>>2]],stencilReadOnly:!!l[d+36>>2]}}function i(d){var m=l[d>>2],p=void 0;if(m!==0){var h=l[m+4>>2],y=m;p=l[y+4+8>>2]*4294967296+l[y+8>>2]}var _={label:f.makeStringFromOptionalStringView(d+4),colorAttachments:n(l[d+12>>2],l[d+16>>2]),depthStencilAttachment:a(l[d+20>>2]),occlusionQuerySet:f.getJsObject(l[d+24>>2]),timestampWrites:f.makePassTimestampWrites(l[d+28>>2]),maxDrawCount:p};return _}var o=i(r),u=f.getJsObject(e),c=$r(0);return f.Internals.jsObjectInsert(c,u.beginRenderPass(o)),c};function $o(e,r,t,n,a,i){t=Z(t),a=Z(a),i=Z(i);var o=f.getJsObject(e),u=f.getJsObject(r),c=f.getJsObject(n);o.copyBufferToBuffer(u,t,c,a,i)}var Go=(e,r)=>{var t=f.getJsObject(e),n=Ar(0);return f.Internals.jsObjectInsert(n,t.finish()),n};function Mo(e,r,t,n,a,i){i=Z(i);var o=f.getJsObject(e),u=f.getJsObject(r),c=f.getJsObject(a);o.resolveQuerySet(u,t,n,c,i)}var Lo=(e,r,t,n)=>{var a=f.getJsObject(e);a.dispatchWorkgroups(r,t,n)},Wo=e=>{var r=f.getJsObject(e);r.end()},Uo=(e,r,t,n,a)=>{var i=f.getJsObject(e),o=f.getJsObject(t);n==0?i.setBindGroup(r,o):i.setBindGroup(r,o,l,a>>2,n)},Vo=(e,r)=>{var t=f.getJsObject(e),n=f.getJsObject(r);t.setPipeline(n)},No=(e,r)=>{var t=f.getJsObject(e),n=Ie(0);return f.Internals.jsObjectInsert(n,t.getBindGroupLayout(r)),n},Jo=e=>l[e>>2]+T[e+4>>2]*4294967296,zo=(e,r)=>{function t(u){var c=l[u+8>>2],d=l[u+32>>2],m=l[u+36>>2],p=l[u+4>>2];if(c){var h=Jo(u+24);return h==-1&&(h=void 0),{binding:p,resource:{buffer:f.getJsObject(c),offset:l[u+4+16>>2]*4294967296+l[u+16>>2],size:h}}}else return d?{binding:p,resource:f.getJsObject(d)}:{binding:p,resource:f.getJsObject(m)}}function n(u,c){for(var d=[],m=0;m<u;++m)d.push(t(c+40*m));return d}var a={label:f.makeStringFromOptionalStringView(r+4),layout:f.getJsObject(l[r+12>>2]),entries:n(l[r+16>>2],l[r+20>>2])},i=f.getJsObject(e),o=jr(0);return f.Internals.jsObjectInsert(o,i.createBindGroup(a)),o},qo=(e,r)=>{function t(p){var h=l[p+4>>2];if(h)return{type:f.BufferBindingType[h],hasDynamicOffset:!!l[p+8>>2],minBindingSize:l[p+4+16>>2]*4294967296+l[p+16>>2]}}function n(p){var h=l[p+4>>2];if(h)return{type:f.SamplerBindingType[h]}}function a(p){var h=l[p+4>>2];if(h)return{sampleType:f.TextureSampleType[h],viewDimension:f.TextureViewDimension[l[p+8>>2]],multisampled:!!l[p+12>>2]}}function i(p){var h=l[p+4>>2];if(h)return{access:f.StorageTextureAccess[h],format:f.TextureFormat[l[p+8>>2]],viewDimension:f.TextureViewDimension[l[p+12>>2]]}}function o(p){return{binding:l[p+4>>2],visibility:l[p+8>>2],buffer:t(p+24),sampler:n(p+48),texture:a(p+56),storageTexture:i(p+72)}}function u(p,h){for(var y=[],_=0;_<p;++_)y.push(o(h+88*_));return y}var c={label:f.makeStringFromOptionalStringView(r+4),entries:u(l[r+12>>2],l[r+16>>2])},d=f.getJsObject(e),m=Ie(0);return f.Internals.jsObjectInsert(m,d.createBindGroupLayout(c)),m},Ho=(e,r)=>{var t;r&&(t={label:f.makeStringFromOptionalStringView(r+4)});var n=f.getJsObject(e),a=Dr(0);return f.Internals.jsObjectInsert(a,n.createCommandEncoder(t)),a},Qo=(e,r)=>{var t=f.makeComputePipelineDesc(r),n=f.getJsObject(e),a=Ir(0);return f.Internals.jsObjectInsert(a,n.createComputePipeline(t)),a},Zo=(e,r)=>{for(var t=l[r+12>>2],n=l[r+16>>2],a=[],i=0;i<t;++i)a.push(f.getJsObject(l[n+4*i>>2]));var o={label:f.makeStringFromOptionalStringView(r+4),bindGroupLayouts:a},u=f.getJsObject(e),c=Br(0);return f.Internals.jsObjectInsert(c,u.createPipelineLayout(o)),c},Xo=(e,r)=>{var t={type:f.QueryType[l[r+12>>2]],count:l[r+16>>2]},n=f.getJsObject(e),a=Rr(0);return f.Internals.jsObjectInsert(a,n.createQuerySet(t)),a},Yo=(e,r)=>{var t=f.makeRenderPipelineDesc(r),n=f.getJsObject(e),a=Gr(0);return f.Internals.jsObjectInsert(a,n.createRenderPipeline(t)),a},Ko=(e,r)=>{var t;r&&(t={label:f.makeStringFromOptionalStringView(r+4),addressModeU:f.AddressMode[l[r+12>>2]],addressModeV:f.AddressMode[l[r+16>>2]],addressModeW:f.AddressMode[l[r+20>>2]],magFilter:f.FilterMode[l[r+24>>2]],minFilter:f.FilterMode[l[r+28>>2]],mipmapFilter:f.MipmapFilterMode[l[r+32>>2]],lodMinClamp:se[r+36>>2],lodMaxClamp:se[r+40>>2],compare:f.CompareFunction[l[r+44>>2]],maxAnisotropy:me[r+48>>1]});var n=f.getJsObject(e),a=Mr(0);return f.Internals.jsObjectInsert(a,n.createSampler(t)),a},es=(e,r)=>{var t={label:f.makeStringFromOptionalStringView(r+4),size:f.makeExtent3D(r+28),mipLevelCount:l[r+44>>2],sampleCount:l[r+48>>2],dimension:f.TextureDimension[l[r+24>>2]],format:f.TextureFormat[l[r+40>>2]],usage:l[r+16>>2]},n=l[r+52>>2];if(n){var a=l[r+56>>2];t.viewFormats=Array.from(T.subarray(a>>2,a+n*4>>2),u=>f.TextureFormat[u])}var i=f.getJsObject(e),o=tr(0);return f.Internals.jsObjectInsert(o,i.createTexture(t)),o},rs={\"core-features-and-limits\":1,\"depth-clip-control\":2,\"depth32float-stencil8\":3,\"texture-compression-bc\":4,\"texture-compression-bc-sliced-3d\":5,\"texture-compression-etc2\":6,\"texture-compression-astc\":7,\"texture-compression-astc-sliced-3d\":8,\"timestamp-query\":9,\"indirect-first-instance\":10,\"shader-f16\":11,\"rg11b10ufloat-renderable\":12,\"bgra8unorm-storage\":13,\"float32-filterable\":14,\"float32-blendable\":15,\"clip-distances\":16,\"dual-source-blending\":17,subgroups:18,\"texture-formats-tier1\":19,\"texture-formats-tier2\":20,\"chromium-experimental-unorm16-texture-formats\":327692,\"chromium-experimental-snorm16-texture-formats\":327693,\"chromium-experimental-multi-draw-indirect\":327732},ts=(e,r)=>{var t=f.getJsObject(e),n=X(t.features.size*4),a=0,i=0;t.features.forEach(o=>{var u=rs[o];u>=0&&(T[n+a>>2]=u,a+=4,i++)}),l[r+4>>2]=n,l[r>>2]=i},ns=(e,r)=>{var t=f.getJsObject(e);return f.fillLimitStruct(t.limits,r),1},as=(e,r)=>{var t=f.getJsObject(e);return t.features.has(f.FeatureName[r])},is=(e,r)=>{var t=f.getJsObject(e);t.pushErrorScope(f.ErrorFilter[r])},os=e=>e>2?P(e):e,ss=[0,typeof document<\"u\"?document:0,typeof window<\"u\"?window:0],us=e=>{e=os(e);var r=ss[e]||(typeof document<\"u\"?document.querySelector(e):null);return r},cs=us,ls=(e,r)=>{var t=l[r>>2],n=t,a=l[n+8>>2],i=cs(a),o=i.getContext(\"webgpu\");if(!o)return 0;o.surfaceLabelWebGPU=f.makeStringFromOptionalStringView(r+4);var u=Lr(0);return f.Internals.jsObjectInsert(u,o),u},fs=e=>{f.getJsObject(e).destroy()},ds=(e,r,t)=>{var n=f.getJsObject(e),a=Array.from(T.subarray(t>>2,t+r*4>>2),i=>f.getJsObject(i));n.submit(a)};function vs(e,r,t,n,a){t=Z(t);var i=f.getJsObject(e),o=f.getJsObject(r),u=L.subarray(n,n+a);i.writeBuffer(o,t,u,0,a)}var ms=(e,r,t,n,a,i)=>{var o=f.getJsObject(e),u=f.makeTexelCopyTextureInfo(r),c=f.makeTexelCopyBufferLayout(a),d=f.makeExtent3D(i),m=L.subarray(t,t+n);o.writeTexture(u,m,c,d)},ps=(e,r,t,n,a)=>{n>>>=0,a>>>=0;var i=f.getJsObject(e);i.draw(r,t,n,a)},_s=e=>{var r=f.getJsObject(e);r.end()},gs=(e,r,t,n,a)=>{var i=f.getJsObject(e),o=f.getJsObject(t);n==0?i.setBindGroup(r,o):i.setBindGroup(r,o,l,a>>2,n)},hs=(e,r)=>{var t=f.getJsObject(e),n=f.getJsObject(r);t.setPipeline(n)},ys=(e,r)=>{var t=f.getJsObject(e),n=Ie(0);return f.Internals.jsObjectInsert(n,t.getBindGroupLayout(r)),n},ws=(e,r)=>{var t=l[r+4>>2],n=f.getJsObject(e),a=[l[r+24>>2],l[r+28>>2]];a[0]!==0&&(n.canvas.width=a[0]),a[1]!==0&&(n.canvas.height=a[1]);var i={device:f.getJsObject(t),format:f.TextureFormat[l[r+8>>2]],usage:l[r+16>>2],alphaMode:f.CompositeAlphaMode[l[r+40>>2]]},o=l[r+32>>2];if(o){var u=l[r+36>>2];i.viewFormats=Array.from(T.subarray(u>>2,u+o*4>>2),p=>f.TextureFormat[p])}{var c=l[r>>2];if(c!==0){var d=l[c+4>>2],m=c;i.colorSpace=f.PredefinedColorSpace[l[m+8>>2]],i.toneMapping={mode:f.ToneMappingMode[l[m+12>>2]]}}}n.configure(i)},bs=(e,r)=>{var t=f.getJsObject(e);try{var n=tr(0);f.Internals.jsObjectInsert(n,t.getCurrentTexture()),l[r+4>>2]=n,T[r+8>>2]=1}catch{l[r+4>>2]=0,T[r+8>>2]=6}},Ss=e=>{var r=f.getJsObject(e);r.unconfigure()},Cs=(e,r)=>{var t;if(r){var n=l[r+24>>2],a=l[r+32>>2];t={label:f.makeStringFromOptionalStringView(r+4),format:f.TextureFormat[l[r+12>>2]],dimension:f.TextureViewDimension[l[r+16>>2]],baseMipLevel:l[r+20>>2],mipLevelCount:n===4294967295?void 0:n,baseArrayLayer:l[r+28>>2],arrayLayerCount:a===4294967295?void 0:a,aspect:f.TextureAspect[l[r+36>>2]]}}var i=f.getJsObject(e),o=Wr(0);return f.Internals.jsObjectInsert(o,i.createView(t)),o},ks=e=>{f.getJsObject(e).destroy()},Es=e=>{var r=f.getJsObject(e);return r.depthOrArrayLayers},Ts=e=>{var r=f.getJsObject(e);return f.TextureFormat.indexOf(r.format)},Fs=e=>{var r=f.getJsObject(e);return r.height},xs=e=>{var r=f.getJsObject(e);return r.width},Rl=e=>(e>>>=0,\"0x\"+e.toString(16).padStart(8,\"0\")),Nt=e=>{var r=v[\"_\"+e];return r},Os=(e,r)=>{W.set(e,r)},Jt=(e,r,t,n,a)=>{var i={string:_=>{var w=0;return _!=null&&_!==0&&(w=te(_)),w},array:_=>{var w=Vt(_.length);return Os(_,w),w}};function o(_){return r===\"string\"?P(_):r===\"boolean\"?!!_:_}var u=Nt(e),c=[],d=0;if(n)for(var m=0;m<n.length;m++){var p=i[t[m]];p?(d===0&&(d=b()),c[m]=p(n[m])):c[m]=n[m]}var h=u(...c);function y(_){return d!==0&&S(d),o(_)}return h=y(h),h},js=(e,r,t,n)=>{var a=!t||t.every(o=>o===\"number\"||o===\"boolean\"),i=r!==\"string\";return i&&a&&!n?Nt(e):(...o)=>Jt(e,r,t,o,n)};if(s.createPreloadedFile=qn,s.preloadFile=pt,s.staticInit(),va(),Ea(),z.init(),v.noExitRuntime&&(lr=v.noExitRuntime),v.preloadPlugins&&(mt=v.preloadPlugins),v.print&&(Te=v.print),v.printErr&&(ae=v.printErr),v.wasmBinary&&(Fe=v.wasmBinary),v.arguments&&(pn=v.arguments),v.thisProgram&&(Zr=v.thisProgram),v.preInit)for(typeof v.preInit==\"function\"&&(v.preInit=[v.preInit]);v.preInit.length>0;)v.preInit.shift()();v.ENV=rr,v.ccall=Jt,v.cwrap=js,v.WebGPU=f,v.lengthBytesUTF8=q,v.stringToUTF8=G;var As={1506128:e=>{console.warn(\"looking for element: \"+P(e))}};function Ds(e,r){const t=window.injectWebGPU(e);st(r,t.adapPtr,\"i32\"),st(r+4,t.devPtr,\"i32\")}function Ps(e){if(typeof v.locateFile==\"function\")try{const r=v.locateFile(P(e));if(r){const t=q(r)+1,n=X(t);if(n)return G(r,n,t),n}}catch(r){console.warn(\"Module.locateFile failed:\",r)}return 0}function Is(e){try{if(typeof v<\"u\"&&v.workerUrl){var r=v.workerUrl,t=q(r)+1,n=X(t);return G(r,n,t),n}}catch(a){console.warn(\"Failed to read Module.workerUrl:\",a)}if(e){var t=q(P(e))+1,n=X(t);return G(P(e),n,t),n}return 0}function Bs(){return navigator.hardwareConcurrency||1}function Rs(e){v._aquaLiveTransports||(v._aquaLiveTransports=new Set),v._aquaLiveTransports.add(e),queueMicrotask(function(){v._aquaLiveTransports&&v._aquaLiveTransports.has(e)&&v._aquaDrainDeferredCompletions(e)})}function $s(e){v._aquaLiveTransports&&v._aquaLiveTransports.delete(e)}function Gs(e,r){if(!v.createDeserializeWorker)return console.error(\"createDeserializeWorker not available - worker-bridge.ts not loaded\"),0;const t=P(e);return v.createDeserializeWorker(t,v,r)?1:0}function Ms(e,r,t,n,a){if(!v.submitToWorker)return console.error(\"submitToWorker not available - worker-bridge.ts not loaded\"),0;try{const i=t,o=n,u=new ArrayBuffer(o);return new Uint8Array(u).set(v.HEAPU8.subarray(i,i+o)),v.submitToWorker(e,r,u,a)?1:0}catch(i){return console.error(\"submitToWorker failed:\",i),0}}function Ls(e,r){v.cancelRequest&&v.cancelRequest(e,r)}function $l(){return v.isWorkerReady&&v.isWorkerReady()?1:0}function Ws(){v.terminateWorker&&v.terminateWorker()}function Us(e,r){typeof globalThis.Sentry<\"u\"&&typeof globalThis.Sentry.captureException==\"function\"&&globalThis.Sentry.captureException(new Error(P(e,r)))}function Vs(e){const r=P(e);try{const t=new URL(r)}catch{return 0}return 1}function Ns(e,r){const t=P(e);let n;try{n=new URL(t)}catch(u){return console.error(`Failed to parse URL ${t} due to error : ${u}`),0}function a(u){return u>>>0}function i(u){const c=q(u)+1,d=X(c);return G(u,d,c),a(d)}let o=a(r)>>2;return l[o]=i(n.origin),l[o+1]=i(n.pathname.substring(1)),l[o+2]=i(n.search.substring(1)),l[o+3]=i(n.hash.substring(1)),1}function Js(e){const r=P(e),t=encodeURIComponent(r),n=q(t)+1,a=X(n);return G(t,a,n),a>>>0}function zs(e){v.__mirisPrivatePromiseTracker||(v.__mirisPrivatePromiseTracker=new Map);let r,t;const n=new Promise(function(a,i){r=a,t=i});return v.__mirisPrivatePromiseTracker.set(e,{resolve:r,reject:t}),J.toHandle(n)}function qs(e,r){const t=v.__mirisPrivatePromiseTracker;if(!t||!t.has(e)){console.error(\"[miris] No resolver for tracked promise ID:\",e);return}const{resolve:n}=t.get(e);if(!n){console.error(\"[miris] No resolver for tracked promise ID:\",e);return}t.delete(e),n(J.toValue(r))}function Gl(e,r){const t=v.__mirisPrivatePromiseTracker;if(!t||!t.has(e)){console.error(\"[miris] No rejector for tracked promise ID:\",e);return}const{reject:n}=t.get(e);if(!n){console.error(\"[miris] No rejector for tracked promise ID:\",e);return}t.delete(e),n(J.toValue(r))}var zt,Hs,Qs,Zs,Xs,Ys,Ks,eu,ru,tu,nu,au,iu,ou,su,uu,cu,lu,fu,du,vu,mu,pu,_u,gu,hu,yu,wu,bu,Su,Cu,ku,Eu,Tu,Fu,xu,Ou,ju,Au,Du,Pu,Iu,Bu,Ru,$u,Gu,Mu,Lu,Wu,Uu,Vu,Nu,Ju,zu,qu,Hu,Qu,Zu,Xu,Yu,Ku,ec,rc,tc,nc,ac,ic,oc,sc,uc,cc,lc,fc,dc,vc,mc,pc,_c,gc,hc,yc,X,ne,wc,bc,jr,Ie,Ar,Dr,Pr,Ir,Br,Rr,qt,Ht,$r,Gr,Mr,Lr,tr,Wr,Qt,Zt,Xt,Ur,Yt,Kt,Sc,Cc,Vr,Nr,Jr,Be,zr,kc,en,rn,tn,E,nn,an,on,sn,un,cn,ln,fn;function Ec(e){zt=e.__getTypeName,v._CreateAquaContext=Hs=e.CreateAquaContext,v._BeginFrame=Qs=e.BeginFrame,v._DestroyAquaContext=Zs=e.DestroyAquaContext,v._SetMaxRequestCacheSize=Xs=e.SetMaxRequestCacheSize,v._TriggerTestError=Ys=e.TriggerTestError,v._CreateClientForContext=Ks=e.CreateClientForContext,v._CreateClient=eu=e.CreateClient,v._DestroyClient=ru=e.DestroyClient,v._ClearScene=tu=e.ClearScene,v._WaitForSceneExecution=nu=e.WaitForSceneExecution,v._SetPersistentDataDirectory=au=e.SetPersistentDataDirectory,v._SetClientSpatialFormat=iu=e.SetClientSpatialFormat,v._SetAssetViewerKey=ou=e.SetAssetViewerKey,v._PrefetchContent=su=e.PrefetchContent,v._PrintSceneObjectHierarchy=uu=e.PrintSceneObjectHierarchy,v._CancelAllSceneExecution=cu=e.CancelAllSceneExecution,v._AddStream=lu=e.AddStream,v._AddStreamById=fu=e.AddStreamById,v._RemoveStream=du=e.RemoveStream,v._SetStreamFetchMode=vu=e.SetStreamFetchMode,v._GetStreamFetchMode=mu=e.GetStreamFetchMode,v._GetStreamStatus=pu=e.GetStreamStatus,v._UpdateSceneExecution=_u=e.UpdateSceneExecution,v._RecordFrameTime=gu=e.RecordFrameTime,v._TakeRenderRequired=hu=e.TakeRenderRequired,v._LockScene=yu=e.LockScene,v._UnlockScene=wu=e.UnlockScene,v._SetMainCameraTransform=bu=e.SetMainCameraTransform,v._SetMainCameraViewFrustum=Su=e.SetMainCameraViewFrustum,v._SetSceneObjectTransform=Cu=e.SetSceneObjectTransform,v._SetRuntimeSettings=ku=e.SetRuntimeSettings,v._SetOctreeSolverMode=Eu=e.SetOctreeSolverMode,v._SetBudgetControllerType=Tu=e.SetBudgetControllerType,v._SetMaxCacheSize=Fu=e.SetMaxCacheSize,v._SetPreferSharkEncodingProfiles=xu=e.SetPreferSharkEncodingProfiles,v._HasFeature=Ou=e.HasFeature,v._GetFeatureVersion=ju=e.GetFeatureVersion,v._GetFeatureState=Au=e.GetFeatureState,v._GetAssetFormatVersion=Du=e.GetAssetFormatVersion,v._GetSceneChangesCounts=Pu=e.GetSceneChangesCounts,v._GetSceneChanges=Iu=e.GetSceneChanges,v._GetSceneRootObjectId=Bu=e.GetSceneRootObjectId,v._GetSceneObjectChildrenCount=Ru=e.GetSceneObjectChildrenCount,v._GetSceneObjectChildren=$u=e.GetSceneObjectChildren,v._GetSceneObjectType=Gu=e.GetSceneObjectType,v._GetDrawnOctantMask=Mu=e.GetDrawnOctantMask,v._GetOctantLocalBoundingBoxes=Lu=e.GetOctantLocalBoundingBoxes,v._GetDrMapLadderRoughnessLevels=Wu=e.GetDrMapLadderRoughnessLevels,v._LogOctreeStats=Uu=e.LogOctreeStats,v._GetSceneObjectParent=Vu=e.GetSceneObjectParent,v._IsSceneObjectAncestorOf=Nu=e.IsSceneObjectAncestorOf,v._GetSceneObjectName=Ju=e.GetSceneObjectName,v._GetAttributeCount=zu=e.GetAttributeCount,v._HasAttribute=qu=e.HasAttribute,v._GetAttribute=Hu=e.GetAttribute,v._TakeAttribute=Qu=e.TakeAttribute,v._GetBufferHash=Zu=e.GetBufferHash,v._GetWorldBoundingBox=Xu=e.GetWorldBoundingBox,v._GetLocalBoundingBox=Yu=e.GetLocalBoundingBox,v._MirisGetLocalTransform=Ku=e.MirisGetLocalTransform,v._MirisGetWorldTransform=ec=e.MirisGetWorldTransform,v._MirisGetTransformRelativeToAncestor=rc=e.MirisGetTransformRelativeToAncestor,v._GetBoundingBoxRelativeToAncestor=tc=e.GetBoundingBoxRelativeToAncestor,v._GetMetadata=nc=e.GetMetadata,v._GetLodIndex=ac=e.GetLodIndex,v._GetLibAquaVersion=ic=e.GetLibAquaVersion,v._GetLodMinMaxIndices=oc=e.GetLodMinMaxIndices,v._GetCameraCount=sc=e.GetCameraCount,v._GetCameraIds=uc=e.GetCameraIds,v._GetDefaultCameraId=cc=e.GetDefaultCameraId,v._GetViewingVolumeId=lc=e.GetViewingVolumeId,v._GetSceneMetadata=fc=e.GetSceneMetadata,v._GetSceneOperatorCount=dc=e.GetSceneOperatorCount,v._SetVariantSelection=vc=e.SetVariantSelection,v.__Z26GetSceneObjectNameAsStringP10AquaClienti=mc=e._Z26GetSceneObjectNameAsStringP10AquaClienti,v.__Z14GetAssetsAsyncP10AquaClientRKNSt3__26vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEEiPN4aqua6v0_0_013ArrayCallbackINSE_9AssetInfoEEE=pc=e._Z14GetAssetsAsyncP10AquaClientRKNSt3__26vectorINS1_12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEENS6_IS8_EEEEiPN4aqua6v0_0_013ArrayCallbackINSE_9AssetInfoEEE,v.__Z21GetAvailableTagsAsyncP10AquaClientPN4aqua6v0_0_013ArrayCallbackINSt3__212basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEEE=_c=e._Z21GetAvailableTagsAsyncP10AquaClientPN4aqua6v0_0_013ArrayCallbackINSt3__212basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEEEE,v.__Z33TakeEvictedClientSideAttributeIdsP10AquaClient=gc=e._Z33TakeEvictedClientSideAttributeIdsP10AquaClient,v.__Z30GetActiveClientSideIdsCheckSumv=hc=e._Z30GetActiveClientSideIdsCheckSumv,yc=e.__cxa_free_exception,v._malloc=X=e.malloc,v._free=ne=e.free,v._aquaDrainDeferredCompletions=wc=e.aquaDrainDeferredCompletions,v._onWorkerResult=bc=e.onWorkerResult,jr=e.emwgpuCreateBindGroup,Ie=e.emwgpuCreateBindGroupLayout,Ar=e.emwgpuCreateCommandBuffer,Dr=e.emwgpuCreateCommandEncoder,Pr=e.emwgpuCreateComputePassEncoder,Ir=e.emwgpuCreateComputePipeline,Br=e.emwgpuCreatePipelineLayout,Rr=e.emwgpuCreateQuerySet,qt=e.emwgpuCreateRenderBundle,Ht=e.emwgpuCreateRenderBundleEncoder,$r=e.emwgpuCreateRenderPassEncoder,Gr=e.emwgpuCreateRenderPipeline,Mr=e.emwgpuCreateSampler,Lr=e.emwgpuCreateSurface,tr=e.emwgpuCreateTexture,Wr=e.emwgpuCreateTextureView,Qt=e.emwgpuCreateAdapter,Zt=e.emwgpuCreateBuffer,Xt=e.emwgpuCreateDevice,Ur=e.emwgpuCreateQueue,Yt=e.emwgpuCreateShaderModule,Kt=e.emwgpuOnCompilationInfoCompleted,Sc=e.emwgpuOnCreateComputePipelineCompleted,Cc=e.emwgpuOnCreateRenderPipelineCompleted,Vr=e.emwgpuOnDeviceLostCompleted,Nr=e.emwgpuOnMapAsyncCompleted,Jr=e.emwgpuOnPopErrorScopeCompleted,Be=e.emwgpuOnRequestAdapterCompleted,zr=e.emwgpuOnRequestDeviceCompleted,kc=e.emwgpuOnWorkDoneCompleted,en=e.emwgpuOnUncapturedError,rn=e._emscripten_timeout,tn=e.memalign,E=e.setThrew,nn=e._emscripten_tempret_set,an=e._emscripten_stack_restore,on=e._emscripten_stack_alloc,sn=e.emscripten_stack_get_current,un=e.__cxa_decrement_exception_refcount,cn=e.__cxa_increment_exception_refcount,ln=e.__cxa_can_catch,fn=e.__cxa_get_exception_ptr}var dn={__cxa_begin_catch:An,__cxa_end_catch:Dn,__cxa_find_matching_catch_2:Pn,__cxa_find_matching_catch_3:In,__cxa_find_matching_catch_4:Bn,__cxa_rethrow:Rn,__cxa_throw:$n,__cxa_uncaught_exceptions:Gn,__resumeException:Mn,__syscall_fcntl64:Hn,__syscall_fstat64:Qn,__syscall_ioctl:Zn,__syscall_lstat64:Xn,__syscall_newfstatat:Yn,__syscall_openat:Kn,__syscall_rmdir:ea,__syscall_stat64:ra,__syscall_unlinkat:ta,_abort_js:na,_embind_finalize_value_array:ia,_embind_finalize_value_object:oa,_embind_register_bigint:ua,_embind_register_bool:ca,_embind_register_class:Fa,_embind_register_class_constructor:Oa,_embind_register_class_function:ja,_embind_register_class_property:Aa,_embind_register_constant:Da,_embind_register_emval:Pa,_embind_register_enum:Ba,_embind_register_enum_value:Ra,_embind_register_float:Ga,_embind_register_function:Ma,_embind_register_integer:La,_embind_register_memory_view:Wa,_embind_register_optional:Va,_embind_register_std_string:Na,_embind_register_std_wstring:Xa,_embind_register_value_array:Ya,_embind_register_value_array_element:Ka,_embind_register_value_object:ei,_embind_register_value_object_field:ri,_embind_register_void:ti,_emscripten_fetch_get_response_headers:ni,_emscripten_fetch_get_response_headers_length:ai,_emscripten_runtime_keepalive_clear:ii,_emval_create_invoker:li,_emval_decref:Cr,_emval_get_global:fi,_emval_get_property:di,_emval_incref:vi,_emval_invoke:mi,_emval_new_array:pi,_emval_new_cstring:_i,_emval_new_object:gi,_emval_run_destructors:hi,_emval_set_property:yi,_gmtime_js:Si,_localtime_js:Fi,_setitimer_js:Ai,_tzset_js:Di,clock_time_get:Bi,emjsCreateTrackedPromise:zs,emjsEncodeUriComponent:Js,emjsGetPartsFromUrl:Ns,emjsIsValidUrl:Vs,emjsResolveTrackedPromise:qs,emjsSentryCaptureException:Us,emscripten_asm_const_int:Gi,emscripten_console_warn:Mi,emscripten_date_now:Lt,emscripten_errn:Li,emscripten_fetch_free:Wi,emscripten_get_heap_max:Ui,emscripten_get_now:Tr,emscripten_has_asyncify:Vi,emscripten_is_main_browser_thread:Ni,emscripten_outn:Ji,emscripten_resize_heap:Hi,emscripten_sleep:Qi,emscripten_start_fetch:Ki,emwgpuAdapterRequestDevice:ro,emwgpuBufferDestroy:to,emwgpuBufferGetConstMappedRange:no,emwgpuBufferMapAsync:ao,emwgpuBufferUnmap:io,emwgpuDelete:oo,emwgpuDeviceCreateBuffer:so,emwgpuDeviceCreateShaderModule:uo,emwgpuDeviceDestroy:co,emwgpuDevicePopErrorScope:lo,emwgpuGetPreferredFormat:vo,emwgpuInstanceRequestAdapter:mo,emwgpuShaderModuleGetCompilationInfo:_o,emwgpuWaitAny:go,environ_get:yo,environ_sizes_get:wo,fd_close:bo,fd_fdstat_get:So,fd_read:ko,fd_seek:Eo,fd_write:Fo,getHardwareConcurrency:Bs,getWorkerUrlFromModule:Is,impl_cancelRequest:Ls,impl_createDeserializeWorker:Gs,impl_submitToWorker:Ms,impl_terminateWorker:Ws,invoke_diii:Cl,invoke_diiiii:Wc,invoke_djj:fl,invoke_fi:rl,invoke_fiii:pl,invoke_i:$c,invoke_ii:Fc,invoke_iii:Pc,invoke_iiifiii:Vc,invoke_iiii:Lc,invoke_iiiid:kl,invoke_iiiii:Bc,invoke_iiiiid:wl,invoke_iiiiii:Gc,invoke_iiiiiii:Uc,invoke_iiiiiiii:bl,invoke_iiiiiiiii:il,invoke_iiiiiiiiii:Kc,invoke_iiiiiiiiiii:Xc,invoke_iiiiiiiiiiii:Yc,invoke_iiiiij:jl,invoke_iiiiijj:El,invoke_iiiij:Ol,invoke_iiiiji:sl,invoke_iiiijj:Tl,invoke_iiij:xl,invoke_iij:Rc,invoke_iiji:gl,invoke_iijiiii:Mc,invoke_j:nl,invoke_ji:ol,invoke_jii:zc,invoke_jiiii:Sl,invoke_v:Ic,invoke_vi:xc,invoke_viddi:cl,invoke_vif:ml,invoke_vii:jc,invoke_viif:Al,invoke_viii:Oc,invoke_viiifi:vl,invoke_viiii:Tc,invoke_viiiiddiii:dl,invoke_viiiii:Dc,invoke_viiiiii:Ac,invoke_viiiiiii:Qc,invoke_viiiiiiii:tl,invoke_viiiiiiiii:Nc,invoke_viiiiiiiiii:Jc,invoke_viiiiiiiiiii:Zc,invoke_viiiiiiiiiiiiiii:Fl,invoke_viiij:ul,invoke_viij:ll,invoke_viiji:Hc,invoke_viijii:el,invoke_viijiiii:_l,invoke_vij:yl,invoke_viji:hl,invoke_vijii:al,invoke_vijiiii:qc,js_import_all:Ds,llvm_eh_typeid_for:xo,proc_exit:Gt,random_get:Oo,scheduleMicrotaskDrain:Rs,tryLocateWorkerFile:Ps,unregisterTransportInstance:$s,wgpuAdapterGetInfo:jo,wgpuAdapterGetLimits:Ao,wgpuAdapterHasFeature:Do,wgpuBufferGetSize:Po,wgpuBufferGetUsage:Io,wgpuCommandEncoderBeginComputePass:Bo,wgpuCommandEncoderBeginRenderPass:Ro,wgpuCommandEncoderCopyBufferToBuffer:$o,wgpuCommandEncoderFinish:Go,wgpuCommandEncoderResolveQuerySet:Mo,wgpuComputePassEncoderDispatchWorkgroups:Lo,wgpuComputePassEncoderEnd:Wo,wgpuComputePassEncoderSetBindGroup:Uo,wgpuComputePassEncoderSetPipeline:Vo,wgpuComputePipelineGetBindGroupLayout:No,wgpuDeviceCreateBindGroup:zo,wgpuDeviceCreateBindGroupLayout:qo,wgpuDeviceCreateCommandEncoder:Ho,wgpuDeviceCreateComputePipeline:Qo,wgpuDeviceCreatePipelineLayout:Zo,wgpuDeviceCreateQuerySet:Xo,wgpuDeviceCreateRenderPipeline:Yo,wgpuDeviceCreateSampler:Ko,wgpuDeviceCreateTexture:es,wgpuDeviceGetFeatures:ts,wgpuDeviceGetLimits:ns,wgpuDeviceHasFeature:as,wgpuDevicePushErrorScope:is,wgpuInstanceCreateSurface:ls,wgpuQuerySetDestroy:fs,wgpuQueueSubmit:ds,wgpuQueueWriteBuffer:vs,wgpuQueueWriteTexture:ms,wgpuRenderPassEncoderDraw:ps,wgpuRenderPassEncoderEnd:_s,wgpuRenderPassEncoderSetBindGroup:gs,wgpuRenderPassEncoderSetPipeline:hs,wgpuRenderPipelineGetBindGroupLayout:ys,wgpuSurfaceConfigure:ws,wgpuSurfaceGetCurrentTexture:bs,wgpuSurfaceUnconfigure:Ss,wgpuTextureCreateView:Cs,wgpuTextureDestroy:ks,wgpuTextureGetDepthOrArrayLayers:Es,wgpuTextureGetFormat:Ts,wgpuTextureGetHeight:Fs,wgpuTextureGetWidth:xs};function Tc(e,r,t,n,a){var i=b();try{C(e)(r,t,n,a)}catch(o){if(S(i),o!==o+0)throw o;E(1,0)}}function Fc(e,r){var t=b();try{return C(e)(r)}catch(n){if(S(t),n!==n+0)throw n;E(1,0)}}function xc(e,r){var t=b();try{C(e)(r)}catch(n){if(S(t),n!==n+0)throw n;E(1,0)}}function Oc(e,r,t,n){var a=b();try{C(e)(r,t,n)}catch(i){if(S(a),i!==i+0)throw i;E(1,0)}}function jc(e,r,t){var n=b();try{C(e)(r,t)}catch(a){if(S(n),a!==a+0)throw a;E(1,0)}}function Ac(e,r,t,n,a,i,o){var u=b();try{C(e)(r,t,n,a,i,o)}catch(c){if(S(u),c!==c+0)throw c;E(1,0)}}function Dc(e,r,t,n,a,i){var o=b();try{C(e)(r,t,n,a,i)}catch(u){if(S(o),u!==u+0)throw u;E(1,0)}}function Pc(e,r,t){var n=b();try{return C(e)(r,t)}catch(a){if(S(n),a!==a+0)throw a;E(1,0)}}function Ic(e){var r=b();try{C(e)()}catch(t){if(S(r),t!==t+0)throw t;E(1,0)}}function Bc(e,r,t,n,a){var i=b();try{return C(e)(r,t,n,a)}catch(o){if(S(i),o!==o+0)throw o;E(1,0)}}function Rc(e,r,t){var n=b();try{return C(e)(r,t)}catch(a){if(S(n),a!==a+0)throw a;E(1,0)}}function $c(e){var r=b();try{return C(e)()}catch(t){if(S(r),t!==t+0)throw t;E(1,0)}}function Gc(e,r,t,n,a,i){var o=b();try{return C(e)(r,t,n,a,i)}catch(u){if(S(o),u!==u+0)throw u;E(1,0)}}function Mc(e,r,t,n,a,i,o){var u=b();try{return C(e)(r,t,n,a,i,o)}catch(c){if(S(u),c!==c+0)throw c;E(1,0)}}function Lc(e,r,t,n){var a=b();try{return C(e)(r,t,n)}catch(i){if(S(a),i!==i+0)throw i;E(1,0)}}function Wc(e,r,t,n,a,i){var o=b();try{return C(e)(r,t,n,a,i)}catch(u){if(S(o),u!==u+0)throw u;E(1,0)}}function Uc(e,r,t,n,a,i,o){var u=b();try{return C(e)(r,t,n,a,i,o)}catch(c){if(S(u),c!==c+0)throw c;E(1,0)}}function Vc(e,r,t,n,a,i,o){var u=b();try{return C(e)(r,t,n,a,i,o)}catch(c){if(S(u),c!==c+0)throw c;E(1,0)}}function Nc(e,r,t,n,a,i,o,u,c,d){var m=b();try{C(e)(r,t,n,a,i,o,u,c,d)}catch(p){if(S(m),p!==p+0)throw p;E(1,0)}}function Jc(e,r,t,n,a,i,o,u,c,d,m){var p=b();try{C(e)(r,t,n,a,i,o,u,c,d,m)}catch(h){if(S(p),h!==h+0)throw h;E(1,0)}}function zc(e,r,t){var n=b();try{return C(e)(r,t)}catch(a){if(S(n),a!==a+0)throw a;return E(1,0),0n}}function qc(e,r,t,n,a,i,o){var u=b();try{C(e)(r,t,n,a,i,o)}catch(c){if(S(u),c!==c+0)throw c;E(1,0)}}function Hc(e,r,t,n,a){var i=b();try{C(e)(r,t,n,a)}catch(o){if(S(i),o!==o+0)throw o;E(1,0)}}function Qc(e,r,t,n,a,i,o,u){var c=b();try{C(e)(r,t,n,a,i,o,u)}catch(d){if(S(c),d!==d+0)throw d;E(1,0)}}function Zc(e,r,t,n,a,i,o,u,c,d,m,p){var h=b();try{C(e)(r,t,n,a,i,o,u,c,d,m,p)}catch(y){if(S(h),y!==y+0)throw y;E(1,0)}}function Xc(e,r,t,n,a,i,o,u,c,d,m){var p=b();try{return C(e)(r,t,n,a,i,o,u,c,d,m)}catch(h){if(S(p),h!==h+0)throw h;E(1,0)}}function Yc(e,r,t,n,a,i,o,u,c,d,m,p){var h=b();try{return C(e)(r,t,n,a,i,o,u,c,d,m,p)}catch(y){if(S(h),y!==y+0)throw y;E(1,0)}}function Kc(e,r,t,n,a,i,o,u,c,d){var m=b();try{return C(e)(r,t,n,a,i,o,u,c,d)}catch(p){if(S(m),p!==p+0)throw p;E(1,0)}}function el(e,r,t,n,a,i){var o=b();try{C(e)(r,t,n,a,i)}catch(u){if(S(o),u!==u+0)throw u;E(1,0)}}function rl(e,r){var t=b();try{return C(e)(r)}catch(n){if(S(t),n!==n+0)throw n;E(1,0)}}function tl(e,r,t,n,a,i,o,u,c){var d=b();try{C(e)(r,t,n,a,i,o,u,c)}catch(m){if(S(d),m!==m+0)throw m;E(1,0)}}function nl(e){var r=b();try{return C(e)()}catch(t){if(S(r),t!==t+0)throw t;return E(1,0),0n}}function al(e,r,t,n,a){var i=b();try{C(e)(r,t,n,a)}catch(o){if(S(i),o!==o+0)throw o;E(1,0)}}function il(e,r,t,n,a,i,o,u,c){var d=b();try{return C(e)(r,t,n,a,i,o,u,c)}catch(m){if(S(d),m!==m+0)throw m;E(1,0)}}function ol(e,r){var t=b();try{return C(e)(r)}catch(n){if(S(t),n!==n+0)throw n;return E(1,0),0n}}function sl(e,r,t,n,a,i){var o=b();try{return C(e)(r,t,n,a,i)}catch(u){if(S(o),u!==u+0)throw u;E(1,0)}}function ul(e,r,t,n,a){var i=b();try{C(e)(r,t,n,a)}catch(o){if(S(i),o!==o+0)throw o;E(1,0)}}function cl(e,r,t,n,a){var i=b();try{C(e)(r,t,n,a)}catch(o){if(S(i),o!==o+0)throw o;E(1,0)}}function ll(e,r,t,n){var a=b();try{C(e)(r,t,n)}catch(i){if(S(a),i!==i+0)throw i;E(1,0)}}function fl(e,r,t){var n=b();try{return C(e)(r,t)}catch(a){if(S(n),a!==a+0)throw a;E(1,0)}}function dl(e,r,t,n,a,i,o,u,c,d){var m=b();try{C(e)(r,t,n,a,i,o,u,c,d)}catch(p){if(S(m),p!==p+0)throw p;E(1,0)}}function vl(e,r,t,n,a,i){var o=b();try{C(e)(r,t,n,a,i)}catch(u){if(S(o),u!==u+0)throw u;E(1,0)}}function ml(e,r,t){var n=b();try{C(e)(r,t)}catch(a){if(S(n),a!==a+0)throw a;E(1,0)}}function pl(e,r,t,n){var a=b();try{return C(e)(r,t,n)}catch(i){if(S(a),i!==i+0)throw i;E(1,0)}}function _l(e,r,t,n,a,i,o,u){var c=b();try{C(e)(r,t,n,a,i,o,u)}catch(d){if(S(c),d!==d+0)throw d;E(1,0)}}function gl(e,r,t,n){var a=b();try{return C(e)(r,t,n)}catch(i){if(S(a),i!==i+0)throw i;E(1,0)}}function hl(e,r,t,n){var a=b();try{C(e)(r,t,n)}catch(i){if(S(a),i!==i+0)throw i;E(1,0)}}function yl(e,r,t){var n=b();try{C(e)(r,t)}catch(a){if(S(n),a!==a+0)throw a;E(1,0)}}function wl(e,r,t,n,a,i){var o=b();try{return C(e)(r,t,n,a,i)}catch(u){if(S(o),u!==u+0)throw u;E(1,0)}}function bl(e,r,t,n,a,i,o,u){var c=b();try{return C(e)(r,t,n,a,i,o,u)}catch(d){if(S(c),d!==d+0)throw d;E(1,0)}}function Sl(e,r,t,n,a){var i=b();try{return C(e)(r,t,n,a)}catch(o){if(S(i),o!==o+0)throw o;return E(1,0),0n}}function Cl(e,r,t,n){var a=b();try{return C(e)(r,t,n)}catch(i){if(S(a),i!==i+0)throw i;E(1,0)}}function kl(e,r,t,n,a){var i=b();try{return C(e)(r,t,n,a)}catch(o){if(S(i),o!==o+0)throw o;E(1,0)}}function El(e,r,t,n,a,i,o){var u=b();try{return C(e)(r,t,n,a,i,o)}catch(c){if(S(u),c!==c+0)throw c;E(1,0)}}function Tl(e,r,t,n,a,i){var o=b();try{return C(e)(r,t,n,a,i)}catch(u){if(S(o),u!==u+0)throw u;E(1,0)}}function Fl(e,r,t,n,a,i,o,u,c,d,m,p,h,y,_,w){var g=b();try{C(e)(r,t,n,a,i,o,u,c,d,m,p,h,y,_,w)}catch(k){if(S(g),k!==k+0)throw k;E(1,0)}}function xl(e,r,t,n){var a=b();try{return C(e)(r,t,n)}catch(i){if(S(a),i!==i+0)throw i;E(1,0)}}function Ol(e,r,t,n,a){var i=b();try{return C(e)(r,t,n,a)}catch(o){if(S(i),o!==o+0)throw o;E(1,0)}}function jl(e,r,t,n,a,i){var o=b();try{return C(e)(r,t,n,a,i)}catch(u){if(S(o),u!==u+0)throw u;E(1,0)}}function Al(e,r,t,n){var a=b();try{C(e)(r,t,n)}catch(i){if(S(a),i!==i+0)throw i;E(1,0)}}function qr(){if(pe>0){xe=qr;return}if(yn(),pe>0){xe=qr;return}function e(){v.calledRun=!0,!$e&&(wn(),Yr?.(v),v.onRuntimeInitialized?.(),bn())}v.setStatus?(v.setStatus(\"Running...\"),setTimeout(()=>{setTimeout(()=>v.setStatus(\"\"),1),e()},1)):e()}var he;return he=await xn(),qr(),rt?or=v:or=new Promise((e,r)=>{Yr=e,Kr=r}),or}export default Dl;\n\n";
64
63
  function _getExport(m) {
65
64
  return m.default || m;
66
65
  }
@@ -93,11 +92,9 @@ function _emscripten_lazy_AquaApi_default(...args) {
93
92
  return factory(merged, ...rest);
94
93
  });
95
94
  }
96
- //#endregion
97
- //#region packages/core/engine/factory.ts
95
+ // packages/core/engine/factory.ts
98
96
  var factory_default = _emscripten_lazy_AquaApi_default;
99
- //#endregion
100
- //#region packages/core/engine/threads/thread.ts
97
+ // packages/core/engine/threads/thread.ts
101
98
  var Thread = class Thread {
102
99
  static name = "thread";
103
100
  static get Worker() {
@@ -177,9 +174,8 @@ var Thread = class Thread {
177
174
  this.#worker = null;
178
175
  }
179
176
  };
180
- //#endregion
181
- //#region packages/core/engine/threads/decoder/worker.ts?worker&inline
182
- var jsContent = "//#region packages/core/engine/threads/utils.ts\nconst defineActions = (actions) => {\n self.postMessage(\"ready\");\n self.addEventListener(\"message\", async ({ data }) => {\n if (\"ready\" === data) return;\n const { id, action, args } = data;\n const [result, ...postMessageArgs] = await Reflect.apply(actions[action], void 0, [...args, id]);\n self.postMessage({\n id,\n result\n }, ...postMessageArgs);\n });\n return actions;\n};\n//#endregion\n//#region packages/core/attribute.ts\nconst sparkMinSplats = 2048;\nconst sparkAttributeList = {\n sparkPackedSplat: {\n elementsPerSplat: 4,\n discard: false\n },\n extendedPackedSplatLow: {\n elementsPerSplat: 4,\n discard: false\n },\n extendedPackedSplatHigh: {\n elementsPerSplat: 4,\n discard: false\n },\n packedSh1: {\n elementsPerSplat: 2,\n discard: false\n },\n packedSh2: {\n elementsPerSplat: 4,\n discard: false\n },\n packedSh3: {\n elementsPerSplat: 4,\n discard: false\n },\n sh1Extended: {\n elementsPerSplat: 4,\n discard: false\n },\n sh2Extended: {\n elementsPerSplat: 4,\n discard: false\n },\n sh3Extended_0: {\n elementsPerSplat: 4,\n discard: false\n },\n sh3Extended_1: {\n elementsPerSplat: 4,\n discard: false\n },\n sharkEllipsoid: {\n elementsPerSplat: 12,\n discard: false\n },\n sharkEllipsoidCompressed: {\n elementsPerSplat: 4,\n discard: false\n },\n sharkSphericalHarmonics: {\n elementsPerSplat: 16,\n discard: false\n },\n color: {\n elementsPerSplat: 2,\n discard: false\n }\n};\nfunction roundUpToMultipleOf(a, multiple) {\n return Math.ceil(a / multiple) * multiple;\n}\nfunction sparkAttributeFromRaw(name, id, wasmView) {\n const attrib = sparkAttributeList[name];\n if (attrib === void 0) throw new Error(\"attribute name\" + name + \" is unknown\");\n const originalSize = wasmView.length;\n const paddedSize = roundUpToMultipleOf(originalSize, attrib.elementsPerSplat * sparkMinSplats);\n const paddedData = new Uint32Array(paddedSize);\n paddedData.set(wasmView);\n return {\n paddedData,\n originalSizeInUints: originalSize,\n id\n };\n}\n//#endregion\n//#region packages/core/aqua-parser.js\nasync function Li(Le = {}) {\n var $r, l = Le, ze = !1, Br = !0, Lr = \"./this.program\", zr = (e, r) => {\n throw r;\n }, Ne = import.meta.url, wr = \"\";\n function Ge(e) {\n return l.locateFile ? l.locateFile(e, wr) : wr + e;\n }\n var Yr, Tr;\n if (ze || Br) {\n try {\n wr = new URL(\".\", Ne).href;\n } catch {}\n Br && (Tr = (e) => {\n var r = new XMLHttpRequest();\n return r.open(\"GET\", e, !1), r.responseType = \"arraybuffer\", r.send(null), new Uint8Array(r.response);\n }), Yr = async (e) => {\n var r = await fetch(e, { credentials: \"same-origin\" });\n if (r.ok) return r.arrayBuffer();\n throw new Error(r.status + \" : \" + r.url);\n };\n }\n var Nr = console.log.bind(console), B = console.error.bind(console), G, Q = !1, rr, Gr, qr, er, k, A, U, L, T, w, tr, nr, V, Xr, Jr = !1;\n function Kr() {\n var e = er.buffer;\n l.HEAP8 = k = new Int8Array(e), U = new Int16Array(e), l.HEAPU8 = A = new Uint8Array(e), L = new Uint16Array(e), l.HEAP32 = T = new Int32Array(e), l.HEAPU32 = w = new Uint32Array(e), l.HEAPF32 = tr = new Float32Array(e), l.HEAPF64 = nr = new Float64Array(e), V = new BigInt64Array(e), Xr = new BigUint64Array(e);\n }\n function qe() {\n if (l.preRun) for (typeof l.preRun == \"function\" && (l.preRun = [l.preRun]); l.preRun.length;) at(l.preRun.shift());\n Qr(ee);\n }\n function Xe() {\n Jr = !0, H.__wasm_call_ctors();\n }\n function Je() {\n if (l.postRun) for (typeof l.postRun == \"function\" && (l.postRun = [l.postRun]); l.postRun.length;) it(l.postRun.shift());\n Qr(re);\n }\n function z(e) {\n l.onAbort?.(e), e = \"Aborted(\" + e + \")\", B(e), Q = !0, e += \". Build with -sASSERTIONS for more info.\";\n var r = new WebAssembly.RuntimeError(e);\n throw qr?.(r), r;\n }\n var Fr;\n function Ke() {\n return l.locateFile ? Ge(\"aqua-parser.wasm\") : \"\";\n }\n function Ze(e) {\n if (e == Fr && G) return new Uint8Array(G);\n if (Tr) return Tr(e);\n throw \"both async and sync fetching of the wasm failed\";\n }\n async function Qe(e) {\n if (!G) try {\n var r = await Yr(e);\n return new Uint8Array(r);\n } catch {}\n return Ze(e);\n }\n async function rt(e, r) {\n try {\n var t = await Qe(e);\n return await WebAssembly.instantiate(t, r);\n } catch (i) {\n B(`failed to asynchronously prepare wasm: ${i}`), z(i);\n }\n }\n async function et(e, r, t) {\n if (!e) try {\n var n = fetch(r, { credentials: \"same-origin\" });\n return await WebAssembly.instantiateStreaming(n, t);\n } catch (a) {\n B(`wasm streaming compile failed: ${a}`), B(\"falling back to ArrayBuffer instantiation\");\n }\n return rt(r, t);\n }\n function tt() {\n return {\n env: Ie,\n wasi_snapshot_preview1: Ie\n };\n }\n async function nt() {\n function e(a, s) {\n return H = a.exports, er = H.memory, Kr(), fe = H.__indirect_function_table, si(H), H;\n }\n function r(a) {\n return e(a.instance);\n }\n var t = tt();\n if (l.instantiateWasm) return new Promise((a, s) => {\n l.instantiateWasm(t, (o, u) => {\n a(e(o, u));\n });\n });\n Fr ??= Ke();\n return r(await et(G, Fr, t));\n }\n class Zr {\n name = \"ExitStatus\";\n constructor(r) {\n this.message = `Program terminated with exit(${r})`, this.status = r;\n }\n }\n var Qr = (e) => {\n for (; e.length > 0;) e.shift()(l);\n }, re = [], it = (e) => re.push(e), ee = [], at = (e) => ee.push(e);\n var Cr = !0;\n var y = (e) => De(e), m = () => xe(), ir = [], ar = 0, st = (e) => {\n var r = new Pr(e);\n return r.get_caught() || (r.set_caught(!0), ar--), r.set_rethrown(!1), ir.push(r), Ue(e), je(e);\n }, x = 0, ot = () => {\n g(0, 0);\n var e = ir.pop();\n Oe(e.excPtr), x = 0;\n };\n class Pr {\n constructor(r) {\n this.excPtr = r, this.ptr = r - 24;\n }\n set_type(r) {\n w[this.ptr + 4 >> 2] = r;\n }\n get_type() {\n return w[this.ptr + 4 >> 2];\n }\n set_destructor(r) {\n w[this.ptr + 8 >> 2] = r;\n }\n get_destructor() {\n return w[this.ptr + 8 >> 2];\n }\n set_caught(r) {\n r = r ? 1 : 0, k[this.ptr + 12] = r;\n }\n get_caught() {\n return k[this.ptr + 12] != 0;\n }\n set_rethrown(r) {\n r = r ? 1 : 0, k[this.ptr + 13] = r;\n }\n get_rethrown() {\n return k[this.ptr + 13] != 0;\n }\n init(r, t) {\n this.set_adjusted_ptr(0), this.set_type(r), this.set_destructor(t);\n }\n set_adjusted_ptr(r) {\n w[this.ptr + 16 >> 2] = r;\n }\n get_adjusted_ptr() {\n return w[this.ptr + 16 >> 2];\n }\n }\n var sr = (e) => Re(e), kr = (e) => {\n var r = x;\n if (!r) return sr(0), 0;\n var t = new Pr(r);\n t.set_adjusted_ptr(r);\n var n = t.get_type();\n if (!n) return sr(0), r;\n for (var i of e) {\n if (i === 0 || i === n) break;\n var a = t.ptr + 16;\n if (Ve(i, n, a)) return sr(i), r;\n }\n return sr(n), r;\n }, ut = () => kr([]), ct = (e) => kr([e]), ft = (e, r) => kr([e, r]), lt = () => {\n var e = ir.pop();\n e || z(\"no exception to throw\");\n var r = e.excPtr;\n throw e.get_rethrown() || (ir.push(e), e.set_rethrown(!0), e.set_caught(!1), ar++), x = r, x;\n }, vt = (e, r, t) => {\n throw new Pr(e).init(r, t), x = e, ar++, x;\n }, _t = () => ar, dt = (e) => {\n throw x || (x = e), x;\n }, pt = () => z(\"\"), C = (e) => {\n for (var r = \"\";;) {\n var t = A[e++];\n if (!t) return r;\n r += String.fromCharCode(t);\n }\n }, Y = {}, j = {}, or = {}, q = class extends Error {\n constructor(r) {\n super(r), this.name = \"BindingError\";\n }\n }, h = (e) => {\n throw new q(e);\n };\n function ht(e, r, t = {}) {\n var n = r.name;\n if (e || h(`type \"${n}\" must have a positive integer typeid pointer`), j.hasOwnProperty(e)) {\n if (t.ignoreDuplicateRegistrations) return;\n h(`Cannot register type '${n}' twice`);\n }\n if (j[e] = r, delete or[e], Y.hasOwnProperty(e)) {\n var i = Y[e];\n delete Y[e], i.forEach((a) => a());\n }\n }\n function E(e, r, t = {}) {\n return ht(e, r, t);\n }\n var te = (e, r, t) => {\n switch (r) {\n case 1: return t ? (n) => k[n] : (n) => A[n];\n case 2: return t ? (n) => U[n >> 1] : (n) => L[n >> 1];\n case 4: return t ? (n) => T[n >> 2] : (n) => w[n >> 2];\n case 8: return t ? (n) => V[n >> 3] : (n) => Xr[n >> 3];\n default: throw new TypeError(`invalid integer width (${r}): ${e}`);\n }\n }, gt = (e, r, t, n, i) => {\n r = C(r);\n const a = n === 0n;\n let s = (o) => o;\n if (a) {\n const o = t * 8;\n s = (u) => BigInt.asUintN(o, u), i = s(i);\n }\n E(e, {\n name: r,\n fromWireType: s,\n toWireType: (o, u) => (typeof u == \"number\" && (u = BigInt(u)), u),\n readValueFromPointer: te(r, t, !a),\n destructorFunction: null\n });\n }, yt = (e, r, t, n) => {\n r = C(r), E(e, {\n name: r,\n fromWireType: function(i) {\n return !!i;\n },\n toWireType: function(i, a) {\n return a ? t : n;\n },\n readValueFromPointer: function(i) {\n return this.fromWireType(A[i]);\n },\n destructorFunction: null\n });\n }, mt = (e) => ({\n count: e.count,\n deleteScheduled: e.deleteScheduled,\n preservePointerOnDelete: e.preservePointerOnDelete,\n ptr: e.ptr,\n ptrType: e.ptrType,\n smartPtr: e.smartPtr,\n smartPtrType: e.smartPtrType\n }), Sr = (e) => {\n function r(t) {\n return t.$$.ptrType.registeredClass.name;\n }\n h(r(e) + \" instance already deleted\");\n }, Ar = !1, ne = (e) => {}, bt = (e) => {\n e.smartPtr ? e.smartPtrType.rawDestructor(e.smartPtr) : e.ptrType.registeredClass.rawDestructor(e.ptr);\n }, ie = (e) => {\n e.count.value -= 1;\n e.count.value === 0 && bt(e);\n }, X = (e) => typeof FinalizationRegistry > \"u\" ? (X = (r) => r, e) : (Ar = new FinalizationRegistry((r) => {\n ie(r.$$);\n }), X = (r) => {\n var t = r.$$;\n if (!!t.smartPtr) {\n var i = { $$: t };\n Ar.register(r, i, r);\n }\n return r;\n }, ne = (r) => Ar.unregister(r), X(e)), ur = [], $t = () => {\n for (; ur.length;) {\n var e = ur.pop();\n e.$$.deleteScheduled = !1, e.delete();\n }\n }, ae, wt = () => {\n let e = cr.prototype;\n Object.assign(e, {\n isAliasOf(t) {\n if (!(this instanceof cr) || !(t instanceof cr)) return !1;\n var n = this.$$.ptrType.registeredClass, i = this.$$.ptr;\n t.$$ = t.$$;\n for (var a = t.$$.ptrType.registeredClass, s = t.$$.ptr; n.baseClass;) i = n.upcast(i), n = n.baseClass;\n for (; a.baseClass;) s = a.upcast(s), a = a.baseClass;\n return n === a && i === s;\n },\n clone() {\n if (this.$$.ptr || Sr(this), this.$$.preservePointerOnDelete) return this.$$.count.value += 1, this;\n var t = X(Object.create(Object.getPrototypeOf(this), { $$: { value: mt(this.$$) } }));\n return t.$$.count.value += 1, t.$$.deleteScheduled = !1, t;\n },\n delete() {\n this.$$.ptr || Sr(this), this.$$.deleteScheduled && !this.$$.preservePointerOnDelete && h(\"Object already scheduled for deletion\"), ne(this), ie(this.$$), this.$$.preservePointerOnDelete || (this.$$.smartPtr = void 0, this.$$.ptr = void 0);\n },\n isDeleted() {\n return !this.$$.ptr;\n },\n deleteLater() {\n return this.$$.ptr || Sr(this), this.$$.deleteScheduled && !this.$$.preservePointerOnDelete && h(\"Object already scheduled for deletion\"), ur.push(this), ur.length === 1 && ae && ae($t), this.$$.deleteScheduled = !0, this;\n }\n });\n const r = Symbol.dispose;\n r && (e[r] = e.delete);\n };\n function cr() {}\n var fr = (e, r) => Object.defineProperty(r, \"name\", { value: e }), se = {}, Er = (e, r, t) => {\n if (e[r].overloadTable === void 0) {\n var n = e[r];\n e[r] = function(...i) {\n return e[r].overloadTable.hasOwnProperty(i.length) || h(`Function '${t}' called with an invalid number of arguments (${i.length}) - expects one of (${e[r].overloadTable})!`), e[r].overloadTable[i.length].apply(this, i);\n }, e[r].overloadTable = [], e[r].overloadTable[n.argCount] = n;\n }\n }, Rr = (e, r, t) => {\n l.hasOwnProperty(e) ? ((t === void 0 || l[e].overloadTable !== void 0 && l[e].overloadTable[t] !== void 0) && h(`Cannot register public name '${e}' twice`), Er(l, e, e), l[e].overloadTable.hasOwnProperty(t) && h(`Cannot register multiple overloads of a function with the same number of arguments (${t})!`), l[e].overloadTable[t] = r) : (l[e] = r, l[e].argCount = t);\n }, Tt = 48, Ft = 57, Ct = (e) => {\n e = e.replace(/[^a-zA-Z0-9_]/g, \"$\");\n var r = e.charCodeAt(0);\n return r >= Tt && r <= Ft ? `_${e}` : e;\n };\n function Pt(e, r, t, n, i, a, s, o) {\n this.name = e, this.constructor = r, this.instancePrototype = t, this.rawDestructor = n, this.baseClass = i, this.getActualType = a, this.upcast = s, this.downcast = o, this.pureVirtualFunctions = [];\n }\n var lr = (e, r, t) => {\n for (; r !== t;) r.upcast || h(`Expected null or instance of ${t.name}, got an instance of ${r.name}`), e = r.upcast(e), r = r.baseClass;\n return e;\n }, Dr = (e) => {\n if (e === null) return \"null\";\n var r = typeof e;\n return r === \"object\" || r === \"array\" || r === \"function\" ? e.toString() : \"\" + e;\n };\n function kt(e, r) {\n if (r === null) return this.isReference && h(`null is not a valid ${this.name}`), 0;\n r.$$ || h(`Cannot pass \"${Dr(r)}\" as a ${this.name}`), r.$$.ptr || h(`Cannot pass deleted object as a pointer of type ${this.name}`);\n var t = r.$$.ptrType.registeredClass;\n return lr(r.$$.ptr, t, this.registeredClass);\n }\n function St(e, r) {\n var t;\n if (r === null) return this.isReference && h(`null is not a valid ${this.name}`), this.isSmartPointer ? (t = this.rawConstructor(), e !== null && e.push(this.rawDestructor, t), t) : 0;\n (!r || !r.$$) && h(`Cannot pass \"${Dr(r)}\" as a ${this.name}`), r.$$.ptr || h(`Cannot pass deleted object as a pointer of type ${this.name}`), !this.isConst && r.$$.ptrType.isConst && h(`Cannot convert argument of type ${r.$$.smartPtrType ? r.$$.smartPtrType.name : r.$$.ptrType.name} to parameter type ${this.name}`);\n var n = r.$$.ptrType.registeredClass;\n if (t = lr(r.$$.ptr, n, this.registeredClass), this.isSmartPointer) switch (r.$$.smartPtr === void 0 && h(\"Passing raw pointer to smart pointer is illegal\"), this.sharingPolicy) {\n case 0:\n r.$$.smartPtrType === this ? t = r.$$.smartPtr : h(`Cannot convert argument of type ${r.$$.smartPtrType ? r.$$.smartPtrType.name : r.$$.ptrType.name} to parameter type ${this.name}`);\n break;\n case 1:\n t = r.$$.smartPtr;\n break;\n case 2:\n if (r.$$.smartPtrType === this) t = r.$$.smartPtr;\n else {\n var i = r.clone();\n t = this.rawShare(t, W.toHandle(() => i.delete())), e !== null && e.push(this.rawDestructor, t);\n }\n break;\n default: h(\"Unsupporting sharing policy\");\n }\n return t;\n }\n function At(e, r) {\n if (r === null) return this.isReference && h(`null is not a valid ${this.name}`), 0;\n r.$$ || h(`Cannot pass \"${Dr(r)}\" as a ${this.name}`), r.$$.ptr || h(`Cannot pass deleted object as a pointer of type ${this.name}`), r.$$.ptrType.isConst && h(`Cannot convert argument of type ${r.$$.ptrType.name} to parameter type ${this.name}`);\n var t = r.$$.ptrType.registeredClass;\n return lr(r.$$.ptr, t, this.registeredClass);\n }\n function vr(e) {\n return this.fromWireType(w[e >> 2]);\n }\n var oe = (e, r, t) => {\n if (r === t) return e;\n if (t.baseClass === void 0) return null;\n var n = oe(e, r, t.baseClass);\n return n === null ? null : t.downcast(n);\n }, Et = {}, Rt = (e, r) => {\n for (r === void 0 && h(\"ptr should not be undefined\"); e.baseClass;) r = e.upcast(r), e = e.baseClass;\n return r;\n }, Dt = (e, r) => (r = Rt(e, r), Et[r]), Wt = class extends Error {\n constructor(r) {\n super(r), this.name = \"InternalError\";\n }\n }, _r = (e) => {\n throw new Wt(e);\n }, dr = (e, r) => {\n (!r.ptrType || !r.ptr) && _r(\"makeClassHandle requires ptr and ptrType\");\n return !!r.smartPtrType !== !!r.smartPtr && _r(\"Both smartPtrType and smartPtr must be specified\"), r.count = { value: 1 }, X(Object.create(e, { $$: {\n value: r,\n writable: !0\n } }));\n };\n function xt(e) {\n var r = this.getPointee(e);\n if (!r) return this.destructor(e), null;\n var t = Dt(this.registeredClass, r);\n if (t !== void 0) {\n if (t.$$.count.value === 0) return t.$$.ptr = r, t.$$.smartPtr = e, t.clone();\n var n = t.clone();\n return this.destructor(e), n;\n }\n function i() {\n return this.isSmartPointer ? dr(this.registeredClass.instancePrototype, {\n ptrType: this.pointeeType,\n ptr: r,\n smartPtrType: this,\n smartPtr: e\n }) : dr(this.registeredClass.instancePrototype, {\n ptrType: this,\n ptr: e\n });\n }\n var s = se[this.registeredClass.getActualType(r)];\n if (!s) return i.call(this);\n var o;\n this.isConst ? o = s.constPointerType : o = s.pointerType;\n var u = oe(r, this.registeredClass, o.registeredClass);\n return u === null ? i.call(this) : this.isSmartPointer ? dr(o.registeredClass.instancePrototype, {\n ptrType: o,\n ptr: u,\n smartPtrType: this,\n smartPtr: e\n }) : dr(o.registeredClass.instancePrototype, {\n ptrType: o,\n ptr: u\n });\n }\n var Ot = () => {\n Object.assign(pr.prototype, {\n getPointee(e) {\n return this.rawGetPointee && (e = this.rawGetPointee(e)), e;\n },\n destructor(e) {\n this.rawDestructor?.(e);\n },\n readValueFromPointer: vr,\n fromWireType: xt\n });\n };\n function pr(e, r, t, n, i, a, s, o, u, c, f) {\n this.name = e, this.registeredClass = r, this.isReference = t, this.isConst = n, this.isSmartPointer = i, this.pointeeType = a, this.sharingPolicy = s, this.rawGetPointee = o, this.rawConstructor = u, this.rawShare = c, this.rawDestructor = f, !i && r.baseClass === void 0 ? n ? (this.toWireType = kt, this.destructorFunction = null) : (this.toWireType = At, this.destructorFunction = null) : this.toWireType = St;\n }\n var ue = (e, r, t) => {\n l.hasOwnProperty(e) || _r(\"Replacing nonexistent public symbol\"), l[e].overloadTable !== void 0 && t !== void 0 ? l[e].overloadTable[t] = r : (l[e] = r, l[e].argCount = t);\n }, ce = [], fe, b = (e) => {\n var r = ce[e];\n return r || (ce[e] = r = fe.get(e)), r;\n }, R = (e, r, t = !1) => {\n e = C(e);\n function n() {\n return b(r);\n }\n var i = n();\n return typeof i != \"function\" && h(`unknown function pointer with signature ${e}: ${r}`), i;\n };\n class Ut extends Error {}\n var le = (e) => {\n var r = Ae(e), t = C(r);\n return O(r), t;\n }, I = (e, r) => {\n var t = [], n = {};\n function i(a) {\n if (!n[a] && !j[a]) {\n if (or[a]) {\n or[a].forEach(i);\n return;\n }\n t.push(a), n[a] = !0;\n }\n }\n throw r.forEach(i), new Ut(`${e}: ` + t.map(le).join([\", \"]));\n }, D = (e, r, t) => {\n e.forEach((o) => or[o] = r);\n function n(o) {\n var u = t(o);\n u.length !== e.length && _r(\"Mismatched type converter count\");\n for (var c = 0; c < e.length; ++c) E(e[c], u[c]);\n }\n var i = new Array(r.length), a = [], s = 0;\n r.forEach((o, u) => {\n j.hasOwnProperty(o) ? i[u] = j[o] : (a.push(o), Y.hasOwnProperty(o) || (Y[o] = []), Y[o].push(() => {\n i[u] = j[o], ++s, s === a.length && n(i);\n }));\n }), a.length === 0 && n(i);\n }, Vt = (e, r, t, n, i, a, s, o, u, c, f, _, d) => {\n f = C(f), a = R(i, a), o &&= R(s, o), c &&= R(u, c), d = R(_, d);\n var p = Ct(f);\n Rr(p, function() {\n I(`Cannot construct ${f} due to unbound types`, [n]);\n }), D([\n e,\n r,\n t\n ], n ? [n] : [], (v) => {\n v = v[0];\n var $, P;\n n ? ($ = v.registeredClass, P = $.instancePrototype) : P = cr.prototype;\n var F = fr(f, function(...Hr) {\n if (Object.getPrototypeOf(this) !== Z) throw new q(`Use 'new' to construct ${f}`);\n if (S.constructor_body === void 0) throw new q(`${f} has no accessible constructor`);\n var Be = S.constructor_body[Hr.length];\n if (Be === void 0) throw new q(`Tried to invoke ctor of ${f} with invalid number of parameters (${Hr.length}) - expected (${Object.keys(S.constructor_body).toString()}) parameters instead!`);\n return Be.apply(this, Hr);\n }), Z = Object.create(P, { constructor: { value: F } });\n F.prototype = Z;\n var S = new Pt(f, F, Z, d, $, a, o, c);\n S.baseClass && (S.baseClass.__derivedClasses ??= [], S.baseClass.__derivedClasses.push(S));\n var Bi = new pr(f, S, !0, !1, !1), Me = new pr(f + \"*\", S, !1, !1, !1), He = new pr(f + \" const*\", S, !1, !0, !1);\n return se[e] = {\n pointerType: Me,\n constPointerType: He\n }, ue(p, F), [\n Bi,\n Me,\n He\n ];\n });\n }, Wr = (e) => {\n for (; e.length;) {\n var r = e.pop();\n e.pop()(r);\n }\n };\n function ve(e) {\n for (var r = 1; r < e.length; ++r) if (e[r] !== null && e[r].destructorFunction === void 0) return !0;\n return !1;\n }\n function jt(e, r, t, n) {\n var i = ve(e), a = e.length - 2, s = [], o = [\"fn\"];\n r && o.push(\"thisWired\");\n for (var u = 0; u < a; ++u) s.push(`arg${u}`), o.push(`arg${u}Wired`);\n s = s.join(\",\"), o = o.join(\",\");\n var c = `return function (${s}) {\n`;\n i && (c += `var destructors = [];\n`);\n var f = i ? \"destructors\" : \"null\", _ = [\n \"humanName\",\n \"throwBindingError\",\n \"invoker\",\n \"fn\",\n \"runDestructors\",\n \"fromRetWire\",\n \"toClassParamWire\"\n ];\n r && (c += `var thisWired = toClassParamWire(${f}, this);\n`);\n for (var u = 0; u < a; ++u) {\n var d = `toArg${u}Wire`;\n c += `var arg${u}Wired = ${d}(${f}, arg${u});\n`, _.push(d);\n }\n c += (t || n ? \"var rv = \" : \"\") + `invoker(${o});\n`;\n if (i) c += `runDestructors(destructors);\n`;\n else for (var u = r ? 1 : 2; u < e.length; ++u) {\n var v = u === 1 ? \"thisWired\" : \"arg\" + (u - 2) + \"Wired\";\n e[u].destructorFunction !== null && (c += `${v}_dtor(${v});\n`, _.push(`${v}_dtor`));\n }\n return t && (c += `var ret = fromRetWire(rv);\nreturn ret;\n`), c += `}\n`, new Function(_, c);\n }\n function hr(e, r, t, n, i, a) {\n var s = r.length;\n s < 2 && h(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");\n for (var o = r[1] !== null && t !== null, u = ve(r), c = !r[0].isVoid, f = s - 2, _ = r[0], d = r[1], p = [\n e,\n h,\n n,\n i,\n Wr,\n _.fromWireType.bind(_),\n d?.toWireType.bind(d)\n ], v = 2; v < s; ++v) {\n var $ = r[v];\n p.push($.toWireType.bind($));\n }\n if (!u) for (var v = o ? 1 : 2; v < r.length; ++v) r[v].destructorFunction !== null && p.push(r[v].destructorFunction);\n return fr(e, jt(r, o, c, a)(...p));\n }\n var gr = (e, r) => {\n for (var t = [], n = 0; n < e; n++) t.push(w[r + n * 4 >> 2]);\n return t;\n }, xr = (e) => {\n e = e.trim();\n const r = e.indexOf(\"(\");\n return r === -1 ? e : e.slice(0, r);\n }, It = (e, r, t, n, i, a, s, o, u) => {\n var c = gr(t, n);\n r = C(r), r = xr(r), a = R(i, a, o), D([], [e], (f) => {\n f = f[0];\n var _ = `${f.name}.${r}`;\n function d() {\n I(`Cannot call ${_} due to unbound types`, c);\n }\n r.startsWith(\"@@\") && (r = Symbol[r.substring(2)]);\n var p = f.registeredClass.constructor;\n return p[r] === void 0 ? (d.argCount = t - 1, p[r] = d) : (Er(p, r, _), p[r].overloadTable[t - 1] = d), D([], c, (v) => {\n var P = hr(_, [v[0], null].concat(v.slice(1)), null, a, s, o);\n if (p[r].overloadTable === void 0 ? (P.argCount = t - 1, p[r] = P) : p[r].overloadTable[t - 1] = P, f.registeredClass.__derivedClasses) for (const F of f.registeredClass.__derivedClasses) F.constructor.hasOwnProperty(r) || (F.constructor[r] = P);\n return [];\n }), [];\n });\n }, Mt = (e, r, t, n, i, a) => {\n var s = gr(r, t);\n i = R(n, i);\n D([], [e], (c) => {\n c = c[0];\n var f = `constructor ${c.name}`;\n if (c.registeredClass.constructor_body === void 0 && (c.registeredClass.constructor_body = []), c.registeredClass.constructor_body[r - 1] !== void 0) throw new q(`Cannot register multiple constructors with identical number of parameters (${r - 1}) for class '${c.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);\n return c.registeredClass.constructor_body[r - 1] = () => {\n I(`Cannot construct ${c.name} due to unbound types`, s);\n }, D([], s, (_) => (_.splice(1, 0, null), c.registeredClass.constructor_body[r - 1] = hr(f, _, null, i, a), [])), [];\n });\n }, Ht = (e, r, t, n, i, a, s, o, u, c) => {\n var f = gr(t, n);\n r = C(r), r = xr(r), a = R(i, a, u), D([], [e], (_) => {\n _ = _[0];\n var d = `${_.name}.${r}`;\n r.startsWith(\"@@\") && (r = Symbol[r.substring(2)]), o && _.registeredClass.pureVirtualFunctions.push(r);\n function p() {\n I(`Cannot call ${d} due to unbound types`, f);\n }\n var v = _.registeredClass.instancePrototype, $ = v[r];\n return $ === void 0 || $.overloadTable === void 0 && $.className !== _.name && $.argCount === t - 2 ? (p.argCount = t - 2, p.className = _.name, v[r] = p) : (Er(v, r, d), v[r].overloadTable[t - 2] = p), D([], f, (P) => {\n var F = hr(d, P, _, a, s, u);\n return v[r].overloadTable === void 0 ? (F.argCount = t - 2, v[r] = F) : v[r].overloadTable[t - 2] = F, [];\n }), [];\n });\n }, _e = (e, r, t) => (e instanceof Object || h(`${t} with invalid \"this\": ${e}`), e instanceof r.registeredClass.constructor || h(`${t} incompatible with \"this\" of type ${e.constructor.name}`), e.$$.ptr || h(`cannot call emscripten binding method ${t} on deleted object`), lr(e.$$.ptr, e.$$.ptrType.registeredClass, r.registeredClass)), Bt = (e, r, t, n, i, a, s, o, u, c) => {\n r = C(r), i = R(n, i), D([], [e], (f) => {\n f = f[0];\n var _ = `${f.name}.${r}`, d = {\n get() {\n I(`Cannot access ${_} due to unbound types`, [t, s]);\n },\n enumerable: !0,\n configurable: !0\n };\n return u ? d.set = () => I(`Cannot access ${_} due to unbound types`, [t, s]) : d.set = (p) => h(_ + \" is a read-only property\"), Object.defineProperty(f.registeredClass.instancePrototype, r, d), D([], u ? [t, s] : [t], (p) => {\n var v = p[0], $ = {\n get() {\n var F = _e(this, f, _ + \" getter\");\n return v.fromWireType(i(a, F));\n },\n enumerable: !0\n };\n if (u) {\n u = R(o, u);\n var P = p[1];\n $.set = function(F) {\n var Z = _e(this, f, _ + \" setter\"), S = [];\n u(c, Z, P.toWireType(S, F)), Wr(S);\n };\n }\n return Object.defineProperty(f.registeredClass.instancePrototype, r, $), [];\n }), [];\n });\n }, de = [], N = [\n 0,\n 1,\n ,\n 1,\n null,\n 1,\n !0,\n 1,\n !1,\n 1\n ], Or = (e) => {\n e > 9 && --N[e + 1] === 0 && (N[e] = void 0, de.push(e));\n }, W = {\n toValue: (e) => (e || h(`Cannot use deleted val. handle = ${e}`), N[e]),\n toHandle: (e) => {\n switch (e) {\n case void 0: return 2;\n case null: return 4;\n case !0: return 6;\n case !1: return 8;\n default: {\n const r = de.pop() || N.length;\n return N[r] = e, N[r + 1] = 1, r;\n }\n }\n }\n }, Lt = {\n name: \"emscripten::val\",\n fromWireType: (e) => {\n var r = W.toValue(e);\n return Or(e), r;\n },\n toWireType: (e, r) => W.toHandle(r),\n readValueFromPointer: vr,\n destructorFunction: null\n }, zt = (e) => E(e, Lt), Yt = (e, r, t) => {\n switch (r) {\n case 1: return t ? function(n) {\n return this.fromWireType(k[n]);\n } : function(n) {\n return this.fromWireType(A[n]);\n };\n case 2: return t ? function(n) {\n return this.fromWireType(U[n >> 1]);\n } : function(n) {\n return this.fromWireType(L[n >> 1]);\n };\n case 4: return t ? function(n) {\n return this.fromWireType(T[n >> 2]);\n } : function(n) {\n return this.fromWireType(w[n >> 2]);\n };\n default: throw new TypeError(`invalid integer width (${r}): ${e}`);\n }\n }, Nt = (e, r, t, n) => {\n r = C(r);\n function i() {}\n i.values = {}, E(e, {\n name: r,\n constructor: i,\n fromWireType: function(a) {\n return this.constructor.values[a];\n },\n toWireType: (a, s) => s.value,\n readValueFromPointer: Yt(r, t, n),\n destructorFunction: null\n }), Rr(r, i);\n }, pe = (e, r) => {\n var t = j[e];\n return t === void 0 && h(`${r} has unknown type ${le(e)}`), t;\n }, Gt = (e, r, t) => {\n var n = pe(e, \"enum\");\n r = C(r);\n var i = n.constructor, a = Object.create(n.constructor.prototype, {\n value: { value: t },\n constructor: { value: fr(`${n.name}_${r}`, function() {}) }\n });\n i.values[t] = a, i[r] = a;\n }, qt = (e, r) => {\n switch (r) {\n case 4: return function(t) {\n return this.fromWireType(tr[t >> 2]);\n };\n case 8: return function(t) {\n return this.fromWireType(nr[t >> 3]);\n };\n default: throw new TypeError(`invalid float width (${r}): ${e}`);\n }\n }, Xt = (e, r, t) => {\n r = C(r), E(e, {\n name: r,\n fromWireType: (n) => n,\n toWireType: (n, i) => i,\n readValueFromPointer: qt(r, t),\n destructorFunction: null\n });\n }, Jt = (e, r, t, n, i, a, s, o) => {\n var u = gr(r, t);\n e = C(e), e = xr(e), i = R(n, i, s), Rr(e, function() {\n I(`Cannot call ${e} due to unbound types`, u);\n }, r - 1), D([], u, (c) => {\n var f = [c[0], null].concat(c.slice(1));\n return ue(e, hr(e, f, null, i, a, s), r - 1), [];\n });\n }, Kt = (e, r, t, n, i) => {\n r = C(r);\n const a = n === 0;\n let s = (u) => u;\n if (a) {\n var o = 32 - 8 * t;\n s = (u) => u << o >>> o, i = s(i);\n }\n E(e, {\n name: r,\n fromWireType: s,\n toWireType: (u, c) => c,\n readValueFromPointer: te(r, t, n !== 0),\n destructorFunction: null\n });\n }, Zt = (e, r, t) => {\n var i = [\n Int8Array,\n Uint8Array,\n Int16Array,\n Uint16Array,\n Int32Array,\n Uint32Array,\n Float32Array,\n Float64Array,\n BigInt64Array,\n BigUint64Array\n ][r];\n function a(s) {\n var o = w[s >> 2], u = w[s + 4 >> 2];\n return new i(k.buffer, u, o);\n }\n t = C(t), E(e, {\n name: t,\n fromWireType: a,\n readValueFromPointer: a\n }, { ignoreDuplicateRegistrations: !0 });\n }, Qt = (e, r, t, n) => {\n if (!(n > 0)) return 0;\n for (var i = t, a = t + n - 1, s = 0; s < e.length; ++s) {\n var o = e.codePointAt(s);\n if (o <= 127) {\n if (t >= a) break;\n r[t++] = o;\n } else if (o <= 2047) {\n if (t + 1 >= a) break;\n r[t++] = 192 | o >> 6, r[t++] = 128 | o & 63;\n } else if (o <= 65535) {\n if (t + 2 >= a) break;\n r[t++] = 224 | o >> 12, r[t++] = 128 | o >> 6 & 63, r[t++] = 128 | o & 63;\n } else {\n if (t + 3 >= a) break;\n r[t++] = 240 | o >> 18, r[t++] = 128 | o >> 12 & 63, r[t++] = 128 | o >> 6 & 63, r[t++] = 128 | o & 63, s++;\n }\n }\n return r[t] = 0, t - i;\n }, M = (e, r, t) => Qt(e, A, r, t), Ur = (e) => {\n for (var r = 0, t = 0; t < e.length; ++t) {\n var n = e.charCodeAt(t);\n n <= 127 ? r++ : n <= 2047 ? r += 2 : n >= 55296 && n <= 57343 ? (r += 4, ++t) : r += 3;\n }\n return r;\n }, he = typeof TextDecoder < \"u\" ? new TextDecoder() : void 0, ge = (e, r, t, n) => {\n var i = r + t;\n if (n) return i;\n for (; e[r] && !(r >= i);) ++r;\n return r;\n }, ye = (e, r = 0, t, n) => {\n var i = ge(e, r, t, n);\n if (i - r > 16 && e.buffer && he) return he.decode(e.subarray(r, i));\n for (var a = \"\"; r < i;) {\n var s = e[r++];\n if (!(s & 128)) {\n a += String.fromCharCode(s);\n continue;\n }\n var o = e[r++] & 63;\n if ((s & 224) == 192) {\n a += String.fromCharCode((s & 31) << 6 | o);\n continue;\n }\n var u = e[r++] & 63;\n if ((s & 240) == 224 ? s = (s & 15) << 12 | o << 6 | u : s = (s & 7) << 18 | o << 12 | u << 6 | e[r++] & 63, s < 65536) a += String.fromCharCode(s);\n else {\n var c = s - 65536;\n a += String.fromCharCode(55296 | c >> 10, 56320 | c & 1023);\n }\n }\n return a;\n }, yr = (e, r, t) => e ? ye(A, e, r, t) : \"\", rn = (e, r) => {\n r = C(r);\n var t = !0;\n E(e, {\n name: r,\n fromWireType(n) {\n var i = w[n >> 2], a = n + 4, s;\n if (t) s = yr(a, i, !0);\n else {\n s = \"\";\n for (var o = 0; o < i; ++o) s += String.fromCharCode(A[a + o]);\n }\n return O(n), s;\n },\n toWireType(n, i) {\n i instanceof ArrayBuffer && (i = new Uint8Array(i));\n var a, s = typeof i == \"string\";\n s || ArrayBuffer.isView(i) && i.BYTES_PER_ELEMENT == 1 || h(\"Cannot pass non-string to std::string\"), t && s ? a = Ur(i) : a = i.length;\n var o = Mr(4 + a + 1), u = o + 4;\n if (w[o >> 2] = a, s) if (t) M(i, u, a + 1);\n else for (var c = 0; c < a; ++c) {\n var f = i.charCodeAt(c);\n f > 255 && (O(o), h(\"String has UTF-16 code units that do not fit in 8 bits\")), A[u + c] = f;\n }\n else A.set(i, u);\n return n !== null && n.push(O, o), o;\n },\n readValueFromPointer: vr,\n destructorFunction(n) {\n O(n);\n }\n });\n }, me = typeof TextDecoder < \"u\" ? new TextDecoder(\"utf-16le\") : void 0, en = (e, r, t) => {\n var n = e >> 1, i = ge(L, n, r / 2, t);\n if (i - n > 16 && me) return me.decode(L.subarray(n, i));\n for (var a = \"\", s = n; s < i; ++s) {\n var o = L[s];\n a += String.fromCharCode(o);\n }\n return a;\n }, tn = (e, r, t) => {\n if (t ??= 2147483647, t < 2) return 0;\n t -= 2;\n for (var n = r, i = t < e.length * 2 ? t / 2 : e.length, a = 0; a < i; ++a) {\n var s = e.charCodeAt(a);\n U[r >> 1] = s, r += 2;\n }\n return U[r >> 1] = 0, r - n;\n }, nn = (e) => e.length * 2, an = (e, r, t) => {\n for (var n = \"\", i = e >> 2, a = 0; !(a >= r / 4); a++) {\n var s = w[i + a];\n if (!s && !t) break;\n n += String.fromCodePoint(s);\n }\n return n;\n }, sn = (e, r, t) => {\n if (t ??= 2147483647, t < 4) return 0;\n for (var n = r, i = n + t - 4, a = 0; a < e.length; ++a) {\n var s = e.codePointAt(a);\n if (s > 65535 && a++, T[r >> 2] = s, r += 4, r + 4 > i) break;\n }\n return T[r >> 2] = 0, r - n;\n }, on = (e) => {\n for (var r = 0, t = 0; t < e.length; ++t) e.codePointAt(t) > 65535 && t++, r += 4;\n return r;\n }, un = (e, r, t) => {\n t = C(t);\n var n, i, a;\n r === 2 ? (n = en, i = tn, a = nn) : (n = an, i = sn, a = on), E(e, {\n name: t,\n fromWireType: (s) => {\n var o = w[s >> 2], u = n(s + 4, o * r, !0);\n return O(s), u;\n },\n toWireType: (s, o) => {\n typeof o != \"string\" && h(`Cannot pass non-string to C++ string type ${t}`);\n var u = a(o), c = Mr(4 + u + r);\n return w[c >> 2] = u / r, i(o, c + 4, u + r), s !== null && s.push(O, c), c;\n },\n readValueFromPointer: vr,\n destructorFunction(s) {\n O(s);\n }\n });\n }, cn = (e, r) => {\n r = C(r), E(e, {\n isVoid: !0,\n name: r,\n fromWireType: () => {},\n toWireType: (t, n) => {}\n });\n }, be = 0, fn = () => {\n Cr = !1, be = 0;\n }, Vr = [], ln = (e) => {\n var r = Vr.length;\n return Vr.push(e), r;\n }, vn = (e, r) => {\n for (var t = new Array(e), n = 0; n < e; ++n) t[n] = pe(w[r + n * 4 >> 2], `parameter ${n}`);\n return t;\n }, _n = (e, r, t) => {\n var n = [], i = e(n, t);\n return n.length && (w[r >> 2] = W.toHandle(n)), i;\n }, dn = {}, pn = (e) => {\n var r = dn[e];\n return r === void 0 ? C(e) : r;\n }, hn = (e, r, t) => {\n var n = 8, [i, ...a] = vn(e, r), s = i.toWireType.bind(i), o = a.map((p) => p.readValueFromPointer.bind(p));\n e--;\n var u = { toValue: W.toValue }, c = o.map((p, v) => {\n var $ = `argFromPtr${v}`;\n return u[$] = p, `${$}(args${v ? \"+\" + v * n : \"\"})`;\n }), f;\n switch (t) {\n case 0:\n f = \"toValue(handle)\";\n break;\n case 2:\n f = \"new (toValue(handle))\";\n break;\n case 3:\n f = \"\";\n break;\n case 1: u.getStringOrSymbol = pn, f = \"toValue(handle)[getStringOrSymbol(methodName)]\";\n }\n f += `(${c})`, i.isVoid || (u.toReturnWire = s, u.emval_returnValue = _n, f = `return emval_returnValue(toReturnWire, destructorsRef, ${f})`), f = `return function (handle, methodName, destructorsRef, args) {\n ${f}\n }`;\n var _ = new Function(Object.keys(u), f)(...Object.values(u));\n return ln(fr(`methodCaller<(${a.map((p) => p.name)}) => ${i.name}>`, _));\n }, gn = (e, r, t, n, i) => Vr[e](r, t, n, i), yn = () => W.toHandle({}), mn = (e) => {\n Wr(W.toValue(e)), Or(e);\n }, bn = (e, r, t) => {\n e = W.toValue(e), r = W.toValue(r), t = W.toValue(t), e[r] = t;\n }, $n = 9007199254740992, wn = -9007199254740992, mr = (e) => e < wn || e > $n ? NaN : Number(e);\n function Tn(e, r) {\n e = mr(e);\n var t = /* @__PURE__ */ new Date(e * 1e3);\n T[r >> 2] = t.getUTCSeconds(), T[r + 4 >> 2] = t.getUTCMinutes(), T[r + 8 >> 2] = t.getUTCHours(), T[r + 12 >> 2] = t.getUTCDate(), T[r + 16 >> 2] = t.getUTCMonth(), T[r + 20 >> 2] = t.getUTCFullYear() - 1900, T[r + 24 >> 2] = t.getUTCDay();\n var n = Date.UTC(t.getUTCFullYear(), 0, 1, 0, 0, 0, 0), i = (t.getTime() - n) / 864e5 | 0;\n T[r + 28 >> 2] = i;\n }\n var Fn = (e) => e % 4 === 0 && (e % 100 !== 0 || e % 400 === 0), Cn = [\n 0,\n 31,\n 60,\n 91,\n 121,\n 152,\n 182,\n 213,\n 244,\n 274,\n 305,\n 335\n ], Pn = [\n 0,\n 31,\n 59,\n 90,\n 120,\n 151,\n 181,\n 212,\n 243,\n 273,\n 304,\n 334\n ], kn = (e) => {\n return (Fn(e.getFullYear()) ? Cn : Pn)[e.getMonth()] + e.getDate() - 1;\n };\n function Sn(e, r) {\n e = mr(e);\n var t = /* @__PURE__ */ new Date(e * 1e3);\n T[r >> 2] = t.getSeconds(), T[r + 4 >> 2] = t.getMinutes(), T[r + 8 >> 2] = t.getHours(), T[r + 12 >> 2] = t.getDate(), T[r + 16 >> 2] = t.getMonth(), T[r + 20 >> 2] = t.getFullYear() - 1900, T[r + 24 >> 2] = t.getDay();\n var n = kn(t) | 0;\n T[r + 28 >> 2] = n, T[r + 36 >> 2] = -(t.getTimezoneOffset() * 60);\n var i = new Date(t.getFullYear(), 0, 1), a = new Date(t.getFullYear(), 6, 1).getTimezoneOffset(), s = i.getTimezoneOffset(), o = (a != s && t.getTimezoneOffset() == Math.min(s, a)) | 0;\n T[r + 32 >> 2] = o;\n }\n var J = {}, $e = (e) => {\n if (e instanceof Zr || e == \"unwind\") return rr;\n zr(1, e);\n }, we = () => Cr || be > 0, Te = (e) => {\n rr = e, we() || (l.onExit?.(e), Q = !0), zr(e, new Zr(e));\n }, An = (e, r) => {\n rr = e, Te(e);\n }, En = An, Rn = () => {\n if (!we()) try {\n En(rr);\n } catch (e) {\n $e(e);\n }\n }, Dn = (e) => {\n if (!Q) try {\n e(), Rn();\n } catch (r) {\n $e(r);\n }\n }, Fe = () => performance.now(), Wn = (e, r) => {\n if (J[e] && (clearTimeout(J[e].id), delete J[e]), !r) return 0;\n return J[e] = {\n id: setTimeout(() => {\n delete J[e], Dn(() => Ee(e, Fe()));\n }, r),\n timeout_ms: r\n }, 0;\n }, xn = (e, r, t, n) => {\n var i = (/* @__PURE__ */ new Date()).getFullYear(), a = new Date(i, 0, 1), s = new Date(i, 6, 1), o = a.getTimezoneOffset(), u = s.getTimezoneOffset(), c = Math.max(o, u);\n w[e >> 2] = c * 60, T[r >> 2] = +(o != u);\n var f = (p) => {\n var v = p >= 0 ? \"-\" : \"+\", $ = Math.abs(p);\n return `UTC${v}${String(Math.floor($ / 60)).padStart(2, \"0\")}${String($ % 60).padStart(2, \"0\")}`;\n }, _ = f(o), d = f(u);\n u < o ? (M(_, t, 17), M(d, n, 17)) : (M(_, n, 17), M(d, t, 17));\n }, On = () => Date.now(), Un = 1, Vn = (e) => e >= 0 && e <= 3;\n function jn(e, r, t) {\n if (r = mr(r), !Vn(e)) return 28;\n var n;\n if (e === 0) n = On();\n else if (Un) n = Fe();\n else return 52;\n var i = Math.round(n * 1e3 * 1e3);\n return V[t >> 3] = BigInt(i), 0;\n }\n var Ce = () => 2147483648, In = () => Ce(), Mn = (e, r) => Math.ceil(e / r) * r, Hn = (e) => {\n var t = (e - er.buffer.byteLength + 65535) / 65536 | 0;\n try {\n return er.grow(t), Kr(), 1;\n } catch {}\n }, Bn = (e) => {\n var r = A.length;\n e >>>= 0;\n var t = Ce();\n if (e > t) return !1;\n for (var n = 1; n <= 4; n *= 2) {\n var i = r * (1 + .2 / n);\n i = Math.min(i, e + 100663296);\n if (Hn(Math.min(t, Mn(Math.max(e, i), 65536)))) return !0;\n }\n return !1;\n }, br = {}, Ln = () => Lr || \"./this.program\", K = () => {\n if (!K.strings) {\n var r = {\n USER: \"web_user\",\n LOGNAME: \"web_user\",\n PATH: \"/\",\n PWD: \"/\",\n HOME: \"/home/web_user\",\n LANG: (typeof navigator == \"object\" && navigator.language || \"C\").replace(\"-\", \"_\") + \".UTF-8\",\n _: Ln()\n };\n for (var t in br) br[t] === void 0 ? delete r[t] : r[t] = br[t];\n var n = [];\n for (var t in r) n.push(`${t}=${r[t]}`);\n K.strings = n;\n }\n return K.strings;\n }, zn = (e, r) => {\n var t = 0, n = 0;\n for (var i of K()) {\n var a = r + t;\n w[e + n >> 2] = a, t += M(i, a, 1 / 0) + 1, n += 4;\n }\n return 0;\n }, Yn = (e, r) => {\n var t = K();\n w[e >> 2] = t.length;\n var n = 0;\n for (var i of t) n += Ur(i) + 1;\n return w[r >> 2] = n, 0;\n }, Nn = (e) => 52, Gn = (e, r) => {\n var t = 0, n = 0, i = 0;\n var a = 2;\n e == 0 ? t = 2 : (e == 1 || e == 2) && (t = 64), i = 1;\n return k[r] = a, U[r + 2 >> 1] = i, V[r + 8 >> 3] = BigInt(t), V[r + 16 >> 3] = BigInt(n), 0;\n };\n function qn(e, r, t, n) {\n return r = mr(r), 70;\n }\n var jr = [\n null,\n [],\n []\n ], Ir = (e, r) => {\n var t = jr[e];\n r === 0 || r === 10 ? ((e === 1 ? Nr : B)(ye(t)), t.length = 0) : t.push(r);\n }, Xn = (e, r, t, n) => {\n for (var i = 0, a = 0; a < t; a++) {\n var s = w[r >> 2], o = w[r + 4 >> 2];\n r += 8;\n for (var u = 0; u < o; u++) Ir(e, A[s + u]);\n i += o;\n }\n return w[n >> 2] = i, 0;\n }, Jn = (e) => e, Pe = (e) => {\n return l[\"_\" + e];\n }, Kn = (e, r) => {\n k.set(e, r);\n }, ke = (e) => We(e), Zn = (e) => {\n var r = Ur(e) + 1, t = ke(r);\n return M(e, t, r), t;\n }, Se = (e, r, t, n, i) => {\n var a = {\n string: (v) => {\n var $ = 0;\n return v != null && v !== 0 && ($ = Zn(v)), $;\n },\n array: (v) => {\n var $ = ke(v.length);\n return Kn(v, $), $;\n }\n };\n function s(v) {\n return r === \"string\" ? yr(v) : r === \"boolean\" ? !!v : v;\n }\n var o = Pe(e), u = [], c = 0;\n if (n) for (var f = 0; f < n.length; f++) {\n var _ = a[t[f]];\n _ ? (c === 0 && (c = m()), u[f] = _(n[f])) : u[f] = n[f];\n }\n var d = o(...u);\n function p(v) {\n return c !== 0 && y(c), s(v);\n }\n return d = p(d), d;\n }, Qn = (e, r, t, n) => {\n var i = !t || t.every((s) => s === \"number\" || s === \"boolean\");\n return r !== \"string\" && i && !n ? Pe(e) : (...s) => Se(e, r, t, s, n);\n };\n if (wt(), Ot(), l.noExitRuntime && (Cr = l.noExitRuntime), l.print && (Nr = l.print), l.printErr && (B = l.printErr), l.wasmBinary && (G = l.wasmBinary), l.arguments && l.arguments, l.thisProgram && (Lr = l.thisProgram), l.preInit) for (typeof l.preInit == \"function\" && (l.preInit = [l.preInit]); l.preInit.length > 0;) l.preInit.shift()();\n l.ENV = br, l.ccall = Se, l.cwrap = Qn;\n var Ae, Mr, O, Ee, g, Re, De, We, xe, Oe, Ue, Ve, je;\n function si(e) {\n Ae = e.__getTypeName, l._malloc = Mr = e.malloc, l._parseDropFile = e.parseDropFile, l._getAttributeFromDropFile = e.getAttributeFromDropFile, l._takeAttributeFromDropFile = e.takeAttributeFromDropFile, l._flattenDropFile = e.flattenDropFile, l._destroyDropFileHandle = e.destroyDropFileHandle, e.__cxa_free_exception, l._free = O = e.free, Ee = e._emscripten_timeout, g = e.setThrew, Re = e._emscripten_tempret_set, De = e._emscripten_stack_restore, We = e._emscripten_stack_alloc, xe = e.emscripten_stack_get_current, Oe = e.__cxa_decrement_exception_refcount, Ue = e.__cxa_increment_exception_refcount, Ve = e.__cxa_can_catch, je = e.__cxa_get_exception_ptr;\n }\n var Ie = {\n __cxa_begin_catch: st,\n __cxa_end_catch: ot,\n __cxa_find_matching_catch_2: ut,\n __cxa_find_matching_catch_3: ct,\n __cxa_find_matching_catch_4: ft,\n __cxa_rethrow: lt,\n __cxa_throw: vt,\n __cxa_uncaught_exceptions: _t,\n __resumeException: dt,\n _abort_js: pt,\n _embind_register_bigint: gt,\n _embind_register_bool: yt,\n _embind_register_class: Vt,\n _embind_register_class_class_function: It,\n _embind_register_class_constructor: Mt,\n _embind_register_class_function: Ht,\n _embind_register_class_property: Bt,\n _embind_register_emval: zt,\n _embind_register_enum: Nt,\n _embind_register_enum_value: Gt,\n _embind_register_float: Xt,\n _embind_register_function: Jt,\n _embind_register_integer: Kt,\n _embind_register_memory_view: Zt,\n _embind_register_std_string: rn,\n _embind_register_std_wstring: un,\n _embind_register_void: cn,\n _emscripten_runtime_keepalive_clear: fn,\n _emval_create_invoker: hn,\n _emval_decref: Or,\n _emval_invoke: gn,\n _emval_new_object: yn,\n _emval_run_destructors: mn,\n _emval_set_property: bn,\n _gmtime_js: Tn,\n _localtime_js: Sn,\n _setitimer_js: Wn,\n _tzset_js: xn,\n clock_time_get: jn,\n emscripten_get_heap_max: In,\n emscripten_resize_heap: Bn,\n environ_get: zn,\n environ_sizes_get: Yn,\n fd_close: Nn,\n fd_fdstat_get: Gn,\n fd_seek: qn,\n fd_write: Xn,\n invoke_diii: Di,\n invoke_fi: Ti,\n invoke_fiii: Ri,\n invoke_i: Wi,\n invoke_ii: ui,\n invoke_iii: vi,\n invoke_iiii: mi,\n invoke_iiiid: Oi,\n invoke_iiiii: wi,\n invoke_iiiiid: Si,\n invoke_iiiiii: hi,\n invoke_iiiiiii: Ui,\n invoke_iiiiiiii: Ai,\n invoke_iiiiiiiiii: yi,\n invoke_iiiiiiiiiii: _i,\n invoke_iiiiiiiiiiii: di,\n invoke_iiiiijj: Vi,\n invoke_iiiijj: ji,\n invoke_iiij: Ci,\n invoke_j: Pi,\n invoke_jiiii: Ei,\n invoke_v: pi,\n invoke_vi: ci,\n invoke_vii: li,\n invoke_viii: fi,\n invoke_viiii: oi,\n invoke_viiiii: bi,\n invoke_viiiiii: gi,\n invoke_viiiiiii: xi,\n invoke_viiiiiiii: Fi,\n invoke_viiiiiiiiii: Ii,\n invoke_viiiiiiiiiiiiiii: Mi,\n invoke_viiji: ki,\n invoke_viijii: $i,\n llvm_eh_typeid_for: Jn,\n proc_exit: Te\n };\n function oi(e, r, t, n, i) {\n var a = m();\n try {\n b(e)(r, t, n, i);\n } catch (s) {\n if (y(a), s !== s + 0) throw s;\n g(1, 0);\n }\n }\n function ui(e, r) {\n var t = m();\n try {\n return b(e)(r);\n } catch (n) {\n if (y(t), n !== n + 0) throw n;\n g(1, 0);\n }\n }\n function ci(e, r) {\n var t = m();\n try {\n b(e)(r);\n } catch (n) {\n if (y(t), n !== n + 0) throw n;\n g(1, 0);\n }\n }\n function fi(e, r, t, n) {\n var i = m();\n try {\n b(e)(r, t, n);\n } catch (a) {\n if (y(i), a !== a + 0) throw a;\n g(1, 0);\n }\n }\n function li(e, r, t) {\n var n = m();\n try {\n b(e)(r, t);\n } catch (i) {\n if (y(n), i !== i + 0) throw i;\n g(1, 0);\n }\n }\n function vi(e, r, t) {\n var n = m();\n try {\n return b(e)(r, t);\n } catch (i) {\n if (y(n), i !== i + 0) throw i;\n g(1, 0);\n }\n }\n function _i(e, r, t, n, i, a, s, o, u, c, f) {\n var _ = m();\n try {\n return b(e)(r, t, n, i, a, s, o, u, c, f);\n } catch (d) {\n if (y(_), d !== d + 0) throw d;\n g(1, 0);\n }\n }\n function di(e, r, t, n, i, a, s, o, u, c, f, _) {\n var d = m();\n try {\n return b(e)(r, t, n, i, a, s, o, u, c, f, _);\n } catch (p) {\n if (y(d), p !== p + 0) throw p;\n g(1, 0);\n }\n }\n function pi(e) {\n var r = m();\n try {\n b(e)();\n } catch (t) {\n if (y(r), t !== t + 0) throw t;\n g(1, 0);\n }\n }\n function hi(e, r, t, n, i, a) {\n var s = m();\n try {\n return b(e)(r, t, n, i, a);\n } catch (o) {\n if (y(s), o !== o + 0) throw o;\n g(1, 0);\n }\n }\n function gi(e, r, t, n, i, a, s) {\n var o = m();\n try {\n b(e)(r, t, n, i, a, s);\n } catch (u) {\n if (y(o), u !== u + 0) throw u;\n g(1, 0);\n }\n }\n function yi(e, r, t, n, i, a, s, o, u, c) {\n var f = m();\n try {\n return b(e)(r, t, n, i, a, s, o, u, c);\n } catch (_) {\n if (y(f), _ !== _ + 0) throw _;\n g(1, 0);\n }\n }\n function mi(e, r, t, n) {\n var i = m();\n try {\n return b(e)(r, t, n);\n } catch (a) {\n if (y(i), a !== a + 0) throw a;\n g(1, 0);\n }\n }\n function bi(e, r, t, n, i, a) {\n var s = m();\n try {\n b(e)(r, t, n, i, a);\n } catch (o) {\n if (y(s), o !== o + 0) throw o;\n g(1, 0);\n }\n }\n function $i(e, r, t, n, i, a) {\n var s = m();\n try {\n b(e)(r, t, n, i, a);\n } catch (o) {\n if (y(s), o !== o + 0) throw o;\n g(1, 0);\n }\n }\n function wi(e, r, t, n, i) {\n var a = m();\n try {\n return b(e)(r, t, n, i);\n } catch (s) {\n if (y(a), s !== s + 0) throw s;\n g(1, 0);\n }\n }\n function Ti(e, r) {\n var t = m();\n try {\n return b(e)(r);\n } catch (n) {\n if (y(t), n !== n + 0) throw n;\n g(1, 0);\n }\n }\n function Fi(e, r, t, n, i, a, s, o, u) {\n var c = m();\n try {\n b(e)(r, t, n, i, a, s, o, u);\n } catch (f) {\n if (y(c), f !== f + 0) throw f;\n g(1, 0);\n }\n }\n function Ci(e, r, t, n) {\n var i = m();\n try {\n return b(e)(r, t, n);\n } catch (a) {\n if (y(i), a !== a + 0) throw a;\n g(1, 0);\n }\n }\n function Pi(e) {\n var r = m();\n try {\n return b(e)();\n } catch (t) {\n if (y(r), t !== t + 0) throw t;\n return g(1, 0), 0n;\n }\n }\n function ki(e, r, t, n, i) {\n var a = m();\n try {\n b(e)(r, t, n, i);\n } catch (s) {\n if (y(a), s !== s + 0) throw s;\n g(1, 0);\n }\n }\n function Si(e, r, t, n, i, a) {\n var s = m();\n try {\n return b(e)(r, t, n, i, a);\n } catch (o) {\n if (y(s), o !== o + 0) throw o;\n g(1, 0);\n }\n }\n function Ai(e, r, t, n, i, a, s, o) {\n var u = m();\n try {\n return b(e)(r, t, n, i, a, s, o);\n } catch (c) {\n if (y(u), c !== c + 0) throw c;\n g(1, 0);\n }\n }\n function Ei(e, r, t, n, i) {\n var a = m();\n try {\n return b(e)(r, t, n, i);\n } catch (s) {\n if (y(a), s !== s + 0) throw s;\n return g(1, 0), 0n;\n }\n }\n function Ri(e, r, t, n) {\n var i = m();\n try {\n return b(e)(r, t, n);\n } catch (a) {\n if (y(i), a !== a + 0) throw a;\n g(1, 0);\n }\n }\n function Di(e, r, t, n) {\n var i = m();\n try {\n return b(e)(r, t, n);\n } catch (a) {\n if (y(i), a !== a + 0) throw a;\n g(1, 0);\n }\n }\n function Wi(e) {\n var r = m();\n try {\n return b(e)();\n } catch (t) {\n if (y(r), t !== t + 0) throw t;\n g(1, 0);\n }\n }\n function xi(e, r, t, n, i, a, s, o) {\n var u = m();\n try {\n b(e)(r, t, n, i, a, s, o);\n } catch (c) {\n if (y(u), c !== c + 0) throw c;\n g(1, 0);\n }\n }\n function Oi(e, r, t, n, i) {\n var a = m();\n try {\n return b(e)(r, t, n, i);\n } catch (s) {\n if (y(a), s !== s + 0) throw s;\n g(1, 0);\n }\n }\n function Ui(e, r, t, n, i, a, s) {\n var o = m();\n try {\n return b(e)(r, t, n, i, a, s);\n } catch (u) {\n if (y(o), u !== u + 0) throw u;\n g(1, 0);\n }\n }\n function Vi(e, r, t, n, i, a, s) {\n var o = m();\n try {\n return b(e)(r, t, n, i, a, s);\n } catch (u) {\n if (y(o), u !== u + 0) throw u;\n g(1, 0);\n }\n }\n function ji(e, r, t, n, i, a) {\n var s = m();\n try {\n return b(e)(r, t, n, i, a);\n } catch (o) {\n if (y(s), o !== o + 0) throw o;\n g(1, 0);\n }\n }\n function Ii(e, r, t, n, i, a, s, o, u, c, f) {\n var _ = m();\n try {\n b(e)(r, t, n, i, a, s, o, u, c, f);\n } catch (d) {\n if (y(_), d !== d + 0) throw d;\n g(1, 0);\n }\n }\n function Mi(e, r, t, n, i, a, s, o, u, c, f, _, d, p, v, $) {\n var P = m();\n try {\n b(e)(r, t, n, i, a, s, o, u, c, f, _, d, p, v, $);\n } catch (F) {\n if (y(P), F !== F + 0) throw F;\n g(1, 0);\n }\n }\n function Hi() {\n qe();\n function e() {\n l.calledRun = !0, !Q && (Xe(), Gr?.(l), l.onRuntimeInitialized?.(), Je());\n }\n l.setStatus ? (l.setStatus(\"Running...\"), setTimeout(() => {\n setTimeout(() => l.setStatus(\"\"), 1), e();\n }, 1)) : e();\n }\n var H;\n return H = await nt(), Hi(), Jr ? $r = l : $r = new Promise((e, r) => {\n Gr = e, qr = r;\n }), $r;\n}\n//#endregion\n//#region packages/core/engine/threads/decoder/worker.ts\nconst { wasmBinary } = await new Promise((resolve) => {\n self.addEventListener(\"message\", function onInit(e) {\n if (e.data?.type === \"wasm-init\") {\n self.removeEventListener(\"message\", onInit);\n resolve(e.data);\n }\n });\n});\nif (!wasmBinary) throw new Error(\"Decoder worker did not receive WASM binary. The main thread failed to fetch aqua-parser.wasm.\");\nconst module = await Li({ wasmBinary });\nconst controllers = /* @__PURE__ */ new Map();\nconst decoder = {\n get AttributeInfo() {\n return module.AttributeInfo;\n },\n get AquaStatus() {\n return module.AquaStatus;\n },\n get heapU8() {\n return module.HEAPU8;\n },\n get heapU32() {\n return module.HEAPU32;\n },\n get SceneRequestDescriptor() {\n return module.SceneRequestDescriptor;\n },\n get WorkerDataType() {\n return module.WorkerDataType;\n },\n dataPtrView: (attributeInfo) => {\n return module.dataPtrView(attributeInfo);\n },\n free: (...args) => {\n return module.ccall(\"free\", \"number\", [\"number\"], args);\n },\n malloc: (...args) => {\n return module.ccall(\"malloc\", \"number\", [\"number\"], args);\n },\n parseDropFile: (bufferPtr, bufferSize) => {\n return module.parseDropFile(bufferPtr, bufferSize);\n },\n getAttributeFromDropFile: (handle, attributeName, attributeInfo) => {\n return module.getAttributeFromDropFile(handle, attributeName, attributeInfo);\n },\n takeAttributeFromDropFile: (handle, attributeName, clientSideId) => {\n return module.takeAttributeFromDropFile(handle, attributeName, clientSideId);\n },\n flattenDropFile: (handle, outPtr, outSize) => {\n return module.flattenDropFile(handle, outPtr, outSize);\n },\n destroyDropFileHandle: (handle) => {\n return module.destroyDropFileHandle(handle);\n }\n};\ndefineActions({\n async cancel(requestIdLow, requestIdHigh) {\n const key = `${requestIdHigh}-${requestIdLow}`;\n const controller = controllers.get(key);\n if (controller) {\n controller.abort();\n controllers.delete(key);\n }\n return [{ cancelled: !!controller }];\n },\n async heapSnapshot(topN) {\n if (typeof module.TakeHeapSnapshot !== \"function\") return [{ snapshotJson: null }];\n return [{ snapshotJson: module.TakeHeapSnapshot(topN) }];\n },\n async heapTrackingControl(enabled) {\n if (typeof module.SetHeapTrackingEnabled !== \"function\") return [{ success: false }];\n module.SetHeapTrackingEnabled(enabled);\n return [{ success: true }];\n },\n async heapTrackingReset() {\n if (typeof module.ResetHeapTracking !== \"function\") return [{ success: false }];\n module.ResetHeapTracking();\n return [{ success: true }];\n },\n async decode(requestIdLow, requestIdHigh, descriptorBuffer, contextPtr, consecutiveIdsStart, noJwt) {\n const key = `${requestIdHigh}-${requestIdLow}`;\n const controller = new AbortController();\n controllers.set(key, controller);\n try {\n const { free, malloc, parseDropFile, getAttributeFromDropFile, takeAttributeFromDropFile, flattenDropFile, destroyDropFileHandle } = decoder;\n const descriptorSize = descriptorBuffer.byteLength;\n const descriptorPointer = malloc(descriptorSize);\n decoder.heapU8.set(new Uint8Array(descriptorBuffer), descriptorPointer);\n const descriptor = module.SceneRequestDescriptor.deserializeFromBinary(descriptorPointer, descriptorSize);\n free(descriptorPointer);\n let url = descriptor.getUrl();\n if (noJwt) {\n const url_class = new URL(url);\n url_class.searchParams.delete(\"jwt\");\n url = url_class.toString();\n }\n const body = descriptor.getBody() || null;\n const method = body ? \"POST\" : \"GET\";\n const headers = descriptor.getHeaders();\n descriptor.delete();\n const startTime = performance.now();\n const response = await fetch(url, {\n method,\n headers,\n body,\n signal: controller.signal\n });\n const responseHeadersJson = JSON.stringify({ \"x-cache\": response.headers.get(\"x-cache\") ?? \"\" });\n if (!response.ok) {\n const duration = performance.now() - startTime;\n return [{\n requestIdLow,\n requestIdHigh,\n resultBuffer: /* @__PURE__ */ new ArrayBuffer(0),\n success: false,\n parsed: false,\n error: `HTTP error! status: ${response.status}`,\n dataType: module.WorkerDataType.Raw.value,\n contextPtr,\n attributes: [],\n duration,\n ttfb: duration,\n httpStatus: response.status,\n responseHeadersJson\n }, { transfer: [] }];\n }\n const rtt = performance.now() - startTime;\n const responseBuffer = await response.arrayBuffer();\n const duration = performance.now() - startTime;\n const attributes = [];\n if (!url.split(/[?#]/, 1)[0].endsWith(\".drop\")) return [{\n requestIdLow,\n requestIdHigh,\n resultBuffer: responseBuffer,\n success: true,\n parsed: false,\n error: void 0,\n dataType: module.WorkerDataType.Raw.value,\n contextPtr,\n attributes,\n duration,\n ttfb: rtt,\n httpStatus: response.status,\n responseHeadersJson\n }, { transfer: [responseBuffer] }];\n const responseSize = responseBuffer.byteLength;\n const responsePointer = malloc(responseSize);\n decoder.heapU8.set(new Uint8Array(responseBuffer), responsePointer);\n const outputPointerPointer = malloc(4);\n const outputSizePointer = malloc(4);\n decoder.heapU32[outputPointerPointer / 4] = 0;\n decoder.heapU32[outputSizePointer / 4] = 0;\n let handle = 0;\n let outputPointer = 0;\n const attributeInfo = new decoder.AttributeInfo();\n try {\n handle = parseDropFile(responsePointer, responseSize);\n if (handle === 0) throw new Error(\"parseDropFile failed\");\n let index = consecutiveIdsStart;\n for (const [name, info] of Object.entries(sparkAttributeList)) {\n if (info.discard) takeAttributeFromDropFile(handle, name, index);\n else if (getAttributeFromDropFile(handle, name, attributeInfo) === decoder.AquaStatus.Success) {\n const wasmView = decoder.dataPtrView(attributeInfo);\n const splatData = sparkAttributeFromRaw(name, index, wasmView);\n if (takeAttributeFromDropFile(handle, name, index) === decoder.AquaStatus.Success) attributes.push(splatData);\n }\n index++;\n }\n if (flattenDropFile(handle, outputPointerPointer, outputSizePointer) !== decoder.AquaStatus.Success) throw new Error(\"flattenDropFile failed\");\n outputPointer = decoder.heapU32[outputPointerPointer / 4];\n const outputSize = decoder.heapU32[outputSizePointer / 4];\n if (outputPointer === 0) throw new Error(\"flattenDropFile gave nullptr\");\n const resultBuffer = decoder.heapU8.buffer.slice(outputPointer, outputPointer + outputSize);\n const transferList = attributes.map((attr) => attr.paddedData.buffer);\n return [{\n requestIdLow,\n requestIdHigh,\n resultBuffer,\n success: true,\n parsed: true,\n error: void 0,\n dataType: module.WorkerDataType.Drop.value,\n contextPtr,\n attributes,\n duration,\n ttfb: rtt,\n httpStatus: response.status,\n responseHeadersJson\n }, { transfer: [resultBuffer, ...transferList] }];\n } catch (error) {\n console.error(\"Exception when parsing dropfile\", error);\n const errorMessage = error instanceof Error ? error.stack ?? error.message : String(error);\n const resultBuffer = (/* @__PURE__ */ new Uint8Array()).buffer;\n return [{\n requestIdLow,\n requestIdHigh,\n resultBuffer,\n success: false,\n parsed: false,\n error: errorMessage,\n dataType: module.WorkerDataType.Drop.value,\n contextPtr,\n attributes: void 0,\n duration,\n ttfb: rtt,\n httpStatus: response.status,\n responseHeadersJson\n }, { transfer: [resultBuffer] }];\n } finally {\n destroyDropFileHandle(handle);\n free(responsePointer);\n free(outputPointerPointer);\n free(outputSizePointer);\n if (outputPointer !== 0) free(outputPointer);\n attributeInfo.delete();\n }\n } catch (error) {\n const errorMsg = error instanceof Error ? error.message : String(error);\n const isCancelled = error instanceof Error && error.name === \"AbortError\";\n return [{\n requestIdLow,\n requestIdHigh,\n resultBuffer: /* @__PURE__ */ new ArrayBuffer(0),\n success: false,\n parsed: false,\n error: isCancelled ? \"Cancelled\" : errorMsg,\n dataType: module.WorkerDataType.Raw.value,\n contextPtr,\n attributes: [],\n duration: 0,\n ttfb: 0,\n httpStatus: 0,\n responseHeadersJson: \"{}\"\n }, { transfer: [] }];\n } finally {\n controllers.delete(key);\n }\n }\n});\n//#endregion\n";
177
+ // packages/core/engine/threads/decoder/worker.ts?worker&inline
178
+ var jsContent = "// packages/core/engine/threads/utils.ts\nconst defineActions = (actions) => {\n self.postMessage(\"ready\");\n self.addEventListener(\"message\", async ({ data }) => {\n if (\"ready\" === data) return;\n const { id, action, args } = data;\n const [result, ...postMessageArgs] = await Reflect.apply(actions[action], void 0, [...args, id]);\n self.postMessage({\n id,\n result\n }, ...postMessageArgs);\n });\n return actions;\n};\n// packages/core/attribute.ts\nconst sparkMinSplats = 2048;\nconst NOT_PER_SPLAT = 0;\nconst clientAttributeList = {\n sparkPackedSplat: {\n elementsPerSplat: 4,\n discard: false\n },\n extendedPackedSplatLow: {\n elementsPerSplat: 4,\n discard: false\n },\n extendedPackedSplatHigh: {\n elementsPerSplat: 4,\n discard: false\n },\n packedSh1: {\n elementsPerSplat: 2,\n discard: false\n },\n packedSh2: {\n elementsPerSplat: 4,\n discard: false\n },\n packedSh3: {\n elementsPerSplat: 4,\n discard: false\n },\n sh1Extended: {\n elementsPerSplat: 4,\n discard: false\n },\n sh2Extended: {\n elementsPerSplat: 4,\n discard: false\n },\n sh3Extended_0: {\n elementsPerSplat: 4,\n discard: false\n },\n sh3Extended_1: {\n elementsPerSplat: 4,\n discard: false\n },\n sharkEllipsoid: {\n elementsPerSplat: 12,\n discard: false\n },\n sharkEllipsoidCompressed: {\n elementsPerSplat: 4,\n discard: false\n },\n sharkSphericalHarmonics: {\n elementsPerSplat: 16,\n discard: false\n },\n color: {\n elementsPerSplat: 2,\n discard: false\n },\n mod_depth: {\n elementsPerSplat: .5,\n discard: false\n },\n reflectanceDataV1: {\n elementsPerSplat: NOT_PER_SPLAT,\n discard: false,\n bytes: true\n },\n reflectanceDataV2: {\n elementsPerSplat: NOT_PER_SPLAT,\n discard: false,\n bytes: true\n },\n glassMeshGeometry: {\n elementsPerSplat: NOT_PER_SPLAT,\n discard: false,\n bytes: true\n },\n glassMeshPanels: {\n elementsPerSplat: NOT_PER_SPLAT,\n discard: false,\n bytes: true\n }\n};\nfunction roundUpToMultipleOf(a, multiple) {\n return Math.ceil(a / multiple) * multiple;\n}\nfunction sparkAttributeFromRaw(name, id, wasmView) {\n const attrib = clientAttributeList[name];\n if (attrib === void 0) throw new Error(\"attribute name\" + name + \" is unknown\");\n const originalSize = wasmView.length;\n const paddedSize = roundUpToMultipleOf(originalSize, attrib.elementsPerSplat * sparkMinSplats);\n const paddedData = new Uint32Array(paddedSize);\n paddedData.set(wasmView);\n return {\n paddedData,\n originalSizeInUints: originalSize,\n id\n };\n}\nfunction attributeFromRaw(id, wasmView) {\n const size = wasmView.length;\n const data = new Uint32Array(size);\n data.set(wasmView);\n return {\n paddedData: data,\n originalSizeInUints: size,\n id\n };\n}\n// packages/core/aqua-parser.js\nasync function qi(ze = {}) {\n var $r, l = ze, Ye = !1, Br = !0, Lr = \"./this.program\", zr = (e, r) => {\n throw r;\n }, Ge = import.meta.url, wr = \"\";\n function qe(e) {\n return l.locateFile ? l.locateFile(e, wr) : wr + e;\n }\n var Yr, Tr;\n if (Ye || Br) {\n try {\n wr = new URL(\".\", Ge).href;\n } catch {}\n Br && (Tr = (e) => {\n var r = new XMLHttpRequest();\n return r.open(\"GET\", e, !1), r.responseType = \"arraybuffer\", r.send(null), new Uint8Array(r.response);\n }), Yr = async (e) => {\n var r = await fetch(e, { credentials: \"same-origin\" });\n if (r.ok) return r.arrayBuffer();\n throw new Error(r.status + \" : \" + r.url);\n };\n }\n var Nr = console.log.bind(console), L = console.error.bind(console), G, Q = !1, rr, Gr, qr, er, S, E, U, z, T, w, tr, nr, V, Xr, Jr = !1;\n function Kr() {\n var e = er.buffer;\n l.HEAP8 = S = new Int8Array(e), U = new Int16Array(e), l.HEAPU8 = E = new Uint8Array(e), z = new Uint16Array(e), l.HEAP32 = T = new Int32Array(e), l.HEAPU32 = w = new Uint32Array(e), l.HEAPF32 = tr = new Float32Array(e), l.HEAPF64 = nr = new Float64Array(e), V = new BigInt64Array(e), Xr = new BigUint64Array(e);\n }\n function Xe() {\n if (l.preRun) for (typeof l.preRun == \"function\" && (l.preRun = [l.preRun]); l.preRun.length;) st(l.preRun.shift());\n Qr(ee);\n }\n function Je() {\n Jr = !0, B.__wasm_call_ctors();\n }\n function Ke() {\n if (l.postRun) for (typeof l.postRun == \"function\" && (l.postRun = [l.postRun]); l.postRun.length;) at(l.postRun.shift());\n Qr(re);\n }\n function Y(e) {\n l.onAbort?.(e), e = \"Aborted(\" + e + \")\", L(e), Q = !0, e += \". Build with -sASSERTIONS for more info.\";\n var r = new WebAssembly.RuntimeError(e);\n throw qr?.(r), r;\n }\n var Fr;\n function Ze() {\n return l.locateFile ? qe(\"aqua-parser.wasm\") : \"\";\n }\n function Qe(e) {\n if (e == Fr && G) return new Uint8Array(G);\n if (Tr) return Tr(e);\n throw \"both async and sync fetching of the wasm failed\";\n }\n async function rt(e) {\n if (!G) try {\n var r = await Yr(e);\n return new Uint8Array(r);\n } catch {}\n return Qe(e);\n }\n async function et(e, r) {\n try {\n var t = await rt(e);\n return await WebAssembly.instantiate(t, r);\n } catch (i) {\n L(`failed to asynchronously prepare wasm: ${i}`), Y(i);\n }\n }\n async function tt(e, r, t) {\n if (!e) try {\n var n = fetch(r, { credentials: \"same-origin\" });\n return await WebAssembly.instantiateStreaming(n, t);\n } catch (a) {\n L(`wasm streaming compile failed: ${a}`), L(\"falling back to ArrayBuffer instantiation\");\n }\n return et(r, t);\n }\n function nt() {\n return {\n env: He,\n wasi_snapshot_preview1: He\n };\n }\n async function it() {\n function e(a, s) {\n return B = a.exports, er = B.memory, Kr(), fe = B.__indirect_function_table, fi(B), B;\n }\n function r(a) {\n return e(a.instance);\n }\n var t = nt();\n if (l.instantiateWasm) return new Promise((a, s) => {\n l.instantiateWasm(t, (o, u) => {\n a(e(o, u));\n });\n });\n Fr ??= Ze();\n return r(await tt(G, Fr, t));\n }\n class Zr {\n name = \"ExitStatus\";\n constructor(r) {\n this.message = `Program terminated with exit(${r})`, this.status = r;\n }\n }\n var Qr = (e) => {\n for (; e.length > 0;) e.shift()(l);\n }, re = [], at = (e) => re.push(e), ee = [], st = (e) => ee.push(e);\n var Cr = !0;\n var g = (e) => We(e), y = () => Oe(), ir = [], ar = 0, ot = (e) => {\n var r = new Pr(e);\n return r.get_caught() || (r.set_caught(!0), ar--), r.set_rethrown(!1), ir.push(r), Ve(e), Ie(e);\n }, x = 0, ut = () => {\n h(0, 0);\n var e = ir.pop();\n Ue(e.excPtr), x = 0;\n };\n class Pr {\n constructor(r) {\n this.excPtr = r, this.ptr = r - 24;\n }\n set_type(r) {\n w[this.ptr + 4 >> 2] = r;\n }\n get_type() {\n return w[this.ptr + 4 >> 2];\n }\n set_destructor(r) {\n w[this.ptr + 8 >> 2] = r;\n }\n get_destructor() {\n return w[this.ptr + 8 >> 2];\n }\n set_caught(r) {\n r = r ? 1 : 0, S[this.ptr + 12] = r;\n }\n get_caught() {\n return S[this.ptr + 12] != 0;\n }\n set_rethrown(r) {\n r = r ? 1 : 0, S[this.ptr + 13] = r;\n }\n get_rethrown() {\n return S[this.ptr + 13] != 0;\n }\n init(r, t) {\n this.set_adjusted_ptr(0), this.set_type(r), this.set_destructor(t);\n }\n set_adjusted_ptr(r) {\n w[this.ptr + 16 >> 2] = r;\n }\n get_adjusted_ptr() {\n return w[this.ptr + 16 >> 2];\n }\n }\n var sr = (e) => De(e), kr = (e) => {\n var r = x;\n if (!r) return sr(0), 0;\n var t = new Pr(r);\n t.set_adjusted_ptr(r);\n var n = t.get_type();\n if (!n) return sr(0), r;\n for (var i of e) {\n if (i === 0 || i === n) break;\n var a = t.ptr + 16;\n if (je(i, n, a)) return sr(i), r;\n }\n return sr(n), r;\n }, ct = () => kr([]), ft = (e) => kr([e]), lt = (e, r) => kr([e, r]), vt = () => {\n var e = ir.pop();\n e || Y(\"no exception to throw\");\n var r = e.excPtr;\n throw e.get_rethrown() || (ir.push(e), e.set_rethrown(!0), e.set_caught(!1), ar++), x = r, x;\n }, _t = (e, r, t) => {\n throw new Pr(e).init(r, t), x = e, ar++, x;\n }, dt = () => ar, pt = (e) => {\n throw x || (x = e), x;\n }, ht = () => Y(\"\"), C = (e) => {\n for (var r = \"\";;) {\n var t = E[e++];\n if (!t) return r;\n r += String.fromCharCode(t);\n }\n }, N = {}, j = {}, or = {}, q = class extends Error {\n constructor(r) {\n super(r), this.name = \"BindingError\";\n }\n }, m = (e) => {\n throw new q(e);\n };\n function gt(e, r, t = {}) {\n var n = r.name;\n if (e || m(`type \"${n}\" must have a positive integer typeid pointer`), j.hasOwnProperty(e)) {\n if (t.ignoreDuplicateRegistrations) return;\n m(`Cannot register type '${n}' twice`);\n }\n if (j[e] = r, delete or[e], N.hasOwnProperty(e)) {\n var i = N[e];\n delete N[e], i.forEach((a) => a());\n }\n }\n function R(e, r, t = {}) {\n return gt(e, r, t);\n }\n var te = (e, r, t) => {\n switch (r) {\n case 1: return t ? (n) => S[n] : (n) => E[n];\n case 2: return t ? (n) => U[n >> 1] : (n) => z[n >> 1];\n case 4: return t ? (n) => T[n >> 2] : (n) => w[n >> 2];\n case 8: return t ? (n) => V[n >> 3] : (n) => Xr[n >> 3];\n default: throw new TypeError(`invalid integer width (${r}): ${e}`);\n }\n }, yt = (e, r, t, n, i) => {\n r = C(r);\n const a = n === 0n;\n let s = (o) => o;\n if (a) {\n const o = t * 8;\n s = (u) => BigInt.asUintN(o, u), i = s(i);\n }\n R(e, {\n name: r,\n fromWireType: s,\n toWireType: (o, u) => (typeof u == \"number\" && (u = BigInt(u)), u),\n readValueFromPointer: te(r, t, !a),\n destructorFunction: null\n });\n }, mt = (e, r, t, n) => {\n r = C(r), R(e, {\n name: r,\n fromWireType: function(i) {\n return !!i;\n },\n toWireType: function(i, a) {\n return a ? t : n;\n },\n readValueFromPointer: function(i) {\n return this.fromWireType(E[i]);\n },\n destructorFunction: null\n });\n }, bt = (e) => ({\n count: e.count,\n deleteScheduled: e.deleteScheduled,\n preservePointerOnDelete: e.preservePointerOnDelete,\n ptr: e.ptr,\n ptrType: e.ptrType,\n smartPtr: e.smartPtr,\n smartPtrType: e.smartPtrType\n }), Sr = (e) => {\n function r(t) {\n return t.$$.ptrType.registeredClass.name;\n }\n m(r(e) + \" instance already deleted\");\n }, Ar = !1, ne = (e) => {}, $t = (e) => {\n e.smartPtr ? e.smartPtrType.rawDestructor(e.smartPtr) : e.ptrType.registeredClass.rawDestructor(e.ptr);\n }, ie = (e) => {\n e.count.value -= 1;\n e.count.value === 0 && $t(e);\n }, X = (e) => typeof FinalizationRegistry > \"u\" ? (X = (r) => r, e) : (Ar = new FinalizationRegistry((r) => {\n ie(r.$$);\n }), X = (r) => {\n var t = r.$$;\n if (!!t.smartPtr) {\n var i = { $$: t };\n Ar.register(r, i, r);\n }\n return r;\n }, ne = (r) => Ar.unregister(r), X(e)), ur = [], wt = () => {\n for (; ur.length;) {\n var e = ur.pop();\n e.$$.deleteScheduled = !1, e.delete();\n }\n }, ae, Tt = () => {\n let e = cr.prototype;\n Object.assign(e, {\n isAliasOf(t) {\n if (!(this instanceof cr) || !(t instanceof cr)) return !1;\n var n = this.$$.ptrType.registeredClass, i = this.$$.ptr;\n t.$$ = t.$$;\n for (var a = t.$$.ptrType.registeredClass, s = t.$$.ptr; n.baseClass;) i = n.upcast(i), n = n.baseClass;\n for (; a.baseClass;) s = a.upcast(s), a = a.baseClass;\n return n === a && i === s;\n },\n clone() {\n if (this.$$.ptr || Sr(this), this.$$.preservePointerOnDelete) return this.$$.count.value += 1, this;\n var t = X(Object.create(Object.getPrototypeOf(this), { $$: { value: bt(this.$$) } }));\n return t.$$.count.value += 1, t.$$.deleteScheduled = !1, t;\n },\n delete() {\n this.$$.ptr || Sr(this), this.$$.deleteScheduled && !this.$$.preservePointerOnDelete && m(\"Object already scheduled for deletion\"), ne(this), ie(this.$$), this.$$.preservePointerOnDelete || (this.$$.smartPtr = void 0, this.$$.ptr = void 0);\n },\n isDeleted() {\n return !this.$$.ptr;\n },\n deleteLater() {\n return this.$$.ptr || Sr(this), this.$$.deleteScheduled && !this.$$.preservePointerOnDelete && m(\"Object already scheduled for deletion\"), ur.push(this), ur.length === 1 && ae && ae(wt), this.$$.deleteScheduled = !0, this;\n }\n });\n const r = Symbol.dispose;\n r && (e[r] = e.delete);\n };\n function cr() {}\n var fr = (e, r) => Object.defineProperty(r, \"name\", { value: e }), se = {}, Er = (e, r, t) => {\n if (e[r].overloadTable === void 0) {\n var n = e[r];\n e[r] = function(...i) {\n return e[r].overloadTable.hasOwnProperty(i.length) || m(`Function '${t}' called with an invalid number of arguments (${i.length}) - expects one of (${e[r].overloadTable})!`), e[r].overloadTable[i.length].apply(this, i);\n }, e[r].overloadTable = [], e[r].overloadTable[n.argCount] = n;\n }\n }, Rr = (e, r, t) => {\n l.hasOwnProperty(e) ? ((t === void 0 || l[e].overloadTable !== void 0 && l[e].overloadTable[t] !== void 0) && m(`Cannot register public name '${e}' twice`), Er(l, e, e), l[e].overloadTable.hasOwnProperty(t) && m(`Cannot register multiple overloads of a function with the same number of arguments (${t})!`), l[e].overloadTable[t] = r) : (l[e] = r, l[e].argCount = t);\n }, Ft = 48, Ct = 57, Pt = (e) => {\n e = e.replace(/[^a-zA-Z0-9_]/g, \"$\");\n var r = e.charCodeAt(0);\n return r >= Ft && r <= Ct ? `_${e}` : e;\n };\n function kt(e, r, t, n, i, a, s, o) {\n this.name = e, this.constructor = r, this.instancePrototype = t, this.rawDestructor = n, this.baseClass = i, this.getActualType = a, this.upcast = s, this.downcast = o, this.pureVirtualFunctions = [];\n }\n var lr = (e, r, t) => {\n for (; r !== t;) r.upcast || m(`Expected null or instance of ${t.name}, got an instance of ${r.name}`), e = r.upcast(e), r = r.baseClass;\n return e;\n }, Dr = (e) => {\n if (e === null) return \"null\";\n var r = typeof e;\n return r === \"object\" || r === \"array\" || r === \"function\" ? e.toString() : \"\" + e;\n };\n function St(e, r) {\n if (r === null) return this.isReference && m(`null is not a valid ${this.name}`), 0;\n r.$$ || m(`Cannot pass \"${Dr(r)}\" as a ${this.name}`), r.$$.ptr || m(`Cannot pass deleted object as a pointer of type ${this.name}`);\n var t = r.$$.ptrType.registeredClass;\n return lr(r.$$.ptr, t, this.registeredClass);\n }\n function At(e, r) {\n var t;\n if (r === null) return this.isReference && m(`null is not a valid ${this.name}`), this.isSmartPointer ? (t = this.rawConstructor(), e !== null && e.push(this.rawDestructor, t), t) : 0;\n (!r || !r.$$) && m(`Cannot pass \"${Dr(r)}\" as a ${this.name}`), r.$$.ptr || m(`Cannot pass deleted object as a pointer of type ${this.name}`), !this.isConst && r.$$.ptrType.isConst && m(`Cannot convert argument of type ${r.$$.smartPtrType ? r.$$.smartPtrType.name : r.$$.ptrType.name} to parameter type ${this.name}`);\n var n = r.$$.ptrType.registeredClass;\n if (t = lr(r.$$.ptr, n, this.registeredClass), this.isSmartPointer) switch (r.$$.smartPtr === void 0 && m(\"Passing raw pointer to smart pointer is illegal\"), this.sharingPolicy) {\n case 0:\n r.$$.smartPtrType === this ? t = r.$$.smartPtr : m(`Cannot convert argument of type ${r.$$.smartPtrType ? r.$$.smartPtrType.name : r.$$.ptrType.name} to parameter type ${this.name}`);\n break;\n case 1:\n t = r.$$.smartPtr;\n break;\n case 2:\n if (r.$$.smartPtrType === this) t = r.$$.smartPtr;\n else {\n var i = r.clone();\n t = this.rawShare(t, k.toHandle(() => i.delete())), e !== null && e.push(this.rawDestructor, t);\n }\n break;\n default: m(\"Unsupporting sharing policy\");\n }\n return t;\n }\n function Et(e, r) {\n if (r === null) return this.isReference && m(`null is not a valid ${this.name}`), 0;\n r.$$ || m(`Cannot pass \"${Dr(r)}\" as a ${this.name}`), r.$$.ptr || m(`Cannot pass deleted object as a pointer of type ${this.name}`), r.$$.ptrType.isConst && m(`Cannot convert argument of type ${r.$$.ptrType.name} to parameter type ${this.name}`);\n var t = r.$$.ptrType.registeredClass;\n return lr(r.$$.ptr, t, this.registeredClass);\n }\n function vr(e) {\n return this.fromWireType(w[e >> 2]);\n }\n var oe = (e, r, t) => {\n if (r === t) return e;\n if (t.baseClass === void 0) return null;\n var n = oe(e, r, t.baseClass);\n return n === null ? null : t.downcast(n);\n }, Rt = {}, Dt = (e, r) => {\n for (r === void 0 && m(\"ptr should not be undefined\"); e.baseClass;) r = e.upcast(r), e = e.baseClass;\n return r;\n }, Wt = (e, r) => (r = Dt(e, r), Rt[r]), xt = class extends Error {\n constructor(r) {\n super(r), this.name = \"InternalError\";\n }\n }, _r = (e) => {\n throw new xt(e);\n }, dr = (e, r) => {\n (!r.ptrType || !r.ptr) && _r(\"makeClassHandle requires ptr and ptrType\");\n return !!r.smartPtrType !== !!r.smartPtr && _r(\"Both smartPtrType and smartPtr must be specified\"), r.count = { value: 1 }, X(Object.create(e, { $$: {\n value: r,\n writable: !0\n } }));\n };\n function Ot(e) {\n var r = this.getPointee(e);\n if (!r) return this.destructor(e), null;\n var t = Wt(this.registeredClass, r);\n if (t !== void 0) {\n if (t.$$.count.value === 0) return t.$$.ptr = r, t.$$.smartPtr = e, t.clone();\n var n = t.clone();\n return this.destructor(e), n;\n }\n function i() {\n return this.isSmartPointer ? dr(this.registeredClass.instancePrototype, {\n ptrType: this.pointeeType,\n ptr: r,\n smartPtrType: this,\n smartPtr: e\n }) : dr(this.registeredClass.instancePrototype, {\n ptrType: this,\n ptr: e\n });\n }\n var s = se[this.registeredClass.getActualType(r)];\n if (!s) return i.call(this);\n var o;\n this.isConst ? o = s.constPointerType : o = s.pointerType;\n var u = oe(r, this.registeredClass, o.registeredClass);\n return u === null ? i.call(this) : this.isSmartPointer ? dr(o.registeredClass.instancePrototype, {\n ptrType: o,\n ptr: u,\n smartPtrType: this,\n smartPtr: e\n }) : dr(o.registeredClass.instancePrototype, {\n ptrType: o,\n ptr: u\n });\n }\n var Ut = () => {\n Object.assign(pr.prototype, {\n getPointee(e) {\n return this.rawGetPointee && (e = this.rawGetPointee(e)), e;\n },\n destructor(e) {\n this.rawDestructor?.(e);\n },\n readValueFromPointer: vr,\n fromWireType: Ot\n });\n };\n function pr(e, r, t, n, i, a, s, o, u, c, f) {\n this.name = e, this.registeredClass = r, this.isReference = t, this.isConst = n, this.isSmartPointer = i, this.pointeeType = a, this.sharingPolicy = s, this.rawGetPointee = o, this.rawConstructor = u, this.rawShare = c, this.rawDestructor = f, !i && r.baseClass === void 0 ? n ? (this.toWireType = St, this.destructorFunction = null) : (this.toWireType = Et, this.destructorFunction = null) : this.toWireType = At;\n }\n var ue = (e, r, t) => {\n l.hasOwnProperty(e) || _r(\"Replacing nonexistent public symbol\"), l[e].overloadTable !== void 0 && t !== void 0 ? l[e].overloadTable[t] = r : (l[e] = r, l[e].argCount = t);\n }, ce = [], fe, b = (e) => {\n var r = ce[e];\n return r || (ce[e] = r = fe.get(e)), r;\n }, D = (e, r, t = !1) => {\n e = C(e);\n function n() {\n return b(r);\n }\n var i = n();\n return typeof i != \"function\" && m(`unknown function pointer with signature ${e}: ${r}`), i;\n };\n class Vt extends Error {}\n var le = (e) => {\n var r = Ee(e), t = C(r);\n return O(r), t;\n }, I = (e, r) => {\n var t = [], n = {};\n function i(a) {\n if (!n[a] && !j[a]) {\n if (or[a]) {\n or[a].forEach(i);\n return;\n }\n t.push(a), n[a] = !0;\n }\n }\n throw r.forEach(i), new Vt(`${e}: ` + t.map(le).join([\", \"]));\n }, W = (e, r, t) => {\n e.forEach((o) => or[o] = r);\n function n(o) {\n var u = t(o);\n u.length !== e.length && _r(\"Mismatched type converter count\");\n for (var c = 0; c < e.length; ++c) R(e[c], u[c]);\n }\n var i = new Array(r.length), a = [], s = 0;\n r.forEach((o, u) => {\n j.hasOwnProperty(o) ? i[u] = j[o] : (a.push(o), N.hasOwnProperty(o) || (N[o] = []), N[o].push(() => {\n i[u] = j[o], ++s, s === a.length && n(i);\n }));\n }), a.length === 0 && n(i);\n }, jt = (e, r, t, n, i, a, s, o, u, c, f, _, d) => {\n f = C(f), a = D(i, a), o &&= D(s, o), c &&= D(u, c), d = D(_, d);\n var p = Pt(f);\n Rr(p, function() {\n I(`Cannot construct ${f} due to unbound types`, [n]);\n }), W([\n e,\n r,\n t\n ], n ? [n] : [], (v) => {\n v = v[0];\n var $, P;\n n ? ($ = v.registeredClass, P = $.instancePrototype) : P = cr.prototype;\n var F = fr(f, function(...Mr) {\n if (Object.getPrototypeOf(this) !== Z) throw new q(`Use 'new' to construct ${f}`);\n if (A.constructor_body === void 0) throw new q(`${f} has no accessible constructor`);\n var Le = A.constructor_body[Mr.length];\n if (Le === void 0) throw new q(`Tried to invoke ctor of ${f} with invalid number of parameters (${Mr.length}) - expected (${Object.keys(A.constructor_body).toString()}) parameters instead!`);\n return Le.apply(this, Mr);\n }), Z = Object.create(P, { constructor: { value: F } });\n F.prototype = Z;\n var A = new kt(f, F, Z, d, $, a, o, c);\n A.baseClass && (A.baseClass.__derivedClasses ??= [], A.baseClass.__derivedClasses.push(A));\n var Gi = new pr(f, A, !0, !1, !1), Me = new pr(f + \"*\", A, !1, !1, !1), Be = new pr(f + \" const*\", A, !1, !0, !1);\n return se[e] = {\n pointerType: Me,\n constPointerType: Be\n }, ue(p, F), [\n Gi,\n Me,\n Be\n ];\n });\n }, Wr = (e) => {\n for (; e.length;) {\n var r = e.pop();\n e.pop()(r);\n }\n };\n function ve(e) {\n for (var r = 1; r < e.length; ++r) if (e[r] !== null && e[r].destructorFunction === void 0) return !0;\n return !1;\n }\n function It(e, r, t, n) {\n var i = ve(e), a = e.length - 2, s = [], o = [\"fn\"];\n r && o.push(\"thisWired\");\n for (var u = 0; u < a; ++u) s.push(`arg${u}`), o.push(`arg${u}Wired`);\n s = s.join(\",\"), o = o.join(\",\");\n var c = `return function (${s}) {\n`;\n i && (c += `var destructors = [];\n`);\n var f = i ? \"destructors\" : \"null\", _ = [\n \"humanName\",\n \"throwBindingError\",\n \"invoker\",\n \"fn\",\n \"runDestructors\",\n \"fromRetWire\",\n \"toClassParamWire\"\n ];\n r && (c += `var thisWired = toClassParamWire(${f}, this);\n`);\n for (var u = 0; u < a; ++u) {\n var d = `toArg${u}Wire`;\n c += `var arg${u}Wired = ${d}(${f}, arg${u});\n`, _.push(d);\n }\n c += (t || n ? \"var rv = \" : \"\") + `invoker(${o});\n`;\n if (i) c += `runDestructors(destructors);\n`;\n else for (var u = r ? 1 : 2; u < e.length; ++u) {\n var v = u === 1 ? \"thisWired\" : \"arg\" + (u - 2) + \"Wired\";\n e[u].destructorFunction !== null && (c += `${v}_dtor(${v});\n`, _.push(`${v}_dtor`));\n }\n return t && (c += `var ret = fromRetWire(rv);\nreturn ret;\n`), c += `}\n`, new Function(_, c);\n }\n function hr(e, r, t, n, i, a) {\n var s = r.length;\n s < 2 && m(\"argTypes array size mismatch! Must at least get return value and 'this' types!\");\n for (var o = r[1] !== null && t !== null, u = ve(r), c = !r[0].isVoid, f = s - 2, _ = r[0], d = r[1], p = [\n e,\n m,\n n,\n i,\n Wr,\n _.fromWireType.bind(_),\n d?.toWireType.bind(d)\n ], v = 2; v < s; ++v) {\n var $ = r[v];\n p.push($.toWireType.bind($));\n }\n if (!u) for (var v = o ? 1 : 2; v < r.length; ++v) r[v].destructorFunction !== null && p.push(r[v].destructorFunction);\n return fr(e, It(r, o, c, a)(...p));\n }\n var gr = (e, r) => {\n for (var t = [], n = 0; n < e; n++) t.push(w[r + n * 4 >> 2]);\n return t;\n }, xr = (e) => {\n e = e.trim();\n const r = e.indexOf(\"(\");\n return r === -1 ? e : e.slice(0, r);\n }, Ht = (e, r, t, n, i, a, s, o, u) => {\n var c = gr(t, n);\n r = C(r), r = xr(r), a = D(i, a, o), W([], [e], (f) => {\n f = f[0];\n var _ = `${f.name}.${r}`;\n function d() {\n I(`Cannot call ${_} due to unbound types`, c);\n }\n r.startsWith(\"@@\") && (r = Symbol[r.substring(2)]);\n var p = f.registeredClass.constructor;\n return p[r] === void 0 ? (d.argCount = t - 1, p[r] = d) : (Er(p, r, _), p[r].overloadTable[t - 1] = d), W([], c, (v) => {\n var P = hr(_, [v[0], null].concat(v.slice(1)), null, a, s, o);\n if (p[r].overloadTable === void 0 ? (P.argCount = t - 1, p[r] = P) : p[r].overloadTable[t - 1] = P, f.registeredClass.__derivedClasses) for (const F of f.registeredClass.__derivedClasses) F.constructor.hasOwnProperty(r) || (F.constructor[r] = P);\n return [];\n }), [];\n });\n }, Mt = (e, r, t, n, i, a) => {\n var s = gr(r, t);\n i = D(n, i);\n W([], [e], (c) => {\n c = c[0];\n var f = `constructor ${c.name}`;\n if (c.registeredClass.constructor_body === void 0 && (c.registeredClass.constructor_body = []), c.registeredClass.constructor_body[r - 1] !== void 0) throw new q(`Cannot register multiple constructors with identical number of parameters (${r - 1}) for class '${c.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);\n return c.registeredClass.constructor_body[r - 1] = () => {\n I(`Cannot construct ${c.name} due to unbound types`, s);\n }, W([], s, (_) => (_.splice(1, 0, null), c.registeredClass.constructor_body[r - 1] = hr(f, _, null, i, a), [])), [];\n });\n }, Bt = (e, r, t, n, i, a, s, o, u, c) => {\n var f = gr(t, n);\n r = C(r), r = xr(r), a = D(i, a, u), W([], [e], (_) => {\n _ = _[0];\n var d = `${_.name}.${r}`;\n r.startsWith(\"@@\") && (r = Symbol[r.substring(2)]), o && _.registeredClass.pureVirtualFunctions.push(r);\n function p() {\n I(`Cannot call ${d} due to unbound types`, f);\n }\n var v = _.registeredClass.instancePrototype, $ = v[r];\n return $ === void 0 || $.overloadTable === void 0 && $.className !== _.name && $.argCount === t - 2 ? (p.argCount = t - 2, p.className = _.name, v[r] = p) : (Er(v, r, d), v[r].overloadTable[t - 2] = p), W([], f, (P) => {\n var F = hr(d, P, _, a, s, u);\n return v[r].overloadTable === void 0 ? (F.argCount = t - 2, v[r] = F) : v[r].overloadTable[t - 2] = F, [];\n }), [];\n });\n }, _e = (e, r, t) => (e instanceof Object || m(`${t} with invalid \"this\": ${e}`), e instanceof r.registeredClass.constructor || m(`${t} incompatible with \"this\" of type ${e.constructor.name}`), e.$$.ptr || m(`cannot call emscripten binding method ${t} on deleted object`), lr(e.$$.ptr, e.$$.ptrType.registeredClass, r.registeredClass)), Lt = (e, r, t, n, i, a, s, o, u, c) => {\n r = C(r), i = D(n, i), W([], [e], (f) => {\n f = f[0];\n var _ = `${f.name}.${r}`, d = {\n get() {\n I(`Cannot access ${_} due to unbound types`, [t, s]);\n },\n enumerable: !0,\n configurable: !0\n };\n return u ? d.set = () => I(`Cannot access ${_} due to unbound types`, [t, s]) : d.set = (p) => m(_ + \" is a read-only property\"), Object.defineProperty(f.registeredClass.instancePrototype, r, d), W([], u ? [t, s] : [t], (p) => {\n var v = p[0], $ = {\n get() {\n var F = _e(this, f, _ + \" getter\");\n return v.fromWireType(i(a, F));\n },\n enumerable: !0\n };\n if (u) {\n u = D(o, u);\n var P = p[1];\n $.set = function(F) {\n var Z = _e(this, f, _ + \" setter\"), A = [];\n u(c, Z, P.toWireType(A, F)), Wr(A);\n };\n }\n return Object.defineProperty(f.registeredClass.instancePrototype, r, $), [];\n }), [];\n });\n }, de = [], H = [\n 0,\n 1,\n ,\n 1,\n null,\n 1,\n !0,\n 1,\n !1,\n 1\n ], Or = (e) => {\n e > 9 && --H[e + 1] === 0 && (H[e] = void 0, de.push(e));\n }, k = {\n toValue: (e) => (e || m(`Cannot use deleted val. handle = ${e}`), H[e]),\n toHandle: (e) => {\n switch (e) {\n case void 0: return 2;\n case null: return 4;\n case !0: return 6;\n case !1: return 8;\n default: {\n const r = de.pop() || H.length;\n return H[r] = e, H[r + 1] = 1, r;\n }\n }\n }\n }, zt = {\n name: \"emscripten::val\",\n fromWireType: (e) => {\n var r = k.toValue(e);\n return Or(e), r;\n },\n toWireType: (e, r) => k.toHandle(r),\n readValueFromPointer: vr,\n destructorFunction: null\n }, Yt = (e) => R(e, zt), Nt = (e, r, t) => {\n switch (r) {\n case 1: return t ? function(n) {\n return this.fromWireType(S[n]);\n } : function(n) {\n return this.fromWireType(E[n]);\n };\n case 2: return t ? function(n) {\n return this.fromWireType(U[n >> 1]);\n } : function(n) {\n return this.fromWireType(z[n >> 1]);\n };\n case 4: return t ? function(n) {\n return this.fromWireType(T[n >> 2]);\n } : function(n) {\n return this.fromWireType(w[n >> 2]);\n };\n default: throw new TypeError(`invalid integer width (${r}): ${e}`);\n }\n }, Gt = (e, r, t, n) => {\n r = C(r);\n function i() {}\n i.values = {}, R(e, {\n name: r,\n constructor: i,\n fromWireType: function(a) {\n return this.constructor.values[a];\n },\n toWireType: (a, s) => s.value,\n readValueFromPointer: Nt(r, t, n),\n destructorFunction: null\n }), Rr(r, i);\n }, pe = (e, r) => {\n var t = j[e];\n return t === void 0 && m(`${r} has unknown type ${le(e)}`), t;\n }, qt = (e, r, t) => {\n var n = pe(e, \"enum\");\n r = C(r);\n var i = n.constructor, a = Object.create(n.constructor.prototype, {\n value: { value: t },\n constructor: { value: fr(`${n.name}_${r}`, function() {}) }\n });\n i.values[t] = a, i[r] = a;\n }, Xt = (e, r) => {\n switch (r) {\n case 4: return function(t) {\n return this.fromWireType(tr[t >> 2]);\n };\n case 8: return function(t) {\n return this.fromWireType(nr[t >> 3]);\n };\n default: throw new TypeError(`invalid float width (${r}): ${e}`);\n }\n }, Jt = (e, r, t) => {\n r = C(r), R(e, {\n name: r,\n fromWireType: (n) => n,\n toWireType: (n, i) => i,\n readValueFromPointer: Xt(r, t),\n destructorFunction: null\n });\n }, Kt = (e, r, t, n, i, a, s, o) => {\n var u = gr(r, t);\n e = C(e), e = xr(e), i = D(n, i, s), Rr(e, function() {\n I(`Cannot call ${e} due to unbound types`, u);\n }, r - 1), W([], u, (c) => {\n var f = [c[0], null].concat(c.slice(1));\n return ue(e, hr(e, f, null, i, a, s), r - 1), [];\n });\n }, Zt = (e, r, t, n, i) => {\n r = C(r);\n const a = n === 0;\n let s = (u) => u;\n if (a) {\n var o = 32 - 8 * t;\n s = (u) => u << o >>> o, i = s(i);\n }\n R(e, {\n name: r,\n fromWireType: s,\n toWireType: (u, c) => c,\n readValueFromPointer: te(r, t, n !== 0),\n destructorFunction: null\n });\n }, Qt = (e, r, t) => {\n var i = [\n Int8Array,\n Uint8Array,\n Int16Array,\n Uint16Array,\n Int32Array,\n Uint32Array,\n Float32Array,\n Float64Array,\n BigInt64Array,\n BigUint64Array\n ][r];\n function a(s) {\n var o = w[s >> 2], u = w[s + 4 >> 2];\n return new i(S.buffer, u, o);\n }\n t = C(t), R(e, {\n name: t,\n fromWireType: a,\n readValueFromPointer: a\n }, { ignoreDuplicateRegistrations: !0 });\n }, rn = (e, r, t, n) => {\n if (!(n > 0)) return 0;\n for (var i = t, a = t + n - 1, s = 0; s < e.length; ++s) {\n var o = e.codePointAt(s);\n if (o <= 127) {\n if (t >= a) break;\n r[t++] = o;\n } else if (o <= 2047) {\n if (t + 1 >= a) break;\n r[t++] = 192 | o >> 6, r[t++] = 128 | o & 63;\n } else if (o <= 65535) {\n if (t + 2 >= a) break;\n r[t++] = 224 | o >> 12, r[t++] = 128 | o >> 6 & 63, r[t++] = 128 | o & 63;\n } else {\n if (t + 3 >= a) break;\n r[t++] = 240 | o >> 18, r[t++] = 128 | o >> 12 & 63, r[t++] = 128 | o >> 6 & 63, r[t++] = 128 | o & 63, s++;\n }\n }\n return r[t] = 0, t - i;\n }, M = (e, r, t) => rn(e, E, r, t), Ur = (e) => {\n for (var r = 0, t = 0; t < e.length; ++t) {\n var n = e.charCodeAt(t);\n n <= 127 ? r++ : n <= 2047 ? r += 2 : n >= 55296 && n <= 57343 ? (r += 4, ++t) : r += 3;\n }\n return r;\n }, he = typeof TextDecoder < \"u\" ? new TextDecoder() : void 0, ge = (e, r, t, n) => {\n var i = r + t;\n if (n) return i;\n for (; e[r] && !(r >= i);) ++r;\n return r;\n }, ye = (e, r = 0, t, n) => {\n var i = ge(e, r, t, n);\n if (i - r > 16 && e.buffer && he) return he.decode(e.subarray(r, i));\n for (var a = \"\"; r < i;) {\n var s = e[r++];\n if (!(s & 128)) {\n a += String.fromCharCode(s);\n continue;\n }\n var o = e[r++] & 63;\n if ((s & 224) == 192) {\n a += String.fromCharCode((s & 31) << 6 | o);\n continue;\n }\n var u = e[r++] & 63;\n if ((s & 240) == 224 ? s = (s & 15) << 12 | o << 6 | u : s = (s & 7) << 18 | o << 12 | u << 6 | e[r++] & 63, s < 65536) a += String.fromCharCode(s);\n else {\n var c = s - 65536;\n a += String.fromCharCode(55296 | c >> 10, 56320 | c & 1023);\n }\n }\n return a;\n }, yr = (e, r, t) => e ? ye(E, e, r, t) : \"\", en = (e, r) => {\n r = C(r);\n var t = !0;\n R(e, {\n name: r,\n fromWireType(n) {\n var i = w[n >> 2], a = n + 4, s;\n if (t) s = yr(a, i, !0);\n else {\n s = \"\";\n for (var o = 0; o < i; ++o) s += String.fromCharCode(E[a + o]);\n }\n return O(n), s;\n },\n toWireType(n, i) {\n i instanceof ArrayBuffer && (i = new Uint8Array(i));\n var a, s = typeof i == \"string\";\n s || ArrayBuffer.isView(i) && i.BYTES_PER_ELEMENT == 1 || m(\"Cannot pass non-string to std::string\"), t && s ? a = Ur(i) : a = i.length;\n var o = Hr(4 + a + 1), u = o + 4;\n if (w[o >> 2] = a, s) if (t) M(i, u, a + 1);\n else for (var c = 0; c < a; ++c) {\n var f = i.charCodeAt(c);\n f > 255 && (O(o), m(\"String has UTF-16 code units that do not fit in 8 bits\")), E[u + c] = f;\n }\n else E.set(i, u);\n return n !== null && n.push(O, o), o;\n },\n readValueFromPointer: vr,\n destructorFunction(n) {\n O(n);\n }\n });\n }, me = typeof TextDecoder < \"u\" ? new TextDecoder(\"utf-16le\") : void 0, tn = (e, r, t) => {\n var n = e >> 1, i = ge(z, n, r / 2, t);\n if (i - n > 16 && me) return me.decode(z.subarray(n, i));\n for (var a = \"\", s = n; s < i; ++s) {\n var o = z[s];\n a += String.fromCharCode(o);\n }\n return a;\n }, nn = (e, r, t) => {\n if (t ??= 2147483647, t < 2) return 0;\n t -= 2;\n for (var n = r, i = t < e.length * 2 ? t / 2 : e.length, a = 0; a < i; ++a) {\n var s = e.charCodeAt(a);\n U[r >> 1] = s, r += 2;\n }\n return U[r >> 1] = 0, r - n;\n }, an = (e) => e.length * 2, sn = (e, r, t) => {\n for (var n = \"\", i = e >> 2, a = 0; !(a >= r / 4); a++) {\n var s = w[i + a];\n if (!s && !t) break;\n n += String.fromCodePoint(s);\n }\n return n;\n }, on = (e, r, t) => {\n if (t ??= 2147483647, t < 4) return 0;\n for (var n = r, i = n + t - 4, a = 0; a < e.length; ++a) {\n var s = e.codePointAt(a);\n if (s > 65535 && a++, T[r >> 2] = s, r += 4, r + 4 > i) break;\n }\n return T[r >> 2] = 0, r - n;\n }, un = (e) => {\n for (var r = 0, t = 0; t < e.length; ++t) e.codePointAt(t) > 65535 && t++, r += 4;\n return r;\n }, cn = (e, r, t) => {\n t = C(t);\n var n, i, a;\n r === 2 ? (n = tn, i = nn, a = an) : (n = sn, i = on, a = un), R(e, {\n name: t,\n fromWireType: (s) => {\n var o = w[s >> 2], u = n(s + 4, o * r, !0);\n return O(s), u;\n },\n toWireType: (s, o) => {\n typeof o != \"string\" && m(`Cannot pass non-string to C++ string type ${t}`);\n var u = a(o), c = Hr(4 + u + r);\n return w[c >> 2] = u / r, i(o, c + 4, u + r), s !== null && s.push(O, c), c;\n },\n readValueFromPointer: vr,\n destructorFunction(s) {\n O(s);\n }\n });\n }, fn = (e, r) => {\n r = C(r), R(e, {\n isVoid: !0,\n name: r,\n fromWireType: () => {},\n toWireType: (t, n) => {}\n });\n }, be = 0, ln = () => {\n Cr = !1, be = 0;\n }, Vr = [], vn = (e) => {\n var r = Vr.length;\n return Vr.push(e), r;\n }, _n = (e, r) => {\n for (var t = new Array(e), n = 0; n < e; ++n) t[n] = pe(w[r + n * 4 >> 2], `parameter ${n}`);\n return t;\n }, dn = (e, r, t) => {\n var n = [], i = e(n, t);\n return n.length && (w[r >> 2] = k.toHandle(n)), i;\n }, pn = {}, $e = (e) => {\n var r = pn[e];\n return r === void 0 ? C(e) : r;\n }, hn = (e, r, t) => {\n var n = 8, [i, ...a] = _n(e, r), s = i.toWireType.bind(i), o = a.map((p) => p.readValueFromPointer.bind(p));\n e--;\n var u = { toValue: k.toValue }, c = o.map((p, v) => {\n var $ = `argFromPtr${v}`;\n return u[$] = p, `${$}(args${v ? \"+\" + v * n : \"\"})`;\n }), f;\n switch (t) {\n case 0:\n f = \"toValue(handle)\";\n break;\n case 2:\n f = \"new (toValue(handle))\";\n break;\n case 3:\n f = \"\";\n break;\n case 1: u.getStringOrSymbol = $e, f = \"toValue(handle)[getStringOrSymbol(methodName)]\";\n }\n f += `(${c})`, i.isVoid || (u.toReturnWire = s, u.emval_returnValue = dn, f = `return emval_returnValue(toReturnWire, destructorsRef, ${f})`), f = `return function (handle, methodName, destructorsRef, args) {\n ${f}\n }`;\n var _ = new Function(Object.keys(u), f)(...Object.values(u));\n return vn(fr(`methodCaller<(${a.map((p) => p.name)}) => ${i.name}>`, _));\n }, gn = (e, r) => (e = k.toValue(e), r = k.toValue(r), k.toHandle(e[r])), yn = (e) => {\n e > 9 && (H[e + 1] += 1);\n }, mn = (e, r, t, n, i) => Vr[e](r, t, n, i), bn = () => k.toHandle([]), $n = (e) => k.toHandle($e(e)), wn = () => k.toHandle({}), Tn = (e) => {\n Wr(k.toValue(e)), Or(e);\n }, Fn = (e, r, t) => {\n e = k.toValue(e), r = k.toValue(r), t = k.toValue(t), e[r] = t;\n }, Cn = 9007199254740992, Pn = -9007199254740992, mr = (e) => e < Pn || e > Cn ? NaN : Number(e);\n function kn(e, r) {\n e = mr(e);\n var t = /* @__PURE__ */ new Date(e * 1e3);\n T[r >> 2] = t.getUTCSeconds(), T[r + 4 >> 2] = t.getUTCMinutes(), T[r + 8 >> 2] = t.getUTCHours(), T[r + 12 >> 2] = t.getUTCDate(), T[r + 16 >> 2] = t.getUTCMonth(), T[r + 20 >> 2] = t.getUTCFullYear() - 1900, T[r + 24 >> 2] = t.getUTCDay();\n var n = Date.UTC(t.getUTCFullYear(), 0, 1, 0, 0, 0, 0), i = (t.getTime() - n) / 864e5 | 0;\n T[r + 28 >> 2] = i;\n }\n var Sn = (e) => e % 4 === 0 && (e % 100 !== 0 || e % 400 === 0), An = [\n 0,\n 31,\n 60,\n 91,\n 121,\n 152,\n 182,\n 213,\n 244,\n 274,\n 305,\n 335\n ], En = [\n 0,\n 31,\n 59,\n 90,\n 120,\n 151,\n 181,\n 212,\n 243,\n 273,\n 304,\n 334\n ], Rn = (e) => {\n return (Sn(e.getFullYear()) ? An : En)[e.getMonth()] + e.getDate() - 1;\n };\n function Dn(e, r) {\n e = mr(e);\n var t = /* @__PURE__ */ new Date(e * 1e3);\n T[r >> 2] = t.getSeconds(), T[r + 4 >> 2] = t.getMinutes(), T[r + 8 >> 2] = t.getHours(), T[r + 12 >> 2] = t.getDate(), T[r + 16 >> 2] = t.getMonth(), T[r + 20 >> 2] = t.getFullYear() - 1900, T[r + 24 >> 2] = t.getDay();\n var n = Rn(t) | 0;\n T[r + 28 >> 2] = n, T[r + 36 >> 2] = -(t.getTimezoneOffset() * 60);\n var i = new Date(t.getFullYear(), 0, 1), a = new Date(t.getFullYear(), 6, 1).getTimezoneOffset(), s = i.getTimezoneOffset(), o = (a != s && t.getTimezoneOffset() == Math.min(s, a)) | 0;\n T[r + 32 >> 2] = o;\n }\n var J = {}, we = (e) => {\n if (e instanceof Zr || e == \"unwind\") return rr;\n zr(1, e);\n }, Te = () => Cr || be > 0, Fe = (e) => {\n rr = e, Te() || (l.onExit?.(e), Q = !0), zr(e, new Zr(e));\n }, Wn = (e, r) => {\n rr = e, Fe(e);\n }, xn = Wn, On = () => {\n if (!Te()) try {\n xn(rr);\n } catch (e) {\n we(e);\n }\n }, Un = (e) => {\n if (!Q) try {\n e(), On();\n } catch (r) {\n we(r);\n }\n }, Ce = () => performance.now(), Vn = (e, r) => {\n if (J[e] && (clearTimeout(J[e].id), delete J[e]), !r) return 0;\n return J[e] = {\n id: setTimeout(() => {\n delete J[e], Un(() => Re(e, Ce()));\n }, r),\n timeout_ms: r\n }, 0;\n }, jn = (e, r, t, n) => {\n var i = (/* @__PURE__ */ new Date()).getFullYear(), a = new Date(i, 0, 1), s = new Date(i, 6, 1), o = a.getTimezoneOffset(), u = s.getTimezoneOffset(), c = Math.max(o, u);\n w[e >> 2] = c * 60, T[r >> 2] = +(o != u);\n var f = (p) => {\n var v = p >= 0 ? \"-\" : \"+\", $ = Math.abs(p);\n return `UTC${v}${String(Math.floor($ / 60)).padStart(2, \"0\")}${String($ % 60).padStart(2, \"0\")}`;\n }, _ = f(o), d = f(u);\n u < o ? (M(_, t, 17), M(d, n, 17)) : (M(_, n, 17), M(d, t, 17));\n }, In = () => Date.now(), Hn = 1, Mn = (e) => e >= 0 && e <= 3;\n function Bn(e, r, t) {\n if (r = mr(r), !Mn(e)) return 28;\n var n;\n if (e === 0) n = In();\n else if (Hn) n = Ce();\n else return 52;\n var i = Math.round(n * 1e3 * 1e3);\n return V[t >> 3] = BigInt(i), 0;\n }\n var Pe = () => 2147483648, Ln = () => Pe(), zn = (e, r) => Math.ceil(e / r) * r, Yn = (e) => {\n var t = (e - er.buffer.byteLength + 65535) / 65536 | 0;\n try {\n return er.grow(t), Kr(), 1;\n } catch {}\n }, Nn = (e) => {\n var r = E.length;\n e >>>= 0;\n var t = Pe();\n if (e > t) return !1;\n for (var n = 1; n <= 4; n *= 2) {\n var i = r * (1 + .2 / n);\n i = Math.min(i, e + 100663296);\n if (Yn(Math.min(t, zn(Math.max(e, i), 65536)))) return !0;\n }\n return !1;\n }, br = {}, Gn = () => Lr || \"./this.program\", K = () => {\n if (!K.strings) {\n var r = {\n USER: \"web_user\",\n LOGNAME: \"web_user\",\n PATH: \"/\",\n PWD: \"/\",\n HOME: \"/home/web_user\",\n LANG: (typeof navigator == \"object\" && navigator.language || \"C\").replace(\"-\", \"_\") + \".UTF-8\",\n _: Gn()\n };\n for (var t in br) br[t] === void 0 ? delete r[t] : r[t] = br[t];\n var n = [];\n for (var t in r) n.push(`${t}=${r[t]}`);\n K.strings = n;\n }\n return K.strings;\n }, qn = (e, r) => {\n var t = 0, n = 0;\n for (var i of K()) {\n var a = r + t;\n w[e + n >> 2] = a, t += M(i, a, 1 / 0) + 1, n += 4;\n }\n return 0;\n }, Xn = (e, r) => {\n var t = K();\n w[e >> 2] = t.length;\n var n = 0;\n for (var i of t) n += Ur(i) + 1;\n return w[r >> 2] = n, 0;\n }, Jn = (e) => 52, Kn = (e, r) => {\n var t = 0, n = 0, i = 0;\n var a = 2;\n e == 0 ? t = 2 : (e == 1 || e == 2) && (t = 64), i = 1;\n return S[r] = a, U[r + 2 >> 1] = i, V[r + 8 >> 3] = BigInt(t), V[r + 16 >> 3] = BigInt(n), 0;\n };\n function Zn(e, r, t, n) {\n return r = mr(r), 70;\n }\n var jr = [\n null,\n [],\n []\n ], Ir = (e, r) => {\n var t = jr[e];\n r === 0 || r === 10 ? ((e === 1 ? Nr : L)(ye(t)), t.length = 0) : t.push(r);\n }, Qn = (e, r, t, n) => {\n for (var i = 0, a = 0; a < t; a++) {\n var s = w[r >> 2], o = w[r + 4 >> 2];\n r += 8;\n for (var u = 0; u < o; u++) Ir(e, E[s + u]);\n i += o;\n }\n return w[n >> 2] = i, 0;\n }, ri = (e) => e, ke = (e) => {\n return l[\"_\" + e];\n }, ei = (e, r) => {\n S.set(e, r);\n }, Se = (e) => xe(e), ti = (e) => {\n var r = Ur(e) + 1, t = Se(r);\n return M(e, t, r), t;\n }, Ae = (e, r, t, n, i) => {\n var a = {\n string: (v) => {\n var $ = 0;\n return v != null && v !== 0 && ($ = ti(v)), $;\n },\n array: (v) => {\n var $ = Se(v.length);\n return ei(v, $), $;\n }\n };\n function s(v) {\n return r === \"string\" ? yr(v) : r === \"boolean\" ? !!v : v;\n }\n var o = ke(e), u = [], c = 0;\n if (n) for (var f = 0; f < n.length; f++) {\n var _ = a[t[f]];\n _ ? (c === 0 && (c = y()), u[f] = _(n[f])) : u[f] = n[f];\n }\n var d = o(...u);\n function p(v) {\n return c !== 0 && g(c), s(v);\n }\n return d = p(d), d;\n }, ni = (e, r, t, n) => {\n var i = !t || t.every((s) => s === \"number\" || s === \"boolean\");\n return r !== \"string\" && i && !n ? ke(e) : (...s) => Ae(e, r, t, s, n);\n };\n if (Tt(), Ut(), l.noExitRuntime && (Cr = l.noExitRuntime), l.print && (Nr = l.print), l.printErr && (L = l.printErr), l.wasmBinary && (G = l.wasmBinary), l.arguments && l.arguments, l.thisProgram && (Lr = l.thisProgram), l.preInit) for (typeof l.preInit == \"function\" && (l.preInit = [l.preInit]); l.preInit.length > 0;) l.preInit.shift()();\n l.ENV = br, l.ccall = Ae, l.cwrap = ni;\n var Ee, Hr, O, Re, h, De, We, xe, Oe, Ue, Ve, je, Ie;\n function fi(e) {\n Ee = e.__getTypeName, l._malloc = Hr = e.malloc, l._parseDropFile = e.parseDropFile, l._getAttributeFromDropFile = e.getAttributeFromDropFile, l._takeAttributeFromDropFile = e.takeAttributeFromDropFile, l._flattenDropFile = e.flattenDropFile, l._destroyDropFileHandle = e.destroyDropFileHandle, e.__cxa_free_exception, l._free = O = e.free, Re = e._emscripten_timeout, h = e.setThrew, De = e._emscripten_tempret_set, We = e._emscripten_stack_restore, xe = e._emscripten_stack_alloc, Oe = e.emscripten_stack_get_current, Ue = e.__cxa_decrement_exception_refcount, Ve = e.__cxa_increment_exception_refcount, je = e.__cxa_can_catch, Ie = e.__cxa_get_exception_ptr;\n }\n var He = {\n __cxa_begin_catch: ot,\n __cxa_end_catch: ut,\n __cxa_find_matching_catch_2: ct,\n __cxa_find_matching_catch_3: ft,\n __cxa_find_matching_catch_4: lt,\n __cxa_rethrow: vt,\n __cxa_throw: _t,\n __cxa_uncaught_exceptions: dt,\n __resumeException: pt,\n _abort_js: ht,\n _embind_register_bigint: yt,\n _embind_register_bool: mt,\n _embind_register_class: jt,\n _embind_register_class_class_function: Ht,\n _embind_register_class_constructor: Mt,\n _embind_register_class_function: Bt,\n _embind_register_class_property: Lt,\n _embind_register_emval: Yt,\n _embind_register_enum: Gt,\n _embind_register_enum_value: qt,\n _embind_register_float: Jt,\n _embind_register_function: Kt,\n _embind_register_integer: Zt,\n _embind_register_memory_view: Qt,\n _embind_register_std_string: en,\n _embind_register_std_wstring: cn,\n _embind_register_void: fn,\n _emscripten_runtime_keepalive_clear: ln,\n _emval_create_invoker: hn,\n _emval_decref: Or,\n _emval_get_property: gn,\n _emval_incref: yn,\n _emval_invoke: mn,\n _emval_new_array: bn,\n _emval_new_cstring: $n,\n _emval_new_object: wn,\n _emval_run_destructors: Tn,\n _emval_set_property: Fn,\n _gmtime_js: kn,\n _localtime_js: Dn,\n _setitimer_js: Vn,\n _tzset_js: jn,\n clock_time_get: Bn,\n emscripten_get_heap_max: Ln,\n emscripten_resize_heap: Nn,\n environ_get: qn,\n environ_sizes_get: Xn,\n fd_close: Jn,\n fd_fdstat_get: Kn,\n fd_seek: Zn,\n fd_write: Qn,\n invoke_diii: ji,\n invoke_diiiii: yi,\n invoke_fi: Si,\n invoke_fiii: Vi,\n invoke_i: Ii,\n invoke_ii: vi,\n invoke_iii: hi,\n invoke_iiii: gi,\n invoke_iiiid: Mi,\n invoke_iiiii: ki,\n invoke_iiiiid: xi,\n invoke_iiiiii: wi,\n invoke_iiiiiii: Ai,\n invoke_iiiiiiii: Oi,\n invoke_iiiiiiiiii: Fi,\n invoke_iiiiiiiiiii: mi,\n invoke_iiiiiiiiiiii: bi,\n invoke_iiiiijj: Bi,\n invoke_iiiijj: Li,\n invoke_iiij: Ri,\n invoke_j: Di,\n invoke_jiiii: Ui,\n invoke_v: $i,\n invoke_vi: _i,\n invoke_vii: pi,\n invoke_viii: di,\n invoke_viiii: li,\n invoke_viiiii: Ci,\n invoke_viiiiii: Ti,\n invoke_viiiiiii: Hi,\n invoke_viiiiiiii: Ei,\n invoke_viiiiiiiiii: zi,\n invoke_viiiiiiiiiiiiiii: Yi,\n invoke_viiji: Wi,\n invoke_viijii: Pi,\n llvm_eh_typeid_for: ri,\n proc_exit: Fe\n };\n function li(e, r, t, n, i) {\n var a = y();\n try {\n b(e)(r, t, n, i);\n } catch (s) {\n if (g(a), s !== s + 0) throw s;\n h(1, 0);\n }\n }\n function vi(e, r) {\n var t = y();\n try {\n return b(e)(r);\n } catch (n) {\n if (g(t), n !== n + 0) throw n;\n h(1, 0);\n }\n }\n function _i(e, r) {\n var t = y();\n try {\n b(e)(r);\n } catch (n) {\n if (g(t), n !== n + 0) throw n;\n h(1, 0);\n }\n }\n function di(e, r, t, n) {\n var i = y();\n try {\n b(e)(r, t, n);\n } catch (a) {\n if (g(i), a !== a + 0) throw a;\n h(1, 0);\n }\n }\n function pi(e, r, t) {\n var n = y();\n try {\n b(e)(r, t);\n } catch (i) {\n if (g(n), i !== i + 0) throw i;\n h(1, 0);\n }\n }\n function hi(e, r, t) {\n var n = y();\n try {\n return b(e)(r, t);\n } catch (i) {\n if (g(n), i !== i + 0) throw i;\n h(1, 0);\n }\n }\n function gi(e, r, t, n) {\n var i = y();\n try {\n return b(e)(r, t, n);\n } catch (a) {\n if (g(i), a !== a + 0) throw a;\n h(1, 0);\n }\n }\n function yi(e, r, t, n, i, a) {\n var s = y();\n try {\n return b(e)(r, t, n, i, a);\n } catch (o) {\n if (g(s), o !== o + 0) throw o;\n h(1, 0);\n }\n }\n function mi(e, r, t, n, i, a, s, o, u, c, f) {\n var _ = y();\n try {\n return b(e)(r, t, n, i, a, s, o, u, c, f);\n } catch (d) {\n if (g(_), d !== d + 0) throw d;\n h(1, 0);\n }\n }\n function bi(e, r, t, n, i, a, s, o, u, c, f, _) {\n var d = y();\n try {\n return b(e)(r, t, n, i, a, s, o, u, c, f, _);\n } catch (p) {\n if (g(d), p !== p + 0) throw p;\n h(1, 0);\n }\n }\n function $i(e) {\n var r = y();\n try {\n b(e)();\n } catch (t) {\n if (g(r), t !== t + 0) throw t;\n h(1, 0);\n }\n }\n function wi(e, r, t, n, i, a) {\n var s = y();\n try {\n return b(e)(r, t, n, i, a);\n } catch (o) {\n if (g(s), o !== o + 0) throw o;\n h(1, 0);\n }\n }\n function Ti(e, r, t, n, i, a, s) {\n var o = y();\n try {\n b(e)(r, t, n, i, a, s);\n } catch (u) {\n if (g(o), u !== u + 0) throw u;\n h(1, 0);\n }\n }\n function Fi(e, r, t, n, i, a, s, o, u, c) {\n var f = y();\n try {\n return b(e)(r, t, n, i, a, s, o, u, c);\n } catch (_) {\n if (g(f), _ !== _ + 0) throw _;\n h(1, 0);\n }\n }\n function Ci(e, r, t, n, i, a) {\n var s = y();\n try {\n b(e)(r, t, n, i, a);\n } catch (o) {\n if (g(s), o !== o + 0) throw o;\n h(1, 0);\n }\n }\n function Pi(e, r, t, n, i, a) {\n var s = y();\n try {\n b(e)(r, t, n, i, a);\n } catch (o) {\n if (g(s), o !== o + 0) throw o;\n h(1, 0);\n }\n }\n function ki(e, r, t, n, i) {\n var a = y();\n try {\n return b(e)(r, t, n, i);\n } catch (s) {\n if (g(a), s !== s + 0) throw s;\n h(1, 0);\n }\n }\n function Si(e, r) {\n var t = y();\n try {\n return b(e)(r);\n } catch (n) {\n if (g(t), n !== n + 0) throw n;\n h(1, 0);\n }\n }\n function Ai(e, r, t, n, i, a, s) {\n var o = y();\n try {\n return b(e)(r, t, n, i, a, s);\n } catch (u) {\n if (g(o), u !== u + 0) throw u;\n h(1, 0);\n }\n }\n function Ei(e, r, t, n, i, a, s, o, u) {\n var c = y();\n try {\n b(e)(r, t, n, i, a, s, o, u);\n } catch (f) {\n if (g(c), f !== f + 0) throw f;\n h(1, 0);\n }\n }\n function Ri(e, r, t, n) {\n var i = y();\n try {\n return b(e)(r, t, n);\n } catch (a) {\n if (g(i), a !== a + 0) throw a;\n h(1, 0);\n }\n }\n function Di(e) {\n var r = y();\n try {\n return b(e)();\n } catch (t) {\n if (g(r), t !== t + 0) throw t;\n return h(1, 0), 0n;\n }\n }\n function Wi(e, r, t, n, i) {\n var a = y();\n try {\n b(e)(r, t, n, i);\n } catch (s) {\n if (g(a), s !== s + 0) throw s;\n h(1, 0);\n }\n }\n function xi(e, r, t, n, i, a) {\n var s = y();\n try {\n return b(e)(r, t, n, i, a);\n } catch (o) {\n if (g(s), o !== o + 0) throw o;\n h(1, 0);\n }\n }\n function Oi(e, r, t, n, i, a, s, o) {\n var u = y();\n try {\n return b(e)(r, t, n, i, a, s, o);\n } catch (c) {\n if (g(u), c !== c + 0) throw c;\n h(1, 0);\n }\n }\n function Ui(e, r, t, n, i) {\n var a = y();\n try {\n return b(e)(r, t, n, i);\n } catch (s) {\n if (g(a), s !== s + 0) throw s;\n return h(1, 0), 0n;\n }\n }\n function Vi(e, r, t, n) {\n var i = y();\n try {\n return b(e)(r, t, n);\n } catch (a) {\n if (g(i), a !== a + 0) throw a;\n h(1, 0);\n }\n }\n function ji(e, r, t, n) {\n var i = y();\n try {\n return b(e)(r, t, n);\n } catch (a) {\n if (g(i), a !== a + 0) throw a;\n h(1, 0);\n }\n }\n function Ii(e) {\n var r = y();\n try {\n return b(e)();\n } catch (t) {\n if (g(r), t !== t + 0) throw t;\n h(1, 0);\n }\n }\n function Hi(e, r, t, n, i, a, s, o) {\n var u = y();\n try {\n b(e)(r, t, n, i, a, s, o);\n } catch (c) {\n if (g(u), c !== c + 0) throw c;\n h(1, 0);\n }\n }\n function Mi(e, r, t, n, i) {\n var a = y();\n try {\n return b(e)(r, t, n, i);\n } catch (s) {\n if (g(a), s !== s + 0) throw s;\n h(1, 0);\n }\n }\n function Bi(e, r, t, n, i, a, s) {\n var o = y();\n try {\n return b(e)(r, t, n, i, a, s);\n } catch (u) {\n if (g(o), u !== u + 0) throw u;\n h(1, 0);\n }\n }\n function Li(e, r, t, n, i, a) {\n var s = y();\n try {\n return b(e)(r, t, n, i, a);\n } catch (o) {\n if (g(s), o !== o + 0) throw o;\n h(1, 0);\n }\n }\n function zi(e, r, t, n, i, a, s, o, u, c, f) {\n var _ = y();\n try {\n b(e)(r, t, n, i, a, s, o, u, c, f);\n } catch (d) {\n if (g(_), d !== d + 0) throw d;\n h(1, 0);\n }\n }\n function Yi(e, r, t, n, i, a, s, o, u, c, f, _, d, p, v, $) {\n var P = y();\n try {\n b(e)(r, t, n, i, a, s, o, u, c, f, _, d, p, v, $);\n } catch (F) {\n if (g(P), F !== F + 0) throw F;\n h(1, 0);\n }\n }\n function Ni() {\n Xe();\n function e() {\n l.calledRun = !0, !Q && (Je(), Gr?.(l), l.onRuntimeInitialized?.(), Ke());\n }\n l.setStatus ? (l.setStatus(\"Running...\"), setTimeout(() => {\n setTimeout(() => l.setStatus(\"\"), 1), e();\n }, 1)) : e();\n }\n var B = await it();\n return Ni(), Jr ? $r = l : $r = new Promise((e, r) => {\n Gr = e, qr = r;\n }), $r;\n}\n// packages/core/engine/threads/decoder/worker.ts\nconst { wasmBinary } = await new Promise((resolve) => {\n self.addEventListener(\"message\", function onInit(e) {\n if (e.data?.type === \"wasm-init\") {\n self.removeEventListener(\"message\", onInit);\n resolve(e.data);\n }\n });\n});\nif (!wasmBinary) throw new Error(\"Decoder worker did not receive WASM binary. The main thread failed to fetch aqua-parser.wasm.\");\nconst module = await qi({ wasmBinary });\nconst controllers = /* @__PURE__ */ new Map();\nconst decoder = {\n get AttributeInfo() {\n return module.AttributeInfo;\n },\n get AquaStatus() {\n return module.AquaStatus;\n },\n get heapU8() {\n return module.HEAPU8;\n },\n get heapU32() {\n return module.HEAPU32;\n },\n get SceneRequestDescriptor() {\n return module.SceneRequestDescriptor;\n },\n get WorkerDataType() {\n return module.WorkerDataType;\n },\n dataPtrView: (attributeInfo) => {\n return module.dataPtrView(attributeInfo);\n },\n free: (...args) => {\n return module.ccall(\"free\", \"number\", [\"number\"], args);\n },\n malloc: (...args) => {\n return module.ccall(\"malloc\", \"number\", [\"number\"], args);\n },\n parseDropFile: (bufferPtr, bufferSize, octreeBounds) => {\n return module.parseDropFile(bufferPtr, bufferSize, octreeBounds);\n },\n getAttributeFromDropFile: (handle, attributeName, attributeInfo) => {\n return module.getAttributeFromDropFile(handle, attributeName, attributeInfo);\n },\n takeAttributeFromDropFile: (handle, attributeName, clientSideId) => {\n return module.takeAttributeFromDropFile(handle, attributeName, clientSideId);\n },\n flattenDropFile: (handle, outPtr, outSize) => {\n return module.flattenDropFile(handle, outPtr, outSize);\n },\n destroyDropFileHandle: (handle) => {\n return module.destroyDropFileHandle(handle);\n }\n};\ndefineActions({\n async cancel(requestIdLow, requestIdHigh) {\n const key = `${requestIdHigh}-${requestIdLow}`;\n const controller = controllers.get(key);\n if (controller) {\n controller.abort();\n controllers.delete(key);\n }\n return [{ cancelled: !!controller }];\n },\n async heapSnapshot(topN) {\n if (typeof module.TakeHeapSnapshot !== \"function\") return [{ snapshotJson: null }];\n return [{ snapshotJson: module.TakeHeapSnapshot(topN) }];\n },\n async heapTrackingControl(enabled) {\n if (typeof module.SetHeapTrackingEnabled !== \"function\") return [{ success: false }];\n module.SetHeapTrackingEnabled(enabled);\n return [{ success: true }];\n },\n async heapTrackingReset() {\n if (typeof module.ResetHeapTracking !== \"function\") return [{ success: false }];\n module.ResetHeapTracking();\n return [{ success: true }];\n },\n async decode(requestIdLow, requestIdHigh, descriptorBuffer, contextPtr, consecutiveIdsStart, noJwt, usePadding) {\n const key = `${requestIdHigh}-${requestIdLow}`;\n const controller = new AbortController();\n controllers.set(key, controller);\n try {\n const { free, malloc, parseDropFile, getAttributeFromDropFile, takeAttributeFromDropFile, flattenDropFile, destroyDropFileHandle } = decoder;\n const descriptorSize = descriptorBuffer.byteLength;\n const descriptorPointer = malloc(descriptorSize);\n decoder.heapU8.set(new Uint8Array(descriptorBuffer), descriptorPointer);\n const descriptor = module.SceneRequestDescriptor.deserializeFromBinary(descriptorPointer, descriptorSize);\n free(descriptorPointer);\n let url = descriptor.getUrl();\n if (noJwt) {\n const url_class = new URL(url);\n url_class.searchParams.delete(\"jwt\");\n url = url_class.toString();\n }\n const body = descriptor.getBody() || null;\n const method = body ? \"POST\" : \"GET\";\n const headers = descriptor.getHeaders();\n const octreeBounds = descriptor.getOctreeBounds();\n descriptor.delete();\n const startTime = performance.now();\n const response = await fetch(url, {\n method,\n headers,\n body,\n signal: controller.signal\n });\n const responseHeadersJson = JSON.stringify({\n \"x-cache\": response.headers.get(\"x-cache\") ?? \"\",\n \"miris-config\": response.headers.get(\"miris-config\") ?? void 0\n });\n if (!response.ok) {\n const duration = performance.now() - startTime;\n return [{\n requestIdLow,\n requestIdHigh,\n resultBuffer: /* @__PURE__ */ new ArrayBuffer(0),\n success: false,\n parsed: false,\n error: `HTTP error! status: ${response.status}`,\n dataType: module.WorkerDataType.Raw.value,\n contextPtr,\n attributes: [],\n duration,\n ttfb: duration,\n httpStatus: response.status,\n responseHeadersJson\n }, { transfer: [] }];\n }\n const rtt = performance.now() - startTime;\n const responseBuffer = await response.arrayBuffer();\n const duration = performance.now() - startTime;\n const attributes = [];\n if (!url.split(/[?#]/, 1)[0].endsWith(\".drop\")) return [{\n requestIdLow,\n requestIdHigh,\n resultBuffer: responseBuffer,\n success: true,\n parsed: false,\n error: void 0,\n dataType: module.WorkerDataType.Raw.value,\n contextPtr,\n attributes,\n duration,\n ttfb: rtt,\n httpStatus: response.status,\n responseHeadersJson\n }, { transfer: [responseBuffer] }];\n const responseSize = responseBuffer.byteLength;\n const responsePointer = malloc(responseSize);\n decoder.heapU8.set(new Uint8Array(responseBuffer), responsePointer);\n const outputPointerPointer = malloc(4);\n const outputSizePointer = malloc(4);\n decoder.heapU32[outputPointerPointer / 4] = 0;\n decoder.heapU32[outputSizePointer / 4] = 0;\n let handle = 0;\n let outputPointer = 0;\n const attributeInfo = new decoder.AttributeInfo();\n try {\n handle = parseDropFile(responsePointer, responseSize, octreeBounds);\n if (handle === 0) throw new Error(\"parseDropFile failed\");\n let index = consecutiveIdsStart;\n for (const [name, info] of Object.entries(clientAttributeList)) {\n if (info.discard) takeAttributeFromDropFile(handle, name, index);\n else if (getAttributeFromDropFile(handle, name, attributeInfo) === decoder.AquaStatus.Success) {\n const wasmView = decoder.dataPtrView(attributeInfo);\n const splatData = info.bytes ? {\n bytes: new Uint8Array(wasmView.buffer, wasmView.byteOffset, attributeInfo.dataSizeBytes).slice(),\n id: index\n } : usePadding ? sparkAttributeFromRaw(name, index, wasmView) : attributeFromRaw(index, wasmView);\n if (takeAttributeFromDropFile(handle, name, index) === decoder.AquaStatus.Success) attributes.push(splatData);\n }\n index++;\n }\n if (flattenDropFile(handle, outputPointerPointer, outputSizePointer) !== decoder.AquaStatus.Success) throw new Error(\"flattenDropFile failed\");\n outputPointer = decoder.heapU32[outputPointerPointer / 4];\n const outputSize = decoder.heapU32[outputSizePointer / 4];\n if (outputPointer === 0) throw new Error(\"flattenDropFile gave nullptr\");\n const resultBuffer = decoder.heapU8.buffer.slice(outputPointer, outputPointer + outputSize);\n const transferList = attributes.map((attr) => \"bytes\" in attr ? attr.bytes.buffer : attr.paddedData.buffer);\n return [{\n requestIdLow,\n requestIdHigh,\n resultBuffer,\n success: true,\n parsed: true,\n error: void 0,\n dataType: module.WorkerDataType.Drop.value,\n contextPtr,\n attributes,\n duration,\n ttfb: rtt,\n httpStatus: response.status,\n responseHeadersJson\n }, { transfer: [resultBuffer, ...transferList] }];\n } catch (error) {\n console.error(\"Exception when parsing dropfile\", error);\n const errorMessage = error instanceof Error ? error.stack ?? error.message : String(error);\n const resultBuffer = (/* @__PURE__ */ new Uint8Array()).buffer;\n return [{\n requestIdLow,\n requestIdHigh,\n resultBuffer,\n success: false,\n parsed: false,\n error: errorMessage,\n dataType: module.WorkerDataType.Drop.value,\n contextPtr,\n attributes: void 0,\n duration,\n ttfb: rtt,\n httpStatus: response.status,\n responseHeadersJson\n }, { transfer: [resultBuffer] }];\n } finally {\n destroyDropFileHandle(handle);\n free(responsePointer);\n free(outputPointerPointer);\n free(outputSizePointer);\n if (outputPointer !== 0) free(outputPointer);\n attributeInfo.delete();\n }\n } catch (error) {\n const errorMsg = error instanceof Error ? error.message : String(error);\n const isCancelled = error instanceof Error && error.name === \"AbortError\";\n return [{\n requestIdLow,\n requestIdHigh,\n resultBuffer: /* @__PURE__ */ new ArrayBuffer(0),\n success: false,\n parsed: false,\n error: isCancelled ? \"Cancelled\" : errorMsg,\n dataType: module.WorkerDataType.Raw.value,\n contextPtr,\n attributes: [],\n duration: 0,\n ttfb: 0,\n httpStatus: 0,\n responseHeadersJson: \"{}\"\n }, { transfer: [] }];\n } finally {\n controllers.delete(key);\n }\n }\n});\n";
183
179
  var blob = typeof self !== "undefined" && self.Blob && new Blob(["URL.revokeObjectURL(import.meta.url);", jsContent], { type: "text/javascript;charset=utf-8" });
184
180
  function WorkerWrapper(options) {
185
181
  let objURL;
@@ -201,8 +197,7 @@ function WorkerWrapper(options) {
201
197
  });
202
198
  }
203
199
  }
204
- //#endregion
205
- //#region packages/core/engine/threads/decoder/wasmFetch.ts
200
+ // packages/core/engine/threads/decoder/wasmFetch.ts
206
201
  var createSharedWasmFetch = (url) => {
207
202
  let cached;
208
203
  return async () => {
@@ -256,10 +251,14 @@ var Decoder = class extends Thread {
256
251
  }
257
252
  async decode(...args) {
258
253
  const { requestIdLow, requestIdHigh, resultBuffer, success, dataType, contextPtr, attributes, duration, ttfb, httpStatus, responseHeadersJson } = await this._execute("decode", ...args);
259
- if (attributes !== void 0) for (const { paddedData, originalSizeInUints, id } of attributes) AttributeCache.addWithId({
260
- paddedData,
261
- originalSizeInUints
262
- }, id);
254
+ if (attributes !== void 0) for (const attribute of attributes) if ("bytes" in attribute) AttributeCache.addWithId(attribute.bytes, attribute.id);
255
+ else {
256
+ const { paddedData, originalSizeInUints, id } = attribute;
257
+ AttributeCache.addWithId({
258
+ paddedData,
259
+ originalSizeInUints
260
+ }, id);
261
+ }
263
262
  const { engine } = this;
264
263
  const bufferSize = resultBuffer.byteLength;
265
264
  const bufferPointer = engine.malloc(bufferSize);
@@ -267,8 +266,7 @@ var Decoder = class extends Thread {
267
266
  engine.onWorkerResult(requestIdLow, requestIdHigh, bufferPointer, bufferSize, httpStatus, duration, ttfb, success, dataType, "", responseHeadersJson, contextPtr);
268
267
  }
269
268
  };
270
- //#endregion
271
- //#region packages/core/engine/index.ts
269
+ // packages/core/engine/index.ts
272
270
  /**
273
271
  * The main Aqua wrapper.
274
272
  *
@@ -297,7 +295,8 @@ var Engine = class Engine {
297
295
  static Feature = {
298
296
  DrMap: 0,
299
297
  ReflMesh: 1,
300
- GlassMesh: 2
298
+ GlassMesh: 2,
299
+ RenderAsPointCloud: 3
301
300
  };
302
301
  static FeatureState = {
303
302
  NotLoaded: 0,
@@ -305,6 +304,18 @@ var Engine = class Engine {
305
304
  Loaded: 2,
306
305
  Failed: 3
307
306
  };
307
+ static StreamStatus = {
308
+ Unknown: 0,
309
+ Resolving: 1,
310
+ Loading: 2,
311
+ Ready: 3,
312
+ Failed: 4
313
+ };
314
+ static StreamFetchMode = {
315
+ Regular: 0,
316
+ Prefetch: 1,
317
+ Parked: 2
318
+ };
308
319
  #module;
309
320
  get module() {
310
321
  if (!this.#module) throw new Error("Engine has not yet been initialized. Did you forget to `await engine.ready()?`");
@@ -313,6 +324,10 @@ var Engine = class Engine {
313
324
  #decoders = /* @__PURE__ */ new Set();
314
325
  #requestMap = /* @__PURE__ */ new Map();
315
326
  #noJwt = new URL(location.href).searchParams.has("nojwt");
327
+ /**
328
+ * whether to pad out our attributes for spork
329
+ */
330
+ #usePadding = false;
316
331
  constructor(moduleOptions = {}) {
317
332
  Object.defineProperty(this, "pending", {
318
333
  value: true,
@@ -343,6 +358,9 @@ var Engine = class Engine {
343
358
  get AttributeInfo() {
344
359
  return this.module.AttributeInfo;
345
360
  }
361
+ get CompressionType() {
362
+ return this.module.CompressionType;
363
+ }
346
364
  get Handedness() {
347
365
  return this.module.Handedness;
348
366
  }
@@ -373,6 +391,9 @@ var Engine = class Engine {
373
391
  get UpAxis() {
374
392
  return this.module.UpAxis;
375
393
  }
394
+ get UsePadding() {
395
+ return this.#usePadding;
396
+ }
376
397
  activatedObjectIdsView(...args) {
377
398
  return this.module.activatedObjectIdsView(...args);
378
399
  }
@@ -415,6 +436,9 @@ var Engine = class Engine {
415
436
  getDrawnOctantMask(...args) {
416
437
  return this.module.GetDrawnOctantMask(...args);
417
438
  }
439
+ getOctantLocalBoundingBoxes(...args) {
440
+ return this.module.GetOctantLocalBoundingBoxes(...args);
441
+ }
418
442
  destroyClient(...args) {
419
443
  return this.module.ccall("DestroyClient", "number", ["number"], args);
420
444
  }
@@ -467,6 +491,9 @@ var Engine = class Engine {
467
491
  getSceneObjectParent(...args) {
468
492
  return this.module.ccall("GetSceneObjectParent", "number", ["number", "number"], args);
469
493
  }
494
+ getStreamStatus(...args) {
495
+ return this.module.ccall("GetStreamStatus", "number", ["number", "number"], args);
496
+ }
470
497
  getSceneObjectType(...args) {
471
498
  return this.module.ccall("GetSceneObjectType", "number", ["number", "number"], args);
472
499
  }
@@ -550,12 +577,21 @@ var Engine = class Engine {
550
577
  "number"
551
578
  ], args);
552
579
  }
580
+ setStreamFetchMode(...args) {
581
+ return this.module.SetStreamFetchMode(...args);
582
+ }
583
+ getStreamFetchMode(...args) {
584
+ return this.module.GetStreamFetchMode(...args);
585
+ }
553
586
  setMaxCacheSize(...args) {
554
587
  return this.module.setMaxCacheSize(...args);
555
588
  }
556
589
  setPreferSharkEncodingProfiles(...args) {
557
590
  return this.module.SetPreferSharkEncodingProfiles(...args);
558
591
  }
592
+ setPadSplatAttributes(usePadding) {
593
+ this.#usePadding = usePadding;
594
+ }
559
595
  setSceneObjectTransform(...args) {
560
596
  return this.module.ccall("SetSceneObjectTransform", "number", [
561
597
  "number",
@@ -572,6 +608,9 @@ var Engine = class Engine {
572
608
  getFeatureState(...args) {
573
609
  return this.module.GetFeatureState(...args);
574
610
  }
611
+ getDrMapLadderRoughnessLevels(...args) {
612
+ return this.module.GetDrMapLadderRoughnessLevels(...args);
613
+ }
575
614
  getAssetFormatVersion(...args) {
576
615
  return this.module.GetAssetFormatVersion(...args);
577
616
  }
@@ -609,7 +648,9 @@ var Engine = class Engine {
609
648
  * displayed frame per context, before the per-client updateSceneExecution() calls.
610
649
  * `previousFrameTimeMs` is how long the previous frame took; pass 0 when there is no plausible
611
650
  * measurement (first frame, or a resume from a stall) and the frame advances without recording
612
- * one.
651
+ * `primsResident` is what the renderer held at the end of the previous frame, fading
652
+ * prims included, and `primCapacity` what it can hold; activations that would not fit are
653
+ * deferred, where primCapacity 0 means deferral is disabled.
613
654
  */
614
655
  beginFrame(...args) {
615
656
  return this.module.BeginFrame(...args);
@@ -634,8 +675,8 @@ var Engine = class Engine {
634
675
  });
635
676
  const requestKey = `${requestIdHigh}-${requestIdLow}`;
636
677
  this.#requestMap.set(requestKey, decoder);
637
- const firstId = AttributeCache.getConsecutiveIds(Object.keys(sparkAttributeList).length);
638
- decoder.ready.then(() => decoder.decode(requestIdLow, requestIdHigh, descriptorBuffer, contextPtr, firstId, this.#noJwt));
678
+ const firstId = AttributeCache.getConsecutiveIds(Object.keys(clientAttributeList).length);
679
+ decoder.ready.then(() => decoder.decode(requestIdLow, requestIdHigh, descriptorBuffer, contextPtr, firstId, this.#noJwt, this.#usePadding));
639
680
  return true;
640
681
  }
641
682
  terminateWorker() {
@@ -665,10 +706,10 @@ var Engine = class Engine {
665
706
  };
666
707
  }
667
708
  };
668
- //#endregion
669
- //#region packages/core/attribute.ts
709
+ // packages/core/attribute.ts
670
710
  var sparkMinSplats = 2048;
671
- var sparkAttributeList = {
711
+ var NOT_PER_SPLAT = 0;
712
+ var clientAttributeList = {
672
713
  sparkPackedSplat: {
673
714
  elementsPerSplat: 4,
674
715
  discard: false
@@ -724,13 +765,39 @@ var sparkAttributeList = {
724
765
  color: {
725
766
  elementsPerSplat: 2,
726
767
  discard: false
768
+ },
769
+ mod_depth: {
770
+ elementsPerSplat: .5,
771
+ discard: false
772
+ },
773
+ reflectanceDataV1: {
774
+ elementsPerSplat: NOT_PER_SPLAT,
775
+ discard: false,
776
+ bytes: true
777
+ },
778
+ reflectanceDataV2: {
779
+ elementsPerSplat: NOT_PER_SPLAT,
780
+ discard: false,
781
+ bytes: true
782
+ },
783
+ glassMeshGeometry: {
784
+ elementsPerSplat: NOT_PER_SPLAT,
785
+ discard: false,
786
+ bytes: true
787
+ },
788
+ glassMeshPanels: {
789
+ elementsPerSplat: NOT_PER_SPLAT,
790
+ discard: false,
791
+ bytes: true
727
792
  }
728
793
  };
794
+ /** @deprecated Use clientAttributeList. */
795
+ var sparkAttributeList = clientAttributeList;
729
796
  function roundUpToMultipleOf(a, multiple) {
730
797
  return Math.ceil(a / multiple) * multiple;
731
798
  }
732
799
  function sparkAttributeFromRaw(name, id, wasmView) {
733
- const attrib = sparkAttributeList[name];
800
+ const attrib = clientAttributeList[name];
734
801
  if (attrib === void 0) throw new Error("attribute name" + name + " is unknown");
735
802
  const originalSize = wasmView.length;
736
803
  const paddedSize = roundUpToMultipleOf(originalSize, attrib.elementsPerSplat * sparkMinSplats);
@@ -742,6 +809,16 @@ function sparkAttributeFromRaw(name, id, wasmView) {
742
809
  id
743
810
  };
744
811
  }
812
+ function attributeFromRaw(id, wasmView) {
813
+ const size = wasmView.length;
814
+ const data = new Uint32Array(size);
815
+ data.set(wasmView);
816
+ return {
817
+ paddedData: data,
818
+ originalSizeInUints: size,
819
+ id
820
+ };
821
+ }
745
822
  var AttributeNames = class {
746
823
  static SPARK_PACKED_SPLAT = "sparkPackedSplat";
747
824
  static SPARK_EXTENDED_SPLAT_LOW = "extendedPackedSplatLow";
@@ -759,6 +836,15 @@ var AttributeNames = class {
759
836
  static SHARK_SPHERICAL_HARMONICS = "sharkSphericalHarmonics";
760
837
  static COLOR = "color";
761
838
  static OCTANT_OFFSETS = "childOctantOffsets";
839
+ static SURFEL_OCTANT_OFFSETS = "surfelChildOctantOffsets";
840
+ static SURFEL_COUNT = "surfelCount";
841
+ static SURFEL_OWNER_GROUPS = "surfelOwnerGroups";
842
+ static OCTANT_CELL = "octantCell";
843
+ static REFLECTANCE_DATA_V1 = "reflectanceDataV1";
844
+ static REFLECTANCE_DATA_V2 = "reflectanceDataV2";
845
+ static GLASS_MESH_GEOMETRY = "glassMeshGeometry";
846
+ static GLASS_MESH_PANELS = "glassMeshPanels";
847
+ static MOD_DEPTH = "mod_depth";
762
848
  };
763
849
  function retrieveFloatArray(engine, objectId, arraySize, fn) {
764
850
  const arrayPtr = engine.malloc(arraySize * 4);
@@ -785,7 +871,59 @@ function getRawUint32Attribute(engine, client, sceneObjectId, attributeName) {
785
871
  attributeInfo.delete();
786
872
  }
787
873
  }
788
- function getDataFromAttribute(engine, client, sceneObjectId, attributeName, outAttributeInfo) {
874
+ /**
875
+ * Size of an attribute's data in bytes, or 0 if it is absent. Reads the metadata only, so it can
876
+ * be asked on every scene event without copying the payload out of the wasm heap.
877
+ */
878
+ function getRawAttributeByteLength(engine, client, sceneObjectId, attributeName) {
879
+ const attributeInfo = new engine.AttributeInfo();
880
+ try {
881
+ const { ptr } = attributeInfo.$$;
882
+ if (client.getAttribute(sceneObjectId, attributeName, ptr) !== Engine.AquaStatus.Success) return 0;
883
+ return Math.max(attributeInfo.dataSizeBytes, 0);
884
+ } finally {
885
+ attributeInfo.delete();
886
+ }
887
+ }
888
+ function getRawByteAttribute(engine, client, sceneObjectId, attributeName) {
889
+ return getRawByteAttributeWithBounds(engine, client, sceneObjectId, attributeName)?.bytes ?? null;
890
+ }
891
+ function getRawByteAttributeWithBounds(engine, client, sceneObjectId, attributeName) {
892
+ const attributeInfo = new engine.AttributeInfo();
893
+ try {
894
+ const { ptr } = attributeInfo.$$;
895
+ if (client.getAttribute(sceneObjectId, attributeName, ptr) !== Engine.AquaStatus.Success) return null;
896
+ const bounds = {
897
+ minValue: {
898
+ x: attributeInfo.minValue.x,
899
+ y: attributeInfo.minValue.y,
900
+ z: attributeInfo.minValue.z
901
+ },
902
+ maxValue: {
903
+ x: attributeInfo.maxValue.x,
904
+ y: attributeInfo.maxValue.y,
905
+ z: attributeInfo.maxValue.z
906
+ }
907
+ };
908
+ if (attributeInfo.clientSideId != 0n) {
909
+ const bytes = AttributeCache.get(Number(attributeInfo.clientSideId));
910
+ return bytes.byteLength > 0 ? {
911
+ bytes,
912
+ ...bounds
913
+ } : null;
914
+ }
915
+ const words = engine.dataPtrView(attributeInfo);
916
+ const byteCount = attributeInfo.dataSizeBytes;
917
+ if (byteCount <= 0 || words.byteLength === 0) return null;
918
+ return {
919
+ bytes: new Uint8Array(words.buffer, words.byteOffset, byteCount).slice(),
920
+ ...bounds
921
+ };
922
+ } finally {
923
+ attributeInfo.delete();
924
+ }
925
+ }
926
+ function getDataFromAttribute(engine, client, sceneObjectId, attributeName, usePadding, outAttributeInfo) {
789
927
  if (!client.hasAttribute(sceneObjectId, attributeName)) return null;
790
928
  const { ptr } = outAttributeInfo.$$;
791
929
  const status = client.getAttribute(sceneObjectId, attributeName, ptr);
@@ -793,12 +931,13 @@ function getDataFromAttribute(engine, client, sceneObjectId, attributeName, outA
793
931
  console.warn(`GetAttribute failed for object id ${sceneObjectId} and attribute name ${attributeName}: status ${status}`);
794
932
  return null;
795
933
  }
796
- let paddedData;
934
+ let dataArray;
797
935
  let originalSizeInUints;
798
- if (outAttributeInfo.clientSideId != 0n) ({paddedData: paddedData, originalSizeInUints: originalSizeInUints} = AttributeCache.get(Number(outAttributeInfo.clientSideId)));
936
+ if (outAttributeInfo.clientSideId != 0n) ({paddedData: dataArray, originalSizeInUints: originalSizeInUints} = AttributeCache.get(Number(outAttributeInfo.clientSideId)));
799
937
  else {
800
- const result = sparkAttributeFromRaw(attributeName, 0, engine.dataPtrView(outAttributeInfo));
801
- paddedData = result.paddedData;
938
+ const wasmView = engine.dataPtrView(outAttributeInfo);
939
+ const result = usePadding ? sparkAttributeFromRaw(attributeName, 0, wasmView) : attributeFromRaw(0, wasmView);
940
+ dataArray = result.paddedData;
802
941
  originalSizeInUints = result.originalSizeInUints;
803
942
  console.log(`retrieved a attribute ${attributeName} with size ${result.originalSizeInUints} for chunk ${sceneObjectId}`);
804
943
  const myCacheEntry = AttributeCache.add({
@@ -813,12 +952,11 @@ function getDataFromAttribute(engine, client, sceneObjectId, attributeName, outA
813
952
  }
814
953
  }
815
954
  return {
816
- paddedData,
955
+ paddedData: dataArray,
817
956
  originalSizeInUints
818
957
  };
819
958
  }
820
- //#endregion
821
- //#region packages/core/lod.ts
959
+ // packages/core/lod.ts
822
960
  var LodStore = class {
823
961
  #keyMap = /* @__PURE__ */ new Map();
824
962
  #idMap = /* @__PURE__ */ new Map();
@@ -854,7 +992,12 @@ var Lod = class {
854
992
  #lodIndex = null;
855
993
  #paddingSplatsCount = 0;
856
994
  #drawnOctantMask = 255;
995
+ #octantLocalBounds = null;
857
996
  #octantOffsets = null;
997
+ #surfelOctantOffsets = null;
998
+ #surfelCount = 0;
999
+ #surfelOwnerGroups = null;
1000
+ #octantCell = null;
858
1001
  #octantOffsetsRead = false;
859
1002
  get key() {
860
1003
  return this.#key ?? null;
@@ -912,23 +1055,54 @@ var Lod = class {
912
1055
  set _drawnOctantMask(mask) {
913
1056
  this.#drawnOctantMask = mask;
914
1057
  }
1058
+ get _octantLocalBounds() {
1059
+ return this.#octantLocalBounds;
1060
+ }
1061
+ set _octantLocalBounds(bounds) {
1062
+ this.#octantLocalBounds = bounds;
1063
+ }
915
1064
  get _octantOffsets() {
916
1065
  return this.#octantOffsets;
917
1066
  }
918
1067
  get _hasOctantOffsets() {
919
1068
  return this.#octantOffsets !== null;
920
1069
  }
1070
+ get _surfelOctantOffsets() {
1071
+ return this.#surfelOctantOffsets;
1072
+ }
1073
+ get _surfelCount() {
1074
+ return this.#surfelCount;
1075
+ }
1076
+ get _surfelOwnerGroups() {
1077
+ return this.#surfelOwnerGroups;
1078
+ }
1079
+ get _octantCell() {
1080
+ return this.#octantCell;
1081
+ }
921
1082
  _readOctantOffsets(engine) {
922
1083
  if (this.#octantOffsetsRead) return;
923
1084
  this.#octantOffsetsRead = true;
924
1085
  const offsets = getRawUint32Attribute(engine, this.#client, this.id, AttributeNames.OCTANT_OFFSETS);
925
1086
  if (offsets && offsets.length === 7) this.#octantOffsets = offsets;
1087
+ const surfelOffsets = getRawUint32Attribute(engine, this.#client, this.id, AttributeNames.SURFEL_OCTANT_OFFSETS);
1088
+ if (surfelOffsets && surfelOffsets.length === 7) this.#surfelOctantOffsets = surfelOffsets;
1089
+ const surfelCount = getRawUint32Attribute(engine, this.#client, this.id, AttributeNames.SURFEL_COUNT);
1090
+ if (surfelCount && surfelCount.length === 1) this.#surfelCount = surfelCount[0];
1091
+ this.#surfelOwnerGroups = getRawUint32Attribute(engine, this.#client, this.id, AttributeNames.SURFEL_OWNER_GROUPS);
1092
+ const cell = getRawUint32Attribute(engine, this.#client, this.id, AttributeNames.OCTANT_CELL);
1093
+ if (cell && cell.length === 4) this.#octantCell = cell;
926
1094
  }
927
1095
  hasAttribute(attributeName) {
928
1096
  return this.#client.hasAttribute(this.id, attributeName);
929
1097
  }
930
1098
  getDataFromAttribute(engine, attributeName, attributeInfo) {
931
- return getDataFromAttribute(engine, this.#client, this.id, attributeName, attributeInfo);
1099
+ return getDataFromAttribute(engine, this.#client, this.id, attributeName, engine.UsePadding, attributeInfo);
1100
+ }
1101
+ _getRawByteAttribute(engine, attributeName) {
1102
+ return getRawByteAttribute(engine, this.#client, this.id, attributeName);
1103
+ }
1104
+ _getRawByteAttributeWithBounds(engine, attributeName) {
1105
+ return getRawByteAttributeWithBounds(engine, this.#client, this.id, attributeName);
932
1106
  }
933
1107
  dispose() {
934
1108
  const key = this.#key;
@@ -938,6 +1112,7 @@ var Lod = class {
938
1112
  key?.dispose?.();
939
1113
  this.#cachedWorldBounds = null;
940
1114
  this.#localBounds = null;
1115
+ this.#octantLocalBounds = null;
941
1116
  this.#transform = null;
942
1117
  this.modelRoot?.lods?.delete(this);
943
1118
  }
@@ -952,8 +1127,7 @@ var Lod = class {
952
1127
  modelRoot.add(this);
953
1128
  }
954
1129
  };
955
- //#endregion
956
- //#region packages/core/change.ts
1130
+ // packages/core/change.ts
957
1131
  var Change = class {
958
1132
  constructor({ type, lod }) {
959
1133
  Object.defineProperties(this, {
@@ -962,8 +1136,7 @@ var Change = class {
962
1136
  });
963
1137
  }
964
1138
  };
965
- //#endregion
966
- //#region packages/core/modelRoot.ts
1139
+ // packages/core/modelRoot.ts
967
1140
  var ModelRoot = class ModelRoot {
968
1141
  static #keyMap = /* @__PURE__ */ new Map();
969
1142
  static #idMap = /* @__PURE__ */ new Map();
@@ -1013,8 +1186,19 @@ var ModelRoot = class ModelRoot {
1013
1186
  this.#key = null;
1014
1187
  }
1015
1188
  };
1016
- //#endregion
1017
- //#region packages/core/stream.ts
1189
+ // packages/core/readyState.ts
1190
+ var HaveNothing = 0;
1191
+ var HaveMetadata = 1;
1192
+ var HaveData = 2;
1193
+ // packages/core/stream.ts
1194
+ function fetchModeValue(mode) {
1195
+ const { Regular, Prefetch, Parked } = Engine.StreamFetchMode;
1196
+ return {
1197
+ regular: Regular,
1198
+ prefetch: Prefetch,
1199
+ parked: Parked
1200
+ }[mode];
1201
+ }
1018
1202
  var Stream = class Stream extends EventTarget {
1019
1203
  static _idMap = /* @__PURE__ */ new Map();
1020
1204
  static _keyMap = /* @__PURE__ */ new Map();
@@ -1029,6 +1213,7 @@ var Stream = class Stream extends EventTarget {
1029
1213
  #loadedRenderableData = false;
1030
1214
  #variantHierarchies = {};
1031
1215
  #defaultCameraId = null;
1216
+ #status = null;
1032
1217
  /**
1033
1218
  * @internal
1034
1219
  */
@@ -1133,6 +1318,25 @@ var Stream = class Stream extends EventTarget {
1133
1318
  set opacity(opacity) {
1134
1319
  this.#opacity = Math.min(1, Math.max(0, opacity));
1135
1320
  }
1321
+ #fetchMode = "regular";
1322
+ #fetchModePending = false;
1323
+ get fetchMode() {
1324
+ return this.#fetchMode;
1325
+ }
1326
+ set fetchMode(fetchMode) {
1327
+ if (fetchMode === this.#fetchMode) return;
1328
+ this.#fetchMode = fetchMode;
1329
+ this.#fetchModePending = true;
1330
+ }
1331
+ /**
1332
+ * @internal
1333
+ * Called once per frame outside the scene lock, which the engine takes to change the mode. The
1334
+ * engine refuses until the stream's octree exists, so a refused mode is retried each frame.
1335
+ */
1336
+ _applyFetchMode() {
1337
+ if (!this.#fetchModePending) return;
1338
+ this.#fetchModePending = !this.client.setStreamFetchMode(this.id, fetchModeValue(this.#fetchMode));
1339
+ }
1136
1340
  get boundingBox() {
1137
1341
  const { engine, client } = this;
1138
1342
  const boxBuffer = engine.malloc(24);
@@ -1261,6 +1465,20 @@ var Stream = class Stream extends EventTarget {
1261
1465
  engine.free(boxBuffer);
1262
1466
  }
1263
1467
  }
1468
+ /** How much of the stream has loaded, as of the last frame. */
1469
+ get readyState() {
1470
+ switch (this.#status) {
1471
+ case Engine.StreamStatus.Loading: return 1;
1472
+ case Engine.StreamStatus.Ready: return 2;
1473
+ default: return 0;
1474
+ }
1475
+ }
1476
+ /**
1477
+ * @internal
1478
+ */
1479
+ _updateStatus() {
1480
+ this.#status = this.client.getStreamStatus(this.id);
1481
+ }
1264
1482
  /**
1265
1483
  * @internal
1266
1484
  */
@@ -1280,8 +1498,7 @@ var Stream = class Stream extends EventTarget {
1280
1498
  if (this.scene.streams.has(this)) this.scene.delete(this);
1281
1499
  }
1282
1500
  };
1283
- //#endregion
1284
- //#region packages/core/rate.ts
1501
+ // packages/core/rate.ts
1285
1502
  var RATES = [
1286
1503
  30,
1287
1504
  60,
@@ -1317,8 +1534,7 @@ function createRefreshRateDetector() {
1317
1534
  }
1318
1535
  };
1319
1536
  }
1320
- //#endregion
1321
- //#region packages/core/miris.ts
1537
+ // packages/core/miris.ts
1322
1538
  /**
1323
1539
  * The main Miris application.
1324
1540
  *
@@ -1328,7 +1544,7 @@ function createRefreshRateDetector() {
1328
1544
  * or get `miris.pending`.
1329
1545
  */
1330
1546
  var Miris = class Miris {
1331
- static tryUseShark = typeof window !== "undefined" && new URLSearchParams(window.location.search).get("shark") === "1";
1547
+ static tryUseShark = typeof window === "undefined" || new URLSearchParams(window.location.search).get("shark") !== "0";
1332
1548
  static _instance;
1333
1549
  static async instance() {
1334
1550
  const miris = this._instance ??= new this();
@@ -1336,6 +1552,7 @@ var Miris = class Miris {
1336
1552
  return miris;
1337
1553
  }
1338
1554
  #sharedContext;
1555
+ #rendererPrims = /* @__PURE__ */ new Map();
1339
1556
  get sharedContext() {
1340
1557
  return this.#sharedContext;
1341
1558
  }
@@ -1451,18 +1668,18 @@ var Miris = class Miris {
1451
1668
  static _XR_SPLAT_COUNT_BUDGET = 2e5;
1452
1669
  /**
1453
1670
  * @internal
1454
- * Shark's GPU splat capacity. A lower limit on mobile to avoid excessive memory allocations in
1671
+ * Shark's GPU splat capacity. A lower limit on mobile to avoid excessive memory allocations in
1455
1672
  * case we occasionally budget over a million prims (most phones can't do this).
1456
1673
  */
1457
1674
  static _SHARK_SPLAT_CAPACITY_MOBILE = 1048576;
1458
- static _SHARK_SPLAT_CAPACITY_DESKTOP = 3e6;
1675
+ static _SHARK_SPLAT_CAPACITY_DESKTOP = 3145728;
1459
1676
  /**
1460
1677
  * @internal
1461
1678
  * The cap on what the solver may budget, held ~20% under the GPU capacity above (the same
1462
1679
  * margin Unity's SharkSplatRenderSystem uses). Leaves headroom for un-garbage collected splats.
1463
1680
  */
1464
- static _SHARK_SPLAT_BUDGET_CAP_MOBILE = 85e4;
1465
- static _SHARK_SPLAT_BUDGET_CAP_DESKTOP = 25e5;
1681
+ static _SHARK_SPLAT_BUDGET_CAP_MOBILE = 65e4;
1682
+ static _SHARK_SPLAT_BUDGET_CAP_DESKTOP = 24e5;
1466
1683
  /**
1467
1684
  * @internal
1468
1685
  * Copied from spork so the dependency is not introduced to core.
@@ -1474,17 +1691,76 @@ var Miris = class Miris {
1474
1691
  if (navigator.maxTouchPoints > 0) return true;
1475
1692
  return /Mobi|Android|iPhone|iPad|iPod|Opera Mini|IEMobile/.test(navigator.userAgent);
1476
1693
  }
1694
+ static #sharkSplatCapacityLimit = Miris.#storedSplatCapacity();
1695
+ static #storedSplatCapacity() {
1696
+ try {
1697
+ const stored = Number(sessionStorage.getItem(Miris._splatCountStorageKey()));
1698
+ return stored > 0 ? stored : null;
1699
+ } catch {
1700
+ return null;
1701
+ }
1702
+ }
1477
1703
  /**
1478
1704
  * @internal
1479
1705
  */
1480
1706
  static _sharkSplatCapacity() {
1481
- return Miris._isMobileDevice() ? Miris._SHARK_SPLAT_CAPACITY_MOBILE : Miris._SHARK_SPLAT_CAPACITY_DESKTOP;
1707
+ const capacity = Miris._isMobileDevice() ? Miris._SHARK_SPLAT_CAPACITY_MOBILE : Miris._SHARK_SPLAT_CAPACITY_DESKTOP;
1708
+ const limit = Miris.#sharkSplatCapacityLimit;
1709
+ return limit === null ? capacity : Math.min(capacity, limit);
1710
+ }
1711
+ /**
1712
+ * @internal
1713
+ * the minimum number of splats we want to show
1714
+ */
1715
+ static _minimumSplatCount() {
1716
+ return Math.floor(Miris._SHARK_SPLAT_CAPACITY_MOBILE / 7);
1717
+ }
1718
+ /**
1719
+ * @internal
1720
+ * key for storing the splat count in the browser storage. when we receive a device lost event we
1721
+ * lower the splat count and reload the page
1722
+ */
1723
+ static _splatCountStorageKey() {
1724
+ return "miris.sharkSplatCapacity";
1725
+ }
1726
+ /**
1727
+ * @internal
1728
+ * Halves the splat capacity for the rest of this tab's session and reloads, on the guess that a
1729
+ * device loss was out-of-memory. False at the minimum capacity, or when the lower capacity can't
1730
+ * be stored, since the reload would then come back at the same capacity and loop.
1731
+ */
1732
+ static _reloadWithLowerSplatCapacity() {
1733
+ const nextSplatCount = Math.floor(Miris._sharkSplatCapacity() / 2);
1734
+ if (nextSplatCount < Miris._minimumSplatCount()) return false;
1735
+ try {
1736
+ sessionStorage.setItem(Miris._splatCountStorageKey(), String(nextSplatCount));
1737
+ } catch {
1738
+ return false;
1739
+ }
1740
+ console.warn(`Miris: WebGPU device lost, adjusting settings and reloading.`);
1741
+ location.reload();
1742
+ return true;
1743
+ }
1744
+ /**
1745
+ * @internal
1746
+ * The shark backend calls this once it has the device, when the device's storage-buffer
1747
+ * binding limit holds shark under _sharkSplatCapacity(). The budget cap follows with the same
1748
+ * margin, and every scene is told.
1749
+ */
1750
+ static _limitSharkSplatCapacity(capacity) {
1751
+ const limit = Miris.#sharkSplatCapacityLimit;
1752
+ Miris.#sharkSplatCapacityLimit = limit === null ? capacity : Math.min(limit, capacity);
1753
+ const instance = Miris._instance;
1754
+ if (instance) instance.#applyDisplaySettings();
1482
1755
  }
1483
1756
  /**
1484
1757
  * @internal
1485
1758
  */
1486
1759
  static _sharkSplatBudgetCap() {
1487
- return Miris._isMobileDevice() ? Miris._SHARK_SPLAT_BUDGET_CAP_MOBILE : Miris._SHARK_SPLAT_BUDGET_CAP_DESKTOP;
1760
+ const mobile = Miris._isMobileDevice();
1761
+ const budgetCap = mobile ? Miris._SHARK_SPLAT_BUDGET_CAP_MOBILE : Miris._SHARK_SPLAT_BUDGET_CAP_DESKTOP;
1762
+ const capacity = mobile ? Miris._SHARK_SPLAT_CAPACITY_MOBILE : Miris._SHARK_SPLAT_CAPACITY_DESKTOP;
1763
+ return Math.floor(budgetCap * (Miris._sharkSplatCapacity() / capacity));
1488
1764
  }
1489
1765
  #bindRequestAnimationFrame() {
1490
1766
  this._requestAnimationFrame = this._xrModeActive ? this._xrSession.requestAnimationFrame.bind(this._xrSession) : window.requestAnimationFrame.bind(window);
@@ -1514,6 +1790,14 @@ var Miris = class Miris {
1514
1790
  this.#splatCountBudgetOverride = budget;
1515
1791
  this.#applyDisplaySettings();
1516
1792
  }
1793
+ /**
1794
+ * @internal
1795
+ * A shark renderer reports the prims it holds each time it renders; null when it goes away.
1796
+ */
1797
+ _reportRendererPrims(renderer, prims) {
1798
+ if (prims === null) this.#rendererPrims.delete(renderer);
1799
+ else this.#rendererPrims.set(renderer, prims);
1800
+ }
1517
1801
  #browserUpdate(ts = 0) {
1518
1802
  if (this.#hostDriven) return;
1519
1803
  this._update(ts);
@@ -1541,9 +1825,15 @@ var Miris = class Miris {
1541
1825
  const elapsed = this.#lastFrameTimestamp === null ? null : now - this.#lastFrameTimestamp;
1542
1826
  this.#lastFrameTimestamp = now;
1543
1827
  const frameTimeMs = elapsed !== null && elapsed <= 1e3 ? elapsed : null;
1544
- if (this.#sharedContext) this.engine.beginFrame(this.#sharedContext, frameTimeMs ?? 0);
1828
+ if (this.#sharedContext) {
1829
+ let primsResident = 0;
1830
+ for (const prims of this.#rendererPrims.values()) primsResident = Math.max(primsResident, prims);
1831
+ const primCapacity = this.#rendererPrims.size > 0 ? Miris._sharkSplatCapacity() : 0;
1832
+ this.engine.beginFrame(this.#sharedContext, frameTimeMs ?? 0, primsResident, primCapacity);
1833
+ }
1545
1834
  for (const scene of this.#scenes) {
1546
1835
  const { client } = scene;
1836
+ scene._applyStreamFetchModes();
1547
1837
  client.updateSceneExecution();
1548
1838
  const evicted = client.takeEvictedClientSideAttributeIds();
1549
1839
  try {
@@ -1561,6 +1851,7 @@ var Miris = class Miris {
1561
1851
  if (!client.lockScene()) return;
1562
1852
  try {
1563
1853
  this.#updateScene(scene);
1854
+ scene._updateStreamStatuses();
1564
1855
  } finally {
1565
1856
  client.unlockScene();
1566
1857
  }
@@ -1682,6 +1973,10 @@ var Miris = class Miris {
1682
1973
  const localBounds = retrieveFloatArray(this.engine, lod.id, 6, client.getLocalBoundingBox.bind(client));
1683
1974
  lod.bounds = worldBounds;
1684
1975
  lod.localBounds = localBounds;
1976
+ if (!lod._octantLocalBounds) {
1977
+ const octantBounds = client.getOctantLocalBoundingBoxes(sceneObjectId);
1978
+ lod._octantLocalBounds = octantBounds.length === 48 ? new Float32Array(octantBounds) : null;
1979
+ }
1685
1980
  lod.lodIndex = lodIndex;
1686
1981
  const entry = new Change({
1687
1982
  type: "modified",
@@ -1712,6 +2007,7 @@ var Miris = class Miris {
1712
2007
  for (const sceneObjectId of engine.activatedObjectIdsView(this.#changeIds)) if (client.getSceneObjectType(sceneObjectId) == Engine.SceneObjectType.GaussianSplats) {
1713
2008
  const lod = lods.forId(sceneObjectId);
1714
2009
  if (lod) {
2010
+ lod._drawnOctantMask = client.getDrawnOctantMask(sceneObjectId);
1715
2011
  const entry = new Change({
1716
2012
  type: "activated",
1717
2013
  lod
@@ -1744,7 +2040,7 @@ var Miris = class Miris {
1744
2040
  }
1745
2041
  }
1746
2042
  /**
1747
- * @internal
2043
+ * @internal
1748
2044
  *
1749
2045
  * Drives one host's frame. Returns whether *that host's* canvas needs repainting.
1750
2046
  *
@@ -1814,8 +2110,7 @@ var Miris = class Miris {
1814
2110
  }
1815
2111
  }
1816
2112
  };
1817
- //#endregion
1818
- //#region packages/core/camera.ts
2113
+ // packages/core/camera.ts
1819
2114
  var Camera = class {
1820
2115
  update() {
1821
2116
  const { engine } = this;
@@ -1882,8 +2177,7 @@ var Camera = class {
1882
2177
  });
1883
2178
  }
1884
2179
  };
1885
- //#endregion
1886
- //#region packages/core/engine/client.ts
2180
+ // packages/core/engine/client.ts
1887
2181
  var Client = class {
1888
2182
  #viewerKey = null;
1889
2183
  get viewerKey() {
@@ -1950,9 +2244,15 @@ var Client = class {
1950
2244
  getSceneObjectType(...args) {
1951
2245
  return this.engine.getSceneObjectType(this.handle, ...args);
1952
2246
  }
2247
+ getStreamStatus(...args) {
2248
+ return this.engine.getStreamStatus(this.handle, ...args);
2249
+ }
1953
2250
  getDrawnOctantMask(...args) {
1954
2251
  return this.engine.getDrawnOctantMask(this.handle, ...args);
1955
2252
  }
2253
+ getOctantLocalBoundingBoxes(...args) {
2254
+ return this.engine.getOctantLocalBoundingBoxes(this.handle, ...args);
2255
+ }
1956
2256
  getLocalTransform(...args) {
1957
2257
  return this.engine.getLocalTransform(this.handle, ...args);
1958
2258
  }
@@ -1980,6 +2280,12 @@ var Client = class {
1980
2280
  setRuntimeSettings(...args) {
1981
2281
  return this.engine.setRuntimeSettings(this.handle, ...args);
1982
2282
  }
2283
+ setStreamFetchMode(...args) {
2284
+ return this.engine.setStreamFetchMode(this.handle, ...args);
2285
+ }
2286
+ getStreamFetchMode(...args) {
2287
+ return this.engine.getStreamFetchMode(this.handle, ...args);
2288
+ }
1983
2289
  setMainCameraTransform(...args) {
1984
2290
  return this.engine.setMainCameraTransform(this.handle, ...args);
1985
2291
  }
@@ -2001,6 +2307,9 @@ var Client = class {
2001
2307
  getAssetFormatVersion(...args) {
2002
2308
  return this.engine.getAssetFormatVersion(this.handle, ...args);
2003
2309
  }
2310
+ getDrMapLadderRoughnessLevels(...args) {
2311
+ return this.engine.getDrMapLadderRoughnessLevels(this.handle, ...args);
2312
+ }
2004
2313
  getName(...args) {
2005
2314
  return this.engine.getName(this.handle, ...args);
2006
2315
  }
@@ -2023,8 +2332,33 @@ var Client = class {
2023
2332
  return this.engine.updateSceneExecution(this.handle, ...args);
2024
2333
  }
2025
2334
  };
2026
- //#endregion
2027
- //#region packages/core/assetFormat.ts
2335
+ // packages/core/drMapLadder.ts
2336
+ /**
2337
+ * Which roughness-ladder levels still need uploading, per scene object.
2338
+ *
2339
+ * OctreeSceneManager fetches every level twice under the one attribute name — a low-res
2340
+ * bootstrap, then the full map — so "have I seen this level?" answers yes to the bootstrap and
2341
+ * the full map never reaches the renderer. The size of the bytes is what tells the two apart.
2342
+ *
2343
+ * Keyed by scene object as well as level: one of these serves every octree in a scene, and two
2344
+ * whose ladders share a level's size would otherwise suppress each other.
2345
+ */
2346
+ var DrMapLadderTracker = class {
2347
+ #levelBytes = /* @__PURE__ */ new Map();
2348
+ needsUpload(sceneObjectId, level, byteCount) {
2349
+ return byteCount > 0 && this.#levelBytes.get(`${sceneObjectId}:${level}`) !== byteCount;
2350
+ }
2351
+ markActedOn(sceneObjectId, level, byteCount) {
2352
+ this.#levelBytes.set(`${sceneObjectId}:${level}`, byteCount);
2353
+ }
2354
+ reset() {
2355
+ this.#levelBytes.clear();
2356
+ }
2357
+ };
2358
+ function drMapLadderAttributeName(level) {
2359
+ return `drMap_l${level}`;
2360
+ }
2361
+ // packages/core/assetFormat.ts
2028
2362
  var AssetFormat = {
2029
2363
  GaussianSplats: 1,
2030
2364
  GES: 2
@@ -2036,11 +2370,11 @@ var ASSET_FORMAT_NAMES = {
2036
2370
  function assetFormatName(formatVersion) {
2037
2371
  return ASSET_FORMAT_NAMES[formatVersion] ?? `unknown format ${formatVersion}`;
2038
2372
  }
2039
- //#endregion
2040
- //#region packages/core/scene.ts
2373
+ // packages/core/scene.ts
2041
2374
  var Scene = class Scene extends EventTarget {
2042
2375
  static #idMap = /* @__PURE__ */ new Map();
2043
2376
  static #keyMap = /* @__PURE__ */ new Map();
2377
+ #drMapLadder = new DrMapLadderTracker();
2044
2378
  #camera = null;
2045
2379
  get camera() {
2046
2380
  return this.#camera;
@@ -2261,9 +2595,42 @@ var Scene = class Scene extends EventTarget {
2261
2595
  return null;
2262
2596
  }
2263
2597
  /**
2598
+ * Emits one "drmapladderloaded" per roughness-ladder level whose bytes have changed since it
2599
+ * was last emitted. Called for every modified LodOctree, which is what the levels hang off and
2600
+ * also how each one's arrival is announced.
2601
+ *
2602
+ * Does not take the attribute, unlike _getDrMap: the full map replaces the bootstrap under the
2603
+ * same name, so taking it would leave the replacement nothing to overwrite.
2604
+ *
2605
+ * @internal
2606
+ */
2607
+ _onDrMapLadder(sceneObjectId) {
2608
+ const sigmas = this.client.getDrMapLadderRoughnessLevels(sceneObjectId);
2609
+ if (sigmas.length === 0) return;
2610
+ for (let level = 0; level < sigmas.length; level++) {
2611
+ const name = drMapLadderAttributeName(level);
2612
+ const byteCount = getRawAttributeByteLength(this.engine, this.client, sceneObjectId, name);
2613
+ if (!this.#drMapLadder.needsUpload(sceneObjectId, level, byteCount)) continue;
2614
+ const bytes = getRawByteAttribute(this.engine, this.client, sceneObjectId, name);
2615
+ if (bytes === null) continue;
2616
+ this.#drMapLadder.markActedOn(sceneObjectId, level, bytes.byteLength);
2617
+ this.dispatchEvent(new CustomEvent("drmapladderloaded", { detail: {
2618
+ level,
2619
+ sigmaDeg: sigmas[level] ?? 0,
2620
+ bytes,
2621
+ sceneObjectId
2622
+ } }));
2623
+ }
2624
+ }
2625
+ /**
2264
2626
  * @internal
2265
2627
  */
2266
2628
  async _onFeatureData(sceneObjectId) {
2629
+ try {
2630
+ this._onDrMapLadder(sceneObjectId);
2631
+ } catch (error) {
2632
+ console.error("[miris] dr map ladder read failed", error);
2633
+ }
2267
2634
  const drMapData = await this._getDrMap(sceneObjectId);
2268
2635
  if (drMapData !== null) this.dispatchEvent(new CustomEvent("drmaploaded", { detail: {
2269
2636
  bytes: drMapData.bytes,
@@ -2284,6 +2651,18 @@ var Scene = class Scene extends EventTarget {
2284
2651
  /**
2285
2652
  * @internal
2286
2653
  */
2654
+ _applyStreamFetchModes() {
2655
+ for (const stream of this.#streams) stream._applyFetchMode();
2656
+ }
2657
+ /**
2658
+ * @internal
2659
+ */
2660
+ _updateStreamStatuses() {
2661
+ for (const stream of this.#streams) stream._updateStatus();
2662
+ }
2663
+ /**
2664
+ * @internal
2665
+ */
2287
2666
  _onSceneLoaded(stream) {
2288
2667
  this.dispatchEvent(new CustomEvent("sceneloaded", { detail: { stream } }));
2289
2668
  }
@@ -2295,10 +2674,10 @@ var Scene = class Scene extends EventTarget {
2295
2674
  }
2296
2675
  close() {
2297
2676
  for (const stream of this.streams) stream.end();
2677
+ this.#drMapLadder.reset();
2298
2678
  Scene.#idMap.delete(this.id);
2299
2679
  Scene.#keyMap.delete(this.key);
2300
2680
  if (this.miris.scenes.has(this)) this.miris.delete(this);
2301
2681
  }
2302
2682
  };
2303
- //#endregion
2304
- export { AssetFormat, AttributeNames, Camera, Lod, LodStore, Miris, ModelRoot, Scene, Stream, sparkAttributeList };
2683
+ export { AssetFormat, AttributeNames, Camera, HaveData, HaveMetadata, HaveNothing, Lod, LodStore, Miris, ModelRoot, Scene, Stream, clientAttributeList, sparkAttributeList };