UNPKG

php-wasm

Version:

Run PHP right in the browser or anywhere else JS can run

12 lines (8 loc) 359 kB
import { createRequire } from 'node:module'; const require = createRequire(import.meta.url); var PHP = (() => { const importMeta = import.meta;var _scriptName = importMeta.url; return ( function(moduleArg = {}) { var moduleRtn; var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=true;var ENVIRONMENT_IS_SHELL=false;if(ENVIRONMENT_IS_NODE){}Module.preRun=Module.preRun||[];if(typeof Module.preRun=="function")Module.preRun=[Module.preRun];Module.preRun.push(()=>Object.assign(ENV,Module.ENV||{}));Module.preRun=Module.preRun||[];if(typeof Module.preRun=="function")Module.preRun=[Module.preRun];Module.preRun.push(()=>ENV.ICU_DATA=ENV.ICU_DATA||"/preload");var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var scriptDirectory="";function locateFile(path,defaultPath=null){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)??defaultPath??scriptDirectory+path}return defaultPath??scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require(/* webpackIgnore: true */ "fs");var nodePath=require("path");if(!import.meta.url.startsWith("data:")){scriptDirectory=nodePath.dirname(require("url").fileURLToPath(import.meta.url))+"/"}readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);var ret=fs.readFileSync(filename);return ret};readAsync=(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return new Promise((resolve,reject)=>{fs.readFile(filename,binary?undefined:"utf8",(err,data)=>{if(err)reject(err);else resolve(binary?data.buffer:data)})})};if(!Module["thisProgram"]&&process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];var dynamicLibraries=Module["dynamicLibraries"]||[];var wasmBinary=Module["wasmBinary"];function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE!="undefined"&&ENVIRONMENT_IS_NODE){var buf=Buffer.from(s,"base64");return new Uint8Array(buf.buffer,buf.byteOffset,buf.length)}var decoded=atob(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i<decoded.length;++i){bytes[i]=decoded.charCodeAt(i)}return bytes}function tryParseAsDataURI(filename){if(!isDataURI(filename)){return}return intArrayFromBase64(filename.slice(dataURIPrefix.length))}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var HEAP,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||134217728;wasmMemory=new WebAssembly.Memory({initial:INITIAL_MEMORY/65536,maximum:65536})}updateMemoryViews();var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var __RELOC_FUNCS__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__RELOC_FUNCS__);if(!Module["noFSInit"]&&!FS.initialized)FS.init();FS.ignorePermissions=false;TTY.init();SOCKFS.root=FS.mount(SOCKFS,{},null);PIPEFS.root=FS.mount(PIPEFS,{},null);callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){___funcs_on_exit();callRuntimeCallbacks(__ATEXIT__);FS.quit();TTY.shutdown();runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPreMain(cb){__ATMAIN__.unshift(cb)}function addOnExit(cb){__ATEXIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");function findWasmBinary(){if(Module["locateFile"]){var f="7e15a5d62eeb5807a45976b4860c207f22ee88ff.wasm";if(!isDataURI(f)){return locateFile(f,new URL("7e15a5d62eeb5807a45976b4860c207f22ee88ff.wasm",import.meta.url).href)}return f}return new URL("7e15a5d62eeb5807a45976b4860c207f22ee88ff.wasm",import.meta.url).href}var wasmBinaryFile;function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}function getBinaryPromise(binaryFile){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{if(!response["ok"]){throw`failed to load wasm binary file at '${binaryFile}'`}return response["arrayBuffer"]()}).catch(()=>getBinarySync(binaryFile))}return readAsync(binaryFile).then(response=>new Uint8Array(response),()=>getBinarySync(binaryFile))}return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}return instantiateArrayBuffer(binaryFile,imports,callback)}function getWasmImports(){return{env:wasmImports,wasi_snapshot_preview1:wasmImports,"GOT.mem":new Proxy(wasmImports,GOTHandler),"GOT.func":new Proxy(wasmImports,GOTHandler)}}function createWasm(){var info=getWasmImports();function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=relocateExports(wasmExports,1024);wasmExports=Asyncify.instrumentWasmExports(wasmExports);var metadata=getDylinkMetadata(module);if(metadata.neededDynlibs){dynamicLibraries=metadata.neededDynlibs.concat(dynamicLibraries)}mergeLibSymbols(wasmExports,"main");LDSO.init();loadDylibs();wasmExports=applySignatureConversions(wasmExports);addOnInit(wasmExports["__wasm_call_ctors"]);__RELOC_FUNCS__.push(wasmExports["__wasm_apply_data_relocs"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);readyPromiseReject(e)}}wasmBinaryFile??=findWasmBinary();instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}var tempDouble;var tempI64;var asyncifyStubs={};var ASM_CONSTS={1486969:()=>!!Module.PGlite,1486996:$0=>{const statement=Module.targets.get($0);Module.PdoParams.delete(statement)},1487078:$0=>{const results=Module.targets.get($0);if(results)return results.length;return 0},1487167:$0=>{const results=Module.targets.get($0);if(results.length)return Object.keys(results[0]).length;return 0},1487279:($0,$1)=>{const targetId=$0;const target=Module.targets.get(targetId);const current=$1;if(current>=target.length){return false}return true},1487429:($0,$1)=>{const results=Module.targets.get($0);if(results.length){const str=Object.keys(results[0])[$1];const len=lengthBytesUTF8(str)+1;const loc=_malloc(len);stringToUTF8(str,loc,len);return loc}return 0},1487652:($0,$1,$2,$3)=>{const results=Module.targets.get($0);const current=-1+$1;const colno=$2;const rv=$3;if(current>=results.length){return null}const result=results[current];const key=Object.keys(result)[$2];Module.jsToZval(result[key],rv)},1487905:($0,$1,$2,$3)=>{const statement=Module.targets.get($0);const start=$1;const length=$2;const paramPos=$3;const buffer=new Uint8Array(Module.HEAPU8.buffer.slice(start,start+length));if(!Module.PdoParams.has(statement)){Module.PdoParams.set(statement,[])}const paramList=Module.PdoParams.get(statement);paramList[paramPos]=buffer},1488250:($0,$1,$2)=>{const statement=Module.targets.get($0);const paramVal=Module.zvalToJS($1);const paramPos=$2;if(!Module.PdoParams.has(statement)){Module.PdoParams.set(statement,[])}const paramList=Module.PdoParams.get(statement);paramList[paramPos]=paramVal},1488516:($0,$1,$2)=>{console.log("pdo_pglite_stmt_get_attribute",$0,$1,$2)},1488578:($0,$1,$2)=>{console.log("pdo_pglite_stmt_col_meta",$0,$1,$2)},1488635:$0=>{console.log("pdo_pglite_stmt_cursor_closer",$0)},1488689:$0=>{if(!Module.PGlite){throw new Error("The PGlite class must be provided as a constructor arg to PHP to use PGlite.")}const data_source=UTF8ToString($0);const pglite=new Module.PGlite(data_source?"idb://"+data_source:undefined);Module.tacked.add(pglite);return Module.targets.add(pglite)},1488998:$0=>{const db=Module.targets.get($0);Module.tacked.delete(db)},1489063:($0,$1,$2)=>{const db=Module.targets.get($0);const query=UTF8ToString($1);const zv=$2;const prepared=(...params)=>db.query(query,params);prepared.query=query;Module.tacked.add(prepared);return Module.targets.add(prepared)},1489296:($0,$1,$2)=>{console.log("pdo_pglite_set_attr",$0,$1,$2);return true},1489361:($0,$1)=>{console.log("pdo_pglite_get_attr",$0,$1);return 1},1489419:$0=>{if(Module.persist){const persist=Array.isArray(Module.persist)?Module.persist:[Module.persist];const useNodeRawFS=$0;persist.forEach(p=>{const mountPath=p.mountPath||"/persist";const localPath=p.localPath||"./persist";FS.mkdir(mountPath);if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){FS.mount(IDBFS,{autoPersist:false},mountPath)}else if(ENVIRONMENT_IS_NODE){if(!useNodeRawFS){const fs=(globalThis.__non_webpack_require__||require)("fs");if(!fs.existsSync(localPath)){fs.mkdirSync(localPath,{recursive:true})}FS.mount(NODEFS,{root:localPath},mountPath)}}})}},1490043:($0,$1,$2)=>{const target=Module.targets.get($0);const property=UTF8ToString($1);const rv=$2;if(!(property in target)){return Module.jsToZval(undefined,rv)}Module.jsToZval(target[property],rv)},1490244:($0,$1,$2,$3,$4)=>{(()=>{const target=Module.targets.get($0);const property=UTF8ToString($1);const funcPtr=$2;const zvalPtr=$3;const paramCount=$4;target[property]=Module.callableToJs(funcPtr);const gc=Module.ccall("vrzno_expose_closure","number",["number"],[funcPtr]);Module.refcountRegistry.register(target[property],gc,target[property])})()},1490608:($0,$1,$2)=>{(()=>{const target=Module.targets.get($0);const property=UTF8ToString($1);const zvalPtr=$2;const zo=Module.ccall("vrzno_expose_object","number",["number"],[zvalPtr]);target[property]=Module.marshalZObject(zo)})()},1490851:($0,$1,$2)=>{(()=>{const target=Module.targets.get($0);const property=UTF8ToString($1);const zvalPtr=$2;const za=Module.ccall("vrzno_expose_array","number",["number"],[zvalPtr]);target[property]=Module.marshalZArray(za,zvalPtr)})()},1491101:($0,$1)=>{(()=>{const target=Module.targets.get($0);const property=UTF8ToString($1);delete target[property]})()},1491217:($0,$1)=>{(()=>{const target=Module.targets.get($0);const property=UTF8ToString($1);target[property]=null})()},1491333:($0,$1)=>{(()=>{const target=Module.targets.get($0);const property=UTF8ToString($1);target[property]=false})()},1491450:($0,$1)=>{(()=>{const target=Module.targets.get($0);const property=UTF8ToString($1);target[property]=true})()},1491566:($0,$1,$2)=>{(()=>{const target=Module.targets.get($0);const property=UTF8ToString($1);target[property]=$2})()},1491680:($0,$1,$2)=>{(()=>{const target=Module.targets.get($0);const property=UTF8ToString($1);target[property]=$2})()},1491794:($0,$1,$2)=>{(()=>{const target=Module.targets.get($0);const property=UTF8ToString($1);const newValue=UTF8ToString($2);target[property]=newValue})()},1491949:($0,$1,$2)=>{let target=Module.targets.get($0);const property=$1;const rv=$2;if(target instanceof ArrayBuffer){if(!Module.bufferMaps.has(target)){Module.bufferMaps.set(target,new Uint8Array(target))}target=Module.bufferMaps.get(target)}if(!(property in target)){return Module.jsToZval(undefined,rv)}Module.jsToZval(target[property],rv)},1492306:($0,$1,$2,$3)=>{(()=>{const target=Module.targets.get($0);const property=$1;const funcPtr=$2;const zvalPtr=$3;target[property]=Module.callableToJs(funcPtr);const gc=Module.ccall("vrzno_expose_closure","number",["number"],[funcPtr]);Module.refcountRegistry.register(target[property],gc,target[property])})()},1492634:($0,$1,$2)=>{(()=>{const target=Module.targets.get($0);const property=$1;const zvalPtr=$2;const zo=Module.ccall("vrzno_expose_object","number",["number"],[zvalPtr]);target[property]=Module.marshalZObject(zo)})()},1492863:($0,$1,$2)=>{(()=>{const target=Module.targets.get($0);const property=$1;const zvalPtr=$2;const za=Module.ccall("vrzno_expose_array","number",["number"],[zvalPtr]);target[property]=Module.marshalZArray(za,zvalPtr)})()},1493099:($0,$1)=>{(()=>{const target=Module.targets.get($0);const property=$1;delete target[property]})()},1493201:($0,$1)=>{(()=>{const target=Module.targets.get($0);const property=$1;target[property]=null})()},1493303:($0,$1)=>{(()=>{const target=Module.targets.get($0);const property=$1;target[property]=false})()},1493406:($0,$1)=>{(()=>{const target=Module.targets.get($0);const property=$1;target[property]=true})()},1493508:($0,$1,$2)=>{(()=>{const target=Module.targets.get($0);const property=$1;target[property]=$2})()},1493608:($0,$1,$2)=>{(()=>{const target=Module.targets.get($0);const property=$1;target[property]=$2})()},1493708:($0,$1,$2)=>{(()=>{const target=Module.targets.get($0);const property=$1;const newValue=UTF8ToString($2);target[property]=newValue})()},1493849:($0,$1,$2)=>{const target=Module.targets.get($0);const property=$1;const check_empty=$2;if(Array.isArray(target)){return typeof target[property]!=="undefined"}if(target instanceof ArrayBuffer){if(!Module.bufferMaps.has(target)){Module.bufferMaps.set(target,new Uint8Array(target))}const targetBytes=Module.bufferMaps.get(target);return targetBytes[property]!=="undefined"}if(!check_empty){return property in target}else{return!!target[property]}},1494328:($0,$1)=>{(()=>{const target=Module.targets.get($0);const property=UTF8ToString($1);delete target[property]})()},1494444:($0,$1)=>{(()=>{const target=Module.targets.get($0);const property=$1;delete target[property]})()},1494546:$0=>{const target=Module.targets.get($0);let json;if(typeof target==="function"){json=JSON.stringify({})}else{try{json=JSON.stringify({...target})}catch{json=JSON.stringify({})}}const str=String(json);const len=1+lengthBytesUTF8(str);const loc=_malloc(len);stringToUTF8(str,loc,len);return loc},1494883:($0,$1)=>{const target=Module.targets.get($0);const property=UTF8ToString($1);return property in target},1494988:($0,$1,$2)=>{const target=Module.targets.get($0);const property_name=UTF8ToString($1);const rv=$2;return Module.jsToZval(target[property_name],rv)},1495137:($0,$1,$2,$3,$4,$5)=>{const target=Module.targets.get($0);const method_name=UTF8ToString($1);const argp=$2;const argc=$3;const size=$4;const rv=$5;const args=[];for(let i=0;i<argc;i++){const loc=argp+i*size;const ptr=Module.getValue(loc,"*");const arg=Module.zvalToJS(ptr);args.push(arg)}Module.jsToZval(target[method_name](...args),rv)},1495504:($0,$1,$2,$3,$4)=>{const target=Module.targets.get($0);const argv=$1;const argc=$2;const size=$3;const rv=$4;const args=[];for(let i=0;i<argc;i++){args.push(Module.zvalToJS(argv+i*size))}return Module.jsToZval(target(...args),rv)},1495754:($0,$1,$2,$3)=>{const _class=Module._classes.get($0);const argv=$1;const argc=$2;const size=$3;const args=[];for(let i=0;i<argc;i++){args.push(Module.zvalToJS(argv+i*size))}const _object=new _class(...args);const index=Module.targets.add(_object);Module.tacked.add(_object);return index},1496067:$0=>{const target=Module.targets.get($0);Module.tacked.delete(target);Module.targets.remove(target)},1496171:$0=>{const target=Module.targets.get($0);const str=String(target);const len=1+lengthBytesUTF8(str);const loc=_malloc(len);stringToUTF8(str,loc,len);return loc},1496347:()=>{const context={};Module.tacked.add(context);return Module.targets.add(context)},1496435:($0,$1)=>{const context=Module.targets.get($0);const method=UTF8ToString($1);context.method=method},1496541:($0,$1)=>{(()=>{const context=Module.targets.get($0);const headerLine=UTF8ToString($1);const colon=headerLine.indexOf(":");const key=headerLine.substr(0,colon).trim();const val=headerLine.substr(1+colon).trim();context.headers=context.headers??{};context.headers[key]=val})()},1496841:($0,$1)=>{(()=>{const context=Module.targets.get($0);const headerLines=UTF8ToString($1);headerLines.split("\n").forEach(headerLine=>{const context=Module.targets.get($0);const colon=headerLine.indexOf(":");const key=headerLine.substr(0,colon).trim();const val=headerLine.substr(1+colon).trim();context.headers=context.headers??{};context.headers[key]=val})})()},1497234:($0,$1,$2)=>{(()=>{const context=Module.targets.get($0);context.body=Module.HEAPU8.slice($1,$1+$2)})()},1497341:($0,$1)=>{const context=Module.targets.get($0);context.ignoreErrors=$1},1497416:$0=>{const parsed=Module.targets.get($0);if(parsed.status<0){Module.tacked.delete(parsed)}return parsed.status},1497541:$0=>{const str=String(eval(UTF8ToString($0)));const len=lengthBytesUTF8(str)+1;const loc=_malloc(len);stringToUTF8(str,loc,len);return loc},1497694:($0,$1)=>{const funcName=UTF8ToString($0);const argJson=UTF8ToString($1);const func=globalThis[funcName];const args=JSON.parse(argJson||"[]")||[];const str=String(func(...args));const len=lengthBytesUTF8(str)+1;const loc=_malloc(len);stringToUTF8(str,loc,len);return loc},1497990:($0,$1)=>{const timeout=Number(UTF8ToString($0));const funcPtr=$1;setTimeout(()=>{const zv=Module.ccall("vrzno_exec_callback","number",["number","number","number","number"],[funcPtr,null,0,0]);Module.ccall("vrzno_expose_efree","number",["number"],[zv]);Module.ccall("vrzno_del_callback","number",["number"],[funcPtr])},timeout)},1498354:($0,$1)=>{const name=UTF8ToString($0);const rv=$1;Module.jsToZval(Module[name],rv)},1498439:($0,$1)=>{const name=UTF8ToString($0);const rv=$1;Module.jsToZval(Module.shared[name],rv)},1498531:($0,$1)=>{const name=UTF8ToString($0);const rv=$1;Module.jsToZval(import(/* webpackIgnore: true */ name),rv)},1498616:()=>{Module.tacked.clear();Module.classes=new WeakMap;Module._classes=new Module.WeakerMap;Module._objects=new Module.WeakerMap;Module._arrays=new Module.WeakerMap;Module.callables=new WeakMap;Module._callables=new Module.WeakerMap;const refcounted=[...Module.refcountRegistry.registered.entries()];const heaped=[...Module.heapRegistry.registered.entries()];refcounted.forEach(([gc,unregisterToken])=>Module.refcountRegistry.unregister(unregisterToken));heaped.forEach(([gc,unregisterToken])=>Module.heapRegistry.unregister(unregisterToken))},1499200:()=>{Module.hasVrzno=true;const IS_UNDEF=0;const IS_NULL=1;const IS_FALSE=2;const IS_TRUE=3;const IS_LONG=4;const IS_DOUBLE=5;const IS_STRING=6;const IS_ARRAY=7;const IS_OBJECT=8;const IS_RESOURCE=9;const IS_INDIRECT=12;Module.tacked=new Set;const origZval=Symbol("origZval");const _FinalizationRegistry=globalThis.FinalizationRegistry||class{register(){}unregister(){}};Module.WeakerMap=Module.WeakerMap||class WeakerMap{constructor(entries){this.map=new Map;this.registry=getRegistry(this);entries&&entries.forEach(([key,value])=>this.set(key,value))}get size(){return this.map.size}clear(){this.registry=getRegistry(this);this.map.clear()}delete(key){if(!this.has(key)){return}this.registry.unregister(this.get(key));this.map.delete(key)}[Symbol.iterator](){const mapIterator=this.map[Symbol.iterator]();return{next:()=>{do{const entry=mapIterator.next();if(entry.done){return{done:true}}const[key,ref]=entry.value;const value=ref.deref();if(!value){this.map.delete(key);continue}return{done:false,value:[key,value]}}while(true)}}}entries(){return{[Symbol.iterator]:()=>this[Symbol.iterator]()}}forEach(callback){for(const[k,v]of this){callback(v,k,this)}}get(key){if(!this.has(key)){return}const value=this.map.get(key).deref();if(!value){this.map.delete(key)}return value}has(key){if(!this.map.has(key)){return false}const result=this.map.get(key).deref();if(!result){this.map.delete(key)}return Boolean(result)}keys(){return[...this].map(v=>v[0])}set(key,value){if(typeof value!=="function"&&typeof value!=="object"){throw new Error("WeakerMap values must be objects.")}if(this.has(key)){this.registry.unregister(this.get(key))}this.registry.register(value,key,value);return this.map.set(key,new wRef(value))}values(){return[...this].map(v=>v[1])}};const getRegistry=weakerMap=>{const registry=new _FinalizationRegistry(key=>{if(weakerMap.registry!==registry){return}if(weakerMap.map.has(key)&&weakerMap.map.get(key).deref()){return}weakerMap.delete(key)});return registry};const refcountRegistryWrapper=class{constructor(){this.unregisterTokens=new WeakMap;this.registered=new Module.WeakerMap;this.registry=new _FinalizationRegistry(gc=>{Module.ccall("vrzno_expose_dec_refcount","number",["number"],[gc])})}register(target,gc,unregisterToken){if(this.unregisterTokens.has(unregisterToken)){return}Module.ccall("vrzno_expose_inc_refcount","number",["number"],[gc]);this.registry.register(target,gc,unregisterToken);this.unregisterTokens.set(unregisterToken,gc);this.registered.set(gc,unregisterToken)}unregister(unregisterToken){this.registry.unregister(unregisterToken);if(this.unregisterTokens.has(unregisterToken)){const gc=this.unregisterTokens.get(unregisterToken);this.unregisterTokens.delete(unregisterToken);this.registered.delete(gc)}}};const heapRegistryWrapper=class{constructor(){this.unregisterTokens=new WeakMap;this.registered=new Module.WeakerMap;this.registry=new _FinalizationRegistry(zv=>{Module.ccall("vrzno_expose_zv_dec_refcount","number",["number"],[zv]);Module.ccall("vrzno_expose_efree","number",["number"],[zv])})}register(target,gc,unregisterToken){if(this.unregisterTokens.has(unregisterToken)){return}this.registry.register(target,gc,unregisterToken);this.unregisterTokens.set(unregisterToken,gc);this.registered.set(gc,unregisterToken)}unregister(unregisterToken){this.registry.unregister(unregisterToken);if(this.unregisterTokens.has(unregisterToken)){const gc=this.unregisterTokens.get(unregisterToken);this.unregisterTokens.delete(unregisterToken);this.registered.delete(gc)}}};Module.heapRegistry=Module.heapRegistry||new heapRegistryWrapper;const wRef=globalThis.WeakRef||class{constructor(val){this.val=val}deref(){return this.val}};Module.refcountRegistry=new refcountRegistryWrapper;Module.bufferMaps=new WeakMap;Module.marshalZObject=zo=>{const nativeTargetId=Module.ccall("vrzno_expose_target","number",["number"],[zo]);if(nativeTargetId){return Module.targets.get(nativeTargetId)}if(Module._objects.has(zo)){return Module._objects.get(zo)}const proxy=new Proxy({},{ownKeys:target=>{const keysLoc=Module.ccall("vrzno_expose_object_keys","number",["number"],[zo]);if(keysLoc){const keyJson=UTF8ToString(keysLoc);const keys=JSON.parse(keyJson);_free(keysLoc);keys.push(...Reflect.ownKeys(target));return[...new Set(keys)]}return[]},has:(target,prop)=>{const len=lengthBytesUTF8(prop)+1;const namePtr=_malloc(len);stringToUTF8(prop,namePtr,len);const propPtr=Module.ccall("vrzno_expose_property_pointer","number",["number","number"],[zo,namePtr]);_free(namePtr);return propPtr},get:(target,prop)=>{let retPtr;if(prop===Symbol.iterator){return;const keysLoc=Module.ccall("vrzno_expose_object_keys","number",["number"],[zo]);const keyJson=UTF8ToString(keysLoc);const keys=JSON.parse(keyJson);_free(keysLoc);const iterator=()=>{let current=-1;return{next(){const done=++current>=keys.length;return{done,value:[keys[current],Module.zvalToJS(Module.ccall("vrzno_expose_property_pointer","number",["number","string"],[zo,keys[current]]))]}}}};Module.refcountRegistry.register(iterator,zo,iterator);return iterator}if(prop===Symbol.toPrimitive){const method="__toString";const len=lengthBytesUTF8(method)+1;const loc=_malloc(len);stringToUTF8(method,loc,len);const methodPtr=Module.ccall("vrzno_expose_method_pointer","number",["number","number"],[zo,loc]);_free(loc);return()=>Module.callableToJs(methodPtr,zo)()}prop=String(prop);const len=lengthBytesUTF8(prop)+1;const loc=_malloc(len);stringToUTF8(prop,loc,len);const methodPtr=Module.ccall("vrzno_expose_method_pointer","number",["number","number"],[zo,loc]);if(methodPtr){const wrapped=Module.callableToJs(methodPtr,zo);const gc=Module.ccall("vrzno_expose_closure","number",["number"],[methodPtr]);Module.refcountRegistry.register(wrapped,gc,wrapped);return wrapped}retPtr=Module.ccall("vrzno_expose_property_pointer","number",["number","number"],[zo,loc]);_free(loc);if(!retPtr){return}return Module.zvalToJS(retPtr)??Reflect.get(target,prop)},getOwnPropertyDescriptor:(target,prop)=>{prop=String(prop);const len=lengthBytesUTF8(prop)+1;const namePtr=_malloc(len);stringToUTF8(prop,namePtr,len);const retPtr=Module.ccall("vrzno_expose_property_pointer","number",["number","number"],[zo,namePtr]);_free(namePtr);const proxy=Module.zvalToJS(retPtr);return{configurable:true,enumerable:true,value:target[prop]}}});Module.refcountRegistry.register(proxy,zo,proxy);Module._objects.set(zo,proxy);return proxy};Module.marshalZArray=(za,zv)=>{if(Module._arrays.has(za)){return Module._arrays.get(za)}const proxy=new Proxy({},{ownKeys:target=>{const keysLoc=Module.ccall("vrzno_expose_array_keys","number",["number"],[za]);if(keysLoc){const keyJson=UTF8ToString(keysLoc);const keys=JSON.parse(keyJson);_free(keysLoc);keys.push(...Reflect.ownKeys(target));return[...new Set(keys)]}return[]},has:(target,prop)=>{if(typeof prop==="string"&&Number.isInteger(Number(prop))){prop=Number(prop)}switch(typeof prop){case"number":return!!Module.ccall("vrzno_expose_dimension_pointer","number",["number","number"],[za,prop]);case"string":const len=lengthBytesUTF8(prop)+1;const namePtr=_malloc(len);stringToUTF8(prop,namePtr,len);const propPtr=Module.ccall("vrzno_expose_key_pointer","number",["number","number"],[za,namePtr]);_free(namePtr);return propPtr;default:return false}},get:(target,prop)=>{let retPtr;if(prop==="length"){return Module.ccall("vrzno_expose_array_length","number",["number"],[za])}if(typeof prop==="string"&&Number.isInteger(Number(prop))){prop=Number(prop)}if(prop===Symbol.iterator){const max=Module.ccall("vrzno_expose_array_length","number",["number"],[za]);const iterator=()=>{let current=-1;return{next(){const done=++current>=max;return{done,value:Module.zvalToJS(Module.ccall("vrzno_expose_dimension_pointer","number",["number","number"],[za,current]))}}}};Module.refcountRegistry.register(iterator,za,iterator);return iterator}if(prop===Symbol.toPrimitive){}switch(typeof prop){case"symbol":return Reflect.get(target,prop);break;case"number":retPtr=Module.ccall("vrzno_expose_dimension_pointer","number",["number","number"],[za,prop]);break;case"string":prop=String(prop);const len=lengthBytesUTF8(prop)+1;const loc=_malloc(len);stringToUTF8(prop,loc,len);retPtr=Module.ccall("vrzno_expose_key_pointer","number",["number","number"],[za,loc]);_free(loc);break;default:return false}if(!retPtr){return}const proxy=Module.zvalToJS(retPtr);return proxy??Reflect.get(target,prop)},getOwnPropertyDescriptor:(target,prop)=>{if(prop==="length"){const value=Module.ccall("vrzno_expose_array_length","number",["number"],[za]);return{...Object.getOwnPropertyDescriptor(target,prop),value}}if(typeof prop==="string"&&Number.isInteger(Number(prop))){prop=Number(prop)}let retPtr;switch(typeof prop){case"number":retPtr=Module.ccall("vrzno_expose_dimension_pointer","number",["number","number"],[za,prop]);break;case"string":const len=lengthBytesUTF8(prop)+1;const namePtr=_malloc(len);stringToUTF8(prop,namePtr,len);retPtr=Module.ccall("vrzno_expose_key_pointer","number",["number","number"],[za,namePtr]);_free(namePtr);break;default:return undefined}const proxy=Module.zvalToJS(retPtr);return{configurable:true,enumerable:true,value:target[prop]}}});Module.refcountRegistry.register(proxy,za,proxy);Module._arrays.set(za,proxy);proxy[origZval]=zv;return proxy};Module.callableToJs=(funcPtr,zo=null)=>{if(Module._callables.has(funcPtr)){return Module._callables.get(funcPtr)}const wrapped=(...args)=>{if(!Module.callables.has(wrapped)){console.warn(`Tried to call ${wrapped.name}, but PHPs memory has been refreshed.`);return}let paramsPtr=null;if(args.length){paramsPtr=Module.ccall("vrzno_expose_create_params","number",["number"],[args.length]);for(let i=0;i<args.length;i++){Module.jsToZval(args[i],getValue(i*4+paramsPtr,"*"))}}const zv=Module.ccall("vrzno_exec_callback","number",["number","number","number","number"],[funcPtr,paramsPtr,args.length,zo]);if(args.length){Module.ccall("vrzno_expose_efree","number",["number"],[paramsPtr])}if(zv){const retVal=Module.zvalToJS(zv);if(retVal&&(typeof retVal==="function"||typeof retVal==="object")){Module.heapRegistry.register(retVal,zv,retVal)}else{Module.ccall("vrzno_expose_efree","number",["number"],[zv])}return retVal}};Object.defineProperty(wrapped,"name",{value:`PHP_@{${funcPtr.toString()}}`});Module.callables.set(wrapped,funcPtr);Module._callables.set(funcPtr,wrapped);return wrapped};Module.resourceToJs=(zr,zv)=>{const proxy={[origZval]:zv};Module.refcountRegistry.register(proxy,zr,proxy);Object.freeze(proxy);return proxy};Module.zvalToJS=Module.zvalToJS||(zv=>{if(!zv){return}zv=Module.ccall("vrzno_expose_zval_deref","number",["number"],[zv]);const nativeTargetId=Module.ccall("vrzno_expose_zval_target","number",["number"],[zv]);if(nativeTargetId){return Module.targets.get(nativeTargetId)}let type=Module.ccall("vrzno_expose_type","number",["number"],[zv]);if(type===IS_INDIRECT){zv=Module.ccall("vrzno_expose_zval_direct","number",["number"],[zv]);zv=Module.ccall("vrzno_expose_zval_deref","number",["number"],[zv]);type=Module.ccall("vrzno_expose_type","number",["number"],[zv])}const zf=Module.ccall("vrzno_expose_callable","number",["number"],[zv]);if(zf&&type!==IS_STRING){const wrapped=Module.callableToJs(zf);const gc=Module.ccall("vrzno_expose_closure","number",["number"],[zf]);Module.refcountRegistry.register(wrapped,gc,wrapped);return wrapped}let valPtr;switch(type){case IS_UNDEF:return undefined;break;case IS_NULL:return null;break;case IS_TRUE:return true;break;case IS_FALSE:return false;break;case IS_LONG:return Module.ccall("vrzno_expose_long","number",["number"],[zv]);break;case IS_DOUBLE:valPtr=Module.ccall("vrzno_expose_double","number",["number"],[zv]);if(!valPtr){return null}return getValue(valPtr,"double");break;case IS_STRING:valPtr=Module.ccall("vrzno_expose_string","number",["number"],[zv]);if(!valPtr){return null}return UTF8ToString(valPtr);break;case IS_ARRAY:const za=Module.ccall("vrzno_expose_array","number",["number"],[zv]);return Module.marshalZArray(za,zv);break;case IS_OBJECT:const zo=Module.ccall("vrzno_expose_object","number",["number"],[zv]);return Module.marshalZObject(zo);break;case IS_RESOURCE:const zp=Module.ccall("vrzno_expose_resource","number",["number"],[zv]);return Module.resourceToJs(zp,zv);break;default:console.warn("ZVal at 0x%s has invalid type %d (0b%s)",Number(zv).toString(16),type,Number(type).toString(2));return null;break}});Module.jsToZval=Module.jsToZval||((value,rv)=>{if(typeof value==="undefined"){Module.ccall("vrzno_expose_create_null","number",["number"],[rv])}else if(value===null){Module.ccall("vrzno_expose_create_null","number",["number"],[rv])}else if([true,false].includes(value)){Module.ccall("vrzno_expose_create_bool","number",["number","number"],[value,rv])}else if(value&&["function","object"].includes(typeof value)){if(value[origZval]){Module.ccall("vrzno_expose_zval_ref","number",["number","number"],[rv,value[origZval]]);return}const index=Module.targets.add(value);const isFunction=typeof value==="function"?index:0;const isConstructor=isFunction&&!!(value.prototype&&value.prototype.constructor);const isArray=Array.isArray(value);Module.tacked.add(value);Module.ccall("vrzno_expose_create_object_for_target","number",["number","number","number","number","number"],[index,isFunction,isConstructor,isArray,rv])}else if(typeof value==="number"){if(Number.isInteger(value)){Module.ccall("vrzno_expose_create_long","number",["number","number"],[value,rv])}else if(Number.isFinite(value)){Module.ccall("vrzno_expose_create_double","number",["number","number"],[value,rv])}}else if(typeof value==="string"){const len=lengthBytesUTF8(value)+1;const loc=_malloc(len);stringToUTF8(value,loc,len);Module.ccall("vrzno_expose_create_string","number",["number","number"],[loc,rv]);_free(loc)}});Module.UniqueIndex=Module.UniqueIndex||class UniqueIndex{constructor(){this.byObject=new WeakMap;this.byInteger=new Module.WeakerMap;this.id=0;Object.defineProperty(this,"add",{configurable:false,writable:false,value:callback=>{if(this.byObject.has(callback)){const id=this.byObject.get(callback);return id}const newid=++this.id;this.byObject.set(callback,newid);this.byInteger.set(newid,callback);return newid}});Object.defineProperty(this,"has",{configurable:false,writable:false,value:obj=>{if(this.byObject.has(obj)){return this.byObject.get(obj)}}});Object.defineProperty(this,"hasId",{configurable:false,writable:false,value:address=>{if(this.byInteger.has(address)){return this.byInteger.get(address)}}});Object.defineProperty(this,"get",{configurable:false,writable:false,value:address=>{if(this.byInteger.has(address)){return this.byInteger.get(address)}}});Object.defineProperty(this,"getId",{configurable:false,writable:false,value:obj=>{if(this.byObject.has(obj)){return this.byObject.get(obj)}}});Object.defineProperty(this,"remove",{configurable:false,writable:false,value:address=>{const obj=this.byInteger.get(address);if(obj){this.byObject.delete(obj);this.byInteger.delete(address)}}})}};Module.classes=new WeakMap;Module._classes=new Module.WeakerMap;Module._objects=new Module.WeakerMap;Module._arrays=new Module.WeakerMap;Module.targets=new Module.UniqueIndex;Module.callables=new WeakMap;Module._callables=new Module.WeakerMap;Module.targets.add(globalThis);Module.PdoParams=new WeakMap},1516444:$0=>{const target=Module.targets.get($0);return Module.classes.get(target)},1516522:($0,$1)=>{const target=Module.targets.get($0);Module.classes.set(target,$1);Module._classes.set($1,target)},1516630:($0,$1,$2,$3)=>{const target=Module.targets.get($0);const dest=$1;const fpos=$2;let count=$3;if(target.status>=400&&!target.context.ignoreErrors){return 0}if(fpos>=target.buffer.length){count=0}else if(fpos+count>target.buffer.length){count=target.buffer.length-fpos}if(count){Module.HEAPU8.set(target.buffer.slice(fpos,fpos+count),dest)}return count},1517022:$0=>{const parsed=Module.targets.get($0);Module.tacked.delete(parsed)},1517095:$0=>{const _class=Module._classes.get($0);if(_class){return Module.targets.getId(_class)}return Module.targets.add(globalThis)},1517230:($0,$1)=>{let target=Module.targets.get($0);const property=$1;if(target instanceof ArrayBuffer){if(!Module.bufferMaps.has(target)){Module.bufferMaps.set(target,new Uint8Array(target))}target=Module.bufferMaps.get(target)}if(Array.isArray(target)||ArrayBuffer.isView(target)){if(property>=0&&property<target.length){return 1}}return 0},1517593:($0,$1,$2)=>{let target=Module.targets.get($0);const property=$1;const rv=$2;if(target instanceof ArrayBuffer){if(!Module.bufferMaps.has(target)){Module.bufferMaps.set(target,new Uint8Array(target))}target=Module.bufferMaps.get(target)}return Module.jsToZval(target[property],rv)},1517888:$0=>{const target=Module.targets.get($0);if(target){Module.tacked.delete(target)}},1517976:()=>!!Module.pipeIn,1518004:()=>!!Module.pipeOut,1518033:()=>!!Module.pipeErr};function __asyncjs__pdo_pglite_real_stmt_execute(targetId,error){return Asyncify.handleAsync(async()=>{const statement=Module.targets.get(targetId);if(!Module.PdoParams.has(statement)){Module.PdoParams.set(statement,[])}const params=Module.PdoParams.get(statement);try{const result=await statement(...params);const rows=result.rows??[];const _fields=result.fields??[];const fields=new Map;_fields.forEach(field=>{fields.set(field.name,field)});const utf8decoder=new TextDecoder;const mapped=rows.map(row=>{const _row={};for(const[key,val]of Object.entries(row)){if(fields.has(key)&&fields.get(key).dataTypeID===17){_row[key]=val?utf8decoder.decode(val):null;continue}_row[key]=val}return _row});Module.tacked.add(mapped);return Module.targets.add(mapped)}catch(exception){const message=String(exception.message);const len=lengthBytesUTF8(message)+1;const loc=_malloc(len);console.error(message,statement.query,exception);stringToUTF8(message,loc,len);setValue(error,loc,"*");return 0}})}__asyncjs__pdo_pglite_real_stmt_execute.sig="iii";function __asyncjs__pdo_pglite_real_doer(dbId,sql){return Asyncify.handleAsync(async()=>{console.log("pdo_pglite_handle_doer",dbId,UTF8ToString(sql));const db=Module.targets.get(dbId);await db.query(UTF8ToString(sql))})}__asyncjs__pdo_pglite_real_doer.sig="vii";function __asyncjs__pdo_pglite_real_handle_begin(dbId){return Asyncify.handleAsync(async()=>{const db=Module.targets.get(dbId);await db.query("BEGIN")})}__asyncjs__pdo_pglite_real_handle_begin.sig="vi";function __asyncjs__pdo_pglite_real_handle_commit(dbId){return Asyncify.handleAsync(async()=>{const db=Module.targets.get(dbId);await db.query("COMMIT")})}__asyncjs__pdo_pglite_real_handle_commit.sig="vi";function __asyncjs__pdo_pglite_real_handle_rollback(dbId){return Asyncify.handleAsync(async()=>{const db=Module.targets.get(dbId);await db.query("ROLLBACK")})}__asyncjs__pdo_pglite_real_handle_rollback.sig="vi";function __asyncjs__pdo_pglite_real_last_insert_id(dbId,namePtr,errorPtr){return Asyncify.handleAsync(async()=>{try{const db=Module.targets.get(dbId);if(namePtr){const name=UTF8ToString(namePtr);console.log("SELECT CURRVAL($1)",name);const result=await db.query("SELECT CURRVAL($1)",name);console.log(result)}else{console.log("SELECT LASTVAL()");const result=await db.query("SELECT LASTVAL()");console.log(result)}}catch(error){console.error(error);const str=String(error);const len=lengthBytesUTF8(str);const loc=_malloc(len);stringToUTF8(str,loc,len);setValue(errorPtr,loc,"*")}return 0})}__asyncjs__pdo_pglite_real_last_insert_id.sig="iiii";function __asyncjs__php_stream_fetch_real_open(path,_context,ptrsize,headersv,headersc){return Asyncify.handleAsync(async()=>{const pathString=UTF8ToString(path);const context=Module.targets.get(_context)||{};try{const response=await fetch(pathString,context);const buffer=new Uint8Array(await response.arrayBuffer());const status=response.status;const headerLines=[...response.headers.entries()].map(([key,val])=>`${key}: ${val}`);headerLines.unshift(`HTTP/1.1 ${response.status} ${response.statusText}`);const headersloc=_malloc(ptrsize*headerLines.length);setValue(headersv,headersloc,"*");setValue(headersc,headerLines.length,"i32");let i=0;for(const line of headerLines){const len=lengthBytesUTF8(line)+1;const loc=_malloc(len);stringToUTF8(line,loc,len);setValue(headersloc+i*ptrsize,loc,"i"+8*ptrsize);i++}const parsed={status,buffer,context};Module.tacked.add(parsed);Module.tacked.delete(context);return Module.targets.add(parsed)}catch(error){const parsed={status:-1,buffer:(new TextEncoder).encode(error),context};Module.tacked.add(parsed);Module.tacked.delete(context);return Module.targets.add(parsed)}})}__asyncjs__php_stream_fetch_real_open.sig="iiiiii";function __asyncjs__vrzno_await_internal(targetId,rv){return Asyncify.handleAsync(async()=>{const target=Module.targets.get(targetId);const result=await target;Module.jsToZval(result,rv)})}__asyncjs__vrzno_await_internal.sig="vii";function __asyncjs__waitline_real_consume_stdin_line(buf,max_length){return Asyncify.handleAsync(async()=>{let input;if(Module.triggerStdin)Module.triggerStdin();else console.warn("Module does not implement `.triggerStdin()`");if(Module.inputDataQueue.length){input=String(Module.inputDataQueue.shift())}else{let a,r;const promise=new Promise((accept,reject)=>[a,r]=[accept,reject]);Module.awaitingInput=a;Module.readyForInput&&Module.readyForInput();input=String(await promise)}if(input.length>=max_length){input=input.slice(0,max_length-1)}stringToUTF8(input,buf,input.length+1);return input.length})}__asyncjs__waitline_real_consume_stdin_line.sig="iii";function __asyncjs__waitline_real_shell_write(str,str_length){return Asyncify.handleAsync(async()=>{const pipeTo=Module.pipeOut;console.log(pipeTo)})}function ExitStatus(status){this.name="ExitStatus";this.message=`Program terminated with exit(${status})`;this.status=status}var GOT={};var currentModuleWeakSymbols=new Set(["phpdbg_arm_auto_global","phpdbg_restore_frame","phpdbg_globals"]);var GOTHandler={get(obj,symName){var rtn=GOT[symName];if(!rtn){rtn=GOT[symName]=new WebAssembly.Global({value:"i32",mutable:true})}if(!currentModuleWeakSymbols.has(symName)){rtn.required=true}return rtn}};var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder:undefined;var UTF8ArrayToString=(heapOrArray,idx,maxBytesToRead)=>{idx>>>=0;var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str};var getDylinkMetadata=binary=>{var offset=0;var end=0;function getU8(){return binary[offset++]}function getLEB(){var ret=0;var mul=1;while(1){var byte=binary[offset++];ret+=(byte&127)*mul;mul*=128;if(!(byte&128))break}return ret}function getString(){var len=getLEB();offset+=len;return UTF8ArrayToString(binary,offset-len,len)}function failIf(condition,message){if(condition)throw new Error(message)}var name="dylink.0";if(binary instanceof WebAssembly.Module){var dylinkSection=WebAssembly.Module.customSections(binary,name);if(dylinkSection.length===0){name="dylink";dylinkSection=WebAssembly.Module.customSections(binary,name)}failIf(dylinkSection.length===0,"need dylink section");binary=new Uint8Array(dylinkSection[0]);end=binary.length}else{var int32View=new Uint32Array(new Uint8Array(binary.subarray(0,24)).buffer);var magicNumberFound=int32View[0]==1836278016;failIf(!magicNumberFound,"need to see wasm magic number");failIf(binary[8]!==0,"need the dylink section to be first");offset=9;var section_size=getLEB();end=offset+section_size;name=getString()}var customSection={neededDynlibs:[],tlsExports:new Set,weakImports:new Set};if(name=="dylink"){customSection.memorySize=getLEB();customSection.memoryAlign=getLEB();customSection.tableSize=getLEB();customSection.tableAlign=getLEB();var neededDynlibsCount=getLEB();for(var i=0;i<neededDynlibsCount;++i){var libname=getString();customSection.neededDynlibs.push(libname)}}else{failIf(name!=="dylink.0");var WASM_DYLINK_MEM_INFO=1;var WASM_DYLINK_NEEDED=2;var WASM_DYLINK_EXPORT_INFO=3;var WASM_DYLINK_IMPORT_INFO=4;var WASM_SYMBOL_TLS=256;var WASM_SYMBOL_BINDING_MASK=3;var WASM_SYMBOL_BINDING_WEAK=1;while(offset<end){var subsectionType=getU8();var subsectionSize=getLEB();if(subsectionType===WASM_DYLINK_MEM_INFO){customSection.memorySize=getLEB();customSection.memoryAlign=getLEB();customSection.tableSize=getLEB();customSection.tableAlign=getLEB()}else if(subsectionType===WASM_DYLINK_NEEDED){var neededDynlibsCount=getLEB();for(var i=0;i<neededDynlibsCount;++i){libname=getString();customSection.neededDynlibs.push(libname)}}else if(subsectionType===WASM_DYLINK_EXPORT_INFO){var count=getLEB();while(count--){var symname=getString();var flags=getLEB();if(flags&WASM_SYMBOL_TLS){customSection.tlsExports.add(symname)}}}else if(subsectionType===WASM_DYLINK_IMPORT_INFO){var count=getLEB();while(count--){var modname=getString();var symname=getString();var flags=getLEB();if((flags&WASM_SYMBOL_BINDING_MASK)==WASM_SYMBOL_BINDING_WEAK){customSection.weakImports.add(symname)}}}else{offset+=subsectionSize}}}return customSection};function getValue(ptr,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":return HEAP8[ptr>>>0];case"i8":return HEAP8[ptr>>>0];case"i16":return HEAP16[ptr>>>1>>>0];case"i32":return HEAP32[ptr>>>2>>>0];case"i64":abort("to do getValue(i64) use WASM_BIGINT");case"float":return HEAPF32[ptr>>>2>>>0];case"double":return HEAPF64[ptr>>>3>>>0];case"*":return HEAPU32[ptr>>>2>>>0];default:abort(`invalid type for getValue: ${type}`)}}var newDSO=(name,handle,syms)=>{var dso={refcount:Infinity,name,exports:syms,global:true};LDSO.loadedLibsByName[name]=dso;if(handle!=undefined){LDSO.loadedLibsByHandle[handle]=dso}return dso};var LDSO={loadedLibsByName:{},loadedLibsByHandle:{},init(){newDSO("__main__",0,wasmImports)}};var ___heap_base=35218336;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var getMemory=size=>{if(runtimeInitialized){return _calloc(size,1)}var ret=___heap_base;var end=ret+alignMemory(size,16);___heap_base=end;GOT["__heap_base"].value=end;return ret};var isInternalSym=symName=>["__cpp_exception","__c_longjmp","__wasm_apply_data_relocs","__dso_handle","__tls_size","__tls_align","__set_stack_limits","_emscripten_tls_init","__wasm_init_tls","__wasm_call_ctors","__start_em_asm","__stop_em_asm","__start_em_js","__stop_em_js"].includes(symName)||symName.startsWith("__em_js__");var uleb128Encode=(n,target)=>{if(n<128){target.push(n)}else{target.push(n%128|128,n>>7)}};var sigToWasmTypes=sig=>{var typeNames={i:"i32",j:"i64",f:"f32",d:"f64",e:"externref",p:"i32"};var type={parameters:[],results:sig[0]=="v"?[]:[typeNames[sig[0]]]};for(var i=1;i<sig.length;++i){type.parameters.push(typeNames[sig[i]])}return type};var generateFuncType=(sig,target)=>{var sigRet=sig.slice(0,1);var sigParam=sig.slice(1);var typeCodes={i:127,p:127,j:126,f:125,d:124,e:111};target.push(96);uleb128Encode(sigParam.length,target);for(var i=0;i<sigParam.length;++i){target.push(typeCodes[sigParam[i]])}if(sigRet=="v"){target.push(0)}else{target.push(1,typeCodes[sigRet])}};var convertJsFunctionToWasm=(func,sig)=>{if(typeof WebAssembly.Function=="function"){return new WebAssembly.Function(sigToWasmTypes(sig),func)}var typeSectionBody=[1];generateFuncType(sig,typeSectionBody);var bytes=[0,97,115,109,1,0,0,0,1];uleb128Encode(typeSectionBody.length,bytes);bytes.push(...typeSectionBody);bytes.push(2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0);var module=new WebAssembly.Module(new Uint8Array(bytes));var instance=new WebAssembly.Instance(module,{e:{f:func}});var wrappedFunc=instance.exports["f"];return wrappedFunc};var wasmTableMirror=[];var wasmTable=new WebAssembly.Table({initial:4884,element:"anyfunc"});var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func};var updateTableMap=(offset,count)=>{if(functionsInTableMap){for(var i=offset;i<offset+count;i++){var item=getWasmTableEntry(i);if(item){functionsInTableMap.set(item,i)}}}};var functionsInTableMap;var getFunctionAddress=func=>{if(!functionsInTableMap){functionsInTableMap=new WeakMap;updateTableMap(0,wasmTable.length)}return functionsInTableMap.get(func)||0};var freeTableIndexes=[]