UNPKG

php-wasm

Version:

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

9 lines (6 loc) 529 kB
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=true;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;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_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{readAsync=url=>fetch(url,{credentials:"same-origin"}).then(response=>{if(response.ok){return response.arrayBuffer()}return Promise.reject(new Error(response.status+" : "+response.url))})}}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){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();IDBFS.quit();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="22db49612f4428af12e15d948152e2e73898374c.wasm";if(!isDataURI(f)){return locateFile(f,new URL("22db49612f4428af12e15d948152e2e73898374c.wasm",import.meta.url).href)}return f}return new URL("22db49612f4428af12e15d948152e2e73898374c.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)&&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={1651337:()=>!!Module.PGlite,1651364:$0=>{const statement=Module.targets.get($0);Module.PdoParams.delete(statement)},1651446:$0=>{const results=Module.targets.get($0);if(results)return results.length;return 0},1651535:$0=>{const results=Module.targets.get($0);if(results.length)return Object.keys(results[0]).length;return 0},1651647:($0,$1)=>{const targetId=$0;const target=Module.targets.get(targetId);const current=$1;if(current>=target.length){return false}return true},1651797:($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},1652020:($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)},1652273:($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},1652618:($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},1652884:($0,$1,$2)=>{console.log("pdo_pglite_stmt_get_attribute",$0,$1,$2)},1652946:($0,$1,$2)=>{console.log("pdo_pglite_stmt_col_meta",$0,$1,$2)},1653003:$0=>{console.log("pdo_pglite_stmt_cursor_closer",$0)},1653057:$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)},1653366:$0=>{const db=Module.targets.get($0);Module.tacked.delete(db)},1653431:($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)},1653664:($0,$1,$2)=>{console.log("pdo_pglite_set_attr",$0,$1,$2);return true},1653729:($0,$1)=>{console.log("pdo_pglite_get_attr",$0,$1);return 1},1653787:$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)}}})}},1654411:($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)},1654612:($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])})()},1654976:($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)})()},1655219:($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)})()},1655469:($0,$1)=>{(()=>{const target=Module.targets.get($0);const property=UTF8ToString($1);delete target[property]})()},1655585:($0,$1)=>{(()=>{const target=Module.targets.get($0);const property=UTF8ToString($1);target[property]=null})()},1655701:($0,$1)=>{(()=>{const target=Module.targets.get($0);const property=UTF8ToString($1);target[property]=false})()},1655818:($0,$1)=>{(()=>{const target=Module.targets.get($0);const property=UTF8ToString($1);target[property]=true})()},1655934:($0,$1,$2)=>{(()=>{const target=Module.targets.get($0);const property=UTF8ToString($1);target[property]=$2})()},1656048:($0,$1,$2)=>{(()=>{const target=Module.targets.get($0);const property=UTF8ToString($1);target[property]=$2})()},1656162:($0,$1,$2)=>{(()=>{const target=Module.targets.get($0);const property=UTF8ToString($1);const newValue=UTF8ToString($2);target[property]=newValue})()},1656317:($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)},1656674:($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])})()},1657002:($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)})()},1657231:($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)})()},1657467:($0,$1)=>{(()=>{const target=Module.targets.get($0);const property=$1;delete target[property]})()},1657569:($0,$1)=>{(()=>{const target=Module.targets.get($0);const property=$1;target[property]=null})()},1657671:($0,$1)=>{(()=>{const target=Module.targets.get($0);const property=$1;target[property]=false})()},1657774:($0,$1)=>{(()=>{const target=Module.targets.get($0);const property=$1;target[property]=true})()},1657876:($0,$1,$2)=>{(()=>{const target=Module.targets.get($0);const property=$1;target[property]=$2})()},1657976:($0,$1,$2)=>{(()=>{const target=Module.targets.get($0);const property=$1;target[property]=$2})()},1658076:($0,$1,$2)=>{(()=>{const target=Module.targets.get($0);const property=$1;const newValue=UTF8ToString($2);target[property]=newValue})()},1658217:($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]}},1658696:($0,$1)=>{(()=>{const target=Module.targets.get($0);const property=UTF8ToString($1);delete target[property]})()},1658812:($0,$1)=>{(()=>{const target=Module.targets.get($0);const property=$1;delete target[property]})()},1658914:$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},1659251:($0,$1)=>{const target=Module.targets.get($0);const property=UTF8ToString($1);return property in target},1659356:($0,$1,$2)=>{const target=Module.targets.get($0);const property_name=UTF8ToString($1);const rv=$2;return Module.jsToZval(target[property_name],rv)},1659505:($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)},1659872:($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)},1660122:($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},1660435:$0=>{const target=Module.targets.get($0);Module.tacked.delete(target);Module.targets.remove(target)},1660539:$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},1660715:()=>{const context={};Module.tacked.add(context);return Module.targets.add(context)},1660803:($0,$1)=>{const context=Module.targets.get($0);const method=UTF8ToString($1);context.method=method},1660909:($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})()},1661209:($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})})()},1661602:($0,$1,$2)=>{(()=>{const context=Module.targets.get($0);context.body=Module.HEAPU8.slice($1,$1+$2)})()},1661709:($0,$1)=>{const context=Module.targets.get($0);context.ignoreErrors=$1},1661784:$0=>{const parsed=Module.targets.get($0);if(parsed.status<0){Module.tacked.delete(parsed)}return parsed.status},1661909:$0=>{const str=String(eval(UTF8ToString($0)));const len=lengthBytesUTF8(str)+1;const loc=_malloc(len);stringToUTF8(str,loc,len);return loc},1662062:($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},1662358:($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)},1662722:($0,$1)=>{const name=UTF8ToString($0);const rv=$1;Module.jsToZval(Module[name],rv)},1662807:($0,$1)=>{const name=UTF8ToString($0);const rv=$1;Module.jsToZval(Module.shared[name],rv)},1662899:($0,$1)=>{const name=UTF8ToString($0);const rv=$1;Module.jsToZval(import(/* webpackIgnore: true */ name),rv)},1662984:()=>{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))},1663568:()=>{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},1680812:$0=>{const target=Module.targets.get($0);return Module.classes.get(target)},1680890:($0,$1)=>{const target=Module.targets.get($0);Module.classes.set(target,$1);Module._classes.set($1,target)},1680998:($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},1681390:$0=>{const parsed=Module.targets.get($0);Module.tacked.delete(parsed)},1681463:$0=>{const _class=Module._classes.get($0);if(_class){return Module.targets.getId(_class)}return Module.targets.add(globalThis)},1681598:($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},1681961:($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)},1682256:$0=>{const target=Module.targets.get($0);if(target){Module.tacked.delete(target)}},1682344:()=>!!Module.pipeIn,1682372:()=>!!Module.pipeOut,1682401:()=>!!Module.pipeErr,1682430:$0=>{var str=UTF8ToString($0)+"\n\n"+"Abort/Retry/Ignore/AlwaysIgnore? [ariA] :";var reply=window.prompt(str,"i");if(reply===null){reply="i"}return allocate(intArrayFromString(reply),"i8",ALLOC_NORMAL)},1682655:()=>{if(typeof AudioContext!=="undefined"){return true}else if(typeof webkitAudioContext!=="undefined"){return true}return false},1682802:()=>{if(typeof navigator.mediaDevices!=="undefined"&&typeof navigator.mediaDevices.getUserMedia!=="undefined"){return true}else if(typeof navigator.webkitGetUserMedia!=="undefined"){return true}return false},1683036:$0=>{if(typeof Module["SDL2"]==="undefined"){Module["SDL2"]={}}var SDL2=Module["SDL2"];if(!$0){SDL2.audio={}}else{SDL2.capture={}}if(!SDL2.audioContext){if(typeof AudioContext!=="undefined"){SDL2.audioContext=new AudioContext}else if(typeof webkitAudioContext!=="undefined"){SDL2.audioContext=new webkitAudioContext}if(SDL2.audioContext){autoResumeAudioContext(SDL2.audioContext)}}return SDL2.audioContext===undefined?-1:0},1683529:()=>{var SDL2=Module["SDL2"];return SDL2.audioContext.sampleRate},1683597:($0,$1,$2,$3)=>{var SDL2=Module["SDL2"];var have_microphone=function(stream){if(SDL2.capture.silenceTimer!==undefined){clearTimeout(SDL2.capture.silenceTimer);SDL2.capture.silenceTimer=undefined}SDL2.capture.mediaStreamNode=SDL2.audioContext.createMediaStreamSource(stream);SDL2.capture.scriptProcessorNode=SDL2.audioContext.createScriptProcessor($1,$0,1);SDL2.capture.scriptProcessorNode.onaudioprocess=function(audioProcessingEvent){if(SDL2===undefined||SDL2.capture===undefined){return}audioProcessingEvent.outputBuffer.getChannelData(0).fill(0);SDL2.capture.currentCaptureBuffer=audioProcessingEvent.inputBuffer;dynCall("vi",$2,[$3])};SDL2.capture.mediaStreamNode.connect(SDL2.capture.scriptProcessorNode);SDL2.capture.scriptProcessorNode.connect(SDL2.audioContext.destination);SDL2.capture.stream=stream};var no_microphone=function(error){};SDL2.capture.silenceBuffer=SDL2.audioContext.createBuffer($0,$1,SDL2.audioContext.sampleRate);SDL2.capture.silenceBuffer.getChannelData(0).fill(0);var silence_callback=function(){SDL2.capture.currentCaptureBuffer=SDL2.capture.silenceBuffer;dynCall("vi",$2,[$3])};SDL2.capture.silenceTimer=setTimeout(silence_callback,$1/SDL2.audioContext.sampleRate*1e3);if(navigator.mediaDevices!==undefined&&navigator.mediaDevices.getUserMedia!==undefined){navigator.mediaDevices.getUserMedia({audio:true,video:false}).then(have_microphone).catch(no_microphone)}else if(navigator.webkitGetUserMedia!==undefined){navigator.webkitGetUserMedia({audio:true,video:false},have_microphone,no_microphone)}},1685249:($0,$1,$2,$3)=>{var SDL2=Module["SDL2"];SDL2.audio.scriptProcessorNode=SDL2.audioContext["createScriptProcessor"]($1,0,$0);SDL2.audio.scriptProcessorNode["onaudioprocess"]=function(e){if(SDL2===undefined||SDL2.audio===undefined){return}SDL2.audio.currentOutputBuffer=e["outputBuffer"];dynCall("vi",$2,[$3])};SDL2.audio.scriptProcessorNode["connect"](SDL2.audioContext["destination"])},1685659:($0,$1)=>{var SDL2=Module["SDL2"];var numChannels=SDL2.capture.currentCaptureBuffer.numberOfChannels;for(var c=0;c<numChannels;++c){var channelData=SDL2.capture.currentCaptureBuffer.getChannelData(c);if(channelData.length!=$1){throw"Web Audio capture buffer length mismatch! Destination size: "+channelData.length+" samples vs expected "+$1+" samples!"}if(numChannels==1){for(var j=0;j<$1;++j){setValue($0+j*4,channelData[j],"float")}}else{for(var j=0;j<$1;++j){setValue($0+(j*numChannels+c)*4,channelData[j],"float")}}}},1686264:($0,$1)=>{var SDL2=Module["SDL2"];var numChannels=SDL2.audio.currentOutputBuffer["numberOfChannels"];for(var c=0;c<numChannels;++c){var channelData=SDL2.audio.currentOutputBuffer["getChannelData"](c);if(channelData.length!=$1){throw"Web Audio output buffer length mismatch! Destination size: "+channelData.length+" samples vs expected "+$1+" samples!"}for(var j=0;j<$1;++j){channelData[j]=HEAPF32[$0+(j*numChannels+c<<2)>>>2]}}},1686744:$0=>{var SDL2=Module["SDL2"];if($0){if(SDL2.capture.silenceTimer!==undefined){clearTimeout(SDL2.capture.silenceTimer)}if(SDL2.capture.stream!==undefined){var tracks=SDL2.capture.stream.getAudioTracks();for(var i=0;i<tracks.length;i++){SDL2.capture.stream.removeTrack(tracks[i])}SDL2.capture.stream=undefined}if(SDL2.capture.scriptProcessorNode!==undefined){SDL2.capture.scriptProcessorNode.onaudioprocess=function(audioProcessingEvent){};SDL2.capture.scriptProcessorNode.disconnect();SDL2.capture.scriptProcessorNode=undefined}if(SDL2.capture.mediaStreamNode!==undefined){SDL2.capture.mediaStreamNode.disconnect();SDL2.capture.mediaStreamNode=undefined}if(SDL2.capture.silenceBuffer!==undefined){SDL2.capture.silenceBuffer=undefined}SDL2.capture=undefined}else{if(SDL2.audio.scriptProcessorNode!=undefined){SDL2.audio.scriptProcessorNode.disconnect();SDL2.audio.scriptProcessorNode=undefined}SDL2.audio=undefined}if(SDL2.audioContext!==undefined&&SDL2.audio===undefined&&SDL2.capture===undefined){SDL2.audioContext.close();SDL2.audioContext=undefined}},1687916:($0,$1,$2)=>{var w=$0;var h=$1;var pixels=$2;if(!Module["SDL2"])Module["SDL2"]={};var SDL2=Module["SDL2"];if(SDL2.ctxCanvas!==Module["canvas"]){SDL2.ctx=Module["createContext"](Module["canvas"],false,true);SDL2.ctxCanvas=Module["canvas"]}if(SDL2.w!==w||SDL2.h!==h||SDL2.imageCtx!==SDL2.ctx){SDL2.image=SDL2.ctx.createImageData(w,h);SDL2.w=w;SDL2.h=h;SDL2.imageCtx=SDL2.ctx}var data=SDL2.image.data;var src=pixels>>2;var dst=0;var num;if(typeof CanvasPixelArray!=="undefined"&&data instanceof CanvasPixelArray){num=data.length;while(dst<num){var val=HEAP32[src>>>0];data[dst]=val&255;data[dst+1]=val>>8&255;data[dst+2]=val>>16&255;data[dst+3]=255;src++;dst+=4}}else{if(SDL2.data32Data!==data){SDL2.data32=new Int32Array(data.buffer);SDL2.data8=new Uint8Array(data.buffer);SDL2.data32Data=data}var data32=SDL2.data32;num=data32.length;data32.set(HEAP32.subarray(src>>>0,src+num>>>0));var data8=SDL2.data8;var i=3;var j=i+4*num;if(num%8==0){while(i<j){data8[i]=255;i=i+4|0;data8[i]=255;i=i+4|0;data8[i]=255;i=i+4|0;data8[i]=255;i=i+4|0;data8[i]=255;i=i+4|0;data8[i]=255;i=i+4|0;data8[i]=255;i=i+4|0;data8[i]=255;i=i+4|0}}else{while(i<j){data8[i]=255;i=i+4|0}}}SDL2.ctx.putImageData(SDL2.image,0,0)},1689385:($0,$1,$2,$3,$4)=>{var w=$0;var h=$1;var hot_x=$2;var hot_y=$3;var pixels=$4;var canvas=document.createElement("canvas");canvas.width=w;canvas.height=h;var ctx=canvas.getContext("2d");var image=ctx.createImageData(w,h);var data=image.data;var src=pixels>>2;var dst=0;var num;if(typeof CanvasPixelArray!=="undefined"&&data instanceof CanvasPixelArray){num=data.length;while(dst<num){var val=HEAP32[src>>>0];data[dst]=val&255;data[dst+1]=val>>8&255;data[dst+2]=val>>16&255;data[dst+3]=val>>24&255;src++;dst+=4}}else{var data32=new Int32Array(data.buffer);num=data32.length;data32.set(HEAP32.subarray(src>>>0,src+num>>>0))}ctx.putImageData(image,0,0);var url=hot_x===0&&hot_y===0?"url("+canvas.toDataURL()+"), auto":"url("+canvas.toDataURL()+") "+hot_x+" "+hot_y+", auto";var urlBuf=_malloc(url.length+1);stringToUTF8(url,urlBuf,url.length+1);return urlBuf},1690374:$0=>{if(Module["canvas"]){Module["canvas"].style["cursor"]=UTF8ToString($0)}},1690457:()=>{if(Module["canvas"]){Module["canvas"].style["cursor"]="none"}},1690526:()=>window.innerWidth,1690556:()=>window.innerHeight,1690587:($0,$1)=>{var buf=$0;var buflen=$1;var list=undefined;if(navigator.languages&&navigator.languages.length){list=navigator.languages}else{var oneOfThese=navigator.userLanguage||navigator.language||navigator.browserLanguage||navigator.systemLanguage;if(oneOfThese!==undefined){list=[oneOfThese]}}if(list===undefined){return}var str="";for(var i=0;i<list.length;i++){var item=list[i];if(str.length+item.length+1>buflen){break}if(str.length>0){str+=","}str+=item}str=str.replace(/-/g,"_");if(buflen>str.length){buflen=str.length}for(var i=0;i<buflen;i++){setValue(buf+i,str.charCodeAt(i),"i8")}},1691295:$0=>{window.open(UTF8ToString($0),"_blank")},1691335:($0,$1)=>{alert(UTF8ToString($0)+"\n\n"+UTF8ToString($1))}};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.